diff options
author | Simon Horman <horms+renesas@verge.net.au> | 2014-04-24 15:54:44 +0900 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2014-04-24 16:13:01 -0700 |
commit | fcbee4d49f30eb0eaa83a62e6a3cab5a892ed93f (patch) | |
tree | 3198d615b2f5b1620116d97c73cd4c171c8e4f24 /drivers/tty/serial | |
parent | c439c33d85e252d3b2b454ab7ba38b62d6e0a830 (diff) |
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>
Diffstat (limited to 'drivers/tty/serial')
-rw-r--r-- | drivers/tty/serial/sh-sci.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c index 88236da0ddf7..3b5d2f679946 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; } |