u-boot/drivers/serial
Andre Przywara e3e2d662a2 uart: pl011: Add proper DM clock support
Even though the PL011 UART driver claims to be DM compliant, it does not
really a good job with parsing DT nodes. U-Boot seems to adhere to a
non-standard binding, either requiring to have a "skip-init" property in
the node, or to have an extra "clock" property holding the base
*frequency* value for the baud rate generator.
DTs in the U-Boot tree seem to have been hacked to match this
requirement.

The official binding does not mention any of these properties, instead
recommends a standard "clocks" property to point to the baud base clock.

Some boards use simple "fixed-clock" providers, which U-Boot readily
supports, so let's add some simple DM clock code to the PL011 driver to
learn the rate of the first clock, as described by the official binding.

These clock nodes seem to be not ready very early in the boot process,
so provide a fallback value, by re-using the already existing
CONFIG_PL011_CLOCK variable.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
[trini: Add <clock_legacy.h> for get_bus_freq() for layerscape
platforms]
Signed-off-by: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
2020-05-07 09:01:42 -04:00
..
altera_jtag_uart.c serial: Remove DM_FLAG_PRE_RELOC flag in various drivers 2018-11-14 09:16:28 -08:00
altera_uart.c serial: altera_uart: convert to livetree 2019-05-10 22:48:11 +02:00
arm_dcc.c serial: Remove DM_FLAG_PRE_RELOC flag in various drivers 2018-11-14 09:16:28 -08:00
atmel_usart.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
atmel_usart.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Kconfig serial: serial_cortina: add UART DM driver for CAxxxx SoCs 2020-02-07 16:16:01 -05:00
lpc32xx_hsuart.c common: Move clock functions into a new file 2020-01-17 13:27:29 -05:00
Makefile serial: mcfuart: renaming to a more appropriate name 2020-03-13 09:29:50 -04:00
ns16550.c serial: ns16550: Provide UART base clock speed in ->getinfo() 2020-04-16 14:36:28 +08:00
sandbox.c dm: serial: Add clock member to struct serial_device_info 2020-04-16 14:36:28 +08:00
serial-uclass.c serial: Set baudrate on boot 2020-04-16 08:07:57 -06:00
serial.c common: Move hang() to the same header as panic() 2020-01-17 17:53:40 -05:00
serial_ar933x.c common: Move clock functions into a new file 2020-01-17 13:27:29 -05:00
serial_arc.c serial_arc: Allocate buffer for private data 2019-01-25 08:40:26 +03:00
serial_bcm283x_mu.c drivers: bcm283x: Set pre-location flag for OF_BOARD 2019-11-24 10:46:27 +01:00
serial_bcm283x_pl011.c drivers: bcm283x: Set pre-location flag for OF_BOARD 2019-11-24 10:46:27 +01:00
serial_bcm6345.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
serial_coreboot.c x86: serial: Add a coreboot serial driver 2020-02-04 01:19:25 +08:00
serial_cortina.c serial: serial_cortina: add UART DM driver for CAxxxx SoCs 2020-02-07 16:16:01 -05:00
serial_efi.c serial: Remove DM_FLAG_PRE_RELOC flag in various drivers 2018-11-14 09:16:28 -08:00
serial_intel_mid.c serial: Remove DM_FLAG_PRE_RELOC flag in various drivers 2018-11-14 09:16:28 -08:00
serial_linflexuart.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
serial_lpuart.c serial_lpuart: make clock failure less verbose 2020-03-09 15:06:23 +01:00
serial_mcf.c serial: mcfuart: renaming to a more appropriate name 2020-03-13 09:29:50 -04:00
serial_meson.c serial: Remove DM_FLAG_PRE_RELOC flag in various drivers 2018-11-14 09:16:28 -08:00
serial_mpc8xx.c drivers: serial: get rid of non DM mpc8xx driver 2018-12-03 10:44:10 -05:00
serial_msm.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
serial_mtk.c dm: core: Require users of devres to include the header 2020-02-05 19:33:46 -07:00
serial_mvebu_a3700.c serial: Remove DM_FLAG_PRE_RELOC flag in various drivers 2018-11-14 09:16:28 -08:00
serial_mxc.c serial: mxc: Add compatibles to NXP's serial driver (for imx21 and imx53) 2019-07-19 20:32:24 +02:00
serial_ns16550.c common: Move clock functions into a new file 2020-01-17 13:27:29 -05:00
serial_nulldev.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
serial_omap.c dm: core: Require users of devres to include the header 2020-02-05 19:33:46 -07:00
serial_owl.c arm: dts: sync dts for Action Semi S900 2020-04-24 16:40:09 -04:00
serial_pic32.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
serial_pl01x.c uart: pl011: Add proper DM clock support 2020-05-07 09:01:42 -04:00
serial_pl01x_internal.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
serial_pxa.c common: Move hang() to the same header as panic() 2020-01-17 17:53:40 -05:00
serial_rockchip.c rockchip: use 'arch-rockchip' as header file path 2019-05-01 00:00:05 +02:00
serial_s5p.c serial: Remove DM_FLAG_PRE_RELOC flag in various drivers 2018-11-14 09:16:28 -08:00
serial_sh.c serial: sh: Drop assorted SH3, SH4, SH5 macros 2019-05-10 22:43:18 +02:00
serial_sh.h sh: sh3: Remove CPU support 2019-05-10 22:43:18 +02:00
serial_sifive.c dm: core: Require users of devres to include the header 2020-02-05 19:33:46 -07:00
serial_sti_asc.c serial: Remove DM_FLAG_PRE_RELOC flag in various drivers 2018-11-14 09:16:28 -08:00
serial_stm32.c dm: core: Create a new header file for 'compat' features 2020-02-05 19:33:46 -07:00
serial_stm32.h serial: stm32: add Framing error support 2019-08-27 11:19:23 +02:00
serial_uniphier.c serial: uniphier: set clock rate without clock-frequency property 2018-06-23 01:28:15 +09:00
serial_xuartlite.c serial: Remove DM_FLAG_PRE_RELOC flag in various drivers 2018-11-14 09:16:28 -08:00
serial_zynq.c serial: zynq: Change uart initialization logic 2020-04-06 12:52:45 +02:00
usbtty.c serial: usb: Correct the usbtty_...() prototypes 2019-12-02 18:23:10 -05:00
usbtty.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00