serial: ns16550: Read reg-io-width from device tree
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 20 Nov 2018 21:52:35 +0000 (23:52 +0200)
committerSimon Glass <sjg@chromium.org>
Wed, 5 Dec 2018 13:08:35 +0000 (06:08 -0700)
Cache the value of the reg-io-width property for the future use.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
drivers/serial/ns16550.c
include/ns16550.h

index 25b9d1724334e2b3d321760e235a0cd419ff588a..9d78b1ffc4fbf64455aeb68c263cb447ba46cd8b 100644 (file)
@@ -446,6 +446,7 @@ int ns16550_serial_ofdata_to_platdata(struct udevice *dev)
 
        plat->reg_offset = dev_read_u32_default(dev, "reg-offset", 0);
        plat->reg_shift = dev_read_u32_default(dev, "reg-shift", 0);
+       plat->reg_width = dev_read_u32_default(dev, "reg-io-width", 1);
 
        err = clk_get_by_index(dev, 0, &clk);
        if (!err) {
index f565645d65be5c17caeed3a5879a0bde6df40dfc..22b89e4d6d19db7df724b1775d6aa386bc1c9818 100644 (file)
  * struct ns16550_platdata - information about a NS16550 port
  *
  * @base:              Base register address
+ * @reg_width:         IO accesses size of registers (in bytes)
  * @reg_shift:         Shift size of registers (0=byte, 1=16bit, 2=32bit...)
  * @clock:             UART base clock speed in Hz
  */
 struct ns16550_platdata {
        unsigned long base;
+       int reg_width;
        int reg_shift;
        int reg_offset;
        int clock;