提交 c3b5d3be 编写于 作者: S Stephen Boyd 提交者: Greg Kroah-Hartman

msm_serial: Add support for non-GSBI UARTDM devices

Not all UARTDM hardware is part of a GSBI complex. Add support
for these devices and fix a bug where we assumed uartdm meant the
hardware was part of a GSBI complex.

Cc: David Brown <davidb@codeaurora.org>
Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
上级 bfaddb7d
...@@ -678,7 +678,7 @@ static void msm_config_port(struct uart_port *port, int flags) ...@@ -678,7 +678,7 @@ static void msm_config_port(struct uart_port *port, int flags)
if (ret) if (ret)
return; return;
} }
if (msm_port->is_uartdm) if (msm_port->gsbi_base)
writel_relaxed(GSBI_PROTOCOL_UART, writel_relaxed(GSBI_PROTOCOL_UART,
msm_port->gsbi_base + GSBI_CONTROL); msm_port->gsbi_base + GSBI_CONTROL);
} }
...@@ -868,6 +868,11 @@ static struct uart_driver msm_uart_driver = { ...@@ -868,6 +868,11 @@ static struct uart_driver msm_uart_driver = {
static atomic_t msm_uart_next_id = ATOMIC_INIT(0); static atomic_t msm_uart_next_id = ATOMIC_INIT(0);
static const struct of_device_id msm_uartdm_table[] = {
{ .compatible = "qcom,msm-uartdm" },
{ }
};
static int __init msm_serial_probe(struct platform_device *pdev) static int __init msm_serial_probe(struct platform_device *pdev)
{ {
struct msm_port *msm_port; struct msm_port *msm_port;
...@@ -887,7 +892,7 @@ static int __init msm_serial_probe(struct platform_device *pdev) ...@@ -887,7 +892,7 @@ static int __init msm_serial_probe(struct platform_device *pdev)
port->dev = &pdev->dev; port->dev = &pdev->dev;
msm_port = UART_TO_MSM(port); msm_port = UART_TO_MSM(port);
if (platform_get_resource(pdev, IORESOURCE_MEM, 1)) if (of_match_device(msm_uartdm_table, &pdev->dev))
msm_port->is_uartdm = 1; msm_port->is_uartdm = 1;
else else
msm_port->is_uartdm = 0; msm_port->is_uartdm = 0;
...@@ -934,6 +939,7 @@ static int msm_serial_remove(struct platform_device *pdev) ...@@ -934,6 +939,7 @@ static int msm_serial_remove(struct platform_device *pdev)
static struct of_device_id msm_match_table[] = { static struct of_device_id msm_match_table[] = {
{ .compatible = "qcom,msm-uart" }, { .compatible = "qcom,msm-uart" },
{ .compatible = "qcom,msm-uartdm" },
{} {}
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册