linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 00/12] Add the family patches to support for kylin board
@ 2016-01-07  8:25 Caesar Wang
  2016-01-07  8:25 ` [PATCH v2 06/12] mmc: pwrseq: add support for power-on sequencing through DT Caesar Wang
  2016-01-07 10:44 ` [PATCH v2 00/12] Add the family patches to support for kylin board Heiko Stuebner
  0 siblings, 2 replies; 7+ messages in thread
From: Caesar Wang @ 2016-01-07  8:25 UTC (permalink / raw)
  To: Heiko Stuebner, Ulf Hansson
  Cc: linux-rockchip, leecam, leozwang, keescook, Caesar Wang,
	Andreas Fenkart, Kumar Gala, Ian Campbell, Rob Herring, NeilBrown,
	linux-clk, Srinivas Kandagatla, Javier Martinez Canillas,
	Pawel Moll, devicetree, Michael Turquette, Stephen Boyd,
	Russell King, linux-arm-kernel, linux-mmc, linux-kernel,
	Alexandre Courbot, Mark Rutland

Hi all,

Happy new year! :)
Let's go on working for happy.

This series patches are based on kernel version 4.4.0-rc8+
(Linux version 4.4.0-rc8+ (wxt@ubuntu)...#142 SMP Thu Jan 7 12:38:40 CST 2016)

This series pacthes are verified on the following github:
https://github.com/Caesar-github/rockchip/commits/kylin-develop4.4

This series has 12 patches: (12--->1)
bbd1a01 ARM: dts: Add pl330-broken-no-flushp quirk for rk3036 SoCs
fb8c1fd ARM: dts: rockchip: add the lcdc and hdmi node for rk3036
1aeb49d ARM: dts: rockchip: add the sdmmc for kylin board
3e19128 ARM: dts: rockchip: enable the uart0 for kylin board
e7de154 ARM: dts: rockchip: add the wifi/bt regulator for kylin board
8699698 ARM: dts: rockchip: enable the high speed on sdio for kylin board
21eded4 mmc: pwrseq: add support for power-on sequencing through DT
cdf3a7e mmc: pwrseq: Document optional exteral vcc for the simple power sequence
131c249 clk: rockchip: rk3036: enable the CLK_IGNORE_UNUSED flag for sclk_i2s_out
b7ff8e1 ARM: dts: rockchip: override the clocks in i2s for kylin board
5f56af4 ARM: dts: rockchip: add the sound codec for kylin board
914d9c0 ARM: dts: rockchip: set the pinctrl default setting for rk3036 i2s
..

This series patches have the following decriptions:

PATCH[1/12-4/12]:====> Support rt5616 codec for kylin board
914d9c0 ARM: dts: rockchip: set the pinctrl default setting for rk3036 i2s
5f56af4 ARM: dts: rockchip: add the sound codec for kylin board
b7ff8e1 ARM: dts: rockchip: override the clocks in i2s for kylin board
131c249 clk: rockchip: rk3036: enable the CLK_IGNORE_UNUSED flag for sclk_i2s_out

This patches is working for codec rt5616 on kylin board. (RK3036 SoCs)

That's needed the following rt5616 driver from Mark Brown Branch.
(cherry picked from git.kernel.org broonie/sound.git for-next)

cf94b7a UPSTREAM: ASoC: rt5616: rename some alsa control names
86f561d UPSTREAM: ASoC: rt5616: add devicetree document for rt5616
0e0f5f8 UPSTREAM: ASoC: rt5616: add an of_match table
263a330 UPSTREAM: ASoC: rt5616: Return error if device ID mismatch
0094139 UPSTREAM: ASoC: rt5616: add rt5616 codec driver

Notes:
I'm run it with the ubuntu 15.04 to set the configure.
./amixer "HP Playback Switch" 1
./amixer "HP Playback Volume" 20
./amixer "HPO MIX DAC1 Switch" 1
./amixer "OUT MIXR DAC R1 Switch" 1
./amixer "OUT MIXL DAC L1 Switch" 1
./amixer "Stereo DAC MIXR DAC R1 Switch" 1
./amixer "Stereo DAC MIXL DAC L1 Switch" 1

root@linaro-alip:/media/aplay# ./aplay pcm.wav
Playing sample: 2 ch, 48000 hz, 16 bit
..
That can be normal playing the music.
----

PATCH[5/12-9/12]: ====> Support wifi/bt module for kylin board
cdf3a7e mmc: pwrseq: Document optional exteral vcc for the simple power sequence
21eded4 mmc: pwrseq: add support for power-on sequencing through DT
8699698 ARM: dts: rockchip: enable the high speed on sdio for kylin board
e7de154 ARM: dts: rockchip: add the wifi/bt regulator for kylin board
3e19128 ARM: dts: rockchip: enable the uart0 for kylin board

The wifi/bt driver hasn't land in mainline, the driver is in here:
https://github.com/Caesar-github/rockchip/commit/1912ef4c0e358677904b0a0bbb83f9745066f0ec

wpa_supplicant -Dnl80211 -c /etc/wifi/wpa_supplicant.conf -i wlan0 -B
wpa_cli add_network
wpa_cli set_network 1 ssid \"wxt\"
wpa_cli set_network 1 psk \"123456789\"
wpa_cli select_network 1
wpa_cli save_config

ifconfig wlan0 192.168.1.105
route add default gw 192.168.1.1

root@linaro-alip:/# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=6.83 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=184 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=9.21 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=6.84 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=11.2 ms
64 bytes from 192.168.1.1: icmp_seq=6 ttl=64 time=9.24 ms
64 bytes from 192.168.1.1: icmp_seq=7 ttl=64 time=12.9 ms
64 bytes from 192.168.1.1: icmp_seq=8 ttl=64 time=7.02 ms
64 bytes from 192.168.1.1: icmp_seq=9 ttl=64 time=24.3 ms
64 bytes from 192.168.1.1: icmp_seq=10 ttl=64 time=13.6 ms
64 bytes from 192.168.1.1: icmp_seq=11 ttl=64 time=3.87 m
...

The wifi throughput:

iperf -s -i 1
...
[  4] 116.0-117.0 sec  2.88 MBytes  24.1 Mbits/sec
[  4] 117.0-118.0 sec  2.99 MBytes  25.0 Mbits/sec
[  4] 118.0-119.0 sec  3.01 MBytes  25.2 Mbits/sec
[  4] 119.0-120.0 sec  2.89 MBytes  24.2 Mbits/sec
[  4]  0.0-120.4 sec   332 MBytes  23.1 Mbits/sec
----

PATCH[10/12]: ====> sdmmc patch for kylin board
ARM: dts: rockchip: add the sdmmc for kylin board

You should mark it "oaky" if you want to use the sdmmc.
This patch default is disabing the sdmmc since the sdmmc and
uart2(debug port) is reusing pin.
----

PATCH[11/12]: ====> hdmi/lcdc diaply patch for rk3036 dts
ARM: dts: rockchip: add the lcdc and hdmi node for rk3036

We can add this patch to support it since the Mark Yao has land
your vop support.
https://github.com/markyzq/kernel-drm-rockchip/commits/drm-rockchip-next-2015-12-28
----

PATCH[12/12]:====> DMA Patchs
ARM: dts: Add pl330-broken-no-flushp quirk for rk3036 SoCs

In order to be better read/write for emmc.
This patch is based on the following:(Fix broken DMAFLUSHP on Rockchips platform)

3055695 FROMLIST: DMA: dmaengine: expose max burst capability to clientmZ
(am from https://patchwork.kernel.org/patch/7399361/)
ed56bee FROMLIST: DMA: pl330: add quirk for broken no flushp
(am from https://patchwork.kernel.org/patch/7399371/)
0c43bc3 FROMLIST: Documentation: arm-pl330: add description of arm, pl330-broken-no-flushp
(am from https://patchwork.kernel.org/patch/7399371/)
623a699 FROMLIST: DMA: pl330: support burst mode for dev-to-mem and mem-to-dev transmit
(am from https://patchwork.kernel.org/patch/7399381/)
----


Changes in v2:
- modify the commit.
- fix the mclk-fs as the 256.
- This fix inmmc-power-sequences, as Heiko comment on
  https://patchwork.kernel.org/patch/7903161/
- As Heiko comment, modify it to fit the simple-mmc-sequence.
- Add the uart0 commit content.

Caesar Wang (12):
  ARM: dts: rockchip: set the pinctrl default setting for rk3036 i2s
  ARM: dts: rockchip: add the sound codec for kylin board
  ARM: dts: rockchip: override the clocks in i2s for kylin board
  clk: rockchip: rk3036: enable the CLK_IGNORE_UNUSED flag for
    sclk_i2s_out
  mmc: pwrseq: Document optional exteral vcc for the simple power
    sequence
  mmc: pwrseq: add support for power-on sequencing through DT
  ARM: dts: rockchip: enable the high speed on sdio for kylin board
  ARM: dts: rockchip: add the wifi/bt regulator for kylin board
  ARM: dts: rockchip: enable the uart0 for kylin board
  ARM: dts: rockchip: add the sdmmc for kylin board
  ARM: dts: rockchip: add the lcdc and hdmi node for rk3036
  ARM: dts: Add pl330-broken-no-flushp quirk for rk3036 SoCs

 .../devicetree/bindings/mmc/mmc-pwrseq-simple.txt  |   9 ++
 arch/arm/boot/dts/rk3036-kylin.dts                 | 119 +++++++++++++++++++++
 arch/arm/boot/dts/rk3036.dtsi                      |  74 +++++++++++--
 drivers/clk/rockchip/clk-rk3036.c                  |   2 +-
 drivers/mmc/core/pwrseq_simple.c                   |  16 +++
 5 files changed, 213 insertions(+), 7 deletions(-)

-- 
1.9.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH v2 06/12] mmc: pwrseq: add support for power-on sequencing through DT
  2016-01-07  8:25 [PATCH v2 00/12] Add the family patches to support for kylin board Caesar Wang
@ 2016-01-07  8:25 ` Caesar Wang
  2016-01-08 12:22   ` Javier Martinez Canillas
  2016-01-07 10:44 ` [PATCH v2 00/12] Add the family patches to support for kylin board Heiko Stuebner
  1 sibling, 1 reply; 7+ messages in thread
From: Caesar Wang @ 2016-01-07  8:25 UTC (permalink / raw)
  To: Heiko Stuebner, Ulf Hansson
  Cc: linux-rockchip, leecam, leozwang, keescook, Caesar Wang,
	Srinivas Kandagatla, linux-mmc, linux-kernel, Alexandre Courbot,
	Javier Martinez Canillas, NeilBrown

This patch enables support for power-on sequencing of SDIO
peripherals through DT.

In general, it's quite common that wifi modules and other similar
peripherals have several signals in addition to the SDIO interface that
needs wiggling before the module will power on.

For example:
we need enable wifi module power to via the WL_REG_ON
pin, we need enable it as the regulator if this pin is connected to
the gpio of cpu.

Maybe, someone will say that can pull up/down from dts.
Unfortunately some SoCs can't support pinctrl pull up/down in
internal.

Anyway, we can add this patch to supprt the power-on sequencing for
sdio.

Signed-off-by: Caesar Wang <wxt@rock-chips.com>

---

Changes in v2:
- This fix inmmc-power-sequences, as Heiko comment on
  https://patchwork.kernel.org/patch/7903161/

 drivers/mmc/core/pwrseq_simple.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/mmc/core/pwrseq_simple.c b/drivers/mmc/core/pwrseq_simple.c
index d10538b..455dd0c 100644
--- a/drivers/mmc/core/pwrseq_simple.c
+++ b/drivers/mmc/core/pwrseq_simple.c
@@ -14,6 +14,7 @@
 #include <linux/err.h>
 #include <linux/of_gpio.h>
 #include <linux/gpio/consumer.h>
+#include <linux/regulator/consumer.h>
 
 #include <linux/mmc/host.h>
 
@@ -24,6 +25,7 @@ struct mmc_pwrseq_simple {
 	bool clk_enabled;
 	struct clk *ext_clk;
 	struct gpio_descs *reset_gpios;
+	struct regulator *regulator;
 };
 
 static void mmc_pwrseq_simple_set_gpios_value(struct mmc_pwrseq_simple *pwrseq,
@@ -45,6 +47,13 @@ static void mmc_pwrseq_simple_pre_power_on(struct mmc_host *host)
 	struct mmc_pwrseq_simple *pwrseq = container_of(host->pwrseq,
 					struct mmc_pwrseq_simple, pwrseq);
 
+	if (!IS_ERR(pwrseq->regulator)) {
+		dev_dbg(host->parent, "Enabling external regulator\n");
+		if (regulator_enable(pwrseq->regulator))
+			dev_err(host->parent,
+				"Failed to enable external regulator\n");
+	}
+
 	if (!IS_ERR(pwrseq->ext_clk) && !pwrseq->clk_enabled) {
 		clk_prepare_enable(pwrseq->ext_clk);
 		pwrseq->clk_enabled = true;
@@ -117,6 +126,13 @@ struct mmc_pwrseq *mmc_pwrseq_simple_alloc(struct mmc_host *host,
 		goto clk_put;
 	}
 
+	pwrseq->regulator = devm_regulator_get(dev, "ext-vcc");
+	if (IS_ERR(pwrseq->regulator) &&
+	    PTR_ERR(pwrseq->regulator) != -EPROBE_DEFER) {
+		ret = PTR_ERR(pwrseq->regulator);
+		goto clk_put;
+	}
+
 	pwrseq->pwrseq.ops = &mmc_pwrseq_simple_ops;
 
 	return &pwrseq->pwrseq;
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 00/12] Add the family patches to support for kylin board
  2016-01-07  8:25 [PATCH v2 00/12] Add the family patches to support for kylin board Caesar Wang
  2016-01-07  8:25 ` [PATCH v2 06/12] mmc: pwrseq: add support for power-on sequencing through DT Caesar Wang
@ 2016-01-07 10:44 ` Heiko Stuebner
  1 sibling, 0 replies; 7+ messages in thread
From: Heiko Stuebner @ 2016-01-07 10:44 UTC (permalink / raw)
  To: Caesar Wang
  Cc: Ulf Hansson, linux-rockchip, leecam, leozwang, keescook,
	Andreas Fenkart, Kumar Gala, Ian Campbell, Rob Herring, NeilBrown,
	linux-clk, Srinivas Kandagatla, Javier Martinez Canillas,
	Pawel Moll, devicetree, Michael Turquette, Stephen Boyd,
	Russell King, linux-arm-kernel, linux-mmc, linux-kernel,
	Alexandre Courbot, Mark Rutland

Hi Caesar,

Am Donnerstag, 7. Januar 2016, 16:25:43 schrieb Caesar Wang:
> Hi all,
> 
> Happy new year! :)
> Let's go on working for happy.

please make sure to split your patch-series at appropriate points for future 
versions to only address relevant people. For example I don't think Ulf 
really cares about getting the audio-related or general devicetree patches.


Heiko

> This series patches are based on kernel version 4.4.0-rc8+
> (Linux version 4.4.0-rc8+ (wxt@ubuntu)...#142 SMP Thu Jan 7 12:38:40 CST
> 2016)
> 
> This series pacthes are verified on the following github:
> https://github.com/Caesar-github/rockchip/commits/kylin-develop4.4
> 
> This series has 12 patches: (12--->1)
> bbd1a01 ARM: dts: Add pl330-broken-no-flushp quirk for rk3036 SoCs
> fb8c1fd ARM: dts: rockchip: add the lcdc and hdmi node for rk3036
> 1aeb49d ARM: dts: rockchip: add the sdmmc for kylin board
> 3e19128 ARM: dts: rockchip: enable the uart0 for kylin board
> e7de154 ARM: dts: rockchip: add the wifi/bt regulator for kylin board
> 8699698 ARM: dts: rockchip: enable the high speed on sdio for kylin board
> 21eded4 mmc: pwrseq: add support for power-on sequencing through DT
> cdf3a7e mmc: pwrseq: Document optional exteral vcc for the simple power
> sequence 131c249 clk: rockchip: rk3036: enable the CLK_IGNORE_UNUSED flag
> for sclk_i2s_out b7ff8e1 ARM: dts: rockchip: override the clocks in i2s
> for kylin board 5f56af4 ARM: dts: rockchip: add the sound codec for kylin
> board
> 914d9c0 ARM: dts: rockchip: set the pinctrl default setting for rk3036 i2s
> ..
> 
> This series patches have the following decriptions:
> 
> PATCH[1/12-4/12]:====> Support rt5616 codec for kylin board
> 914d9c0 ARM: dts: rockchip: set the pinctrl default setting for rk3036 i2s
> 5f56af4 ARM: dts: rockchip: add the sound codec for kylin board
> b7ff8e1 ARM: dts: rockchip: override the clocks in i2s for kylin board
> 131c249 clk: rockchip: rk3036: enable the CLK_IGNORE_UNUSED flag for
> sclk_i2s_out
> 
> This patches is working for codec rt5616 on kylin board. (RK3036 SoCs)
> 
> That's needed the following rt5616 driver from Mark Brown Branch.
> (cherry picked from git.kernel.org broonie/sound.git for-next)
> 
> cf94b7a UPSTREAM: ASoC: rt5616: rename some alsa control names
> 86f561d UPSTREAM: ASoC: rt5616: add devicetree document for rt5616
> 0e0f5f8 UPSTREAM: ASoC: rt5616: add an of_match table
> 263a330 UPSTREAM: ASoC: rt5616: Return error if device ID mismatch
> 0094139 UPSTREAM: ASoC: rt5616: add rt5616 codec driver
> 
> Notes:
> I'm run it with the ubuntu 15.04 to set the configure.
> ./amixer "HP Playback Switch" 1
> ./amixer "HP Playback Volume" 20
> ./amixer "HPO MIX DAC1 Switch" 1
> ./amixer "OUT MIXR DAC R1 Switch" 1
> ./amixer "OUT MIXL DAC L1 Switch" 1
> ./amixer "Stereo DAC MIXR DAC R1 Switch" 1
> ./amixer "Stereo DAC MIXL DAC L1 Switch" 1
> 
> root@linaro-alip:/media/aplay# ./aplay pcm.wav
> Playing sample: 2 ch, 48000 hz, 16 bit
> ..
> That can be normal playing the music.
> ----
> 
> PATCH[5/12-9/12]: ====> Support wifi/bt module for kylin board
> cdf3a7e mmc: pwrseq: Document optional exteral vcc for the simple power
> sequence 21eded4 mmc: pwrseq: add support for power-on sequencing through
> DT 8699698 ARM: dts: rockchip: enable the high speed on sdio for kylin
> board e7de154 ARM: dts: rockchip: add the wifi/bt regulator for kylin
> board 3e19128 ARM: dts: rockchip: enable the uart0 for kylin board
> 
> The wifi/bt driver hasn't land in mainline, the driver is in here:
> https://github.com/Caesar-github/rockchip/commit/1912ef4c0e358677904b0a0bb
> b83f9745066f0ec
> 
> wpa_supplicant -Dnl80211 -c /etc/wifi/wpa_supplicant.conf -i wlan0 -B
> wpa_cli add_network
> wpa_cli set_network 1 ssid \"wxt\"
> wpa_cli set_network 1 psk \"123456789\"
> wpa_cli select_network 1
> wpa_cli save_config
> 
> ifconfig wlan0 192.168.1.105
> route add default gw 192.168.1.1
> 
> root@linaro-alip:/# ping 192.168.1.1
> PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
> 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=6.83 ms
> 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=184 ms
> 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=9.21 ms
> 64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=6.84 ms
> 64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=11.2 ms
> 64 bytes from 192.168.1.1: icmp_seq=6 ttl=64 time=9.24 ms
> 64 bytes from 192.168.1.1: icmp_seq=7 ttl=64 time=12.9 ms
> 64 bytes from 192.168.1.1: icmp_seq=8 ttl=64 time=7.02 ms
> 64 bytes from 192.168.1.1: icmp_seq=9 ttl=64 time=24.3 ms
> 64 bytes from 192.168.1.1: icmp_seq=10 ttl=64 time=13.6 ms
> 64 bytes from 192.168.1.1: icmp_seq=11 ttl=64 time=3.87 m
> ...
> 
> The wifi throughput:
> 
> iperf -s -i 1
> ...
> [  4] 116.0-117.0 sec  2.88 MBytes  24.1 Mbits/sec
> [  4] 117.0-118.0 sec  2.99 MBytes  25.0 Mbits/sec
> [  4] 118.0-119.0 sec  3.01 MBytes  25.2 Mbits/sec
> [  4] 119.0-120.0 sec  2.89 MBytes  24.2 Mbits/sec
> [  4]  0.0-120.4 sec   332 MBytes  23.1 Mbits/sec
> ----
> 
> PATCH[10/12]: ====> sdmmc patch for kylin board
> ARM: dts: rockchip: add the sdmmc for kylin board
> 
> You should mark it "oaky" if you want to use the sdmmc.
> This patch default is disabing the sdmmc since the sdmmc and
> uart2(debug port) is reusing pin.
> ----
> 
> PATCH[11/12]: ====> hdmi/lcdc diaply patch for rk3036 dts
> ARM: dts: rockchip: add the lcdc and hdmi node for rk3036
> 
> We can add this patch to support it since the Mark Yao has land
> your vop support.
> https://github.com/markyzq/kernel-drm-rockchip/commits/drm-rockchip-next-2
> 015-12-28 ----
> 
> PATCH[12/12]:====> DMA Patchs
> ARM: dts: Add pl330-broken-no-flushp quirk for rk3036 SoCs
> 
> In order to be better read/write for emmc.
> This patch is based on the following:(Fix broken DMAFLUSHP on Rockchips
> platform)
> 
> 3055695 FROMLIST: DMA: dmaengine: expose max burst capability to clientmZ
> (am from https://patchwork.kernel.org/patch/7399361/)
> ed56bee FROMLIST: DMA: pl330: add quirk for broken no flushp
> (am from https://patchwork.kernel.org/patch/7399371/)
> 0c43bc3 FROMLIST: Documentation: arm-pl330: add description of arm,
> pl330-broken-no-flushp (am from
> https://patchwork.kernel.org/patch/7399371/)
> 623a699 FROMLIST: DMA: pl330: support burst mode for dev-to-mem and
> mem-to-dev transmit (am from https://patchwork.kernel.org/patch/7399381/)
> ----
> 
> 
> Changes in v2:
> - modify the commit.
> - fix the mclk-fs as the 256.
> - This fix inmmc-power-sequences, as Heiko comment on
>   https://patchwork.kernel.org/patch/7903161/
> - As Heiko comment, modify it to fit the simple-mmc-sequence.
> - Add the uart0 commit content.
> 
> Caesar Wang (12):
>   ARM: dts: rockchip: set the pinctrl default setting for rk3036 i2s
>   ARM: dts: rockchip: add the sound codec for kylin board
>   ARM: dts: rockchip: override the clocks in i2s for kylin board
>   clk: rockchip: rk3036: enable the CLK_IGNORE_UNUSED flag for
>     sclk_i2s_out
>   mmc: pwrseq: Document optional exteral vcc for the simple power
>     sequence
>   mmc: pwrseq: add support for power-on sequencing through DT
>   ARM: dts: rockchip: enable the high speed on sdio for kylin board
>   ARM: dts: rockchip: add the wifi/bt regulator for kylin board
>   ARM: dts: rockchip: enable the uart0 for kylin board
>   ARM: dts: rockchip: add the sdmmc for kylin board
>   ARM: dts: rockchip: add the lcdc and hdmi node for rk3036
>   ARM: dts: Add pl330-broken-no-flushp quirk for rk3036 SoCs
> 
>  .../devicetree/bindings/mmc/mmc-pwrseq-simple.txt  |   9 ++
>  arch/arm/boot/dts/rk3036-kylin.dts                 | 119
> +++++++++++++++++++++ arch/arm/boot/dts/rk3036.dtsi                     
> |  74 +++++++++++-- drivers/clk/rockchip/clk-rk3036.c                  | 
>  2 +-
>  drivers/mmc/core/pwrseq_simple.c                   |  16 +++
>  5 files changed, 213 insertions(+), 7 deletions(-)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 06/12] mmc: pwrseq: add support for power-on sequencing through DT
  2016-01-07  8:25 ` [PATCH v2 06/12] mmc: pwrseq: add support for power-on sequencing through DT Caesar Wang
@ 2016-01-08 12:22   ` Javier Martinez Canillas
  2016-01-09  2:42     ` Heiko Stuebner
  0 siblings, 1 reply; 7+ messages in thread
From: Javier Martinez Canillas @ 2016-01-08 12:22 UTC (permalink / raw)
  To: Caesar Wang, Heiko Stuebner, Ulf Hansson
  Cc: linux-rockchip, leecam, leozwang, keescook, Srinivas Kandagatla,
	linux-mmc, linux-kernel, Alexandre Courbot, NeilBrown

Hello Caesar,

On 01/07/2016 05:25 AM, Caesar Wang wrote:
> This patch enables support for power-on sequencing of SDIO
> peripherals through DT.
>

I think the subject line and this first paragraph are misleading since
the simple power sequence provider already supports power-on sequencing.

This patch does not add or enable support but extends the current support
to also enable a regulator as a part of the SDIO chip power on sequencing.
 
> In general, it's quite common that wifi modules and other similar
> peripherals have several signals in addition to the SDIO interface that
> needs wiggling before the module will power on.
> 
> For example:
> we need enable wifi module power to via the WL_REG_ON
> pin, we need enable it as the regulator if this pin is connected to
> the gpio of cpu.
>

This part confuses me, so does your chip have an actual regulator that
needs to be enabled or is just a fake regulator whose gpio property is
used not to enable the regulator but to toggle the WL_REG_ON pin of
the WiFi chip?
 
> Maybe, someone will say that can pull up/down from dts.
> Unfortunately some SoCs can't support pinctrl pull up/down in
> internal.
>

Can you please elaborate on this? AFAIU this limitation is the reason
why you went with the regulator approach so I think it deserve a more
deep explanation.
 
> Anyway, we can add this patch to supprt the power-on sequencing for

s/supprt/support

> sdio.
> 
> Signed-off-by: Caesar Wang <wxt@rock-chips.com>
> 

Best regards,
-- 
Javier Martinez Canillas
Open Source Group
Samsung Research America

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 06/12] mmc: pwrseq: add support for power-on sequencing through DT
  2016-01-08 12:22   ` Javier Martinez Canillas
@ 2016-01-09  2:42     ` Heiko Stuebner
  2016-01-11 16:02       ` Javier Martinez Canillas
  0 siblings, 1 reply; 7+ messages in thread
From: Heiko Stuebner @ 2016-01-09  2:42 UTC (permalink / raw)
  To: Javier Martinez Canillas
  Cc: Caesar Wang, Ulf Hansson, linux-rockchip, leecam, leozwang,
	keescook, Srinivas Kandagatla, linux-mmc, linux-kernel,
	Alexandre Courbot, NeilBrown

Am Freitag, 8. Januar 2016, 09:22:31 schrieb Javier Martinez Canillas:
> > For example:
> > we need enable wifi module power to via the WL_REG_ON
> > pin, we need enable it as the regulator if this pin is connected to
> > the gpio of cpu.
> 
> This part confuses me, so does your chip have an actual regulator that
> needs to be enabled or is just a fake regulator whose gpio property is
> used not to enable the regulator but to toggle the WL_REG_ON pin of
> the WiFi chip?

another option would be to use the reset-gpio-handles. rk3288-veyron and I 
think some Exynos as well use it that way.


> > Maybe, someone will say that can pull up/down from dts.
> > Unfortunately some SoCs can't support pinctrl pull up/down in
> > internal.
> 
> Can you please elaborate on this? AFAIU this limitation is the reason
> why you went with the regulator approach so I think it deserve a more
> deep explanation.

On the rk3036 each pin has an individual unchangable pull direction. So it's 
either no bias or pulling in the predefined direction (the pin_default bias 
option).


Heiko

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 06/12] mmc: pwrseq: add support for power-on sequencing through DT
  2016-01-09  2:42     ` Heiko Stuebner
@ 2016-01-11 16:02       ` Javier Martinez Canillas
       [not found]         ` <5693D226.2000307-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Javier Martinez Canillas @ 2016-01-11 16:02 UTC (permalink / raw)
  To: Heiko Stuebner
  Cc: Caesar Wang, Ulf Hansson, linux-rockchip, leecam, leozwang,
	keescook, Srinivas Kandagatla, linux-mmc, linux-kernel,
	Alexandre Courbot, NeilBrown

Hello Heiko,

On 01/08/2016 11:42 PM, Heiko Stuebner wrote:
> Am Freitag, 8. Januar 2016, 09:22:31 schrieb Javier Martinez Canillas:
>>> For example:
>>> we need enable wifi module power to via the WL_REG_ON
>>> pin, we need enable it as the regulator if this pin is connected to
>>> the gpio of cpu.
>>
>> This part confuses me, so does your chip have an actual regulator that
>> needs to be enabled or is just a fake regulator whose gpio property is
>> used not to enable the regulator but to toggle the WL_REG_ON pin of
>> the WiFi chip?
> 
> another option would be to use the reset-gpio-handles. rk3288-veyron and I 
> think some Exynos as well use it that way.
>

Yes I know, my point was that the reset-gpios property should be used
instead of a fake regulator if what's needed is to toggle a chip pin.

>
>>> Maybe, someone will say that can pull up/down from dts.
>>> Unfortunately some SoCs can't support pinctrl pull up/down in
>>> internal.
>>
>> Can you please elaborate on this? AFAIU this limitation is the reason
>> why you went with the regulator approach so I think it deserve a more
>> deep explanation.
> 
> On the rk3036 each pin has an individual unchangable pull direction. So it's 
> either no bias or pulling in the predefined direction (the pin_default bias 
> option).
>

I think each change has to be justified on its own so I would say that
having a regulator enabled as a part of a SDIO chip's power sequencing
is something needed for many platforms, and that this provider should
be extended to support that (something like commit msg in patch 05/12).

And then in the kylin DTS change (patch 08/12), I would explain why a
chained regulators approach is used/needed instead of the reset-gpios
due any platform limitations.

> 
> Heiko
> 

Best regards,
-- 
Javier Martinez Canillas
Open Source Group
Samsung Research America

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2 06/12] mmc: pwrseq: add support for power-on sequencing through DT
       [not found]         ` <5693D226.2000307-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
@ 2016-01-15  9:15           ` Caesar Wang
  0 siblings, 0 replies; 7+ messages in thread
From: Caesar Wang @ 2016-01-15  9:15 UTC (permalink / raw)
  To: Javier Martinez Canillas
  Cc: Ulf Hansson, Heiko Stuebner, linux-mmc-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-rockchip-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	leecam-hpIqsD4AKlfQT0dZR+AlfA, keescook-hpIqsD4AKlfQT0dZR+AlfA,
	NeilBrown, Srinivas Kandagatla, Alexandre Courbot,
	leozwang-hpIqsD4AKlfQT0dZR+AlfA, Caesar Wang

Hi Javier,

在 2016年01月12日 00:02, Javier Martinez Canillas 写道:
> Hello Heiko,
>
> On 01/08/2016 11:42 PM, Heiko Stuebner wrote:
>> Am Freitag, 8. Januar 2016, 09:22:31 schrieb Javier Martinez Canillas:
>>>> For example:
>>>> we need enable wifi module power to via the WL_REG_ON
>>>> pin, we need enable it as the regulator if this pin is connected to
>>>> the gpio of cpu.
>>> This part confuses me, so does your chip have an actual regulator that
>>> needs to be enabled or is just a fake regulator whose gpio property is
>>> used not to enable the regulator but to toggle the WL_REG_ON pin of
>>> the WiFi chip?
>> another option would be to use the reset-gpio-handles. rk3288-veyron and I
>> think some Exynos as well use it that way.
>>
> Yes I know, my point was that the reset-gpios property should be used
> instead of a fake regulator if what's needed is to toggle a chip pin.
>
>>>> Maybe, someone will say that can pull up/down from dts.
>>>> Unfortunately some SoCs can't support pinctrl pull up/down in
>>>> internal.
>>> Can you please elaborate on this? AFAIU this limitation is the reason
>>> why you went with the regulator approach so I think it deserve a more
>>> deep explanation.
>> On the rk3036 each pin has an individual unchangable pull direction. So it's
>> either no bias or pulling in the predefined direction (the pin_default bias
>> option).
>>
> I think each change has to be justified on its own so I would say that
> having a regulator enabled as a part of a SDIO chip's power sequencing
> is something needed for many platforms, and that this provider should
> be extended to support that (something like commit msg in patch 05/12).
>
> And then in the kylin DTS change (patch 08/12), I would explain why a
> chained regulators approach is used/needed instead of the reset-gpios
> due any platform limitations.

Okay,
I 'm agreed with your points in here.

The reset-gpios/pwrsq can meet the demand of some wlan chips trigger 
condition.
No matter whatever is the BT_EN or WL_EN  triggers pin.

>> Heiko
>>
> Best regards,


-- 
Thanks,
Caesar


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-01-15  9:15 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-01-07  8:25 [PATCH v2 00/12] Add the family patches to support for kylin board Caesar Wang
2016-01-07  8:25 ` [PATCH v2 06/12] mmc: pwrseq: add support for power-on sequencing through DT Caesar Wang
2016-01-08 12:22   ` Javier Martinez Canillas
2016-01-09  2:42     ` Heiko Stuebner
2016-01-11 16:02       ` Javier Martinez Canillas
     [not found]         ` <5693D226.2000307-JPH+aEBZ4P+UEJcrhfAQsw@public.gmane.org>
2016-01-15  9:15           ` Caesar Wang
2016-01-07 10:44 ` [PATCH v2 00/12] Add the family patches to support for kylin board Heiko Stuebner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).