ARM: OMAP1: clock: Fix early UART rate issues
authorJanusz Krzysztofik <jmkrzyszt@gmail.com>
Sun, 10 Apr 2022 13:07:53 +0000 (15:07 +0200)
committerArnd Bergmann <arnd@arndb.de>
Fri, 22 Apr 2022 09:08:56 +0000 (11:08 +0200)
commit34c86239b184aeedde8dee95e2ee09dde92045e6
tree054de7f106e2db96be7fa1c0a30db57074ae830e
parent98e0f6345ad98531b3a3016a632c20b4d9129e39
ARM: OMAP1: clock: Fix early UART rate issues

Commit ef772f2ee31e ("ARM: OMAP: Fix CONFIG_DEBUG_LL") was supposed to fix
low level debugging, most possibly by early enabling UART clocks.  The fix
actually introduced early reset of most bits of MOD_CONF_CTRL_0 register,
with the exception of UART1 and UART2 clock related bits which were set
high.  However, UART1 clock bit can play different roles on different
OMAP1 variants.  On OMAP1610 it enables the clock as intended, but on
OMAP1510 it switches the clock rate from 12 to 48 MHz.  Even worth, for
UART2 the bit changes its clock rate also on OMAP1610.  As a result, UART
rates set by a bootloader can be unintentionally changed early on kernel
boot and low level debugging broken, not fixed.  Besides, reset of all
other bits was not justified.

Don't touch register bits not related to UART clocks.  Also, don't touch
the bit of UART2 clock.  Make sure UART1 and UART3 are enabled early on
relevant OMAP1610 machine types while preserving bootloader UART clock
rates on others.

Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/arm/mach-omap1/clock_data.c