
On 07/17/2018 11:21 AM, Lokesh Vutla wrote:
On Tuesday 17 July 2018 02:42 PM, Alexander Graf wrote:
On 07/17/2018 09:55 AM, Lokesh Vutla wrote:
On Tuesday 17 July 2018 12:32 PM, Felix Brack wrote:
This patch adds a new Kconfig variable that allows setting the register offset shift value for the ns16550 driver to some other value then 0 if not defined by the DT. All credit for this patch goes to Lokesh Vutla as it was his idea.
The motivation for writing this patch originates in the effort of synchronizing U-Boot DT to Linux DT for am33xx SOCs. The current am33xx.dtsi file from U-Boot defines the <reg-shift> property for all UART nodes. The actual (4.18+) am33xx.dtsi file from Linux does not define <reg-shift> anymore. To prevent (probably difficult) changes in many .dts and .dtsi files once the synchronization is done, one can use this new variable. For the pdu001 board, for example, SYS_NS16550_REG_SHIFT is set to 2; no need to clutter U-Boot and board specific dts files with <reg-shift> properties.
Signed-off-by: Felix Brack fb@ltec.ch
NAK. Please determine the shift value from the compatible instead. Ideally you would create a subclass of the ns16550 device class and set reg_shift in there.
There was a separate driver for omap_serial initially but was deleted by the below commit:
commit c7b9686d5d482c8e952598841ea467e6ec0ec0de Author: Thomas Chou thomas@wytron.com.tw Date: Thu Nov 19 21:48:12 2015 +0800
ns16550: unify serial_omap Unify serial_omap, and use the generic binding. Signed-off-by: Thomas Chou <thomas@wytron.com.tw> Reviewed-by: Tom Rini <trini@konsulko.com> Acked-by: Simon Glass <sjg@chromium.org>
Sounds like that wasn't a terribly smart move :).
If you really don't want a separate driver (and I'm not sure why you wouldn't), declare a separate PORT for ti,omap3-uart in ns16550_serial_ids and set the shift value based on that in ns16550_serial_ofdata_to_platdata() if DT doesn't describe one.
Alex