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: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
bfaddb7d13
commit
c3b5d3be7e
|
@ -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 = {
|
||||||
|
|
||||||
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)
|
||||||
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)
|
||||||
|
|
||||||
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" },
|
||||||
{}
|
{}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue