Skip to contentSkip to conversation

Add pinctrl support for audio IPs on exynos7

PATCH New Padmavathi Venna 3 participants 7 messages Dec 19, 2014 – Jan 19, 2015

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

cover Add pinctrl support for audio IPs on exynos7

Audio interface IPs I2S, PCM and SPDIF on Exynos7 requires GPIOs available on AUD and BUS0 pin controller blocks. So add support for all.

This patchset is dependent on BUS1 pin control support from Vivek in the below link
https://patchwork.kernel.org/patch/5467321/

Padmavathi Venna (2):
pinctrl: exynos: Add AUDIO pin controller for exynos7
arm64: dts: Add pinctrl support for audio IPs on exynos7

 .../bindings/pinctrl/samsung-pinctrl.txt           |    1 +
 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi    |   56 ++++++++++++++++++++
 arch/arm64/boot/dts/exynos/exynos7.dtsi            |    7 +++
 drivers/pinctrl/samsung/pinctrl-exynos.c           |   10 ++++
 4 files changed, 74 insertions(+), 0 deletions(-)
Signature · 1 line
1.7.4.4
#1 lore raw

PATCH 1/2 pinctrl: exynos: Add AUDIO pin controller for exynos7

Audio IPs on Exynos7 require gpios available in AUDIO pin controller block. So adding the AUDIO pinctrl support.

---
 .../bindings/pinctrl/samsung-pinctrl.txt           |    1 +
 drivers/pinctrl/samsung/pinctrl-exynos.c           |   10 ++++++++++
 2 files changed, 11 insertions(+), 0 deletions(-)
Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +1 -0
index c88ba35..9d2a995 100644
@@ -181,6 +181,7 @@ Aliases for controllers compatible with "samsung,exynos7-pinctrl":
 - pinctrl6: pin controller of FSYS0 block,
 - pinctrl7: pin controller of FSYS1 block,
 - pinctrl8: pin controller of BUS1 block,
+- pinctrl9: pin controller of AUDIO block,
 
 Example: A pin-controller node with pin banks:
 
drivers/pinctrl/samsung/pinctrl-exynos.c +10 -0
index 2a85cb4..c8f83f9 100644
@@ -1314,6 +1314,11 @@ static const struct samsung_pin_bank_data exynos7_pin_banks8[] __initconst = {
 	EXYNOS_PIN_BANK_EINTG(3, 0x140, "gpv6", 0x24),
 };
 
