linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/4] Add sdmmc UHS support to ROC-RK3328-CC board.
@ 2018-07-31  5:59 djw
  2018-07-31  5:59 ` [PATCH v4 1/4] gpio: syscon: rockchip: add GRF GPIO support for rk3328 djw
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: djw @ 2018-07-31  5:59 UTC (permalink / raw)
  To: linux-rockchip
  Cc: Wayne Chou, Levin Du, Heiko Stuebner, Simon Xue, Liang Chen,
	Sugar Zhang, Linus Walleij, Robin Murphy, Rob Herring,
	Catalin Marinas, David Wu, Finley Xiao, Rocky Hao, Will Deacon,
	devicetree, linux-gpio, linux-arm-kernel, David S. Miller,
	Klaus Goger, linux-kernel, Joseph Chen, Mark Rutland

From: Levin Du <djw@t-chip.com.cn>


Hi all, this is an attemp to add sdmmc UHS support to the
ROC-RK3328-CC board.

This patch series adds a new compatible `rockchip,rk3328-grf-gpio` to
the gpio-syscon driver, which currently only support for the access of
the GPIO_MUTE pin in RK3328. Support for HDMI pins can be added later on
perhaps by writing a standalone driver.

A new GRF GPIO controller named `grf_gpio` is defined in rk3328.dtsi so
that all RK3328 boards has access to it.

The ROC-RK3328-CC board use the new gpio <&grf_gpio 0> in gpio-regulator
to control the signal voltage of the sdmmc. It is essential for UHS
support which requires 1.8V signal voltage.

Many thanks to the Linux people!

Changes in v4:
- Use binding of "rockchip,rk3328-grf-gpio"
- Use <&grf_gpio 0> to refer to the GPIO_MUTE pin.

Changes in v3:
- Change from general gpio-syscon to specific rk3328-gpio-mute
- Use dedicated "rockchip,rk3328-gpio-mute" driver
- Use <&gpio_mute 0> instead of <&gpio_mute 1> to refer to the GPIO_MUTE pin.

Changes in v2:
- Rename gpio_syscon10 to gpio_mute in doc
- Rename gpio_syscon10 to gpio_mute in rk3328.dtsi
- Rename gpio_syscon10 to gpio_mute in rk3328-roc-cc.dts

Changes in v1:
- Refactured for general gpio-syscon usage for Rockchip SoCs.
- Add doc rockchip,gpio-syscon.txt
- Split from V0 and add to rk3328.dtsi for general use.
- Split from V0.
- Split into small patches
- Sort dts properties in sdmmc node

Levin Du (4):
  gpio: syscon: rockchip: add GRF GPIO support for rk3328
  arm64: dts: rockchip: add GRF GPIO controller to rk3328
  arm64: dts: rockchip: add io-domain to roc-rk3328-cc
  arm64: dts: rockchip: add sdmmc UHS support for roc-rk3328-cc

 .../bindings/gpio/rockchip,rk3328-grf-gpio.txt     | 32 ++++++++++++++++++++
 arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts     | 34 ++++++++++++++++++++++
 arch/arm64/boot/dts/rockchip/rk3328.dtsi           |  6 ++++
 drivers/gpio/gpio-syscon.c                         | 31 ++++++++++++++++++++
 4 files changed, 103 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt

-- 
2.7.4



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

* [PATCH v4 1/4] gpio: syscon: rockchip: add GRF GPIO support for rk3328
  2018-07-31  5:59 [PATCH v4 0/4] Add sdmmc UHS support to ROC-RK3328-CC board djw
@ 2018-07-31  5:59 ` djw
  2018-07-31 19:36   ` Rob Herring
                     ` (2 more replies)
  2018-07-31  5:59 ` [PATCH v4 2/4] arm64: dts: rockchip: add GRF GPIO controller to rk3328 djw
                   ` (2 subsequent siblings)
  3 siblings, 3 replies; 11+ messages in thread
From: djw @ 2018-07-31  5:59 UTC (permalink / raw)
  To: linux-rockchip
  Cc: Wayne Chou, Levin Du, Heiko Stuebner, devicetree, Linus Walleij,
	linux-kernel, linux-gpio, Rob Herring, Mark Rutland,
	linux-arm-kernel

From: Levin Du <djw@t-chip.com.cn>

