serial: sh-sci: Fix register offsets for the IRDA serial port
authorLaurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Wed, 11 Jan 2017 14:43:32 +0000 (16:43 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 19 Jan 2017 13:17:05 +0000 (14:17 +0100)
Even though most of its registers are 8-bit wide, the IRDA has two
16-bit registers that make it a 16-bit peripheral and not a 8-bit
peripheral with addresses shifted by one. Fix the registers offset in
the driver and the platform data regshift value.

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/sh/kernel/cpu/sh3/setup-sh770x.c
drivers/tty/serial/sh-sci.c

index e1e54258b8220ccae87fdb040fdf646f3732f61d..592cd9ab30c4272f5256faa4d34d3192cca339d2 100644 (file)
@@ -157,7 +157,6 @@ static struct platform_device scif1_device = {
 static struct plat_sci_port scif2_platform_data = {
        .type           = PORT_IRDA,
        .ops            = &sh770x_sci_port_ops,
-       .regshift       = 1,
 };
 
 static struct resource scif2_resources[] = {
index d0102bcca4efad00c64458159bc235e4e08ea11b..baa041c1f28fb3ad7dacc442b580e2be0767cfc9 100644 (file)
@@ -193,18 +193,17 @@ static const struct plat_sci_reg sci_regmap[SCIx_NR_REGTYPES][SCIx_NR_REGS] = {
        },
 
        /*
-        * Common definitions for legacy IrDA ports, dependent on
-        * regshift value.
+        * Common definitions for legacy IrDA ports.
         */
        [SCIx_IRDA_REGTYPE] = {
                [SCSMR]         = { 0x00,  8 },
-               [SCBRR]         = { 0x01,  8 },
-               [SCSCR]         = { 0x02,  8 },
-               [SCxTDR]        = { 0x03,  8 },
-               [SCxSR]         = { 0x04,  8 },
-               [SCxRDR]        = { 0x05,  8 },
-               [SCFCR]         = { 0x06,  8 },
-               [SCFDR]         = { 0x07, 16 },
+               [SCBRR]         = { 0x02,  8 },
+               [SCSCR]         = { 0x04,  8 },
+               [SCxTDR]        = { 0x06,  8 },
+               [SCxSR]         = { 0x08, 16 },
+               [SCxRDR]        = { 0x0a,  8 },
+               [SCFCR]         = { 0x0c,  8 },
+               [SCFDR]         = { 0x0e, 16 },
                [SCTFDR]        = sci_reg_invalid,
                [SCRFDR]        = sci_reg_invalid,
                [SCSPTR]        = sci_reg_invalid,