]> git.sur5r.net Git - u-boot/commit
sunxi: mmc: Fix phase delays
authorStefan Mavrodiev <stefan@olimex.com>
Tue, 27 Mar 2018 13:57:23 +0000 (16:57 +0300)
committerJagan Teki <jagan@amarulasolutions.com>
Mon, 23 Apr 2018 06:42:56 +0000 (12:12 +0530)
commit4744d81cc0dbe238bd4d8cd88c1c71022bffa621
tree284ebf85eaeec2d3ddc37d38725e1daa45a38480
parent275d80a4c2fb63890f3f4c16b7ad481064e650a0
sunxi: mmc: Fix phase delays

U-boot driver for sunxi-mmc uses PLL6, unlike linux kernel where
PLL5 is used, with clock rates respectively 600MHz and 768MHz.
Thus there are different phase degree steps - 24 for the kernel and
30 for u-boot.

In the kernel driver the phase is set 90 deg for output and 120 for
sample. Dividing by 30 will result values 3 and 4. Those are the
values set in the u-boot driver.

However, the condition defining delays is wrong. MMC core driver
requests clock of 52MHz, sunxi-driver sets clock of 50MHz, but
phase is set 30 deg for output and 120 deg for sample.

Apparently this works for most cards.
On A20-SOM204-EVB-eMMC there is eMMC card (KLMAG2GEND) which complains
about it. Maybe there is other boards with similar problem?
So the fix is to match delays for both u-boot and kernel.

Signed-off-by: Stefan Mavrodiev <stefan@olimex.com>
Acked-by: Maxime Ripard <maxime.ripard@bootlin.com>
Reviewed-by: Jagan Teki <jagan@openedev.com>
drivers/mmc/sunxi_mmc.c