In Rockchip RK3328, the output only GPIO_MUTE pin, originally for codec
mute control, can also be used for general purpose. It is manipulated by
the GRF_SOC_CON10 register in GRF. Aside from the GPIO_MUTE pin, the HDMI
pins can also be set in the same way.

Currently this GRF GPIO controller only supports the mute pin. If needed
in the future, the HDMI pins support can also be added.

Signed-off-by: Levin Du <djw@t-chip.com.cn>

---

Changes in v4:
- Rename the GPIO binding to "rockchip,rk3328-grf-gpio"

Changes in v3:
- Change from general gpio-syscon to specific rk3328-gpio-mute

Changes in v2:
- Rename gpio_syscon10 to gpio_mute in doc

Changes in v1:
- Refactured for general gpio-syscon usage for Rockchip SoCs.
- Add doc rockchip,gpio-syscon.txt

 .../bindings/gpio/rockchip,rk3328-grf-gpio.txt     | 32 ++++++++++++++++++++++
 drivers/gpio/gpio-syscon.c                         | 31 +++++++++++++++++++++
 2 files changed, 63 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt

diff --git a/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt b/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
new file mode 100644
index 0000000..f9231df
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt
@@ -0,0 +1,32 @@
+Rockchip RK3328 GRF (General Register Files) GPIO controller.
+
+In Rockchip RK3328, the output only GPIO_MUTE pin, originally for codec mute
+control, can also be used for general purpose. It is manipulated by the
+GRF_SOC_CON10 register in GRF. Aside from the GPIO_MUTE pin, the HDMI pins can
+also be set in the same way.
+
+Currently this GPIO controller only supports the mute pin. If needed in the
+future, the HDMI pins support can also be added.
+
+Required properties:
+- compatible: Should contain "rockchip,rk3328-grf-gpio".
+- gpio-controller: Marks the device node as a gpio controller.
+- #gpio-cells: Should be 2. The first cell is the pin number and
+  the second cell is used to specify the gpio polarity:
+    0 = Active high,
+    1 = Active low.
+
+Example:
+
+	grf: syscon@ff100000 {
+		compatible = "rockchip,rk3328-grf", "syscon", "simple-mfd";
+
+		grf_gpio: grf-gpio {
+			compatible = "rockchip,rk3328-grf-gpio";
+			gpio-controller;
+			#gpio-cells = <2>;
+		};
+	};
+
+Note: The grf_gpio node should be declared as the child of the GRF (General
+Register File) node. The GPIO_MUTE pin is referred to as <&grf_gpio 0>.
diff --git a/drivers/gpio/gpio-syscon.c b/drivers/gpio/gpio-syscon.c
index 8b0a69c..b9b5842 100644
--- a/drivers/gpio/gpio-syscon.c
+++ b/drivers/gpio/gpio-syscon.c
@@ -135,6 +135,33 @@ static const struct syscon_gpio_data clps711x_mctrl_gpio = {
 	.dat_bit_offset	= 0x40 * 8 + 8,
 };
 
+static void rockchip_gpio_set(struct gpio_chip *chip, unsigned int offset,
+			      int val)
+{
+	struct syscon_gpio_priv *priv = gpiochip_get_data(chip);
+	unsigned int offs;
+	u8 bit;
+	u32 data;
+	int ret;
+
+	offs = priv->dreg_offset + priv->data->dat_bit_offset + offset;
+	bit = offs % SYSCON_REG_BITS;
+	data = (val ? BIT(bit) : 0) | BIT(bit + 16);
+	ret = regmap_write(priv->syscon,
+			   (offs / SYSCON_REG_BITS) * SYSCON_REG_SIZE,
+			   data);
+	if (ret < 0)
+		dev_err(chip->parent, "gpio write failed ret(%d)\n", ret);
+}
+
+static const struct syscon_gpio_data rockchip_rk3328_gpio_mute = {
+	/* RK3328 GPIO_MUTE is an output only pin at GRF_SOC_CON10[1] */
+	.flags		= GPIO_SYSCON_FEAT_OUT,
+	.bit_count	= 1,
+	.dat_bit_offset = 0x0428 * 8 + 1,
+	.set		= rockchip_gpio_set,
+};
+
 #define KEYSTONE_LOCK_BIT BIT(0)
 
 static void keystone_gpio_set(struct gpio_chip *chip, unsigned offset, int val)
