serial: sh-sci: Add device tree support for r8a7779
authorSimon Horman <horms+renesas@verge.net.au>
Thu, 24 Apr 2014 06:54:44 +0000 (15:54 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 24 Apr 2014 23:13:01 +0000 (16:13 -0700)
According to the platform data for the legacy-C initialisation of sh-sci
for the r8a7779 SoC and my own testing the SCIx_SH4_SCIF_REGTYPE bit of
scscr needs to be set.

Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/devicetree/bindings/serial/renesas,sci-serial.txt
drivers/tty/serial/sh-sci.c

index 53e6c175db6c03121fdd6e899868dcb4e2f6c1e3..bba86de1a094c808b7ab9ab28a947e541e291eba 100644 (file)
@@ -12,6 +12,7 @@ Required properties:
     - "renesas,scifa-r8a7791" for R8A7791 (R-Car M2) SCIFA compatible UART.
     - "renesas,scifb-r8a7791" for R8A7791 (R-Car M2) SCIFB compatible UART.
     - "renesas,hscif-r8a7791" for R8A7791 (R-Car M2) HSCIF compatible UART.
+    - "renesas,scif-r8a7779" for R8A7779 (R-Car H1) SCIF compatible UART.
     - "renesas,scif" for generic SCIF compatible UART.
     - "renesas,scifa" for generic SCIFA compatible UART.
     - "renesas,scifb" for generic SCIFB compatible UART.
index 88236da0ddf731ae13d0701448497595e389ef62..3b5d2f67994610b486d3a8410467ca32a8c7314b 100644 (file)
@@ -2419,6 +2419,7 @@ static int sci_remove(struct platform_device *dev)
 struct sci_port_info {
        unsigned int type;
        unsigned int regtype;
+       unsigned int scscr_extra;
 };
 
 static const struct of_device_id of_sci_match[] = {
@@ -2428,6 +2429,13 @@ static const struct of_device_id of_sci_match[] = {
                        .type = PORT_SCIF,
                        .regtype = SCIx_SH4_SCIF_REGTYPE,
                },
+       }, {
+               .compatible = "renesas,scif-r8a7779",
+               .data = (void *)&(const struct sci_port_info) {
+                       .type = PORT_SCIF,
+                       .regtype = SCIx_SH4_SCIF_REGTYPE,
+                       .scscr_extra = SCSCR_CKE1,
+               },
        }, {
                .compatible = "renesas,scifa",
                .data = &(const struct sci_port_info) {
@@ -2488,7 +2496,7 @@ sci_parse_dt(struct platform_device *pdev, unsigned int *dev_id)
        p->flags = UPF_IOREMAP | UPF_BOOT_AUTOCONF;
        p->type = info->type;
        p->regtype = info->regtype;
-       p->scscr = SCSCR_RE | SCSCR_TE;
+       p->scscr = SCSCR_RE | SCSCR_TE | info->scscr_extra;
 
        return p;
 }