[PATCH v3 0/7] mmc: dw_mmc-rockchip: allow tuning using the clk-phase api
Ulf Hansson
ulf.hansson at linaro.org
Fri Oct 16 01:25:41 PDT 2015
On 12 October 2015 at 14:48, Heiko Stuebner <heiko at sntech.de> wrote:
> 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 v2:
> - use host->ios.vdd to read vmmc from instead of requiring the vmmc
> regulator. Suggested by Ulf this makes the voltage setting still work
> even if only the vqmmc but not the vmmc regulator is supplied.
> - add Acks from Jaehoon Chung to the dw_mmc parts
> - drop first two clock patches that already got applied to the mmc tree
>
> 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-rockchip: MMC tuning with the clock phase framework
> ARM: dts: rockchip: Add drive/sample clocks for rk3288 dw_mmc devices
>
> Douglas Anderson (2):
> mmc: core: Add mmc_regulator_set_vqmmc()
> mmc: dw_mmc: Use mmc_regulator_set_vqmmc in
> start_signal_voltage_switch
>
> Heiko Stuebner (2):
> mmc: core: move ocr-bit to voltage translation into separate function
> 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/mmc/core/core.c | 129 ++++++++++++++--
> drivers/mmc/host/dw_mmc-rockchip.c | 162 +++++++++++++++++++++
> drivers/mmc/host/dw_mmc.c | 17 +--
> include/linux/mmc/host.h | 7 +
> 8 files changed, 325 insertions(+), 36 deletions(-)
>
> --
> 2.6.1
>
Thanks, applied for next (with v3.1 of patch1)!
Kind regards
Uffe
More information about the Linux-rockchip
mailing list