diff mbox

[LTSI-3.14,246/894] serial: sh-sci: Add device tree support for r8a7779

Message ID 1409209620-24487-247-git-send-email-horms+renesas@verge.net.au (mailing list archive)
State New, archived
Headers show

Commit Message

Simon Horman Aug. 28, 2014, 6:56 a.m. UTC
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>
(cherry picked from commit fcbee4d49f30eb0eaa83a62e6a3cab5a892ed93f)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
---
 .../devicetree/bindings/serial/renesas,sci-serial.txt          |  1 +
 drivers/tty/serial/sh-sci.c                                    | 10 +++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt
index 53e6c17..bba86de 100644
--- a/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt
+++ b/Documentation/devicetree/bindings/serial/renesas,sci-serial.txt
@@ -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.
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
index 88236da..3b5d2f6 100644
--- a/drivers/tty/serial/sh-sci.c
+++ b/drivers/tty/serial/sh-sci.c
@@ -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[] = {
@@ -2429,6 +2430,13 @@  static const struct of_device_id of_sci_match[] = {
 			.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) {
 			.type = PORT_SCIFA,
@@ -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;
 }