• Chen-Yu Tsai's avatar
    clk: sunxi-ng: Add interface to query or configure MMC timing modes. · f6f64ed8
    Chen-Yu Tsai authored
    Starting with the A83T SoC, Allwinner introduced a new timing mode for
    its MMC clocks. The new mode changes how the MMC controller sample and
    output clocks are delayed to match chip and board specifics. There are
    two controls for this, one on the CCU side controlling how the clocks
    behave, and one in the MMC controller controlling what inputs to take
    and how to route them.
    
    In the old mode, the MMC clock had 2 child clocks providing the output
    and sample clocks, which could be delayed by a number of clock cycles
    measured from the MMC clock's parent.
    
    With the new mode, the 2 delay clocks are no longer active. Instead,
    the delays and associated controls are moved into the MMC controller.
    The output of the MMC clock is also halved.
    
    The difference in how things are wired between the modes means that the
    clock controls and the MMC controls must match. To achieve this in a
    clear, explicit way, we introduce two functions for the MMC driver to
    use: one queries the hardware for the current mode set, and the other
    allows the MMC driver to request a mode.
    Signed-off-by: default avatarChen-Yu Tsai <wens@csie.org>
    Acked-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    f6f64ed8
ccu_mmc_timing.c 1.99 KB