summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFeng Kan <fkan@apm.com>2014-12-05 17:45:57 -0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-01-09 14:16:27 -0800
commit5e1aeea52f6a0763e79473b1767401fda88eb7e1 (patch)
tree4fd8bd78857d672ad6bd687f5a12536a85904019
parent9bdd6369aa64fade997c6f11325f7c7b60ec3f6a (diff)
downloadop-kernel-dev-5e1aeea52f6a0763e79473b1767401fda88eb7e1.zip
op-kernel-dev-5e1aeea52f6a0763e79473b1767401fda88eb7e1.tar.gz
serial: 8250: add support for ACPI-probed serial port for X-Gene platform
Enable APM X-Gene SoC serial port functionality when using ACPI table to initialize serial port. Signed-off-by: Feng Kan <fkan@apm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/tty/serial/8250/8250_dw.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
index 555de07..e601162 100644
--- a/drivers/tty/serial/8250/8250_dw.c
+++ b/drivers/tty/serial/8250/8250_dw.c
@@ -351,10 +351,20 @@ static int dw8250_probe_of(struct uart_port *p,
static int dw8250_probe_acpi(struct uart_8250_port *up,
struct dw8250_data *data)
{
+ const struct acpi_device_id *id;
struct uart_port *p = &up->port;
dw8250_setup_port(up);
+ id = acpi_match_device(p->dev->driver->acpi_match_table, p->dev);
+ if (!id)
+ return -ENODEV;
+
+ if (!p->uartclk)
+ if (device_property_read_u32(p->dev, "clock-frequency",
+ &p->uartclk))
+ return -EINVAL;
+
p->iotype = UPIO_MEM32;
p->serial_in = dw8250_serial_in32;
p->serial_out = dw8250_serial_out32;
@@ -577,6 +587,7 @@ static const struct acpi_device_id dw8250_acpi_match[] = {
{ "INT3435", 0 },
{ "80860F0A", 0 },
{ "8086228A", 0 },
+ { "APMC0D08", 0},
{ },
};
MODULE_DEVICE_TABLE(acpi, dw8250_acpi_match);
OpenPOWER on IntegriCloud