]> git.dujemihanovic.xyz Git - u-boot.git/commit
rockchip: px30: clk: add UART0 clock getter/setter
authorLukasz Czechowski <lukasz.czechowski@thaumatec.com>
Thu, 22 Aug 2024 10:33:15 +0000 (12:33 +0200)
committerKever Yang <kever.yang@rock-chips.com>
Fri, 25 Oct 2024 12:47:44 +0000 (20:47 +0800)
commit609e71e68e46a0183978352a330198e570a89a86
treeb5d9422bb872ceee1558381620820cb0978a9f1e
parent698e5830aa6993e0c4bcc0b5bf2a091a855812af
rockchip: px30: clk: add UART0 clock getter/setter

Add dedicated getter and setter for SCLK_UART0_PMU.
This allows the driver to correctly handle UART0 clocks, and thus
it fixes the issues with UART0 not working in case DEBUG_UART is
disabled.
Unlike other Rockchip SoCs, i.e. rk3399, in the PX30 the default
clock source for UART is GPLL, instead of external oscillator.
If the DEBUG_UART is enabled, the clock source is changed in
board_debug_uart_init function to 24Mhz oscillator, which also
matches the fallback value obtained from DT node.
In case the DEBUG_UART is disabled, the UART clock source remains
default, and the DM serial driver wrongly configures the baud rate,
resulting in broken communication.
By implementing the UART clock getter/setter, the serial driver
can probe the actual configuration and corectly configure itself.
The DEBUG_UART settings now should not affect it.

The driver supports GPLL and 24M oscillator. NPLL and USBPHY480M
sources, that are managed by CRU, are not yet handled, as likely
they won't be used in real scenarios.

Signed-off-by: Lukasz Czechowski <lukasz.czechowski@thaumatec.com>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>
arch/arm/include/asm/arch-rockchip/cru_px30.h
drivers/clk/rockchip/clk_px30.c