[PATCH v2 0/8] mmc: dw_mmc-rockchip: allow tuning using the clk-phase api
Heiko Stuebner
heiko at sntech.de
Wed Sep 30 07:07:36 PDT 2015
This series resurrects and adapts some individual patches whose sum
enable the dw_mmc hosts on Rockchip socs to tune clock phases using
the generic phase api (rk3288 and following have this capability).
The changes to the original mmc-phase clocks are expanded by further
findings resulting from devices being used in the field.
Similarly the regulator handling changes do use the brand new
regulator_set_voltage_triplet call to allow specifying lower and upper
limits. One possible point of discussion are the two voltage ranges
that are tried for the 3.3V signal level. Trying to stay near vmmc
at first and only then opening the range to the full 2.7-3.6V.
This mainly circumvents a shortcoming of the regulator voltage
setting, in that even with regulator_set_voltage_triplet the regulator
framework will take the lowest possible voltage when the possible
voltages are below the target voltage. While it may be ideal to solve
this on the regulator side, I'm not seeing this appearing in the short
term, mainly because all regulator parts (including regulator drivers)
are keyed to selecting the lowest voltage from the range, while on the
mmc side we know which voltages may work and trying this in two steps
does not create to much overhead, as unsupported voltages are already
filtered out by the regulator_is_voltage_selected calls.
changes since v1:
- address comment from Jaehoon Chung and keep this local to Rockchip
for the time being
- address comments from Ulf and Doug in making it more explicit
that the two-step 3.3V voltage setting essentially works around
a limitation of regulator_set_voltage_triplet
Alexandru M Stan (3):
mmc: dw_mmc-rockchip: dt-binding: Add tuning related things
mmc: dw_mmc: Generic MMC tuning with the clock phase framework
ARM: dts: rockchip: Add drive/sample clocks for rk3288 dw_mmc devices
Douglas Anderson (4):
clk: rockchip: Allow more precision for some mmc clock phases
clk: rockchip: Make calculations use rounding
mmc: core: Add mmc_regulator_set_vqmmc()
mmc: dw_mmc: Use mmc_regulator_set_vqmmc in
start_signal_voltage_switch
Heiko Stuebner (1):
ARM: dts: rockchip: add tuning related settings to veyron devices
.../devicetree/bindings/mmc/rockchip-dw-mshc.txt | 13 ++
arch/arm/boot/dts/rk3288-veyron-sdmmc.dtsi | 7 +-
arch/arm/boot/dts/rk3288-veyron.dtsi | 6 +
arch/arm/boot/dts/rk3288.dtsi | 20 ++-
drivers/clk/rockchip/clk-mmc-phase.c | 54 ++++---
drivers/mmc/core/core.c | 74 ++++++++++
drivers/mmc/host/dw_mmc-rockchip.c | 162 +++++++++++++++++++++
drivers/mmc/host/dw_mmc.c | 17 +--
include/linux/mmc/host.h | 7 +
9 files changed, 321 insertions(+), 39 deletions(-)
--
2.5.1
More information about the linux-arm-kernel
mailing list