Browse Source

serial: ns16550: Read reg-io-width from device tree

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>
Andy Shevchenko 5 years ago
parent
commit
4e7207791c
2 changed files with 3 additions and 0 deletions
  1. 1 0
      drivers/serial/ns16550.c
  2. 2 0
      include/ns16550.h

+ 1 - 0
drivers/serial/ns16550.c

@@ -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) {

+ 2 - 0
include/ns16550.h

@@ -49,11 +49,13 @@
  * 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;