@@ -175,6 +202,10 @@ static const struct of_device_id syscon_gpio_ids[] = {
 		.compatible	= "ti,keystone-dsp-gpio",
 		.data		= &keystone_dsp_gpio,
 	},
+	{
+		.compatible	= "rockchip,rk3328-grf-gpio",
+		.data		= &rockchip_rk3328_gpio_mute,
+	},
 	{ }
 };
 MODULE_DEVICE_TABLE(of, syscon_gpio_ids);
-- 
2.7.4



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

* [PATCH v4 2/4] arm64: dts: rockchip: add GRF GPIO controller to rk3328
  2018-07-31  5:59 [PATCH v4 0/4] Add sdmmc UHS support to ROC-RK3328-CC board djw
  2018-07-31  5:59 ` [PATCH v4 1/4] gpio: syscon: rockchip: add GRF GPIO support for rk3328 djw
@ 2018-07-31  5:59 ` djw
  2018-08-04 13:16   ` Heiko Stuebner
  2018-07-31  5:59 ` [PATCH v4 3/4] arm64: dts: rockchip: add io-domain to roc-rk3328-cc djw
  2018-07-31  5:59 ` [PATCH v4 4/4] arm64: dts: rockchip: add sdmmc UHS support for roc-rk3328-cc djw
  3 siblings, 1 reply; 11+ messages in thread
From: djw @ 2018-07-31  5:59 UTC (permalink / raw)
  To: linux-rockchip
  Cc: Wayne Chou, Levin Du, Heiko Stuebner, Simon Xue, David Wu,
	Finley Xiao, devicetree, Klaus Goger, Sugar Zhang, linux-kernel,
	Robin Murphy, Rob Herring, Rocky Hao, Will Deacon, Mark Rutland,
	Catalin Marinas, linux-arm-kernel

From: Levin Du <djw@t-chip.com.cn>

Adding a GRF GPIO controller labled "grf_gpio" to rk3328, currently
providing access to the GPIO_MUTE pin, which is manupulated by the
GRF_SOC_CON10 register.

The GPIO_MUTE pin is referred to as <&grf_gpio 0>.

Signed-off-by: Levin Du <djw@t-chip.com.cn>

---

Changes in v4:
- Use binding of "rockchip,rk3328-grf-gpio"

Changes in v3:
- Use dedicated "rockchip,rk3328-gpio-mute" driver

Changes in v2:
- Rename gpio_syscon10 to gpio_mute in rk3328.dtsi

Changes in v1:
- Split from V0 and add to rk3328.dtsi for general use.

 arch/arm64/boot/dts/rockchip/rk3328.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3328.dtsi b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
index 3f5a294..bf5656d 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3328.dtsi
@@ -275,6 +275,12 @@
 			mode-loader = <BOOT_BL_DOWNLOAD>;
 		};
 
+		grf_gpio: grf-gpio {
+			compatible = "rockchip,rk3328-grf-gpio";
+			gpio-controller;
+			#gpio-cells = <2>;
+			status = "disabled";
+		};
 	};
 
 	uart0: serial@ff110000 {
-- 
2.7.4



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

* [PATCH v4 3/4] arm64: dts: rockchip: add io-domain to roc-rk3328-cc
  2018-07-31  5:59 [PATCH v4 0/4] Add sdmmc UHS support to ROC-RK3328-CC board djw
  2018-07-31  5:59 ` [PATCH v4 1/4] gpio: syscon: rockchip: add GRF GPIO support for rk3328 djw
  2018-07-31  5:59 ` [PATCH v4 2/4] arm64: dts: rockchip: add GRF GPIO controller to rk3328 djw
@ 2018-07-31  5:59 ` djw
  2018-08-02 12:54   ` Heiko Stuebner
  2018-07-31  5:59 ` [PATCH v4 4/4] arm64: dts: rockchip: add sdmmc UHS support for roc-rk3328-cc djw
  3 siblings, 1 reply; 11+ messages in thread
From: djw @ 2018-07-31  5:59 UTC (permalink / raw)
  To: linux-rockchip
  Cc: Wayne Chou, Levin Du, Heiko Stuebner, devicetree, David Wu,
	Liang Chen, linux-kernel, Rob Herring, Rocky Hao, Will Deacon,
	Joseph Chen, Mark Rutland, Catalin Marinas, linux-arm-kernel,
	David S. Miller

