Lines Matching +full:uart +full:- +full:state
1 // SPDX-License-Identifier: GPL-2.0-only
18 * TXFE == 0 instead of BUSY == 1. This may not be suitable for all UART
26 * Some Qualcomm Datacenter Technologies SoCs have a defective UART BUSY bit.
32 if (memcmp(h->oem_id, "QCOM ", ACPI_OEM_ID_SIZE)) in qdf2400_erratum_44_present()
35 if (!memcmp(h->oem_table_id, "QDF2432 ", ACPI_OEM_TABLE_ID_SIZE)) in qdf2400_erratum_44_present()
38 if (!memcmp(h->oem_table_id, "QDF2400 ", ACPI_OEM_TABLE_ID_SIZE) && in qdf2400_erratum_44_present()
39 h->oem_revision == 1) in qdf2400_erratum_44_present()
46 * APM X-Gene v1 and v2 UART hardware is an 16550 like device but has its
47 * register aligned to 32-bit. In addition, the BIOS also encoded the
54 if (tb->interface_type != ACPI_DBG2_16550_COMPATIBLE) in xgene_8250_erratum_present()
57 if (memcmp(tb->header.oem_id, "APMC0D", ACPI_OEM_ID_SIZE) && in xgene_8250_erratum_present()
58 memcmp(tb->header.oem_id, "HPE ", ACPI_OEM_ID_SIZE)) in xgene_8250_erratum_present()
61 if (!memcmp(tb->header.oem_table_id, "XGENESPC", in xgene_8250_erratum_present()
62 ACPI_OEM_TABLE_ID_SIZE) && tb->header.oem_revision == 0) in xgene_8250_erratum_present()
65 if (!memcmp(tb->header.oem_table_id, "ProLiant", in xgene_8250_erratum_present()
66 ACPI_OEM_TABLE_ID_SIZE) && tb->header.oem_revision == 1) in xgene_8250_erratum_present()
73 * acpi_parse_spcr() - parse ACPI SPCR table and add preferred console
90 char *uart; in acpi_parse_spcr() local
96 return -ENODEV; in acpi_parse_spcr()
100 return -ENOENT; in acpi_parse_spcr()
102 if (table->header.revision < 2) in acpi_parse_spcr()
103 pr_info("SPCR table version %d\n", table->header.revision); in acpi_parse_spcr()
105 if (table->serial_port.space_id == ACPI_ADR_SPACE_SYSTEM_MEMORY) { in acpi_parse_spcr()
106 u32 bit_width = table->serial_port.access_width; in acpi_parse_spcr()
129 switch (table->interface_type) { in acpi_parse_spcr()
136 uart = "pl011"; in acpi_parse_spcr()
142 uart = "uart"; in acpi_parse_spcr()
145 err = -ENOENT; in acpi_parse_spcr()
149 switch (table->baud_rate) { in acpi_parse_spcr()
152 * SPCR 1.04 defines 0 as a preconfigured state of UART. in acpi_parse_spcr()
170 err = -ENOENT; in acpi_parse_spcr()
176 * driver to implement the work-around. in acpi_parse_spcr()
192 if (qdf2400_erratum_44_present(&table->header)) { in acpi_parse_spcr()
195 uart = "qdf2400_e44"; in acpi_parse_spcr()
203 * UART so don't attempt to change to the baud rate state in acpi_parse_spcr()
210 snprintf(opts, sizeof(opts), "%s,%s,0x%llx", uart, iotype, in acpi_parse_spcr()
211 table->serial_port.address); in acpi_parse_spcr()
213 snprintf(opts, sizeof(opts), "%s,%s,0x%llx,%d", uart, iotype, in acpi_parse_spcr()
214 table->serial_port.address, baud_rate); in acpi_parse_spcr()
223 err = add_preferred_console(uart, 0, opts + strlen(uart) + 1); in acpi_parse_spcr()