]> git.dujemihanovic.xyz Git - u-boot.git/commit
mmc: renesas-sdhi: Always configure default SDnH clock rate to 800 MHz
authorMarek Vasut <marek.vasut+renesas@mailbox.org>
Mon, 27 Feb 2023 22:49:27 +0000 (23:49 +0100)
committerMarek Vasut <marek.vasut+renesas@mailbox.org>
Fri, 10 Mar 2023 16:45:47 +0000 (17:45 +0100)
commit6ddffa89cb8396bf043adcc5090e8b1a9b1d0246
tree9719483499ce278f9012b6c8e0468db32252eb73
parentb08ffdffdce95e267e782366f4a77bf6b5537b28
mmc: renesas-sdhi: Always configure default SDnH clock rate to 800 MHz

The prior stage bootloader might have left the SDnCKCR register in completely
arbitrary state before passing control to U-Boot, which includes the register
being populated with incorrect values. Currently the SDHI driver will attempt
to use clock framework to configure SDn clock, which may fail in case SDnCKCR
contains invalid values for the SDnH clock, because the clock framework would
not be able to determine SDnH clock rate and would get -EINVAL instead, which
in turn would not allow the clock framework to determine the correct SDn clock
divider ratio.

This failure occurs specifically in case SDnCKCR reads back 0x209 .

Correct the problem by first setting default SDnH clock rate to 800 MHz, thus
assuring the SDnCKCR SDnH bits are correct, and only afterward set up the SDn
clock rate to default 200 MHz.

Note that the SDHI driver may reconfigure SDnH clock later based on IOS
settings obtained from the attached card, the 800 MHz set up here is only
the default value.

Signed-off-by: Marek Vasut <marek.vasut+renesas@mailbox.org>
drivers/mmc/renesas-sdhi.c