timer: orion-timer: Fix problem in early_init_done()
authorStefan Roese <sr@denx.de>
Mon, 16 Jan 2023 08:01:48 +0000 (09:01 +0100)
committerStefan Roese <sr@denx.de>
Tue, 17 Jan 2023 06:06:37 +0000 (07:06 +0100)
commit9a13a76e6256c51d04f41139733dbb31755e8d30
treeac3c2ad1a9e979d1a3379753e4d3afd1a771dbff
parent348064ee2c8f9494b91b55729ac60c5db79ef129
timer: orion-timer: Fix problem in early_init_done()

It was noticed that Clearfog is currently broken with this newly
introduced early_init_done() function. Apparently the timer is enabled
here when U-Boot is run but not configured - at least not correctly.
Resulting in a hangup in the timer reading functions.

To fix this, also read the value of the reload register and check it's
value with the one written to by U-Boot. Only if this matches, the
init has already been done.

Fixes: 5387b093cb79 ("timer: orion-timer: Fix problem with early static variable")
Signed-off-by: Stefan Roese <sr@denx.de>
Acked-by: Pali Rohár <pali@kernel.org>
Cc: Martin Rowe <martin.p.rowe@gmail.com>
Cc: Tony Dinh <mibodhi@gmail.com>
Cc: Pali Rohár <pali@kernel.org>
Cc: Michael Walle <michael@walle.cc>
drivers/timer/orion-timer.c