clk: at91: select parent if main oscillator or bypass is enabled
authorEugen Hristev <eugen.hristev@microchip.com>
Mon, 9 Sep 2019 15:30:34 +0000 (15:30 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 7 Oct 2019 16:57:01 +0000 (18:57 +0200)
commit72884423e77f22f19bc3dac01606429aeb723f08
tree733c46142861d34957820d752b9a0208a2e54321
parent952d1c6d7cf0d0549953e0db9fedd8fa9dfc55b6
clk: at91: select parent if main oscillator or bypass is enabled

[ Upstream commit 69a6bcde7fd3fe6f3268ce26f31d9d9378384c98 ]

Selecting the right parent for the main clock is done using only
main oscillator enabled bit.
In case we have this oscillator bypassed by an external signal (no driving
on the XOUT line), we still use external clock, but with BYPASS bit set.
So, in this case we must select the same parent as before.
Create a macro that will select the right parent considering both bits from
the MOR register.
Use this macro when looking for the right parent.

Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
Link: https://lkml.kernel.org/r/1568042692-11784-2-git-send-email-eugen.hristev@microchip.com
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/clk/at91/clk-main.c