From: Heiko Stuebner <heiko@sntech.de> To: ulf.hansson@linaro.org Cc: jh80.chung@samsung.com, linux-mmc@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, dianders@chromium.org, amstan@chromium.org, Heiko Stuebner <heiko@sntech.de> Subject: [PATCH v3 0/7] mmc: dw_mmc-rockchip: allow tuning using the clk-phase api Date: Mon, 12 Oct 2015 14:48:23 +0200 [thread overview] Message-ID: <1444654110-32293-1-git-send-email-heiko@sntech.de> (raw) 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
WARNING: multiple messages have this Message-ID (diff)
From: heiko@sntech.de (Heiko Stuebner) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 0/7] mmc: dw_mmc-rockchip: allow tuning using the clk-phase api Date: Mon, 12 Oct 2015 14:48:23 +0200 [thread overview] Message-ID: <1444654110-32293-1-git-send-email-heiko@sntech.de> (raw) 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
next reply other threads:[~2015-10-12 12:48 UTC|newest] Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top 2015-10-12 12:48 Heiko Stuebner [this message] 2015-10-12 12:48 ` [PATCH v3 0/7] mmc: dw_mmc-rockchip: allow tuning using the clk-phase api Heiko Stuebner 2015-10-12 12:48 ` [PATCH v3 1/7] mmc: core: move ocr-bit to voltage translation into separate function Heiko Stuebner 2015-10-12 12:48 ` Heiko Stuebner 2015-10-12 13:26 ` kbuild test robot 2015-10-12 13:26 ` kbuild test robot 2015-10-12 13:44 ` Heiko Stübner 2015-10-12 13:44 ` Heiko Stübner [not found] ` <1444654110-32293-2-git-send-email-heiko-4mtYJXux2i+zQB+pC5nmwQ@public.gmane.org> 2015-10-12 16:00 ` [PATCH v3.1 " Heiko Stübner 2015-10-12 16:00 ` Heiko Stübner 2015-10-12 12:48 ` [PATCH v3 2/7] mmc: core: Add mmc_regulator_set_vqmmc() Heiko Stuebner 2015-10-12 12:48 ` Heiko Stuebner 2015-10-12 12:48 ` [PATCH v3 3/7] mmc: dw_mmc: Use mmc_regulator_set_vqmmc in start_signal_voltage_switch Heiko Stuebner 2015-10-12 12:48 ` Heiko Stuebner 2015-10-12 12:48 ` [PATCH v3 4/7] mmc: dw_mmc-rockchip: dt-binding: Add tuning related things Heiko Stuebner 2015-10-12 12:48 ` Heiko Stuebner 2015-10-12 12:48 ` [PATCH v3 5/7] mmc: dw_mmc-rockchip: MMC tuning with the clock phase framework Heiko Stuebner 2015-10-12 12:48 ` Heiko Stuebner 2015-10-12 12:48 ` [PATCH v3 6/7] ARM: dts: rockchip: Add drive/sample clocks for rk3288 dw_mmc devices Heiko Stuebner 2015-10-12 12:48 ` Heiko Stuebner 2015-10-12 12:48 ` [PATCH v3 7/7] ARM: dts: rockchip: add tuning related settings to veyron devices Heiko Stuebner 2015-10-12 12:48 ` Heiko Stuebner 2015-10-16 8:25 ` [PATCH v3 0/7] mmc: dw_mmc-rockchip: allow tuning using the clk-phase api Ulf Hansson 2015-10-16 8:25 ` Ulf Hansson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1444654110-32293-1-git-send-email-heiko@sntech.de \ --to=heiko@sntech.de \ --cc=amstan@chromium.org \ --cc=dianders@chromium.org \ --cc=jh80.chung@samsung.com \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-mmc@vger.kernel.org \ --cc=linux-rockchip@lists.infradead.org \ --cc=ulf.hansson@linaro.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.