msm_serial: Add support for non-GSBI UARTDM devices
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / tty / serial / msm_serial.c
index 6789435..5a75039 100644 (file)
@@ -678,7 +678,7 @@ static void msm_config_port(struct uart_port *port, int flags)
                if (ret)
                        return;
        }
-       if (msm_port->is_uartdm)
+       if (msm_port->gsbi_base)
                writel_relaxed(GSBI_PROTOCOL_UART,
                                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 const struct of_device_id msm_uartdm_table[] = {
+       { .compatible = "qcom,msm-uartdm" },
+       { }
+};
+
 static int __init msm_serial_probe(struct platform_device *pdev)
 {
        struct msm_port *msm_port;
@@ -887,7 +892,7 @@ static int __init msm_serial_probe(struct platform_device *pdev)
        port->dev = &pdev->dev;
        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;
        else
                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[] = {
        { .compatible = "qcom,msm-uart" },
+       { .compatible = "qcom,msm-uartdm" },
        {}
 };