serial: of_serial: Support big-endian register accesses
authorKevin Cernekee <cernekee@gmail.com>
Thu, 9 Apr 2015 20:05:18 +0000 (13:05 -0700)
committerRob Herring <robh@kernel.org>
Wed, 15 Apr 2015 00:35:45 +0000 (19:35 -0500)
If the device node has a "big-endian" property and 32-bit registers, tell
the serial driver to use UPIO_MEM32BE instead of UPIO_MEM32.

Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Rob Herring <robh@kernel.org>
drivers/tty/serial/of_serial.c

index 33fb94f7896773c53141ec283f15a3a18be96f1a..e15c443b2a3ccb88a5807aae906a592e2282ede3 100644 (file)
@@ -115,7 +115,8 @@ static int of_platform_serial_setup(struct platform_device *ofdev,
                        port->iotype = UPIO_MEM;
                        break;
                case 4:
-                       port->iotype = UPIO_MEM32;
+                       port->iotype = of_device_is_big_endian(np) ?
+                                      UPIO_MEM32BE : UPIO_MEM32;
                        break;
                default:
                        dev_warn(&ofdev->dev, "unsupported reg-io-width (%d)\n",