+static const struct samsung_pin_bank_data exynos7_pin_banks9[] __initconst = {
+	EXYNOS_PIN_BANK_EINTG(7, 0x000, "gpz0", 0x00),
+	EXYNOS_PIN_BANK_EINTG(4, 0x020, "gpz1", 0x04),
+};
+
 const struct samsung_pin_ctrl exynos7_pin_ctrl[] __initconst = {
 	{
 		/* pin-controller instance 0 Alive data */
@@ -1361,5 +1366,10 @@ const struct samsung_pin_ctrl exynos7_pin_ctrl[] __initconst = {
 		.pin_banks	= exynos7_pin_banks8,
 		.nr_banks	= ARRAY_SIZE(exynos7_pin_banks8),
 		.eint_gpio_init = exynos_eint_gpio_init,
+	}, {
+		/* pin-controller instance 9 AUD data */
+		.pin_banks	= exynos7_pin_banks9,
+		.nr_banks	= ARRAY_SIZE(exynos7_pin_banks9),
+		.eint_gpio_init = exynos_eint_gpio_init,
 	},
 };
Signature · 1 line
1.7.4.4
#2 lore raw

PATCH 1/2 pinctrl: exynos: Add AUDIO pin controller for exynos7

Quoted 8 lines · Padmavathi Venna

Audio IPs on Exynos7 require gpios available in AUDIO pin controller block. So adding the AUDIO pinctrl support.

---
  .../bindings/pinctrl/samsung-pinctrl.txt           |    1 +
  drivers/pinctrl/samsung/pinctrl-exynos.c           |   10 ++++++++++
  2 files changed, 11 insertions(+), 0 deletions(-)

Best regards,
Tomasz

#3 lore raw

PATCH 1/2 pinctrl: exynos: Add AUDIO pin controller for exynos7

In reply to Padmavathi Venna
Quoted 4 lines · Padmavathi Venna

Audio IPs on Exynos7 require gpios available in AUDIO pin controller block. So adding the AUDIO pinctrl support.

(...)

Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt Aliases for controllers compatible with "samsung,exynos7-pinctrl": · line 184

Quoted 7 lines
Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +1 -0
@@ -181,6 +181,7 @@ Aliases for controllers compatible with "samsung,exynos7-pinctrl":
 - pinctrl6: pin controller of FSYS0 block,
 - pinctrl7: pin controller of FSYS1 block,
 - pinctrl8: pin controller of BUS1 block,
+- pinctrl9: pin controller of AUDIO block,

This doesn't apply at all, the list has never been in the document merged upstream.

Please prepare this patch rebased on a *CLEAN* upstream tree and resend.

Include Tomasz ACK on your repost.

Yours,
Linus Walleij

#4 lore raw

PATCH 1/2 pinctrl: exynos: Add AUDIO pin controller for exynos7

Hi Linus,

2015-01-14 20:40 GMT+09:00 Linus Walleij <[email protected]>:

Quoted 7 lines · Padmavathi Venna
Quoted 5 lines

Audio IPs on Exynos7 require gpios available in AUDIO pin controller block. So adding the AUDIO pinctrl support.

(...)

Quoted 10 lines

Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt Aliases for controllers compatible with "samsung,exynos7-pinctrl": · line 184

Quoted 7 lines
Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +1 -0
@@ -181,6 +181,7 @@ Aliases for controllers compatible with "samsung,exynos7-pinctrl":
 - pinctrl6: pin controller of FSYS0 block,
 - pinctrl7: pin controller of FSYS1 block,
 - pinctrl8: pin controller of BUS1 block,
+- pinctrl9: pin controller of AUDIO block,

This doesn't apply at all, the list has never been in the document merged upstream.

I believe this patch depends on patch [1], which was mentioned in cover letter and which you seem to have applied two days ago. If it still doesn't apply, please let me know if I should collect the patches myself and prepare a pull request for you.

[1] https://patchwork.kernel.org/patch/5467321/

Best regards,
Tomasz

#5 lore raw

PATCH 1/2 pinctrl: exynos: Add AUDIO pin controller for exynos7

Quoted 19 lines · Tomasz Figa

2015-01-14 20:40 GMT+09:00 Linus Walleij <[email protected]>:

Quoted 7 lines · Padmavathi Venna
Quoted 5 lines

Audio IPs on Exynos7 require gpios available in AUDIO pin controller block. So adding the AUDIO pinctrl support.

(...)

Quoted 10 lines

Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt Aliases for controllers compatible with "samsung,exynos7-pinctrl": · line 184

Quoted 7 lines
Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt +1 -0
@@ -181,6 +181,7 @@ Aliases for controllers compatible with "samsung,exynos7-pinctrl":
 - pinctrl6: pin controller of FSYS0 block,
 - pinctrl7: pin controller of FSYS1 block,
 - pinctrl8: pin controller of BUS1 block,
+- pinctrl9: pin controller of AUDIO block,

This doesn't apply at all, the list has never been in the document merged upstream.

Quoted 6 lines

I believe this patch depends on patch [1], which was mentioned in cover letter and which you seem to have applied two days ago. If it still doesn't apply, please let me know if I should collect the patches myself and prepare a pull request for you.

[1] https://patchwork.kernel.org/patch/5467321/

It applied when I tried it now, sorry I must have screwed up or something :(

Patch applied!

Yours,
Linus Walleij

#6 lore raw

PATCH 2/2 arm64: dts: Add pinctrl support for audio IPs on exynos7

In reply to Padmavathi Venna

Add pinctrl support for I2S,PCM,SPDIF

---
 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi |   56 +++++++++++++++++++++++
 arch/arm64/boot/dts/exynos/exynos7.dtsi         |    7 +++
 2 files changed, 63 insertions(+), 0 deletions(-)
arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi +56 -0
index c367f0a..a5aeb07 100644
@@ -333,6 +333,29 @@
 		samsung,pin-pud = <3>;
 		samsung,pin-drv = <0>;
 	};
+
+	i2s1_bus: i2s1-bus {
+		samsung,pins = "gpd4-0", "gpd4-1", "gpd4-2",
+				"gpd4-3", "gpd4-4";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <1>;
+		samsung,pin-drv = <0>;
+	};
+
+	pcm1_bus: pcm1-bus {
+		samsung,pins = "gpd4-0", "gpd4-2",
+				"gpd4-3", "gpd4-4";
+		samsung,pin-function = <3>;
+		samsung,pin-pud = <1>;
+		samsung,pin-drv = <0>;
+	};
+
+	spdif_bus: spdif-bus {
+		samsung,pins = "gpd4-3", "gpd4-4";
+		samsung,pin-function = <4>;
+		samsung,pin-pud = <1>;
+		samsung,pin-drv = <0>;
+	};
 };
 
 &pinctrl_bus1 {
@@ -668,3 +691,36 @@
 		samsung,pin-drv = <2>;
 	};
 };
+
+&pinctrl_aud {
+	gpz0: gpz0 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpz1: gpz1 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	i2s0_bus: i2s0-bus {
+		samsung,pins = "gpz0-0", "gpz0-1", "gpz0-2", "gpz0-3",
+				"gpz0-4";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <1>;
+		samsung,pin-drv = <0>;
+	};
+
+	pcm0_bus: pcm0-bus {
+		samsung,pins = "gpz1-0", "gpz1-1", "gpz1-2", "gpz1-3";
+		samsung,pin-function = <5>;
+		samsung,pin-pud = <1>;
+		samsung,pin-drv = <0>;
+	};
+};
arch/arm64/boot/dts/exynos/exynos7.dtsi +7 -0
index e633b02..eeaa9b8d 100644
@@ -27,6 +27,7 @@
 		pinctrl6 = &pinctrl_fsys0;
 		pinctrl7 = &pinctrl_fsys1;
 		pinctrl8 = &pinctrl_bus1;
+		pinctrl9 = &pinctrl_aud;
 	};
 
 	cpus {
@@ -285,6 +286,12 @@
 			interrupts = <0 203 0>;
 		};
 
+		pinctrl_aud: pinctrl at 114b0000 {
+			compatible = "samsung,exynos7-pinctrl";
+			reg = <0x114b0000 0x1000>;
+			interrupts = <0 92 0>;
+		};
+
 		hsi2c_0: hsi2c at 13640000 {
 			compatible = "samsung,exynos7-hsi2c";
 			reg = <0x13640000 0x1000>;
Signature · 1 line
1.7.4.4