
On 27 July 2016 at 08:26, Paul Burton paul.burton@imgtec.com wrote:
Previously ns16550 compatible UARTs probed via device tree have needed their device tree nodes to contain a clock-frequency property. An alternative to this commonly used with Linux is to reference a clock via a phandle. This patch allows U-Boot to support that, retrieving the clock frequency by probing the appropriate clock device.
For example, a system might choose to provide the UART base clock as a reference to a clock common to multiple devices:
sys_clk: clock { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <10000000>; };
uart0: uart@10000000 { compatible = "ns16550a"; reg = <0x10000000 0x1000>; clocks = <&sys_clk>; };
uart1: uart@10000000 { compatible = "ns16550a"; reg = <0x10001000 0x1000>; clocks = <&sys_clk>; };
This removes the need for the frequency information to be duplicated in multiple nodes and allows the device tree to be more descriptive of the system.
Signed-off-by: Paul Burton paul.burton@imgtec.com
Changes in v2:
- Propogate non-ENODEV errors from clk_get_by_index
drivers/serial/ns16550.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-)
This seems OK. I hope it does not bloat the code of any boards.
Reviewed-by: Simon Glass sjg@chromium.org