]> git.baikalelectronics.ru Git - kernel.git/commit
clk: sunxi-ng: Add interface to query or configure MMC timing modes.
authorChen-Yu Tsai <wens@csie.org>
Mon, 24 Jul 2017 13:58:56 +0000 (21:58 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Wed, 30 Aug 2017 12:01:47 +0000 (14:01 +0200)
commit6108e332f2eb9293ec797fb6cf01e404734b4a9a
tree4bae0c2ab5770c7e96b5b6efda5daa8407327109
parentd7154c6a1eefc2167c5bcd80f5e84a9423221876
clk: sunxi-ng: Add interface to query or configure MMC timing modes.

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: Chen-Yu Tsai <wens@csie.org>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/clk/sunxi-ng/Makefile
drivers/clk/sunxi-ng/ccu_common.h
drivers/clk/sunxi-ng/ccu_mmc_timing.c [new file with mode: 0644]
include/linux/clk/sunxi-ng.h [new file with mode: 0644]