| From 79ee30c3c8fa546e755482f15daf95639e4b8fb3 Mon Sep 17 00:00:00 2001 |
| From: Simon Horman <horms+renesas@verge.net.au> |
| Date: Thu, 24 Apr 2014 15:54:44 +0900 |
| Subject: serial: sh-sci: Add device tree support for r8a7779 |
| |
| 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> |
| --- |
| Documentation/devicetree/bindings/serial/renesas,sci-serial.txt | 1 + |
| drivers/tty/serial/sh-sci.c | 10 +++++++++- |
| 2 files changed, 10 insertions(+), 1 deletion(-) |
| |
| --- 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. |
| --- a/drivers/tty/serial/sh-sci.c |
| +++ b/drivers/tty/serial/sh-sci.c |
| @@ -2390,6 +2390,7 @@ static int sci_remove(struct platform_de |
| struct sci_port_info { |
| unsigned int type; |
| unsigned int regtype; |
| + unsigned int scscr_extra; |
| }; |
| |
| static const struct of_device_id of_sci_match[] = { |
| @@ -2400,6 +2401,13 @@ static const struct of_device_id of_sci_ |
| .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, |
| @@ -2459,7 +2467,7 @@ sci_parse_dt(struct platform_device *pde |
| 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; |
| } |