From: Levin Du <djw@t-chip.com.cn>

It is necessary for the io domain setting of the SoC to match the voltage
supplied by the regulators.

Signed-off-by: Levin Du <djw@t-chip.com.cn>

---

Changes in v4: None
Changes in v3: None
Changes in v2: None
Changes in v1:
- Split from V0.

 arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
index 246c317..b983abd 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
@@ -208,6 +208,18 @@
 	};
 };
 
+&io_domains {
+	status = "okay";
+
+	vccio1-supply = <&vcc_io>;
+	vccio2-supply = <&vcc18_emmc>;
+	vccio3-supply = <&vcc_io>;
+	vccio4-supply = <&vcc_18>;
+	vccio5-supply = <&vcc_io>;
+	vccio6-supply = <&vcc_io>;
+	pmuio-supply = <&vcc_io>;
+};
+
 &pinctrl {
 	pmic {
 		pmic_int_l: pmic-int-l {
-- 
2.7.4



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

* [PATCH v4 4/4] arm64: dts: rockchip: add sdmmc UHS support for roc-rk3328-cc
  2018-07-31  5:59 [PATCH v4 0/4] Add sdmmc UHS support to ROC-RK3328-CC board djw
                   ` (2 preceding siblings ...)
  2018-07-31  5:59 ` [PATCH v4 3/4] arm64: dts: rockchip: add io-domain to roc-rk3328-cc djw
@ 2018-07-31  5:59 ` djw
  2018-08-04 13:18   ` Heiko Stuebner
  3 siblings, 1 reply; 11+ messages in thread
From: djw @ 2018-07-31  5:59 UTC (permalink / raw)
  To: linux-rockchip
  Cc: Wayne Chou, Levin Du, Heiko Stuebner, devicetree, David Wu,
	Liang Chen, linux-kernel, Rob Herring, Rocky Hao, Will Deacon,
	Joseph Chen, Mark Rutland, Catalin Marinas, linux-arm-kernel

From: Levin Du <djw@t-chip.com.cn>

In roc-rk3328-cc board, the signal voltage of sdmmc is supplied by the
vcc_sdio regulator, which is a mux between 1.8V and 3.3V, controlled by
a special output only gpio pin labeled "gpiomut_pmuio_iout",
corresponding bit 1 of the syscon GRF_SOC_CON10.

This special pin can now be reference as <&grf_gpio 0>, thanks to the
gpio-syscon driver, which makes writing regulator-gpio possible.

If the signal voltage changes, the io domain needs to change
correspondingly.

To use this feature, the following options are required in kernel config:
 - CONFIG_GPIO_SYSCON=y
 - CONFIG_POWER_AVS=y
 - CONFIG_ROCKCHIP_IODOMAIN=y

Signed-off-by: Levin Du <djw@t-chip.com.cn>

---

Changes in v4:
- Use <&grf_gpio 0> to refer to the GPIO_MUTE pin.

Changes in v3:
- Use <&gpio_mute 0> instead of <&gpio_mute 1> to refer to the GPIO_MUTE pin.

Changes in v2:
- Rename gpio_syscon10 to gpio_mute in rk3328-roc-cc.dts

Changes in v1:
- Split into small patches
- Sort dts properties in sdmmc node

 arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts | 24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
index b983abd..1edb39a 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-roc-cc.dts
@@ -41,6 +41,19 @@
 		vin-supply = <&vcc_io>;
 	};
 
+	vcc_sdio: sdmmcio-regulator {
+		compatible = "regulator-gpio";
+		gpios = <&grf_gpio 0 GPIO_ACTIVE_HIGH>;
+		states = <1800000 0x1
+			  3300000 0x0>;
+		regulator-name = "vcc_sdio";
+		regulator-type = "voltage";
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <3300000>;
+		regulator-always-on;
+		vin-supply = <&vcc_sys>;
+	};
+
 	vcc_host1_5v: vcc_otg_5v: vcc-host1-5v-regulator {
 		compatible = "regulator-fixed";
 		enable-active-high;
@@ -213,7 +226,7 @@
 
 	vccio1-supply = <&vcc_io>;
 	vccio2-supply = <&vcc18_emmc>;
-	vccio3-supply = <&vcc_io>;
+	vccio3-supply = <&vcc_sdio>;
 	vccio4-supply = <&vcc_18>;
 	vccio5-supply = <&vcc_io>;
 	vccio6-supply = <&vcc_io>;
@@ -242,7 +255,12 @@
 	max-frequency = <150000000>;
 	pinctrl-names = "default";
 	pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
+	sd-uhs-sdr12;
+	sd-uhs-sdr25;
+	sd-uhs-sdr50;
+	sd-uhs-sdr104;
 	vmmc-supply = <&vcc_sd>;
+	vqmmc-supply = <&vcc_sdio>;
 	status = "okay";
 };
 
@@ -277,3 +295,7 @@
 &usb_host0_ohci {
 	status = "okay";
 };
+
+&grf_gpio {
+	status = "okay";
+};
-- 
2.7.4



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

* Re: [PATCH v4 1/4] gpio: syscon: rockchip: add GRF GPIO support for rk3328
  2018-07-31  5:59 ` [PATCH v4 1/4] gpio: syscon: rockchip: add GRF GPIO support for rk3328 djw
@ 2018-07-31 19:36   ` Rob Herring
  2018-08-01 11:46   ` Heiko Stuebner
  2018-08-03 17:13   ` Linus Walleij
  2 siblings, 0 replies; 11+ messages in thread
From: Rob Herring @ 2018-07-31 19:36 UTC (permalink / raw)
  To: djw
  Cc: linux-rockchip, Wayne Chou, Heiko Stuebner, devicetree,
	Linus Walleij, linux-kernel, linux-gpio, Mark Rutland,
	linux-arm-kernel

On Tue, Jul 31, 2018 at 01:59:19PM +0800, djw@t-chip.com.cn wrote:
> From: Levin Du <djw@t-chip.com.cn>
> 
> In Rockchip RK3328, the output only GPIO_MUTE pin, originally for codec
> mute control, can also be used for general purpose. It is manipulated by
> the GRF_SOC_CON10 register in GRF. Aside from the GPIO_MUTE pin, the HDMI
> pins can also be set in the same way.
> 
> Currently this GRF GPIO controller only supports the mute pin. If needed
> in the future, the HDMI pins support can also be added.
> 
> Signed-off-by: Levin Du <djw@t-chip.com.cn>
> 
> ---
> 
> Changes in v4:
> - Rename the GPIO binding to "rockchip,rk3328-grf-gpio"
> 
> Changes in v3:
> - Change from general gpio-syscon to specific rk3328-gpio-mute
> 
> Changes in v2:
> - Rename gpio_syscon10 to gpio_mute in doc
> 
> Changes in v1:
> - Refactured for general gpio-syscon usage for Rockchip SoCs.
> - Add doc rockchip,gpio-syscon.txt
> 
>  .../bindings/gpio/rockchip,rk3328-grf-gpio.txt     | 32 ++++++++++++++++++++++
>  drivers/gpio/gpio-syscon.c                         | 31 +++++++++++++++++++++
>  2 files changed, 63 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/gpio/rockchip,rk3328-grf-gpio.txt

Reviewed-by: Rob Herring <robh@kernel.org>

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

* Re: [PATCH v4 1/4] gpio: syscon: rockchip: add GRF GPIO support for rk3328
  2018-07-31  5:59 ` [PATCH v4 1/4] gpio: syscon: rockchip: add GRF GPIO support for rk3328 djw
  2018-07-31 19:36   ` Rob Herring
@ 2018-08-01 11:46   ` Heiko Stuebner
  2018-08-03 17:13   ` Linus Walleij
  2 siblings, 0 replies; 11+ messages in thread
From: Heiko Stuebner @ 2018-08-01 11:46 UTC (permalink / raw)
  To: djw
  Cc: linux-rockchip, Wayne Chou, devicetree, Linus Walleij,
	linux-kernel, linux-gpio, Rob Herring, Mark Rutland,
	linux-arm-kernel

Am Dienstag, 31. Juli 2018, 07:59:19 CEST schrieb djw@t-chip.com.cn:
> From: Levin Du <djw@t-chip.com.cn>
> 
> In Rockchip RK3328, the output only GPIO_MUTE pin, originally for codec
> mute control, can also be used for general purpose. It is manipulated by
> the GRF_SOC_CON10 register in GRF. Aside from the GPIO_MUTE pin, the HDMI
> pins can also be set in the same way.
> 
> Currently this GRF GPIO controller only supports the mute pin. If needed
> in the future, the HDMI pins support can also be added.
> 
> Signed-off-by: Levin Du <djw@t-chip.com.cn>

Reviewed-by: Heiko Stuebner <heiko@sntech.de>

It looks like Linus (Torvalds) is doing an -rc8 this time [0] so we might
still be in time for 4.19 , depending on when this patch is going to be
applied ;-) .


Heiko


[0] https://lore.kernel.org/lkml/CA+55aFzHRaNMHxLCEa5Zke-1FgbQ4rtHf8-HOu0zBzo4Liz88A@mail.gmail.com/



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

* Re: [PATCH v4 3/4] arm64: dts: rockchip: add io-domain to roc-rk3328-cc
  2018-07-31  5:59 ` [PATCH v4 3/4] arm64: dts: rockchip: add io-domain to roc-rk3328-cc djw
@ 2018-08-02 12:54   ` Heiko Stuebner
  0 siblings, 0 replies; 11+ messages in thread
From: Heiko Stuebner @ 2018-08-02 12:54 UTC (permalink / raw)
  To: djw
  Cc: linux-rockchip, Wayne Chou, devicetree, David Wu, Liang Chen,
	linux-kernel, Rob Herring, Rocky Hao, Will Deacon, Joseph Chen,
	Mark Rutland, Catalin Marinas, linux-arm-kernel, David S. Miller

Am Dienstag, 31. Juli 2018, 07:59:21 CEST schrieb djw@t-chip.com.cn:
> From: Levin Du <djw@t-chip.com.cn>
> 
> It is necessary for the io domain setting of the SoC to match the voltage
> supplied by the regulators.
> 
> Signed-off-by: Levin Du <djw@t-chip.com.cn>

applied to my dts64 branch, possibly still for 4.19.
Other dts patches need to wait for the syscon-gpio change to land.

Thanks
Heiko



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

* Re: [PATCH v4 1/4] gpio: syscon: rockchip: add GRF GPIO support for rk3328
  2018-07-31  5:59 ` [PATCH v4 1/4] gpio: syscon: rockchip: add GRF GPIO support for rk3328 djw
  2018-07-31 19:36   ` Rob Herring
  2018-08-01 11:46   ` Heiko Stuebner
@ 2018-08-03 17:13   ` Linus Walleij
  2 siblings, 0 replies; 11+ messages in thread
From: Linus Walleij @ 2018-08-03 17:13 UTC (permalink / raw)
  To: Levin Du
  Cc: open list:ARM/Rockchip SoC...,
	Wayne Chou, Heiko Stübner,
	open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
	linux-kernel, open list:GPIO SUBSYSTEM, Rob Herring,
	Mark Rutland, Linux ARM

On Tue, Jul 31, 2018 at 8:00 AM <djw@t-chip.com.cn> wrote:

> From: Levin Du <djw@t-chip.com.cn>
>
> In Rockchip RK3328, the output only GPIO_MUTE pin, originally for codec
> mute control, can also be used for general purpose. It is manipulated by
> the GRF_SOC_CON10 register in GRF. Aside from the GPIO_MUTE pin, the HDMI
> pins can also be set in the same way.
>
> Currently this GRF GPIO controller only supports the mute pin. If needed
> in the future, the HDMI pins support can also be added.
>
> Signed-off-by: Levin Du <djw@t-chip.com.cn>

Patch applied with Rob's and Heiko's ACKs.

Yours,
Linus Walleij

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

* Re: [PATCH v4 2/4] arm64: dts: rockchip: add GRF GPIO controller to rk3328
  2018-07-31  5:59 ` [PATCH v4 2/4] arm64: dts: rockchip: add GRF GPIO controller to rk3328 djw
@ 2018-08-04 13:16   ` Heiko Stuebner
  0 siblings, 0 replies; 11+ messages in thread
From: Heiko Stuebner @ 2018-08-04 13:16 UTC (permalink / raw)
  To: djw
  Cc: linux-rockchip, Wayne Chou, Simon Xue, David Wu, Finley Xiao,
	devicetree, Klaus Goger, Sugar Zhang, linux-kernel, Robin Murphy,
	Rob Herring, Rocky Hao, Will Deacon, Mark Rutland,
	Catalin Marinas, linux-arm-kernel

Hi Levin,

Am Dienstag, 31. Juli 2018, 07:59:20 CEST schrieb djw@t-chip.com.cn:
> From: Levin Du <djw@t-chip.com.cn>
> 
> Adding a GRF GPIO controller labled "grf_gpio" to rk3328, currently
> providing access to the GPIO_MUTE pin, which is manupulated by the
> GRF_SOC_CON10 register.
> 
> The GPIO_MUTE pin is referred to as <&grf_gpio 0>.
> 
> Signed-off-by: Levin Du <djw@t-chip.com.cn>

applied to my dts64 branch, with 2 changes:
- reordered, please sort nodes without address alphabetically
- removed default disabled status
  The controlled pin is always present on the soc, so doesn't need
  to be enabled on a per-board level


Heiko



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

* Re: [PATCH v4 4/4] arm64: dts: rockchip: add sdmmc UHS support for roc-rk3328-cc
  2018-07-31  5:59 ` [PATCH v4 4/4] arm64: dts: rockchip: add sdmmc UHS support for roc-rk3328-cc djw
@ 2018-08-04 13:18   ` Heiko Stuebner
  0 siblings, 0 replies; 11+ messages in thread
From: Heiko Stuebner @ 2018-08-04 13:18 UTC (permalink / raw)
  To: djw
  Cc: linux-rockchip, Wayne Chou, devicetree, David Wu, Liang Chen,
	linux-kernel, Rob Herring, Rocky Hao, Will Deacon, Joseph Chen,
	Mark Rutland, Catalin Marinas, linux-arm-kernel

Hi Levin,

Am Dienstag, 31. Juli 2018, 07:59:22 CEST schrieb djw@t-chip.com.cn:
> From: Levin Du <djw@t-chip.com.cn>
> 
> In roc-rk3328-cc board, the signal voltage of sdmmc is supplied by the
> vcc_sdio regulator, which is a mux between 1.8V and 3.3V, controlled by
> a special output only gpio pin labeled "gpiomut_pmuio_iout",
> corresponding bit 1 of the syscon GRF_SOC_CON10.
> 
> This special pin can now be reference as <&grf_gpio 0>, thanks to the
> gpio-syscon driver, which makes writing regulator-gpio possible.
> 
> If the signal voltage changes, the io domain needs to change
> correspondingly.
> 
> To use this feature, the following options are required in kernel config:
>  - CONFIG_GPIO_SYSCON=y
>  - CONFIG_POWER_AVS=y
>  - CONFIG_ROCKCHIP_IODOMAIN=y
> 
> Signed-off-by: Levin Du <djw@t-chip.com.cn>

[...]

> @@ -277,3 +295,7 @@
>  &usb_host0_ohci {
>  	status = "okay";
>  };
> +
> +&grf_gpio {
> +	status = "okay";
> +};
> 

applied to my dts64 branch after dropping the grf_gpio enablement,
see comment in patch2 regarding the always present pin.


Thanks
Heiko





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

end of thread, other threads:[~2018-08-04 13:18 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-31  5:59 [PATCH v4 0/4] Add sdmmc UHS support to ROC-RK3328-CC board djw
2018-07-31  5:59 ` [PATCH v4 1/4] gpio: syscon: rockchip: add GRF GPIO support for rk3328 djw
2018-07-31 19:36   ` Rob Herring
2018-08-01 11:46   ` Heiko Stuebner
2018-08-03 17:13   ` Linus Walleij
2018-07-31  5:59 ` [PATCH v4 2/4] arm64: dts: rockchip: add GRF GPIO controller to rk3328 djw
2018-08-04 13:16   ` Heiko Stuebner
2018-07-31  5:59 ` [PATCH v4 3/4] arm64: dts: rockchip: add io-domain to roc-rk3328-cc djw
2018-08-02 12:54   ` Heiko Stuebner
2018-07-31  5:59 ` [PATCH v4 4/4] arm64: dts: rockchip: add sdmmc UHS support for roc-rk3328-cc djw
2018-08-04 13:18   ` 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).