]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
HISI LPC: Add ACPI UART support
authorJohn Garry <john.garry@huawei.com>
Tue, 8 May 2018 10:27:32 +0000 (18:27 +0800)
committerWei Xu <xuwei5@hisilicon.com>
Thu, 10 May 2018 16:45:52 +0000 (17:45 +0100)
On the Huawei D03 development board the system UART is
the UART connected on the LPC bus.

The profile for the device driver required for this HW
is as follows:
 - platform driver
 - 16550
 - ACPI support
 - polling mode support
 - IO space support

In principle we should use the PNP driver (8250_dw.c) for
8250-devices with ACPI FW. However since this driver does
not support PNP devices, and modifying the PNP core code
to support it is not worth the effort, use the generic
8250 isa driver.

For this, we setup the pdev platform data for the serial
8250 port.

Signed-off-by: John Garry <john.garry@huawei.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
drivers/bus/hisi_lpc.c

index eb5b3fc186e0eb9de1d0c59ea55c239a6d3b6df5..d5f85455fa6216fc2c7660e5f543f5aab71f50f5 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/of_address.h>
 #include <linux/of_platform.h>
 #include <linux/pci.h>
+#include <linux/serial_8250.h>
 #include <linux/slab.h>
 
 #define DRV_NAME "hisi-lpc"
@@ -493,6 +494,22 @@ static int hisi_lpc_acpi_probe(struct device *hostdev)
                                .hid = "IPI0001",
                                .name = "hisi-lpc-ipmi",
                        },
+                       /* 8250-compatible uart */
+                       {
+                               .hid = "HISI1031",
+                               .name = "serial8250",
+                               .pdata = (struct plat_serial8250_port []) {
+                                       {
+                                               .iobase = res->start,
+                                               .uartclk = 1843200,
+                                               .iotype = UPIO_PORT,
+                                               .flags = UPF_BOOT_AUTOCONF,
+                                       },
+                                       {}
+                               },
+                               .pdata_size = 2 *
+                                       sizeof(struct plat_serial8250_port),
+                       },
                        {}
                };