linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers
@ 2016-08-30  7:55 Andrew Jeffery
  2016-08-30  7:55 ` [PATCH v3 1/7] mach-aspeed: Select pinctrl drivers Andrew Jeffery
                   ` (7 more replies)
  0 siblings, 8 replies; 13+ messages in thread
From: Andrew Jeffery @ 2016-08-30  7:55 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Russell King, Mark Rutland, Rob Herring, Benjamin Herrenschmidt,
	Jeremy Kerr, devicetree, linux-arm-kernel, linux-kernel,
	Andrew Jeffery

Hi all,

Here's v3 of the Aspeed pinctrl and gpio driver integration patches. v2 of the
integration series can be found at:

  https://lkml.org/lkml/2016/8/19/403

v3 captures changes required to address review comments from v2 of the driver
series:

  https://lkml.org/lkml/2016/8/22/343

Since v2:

* Add interrupt-controller property to gpio devicetree nodes
* Drop unit address from pinctrl devicetree nodes
* ARCH_ASPEED selects MFD_SYSCON

Cheers,

Andrew

---

Andrew Jeffery (7):
  mach-aspeed: Select pinctrl drivers
  mach-aspeed: Select GPIO driver
  aspeed-g4: Add syscon and pin controller nodes
  palmetto: Request relevant mux functions in devicetree
  aspeed-g4: Add gpio controller to devicetree
  aspeed-g5: Add syscon and pin controller nodes
  aspeed-g5: Add gpio controller to devicetree

 arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts |  14 +
 arch/arm/boot/dts/aspeed-g4.dtsi              | 430 ++++++++++++++++++++++++++
 arch/arm/boot/dts/aspeed-g5.dtsi              | 214 +++++++++++++
 arch/arm/mach-aspeed/Kconfig                  |   6 +
 4 files changed, 664 insertions(+)

-- 
2.9.3.1.g0db844e

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

* [PATCH v3 1/7] mach-aspeed: Select pinctrl drivers
  2016-08-30  7:55 [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers Andrew Jeffery
@ 2016-08-30  7:55 ` Andrew Jeffery
  2016-08-30  7:55 ` [PATCH v3 2/7] mach-aspeed: Select GPIO driver Andrew Jeffery
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Andrew Jeffery @ 2016-08-30  7:55 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Russell King, Mark Rutland, Rob Herring, Benjamin Herrenschmidt,
	Jeremy Kerr, devicetree, linux-arm-kernel, linux-kernel,
	Andrew Jeffery

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
---
 arch/arm/mach-aspeed/Kconfig | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/mach-aspeed/Kconfig b/arch/arm/mach-aspeed/Kconfig
index 5225fbcb250d..f3f8c5c658db 100644
--- a/arch/arm/mach-aspeed/Kconfig
+++ b/arch/arm/mach-aspeed/Kconfig
@@ -5,6 +5,8 @@ menuconfig ARCH_ASPEED
 	select WATCHDOG
 	select ASPEED_WATCHDOG
 	select MOXART_TIMER
+	select MFD_SYSCON
+	select PINCTRL
 	help
 	  Say Y here if you want to run your kernel on an ASpeed BMC SoC.
 
@@ -14,6 +16,7 @@ config MACH_ASPEED_G4
 	bool "Aspeed SoC 4th Generation"
 	depends on ARCH_MULTI_V5
 	select CPU_ARM926T
+	select PINCTRL_ASPEED_G4
 	help
 	 Say yes if you intend to run on an Aspeed ast2400 or similar
 	 fourth generation BMCs, such as those used by OpenPower Power8
@@ -23,6 +26,7 @@ config MACH_ASPEED_G5
 	bool "Aspeed SoC 5th Generation"
 	depends on ARCH_MULTI_V6
 	select CPU_V6
+	select PINCTRL_ASPEED_G5
 	help
 	 Say yes if you intend to run on an Aspeed ast2500 or similar
 	 fifth generation Aspeed BMCs.
-- 
2.9.3.1.g0db844e

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

* [PATCH v3 2/7] mach-aspeed: Select GPIO driver
  2016-08-30  7:55 [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers Andrew Jeffery
  2016-08-30  7:55 ` [PATCH v3 1/7] mach-aspeed: Select pinctrl drivers Andrew Jeffery
@ 2016-08-30  7:55 ` Andrew Jeffery
  2016-09-13 12:43   ` Joel Stanley
  2016-08-30  7:55 ` [PATCH v3 3/7] aspeed-g4: Add syscon and pin controller nodes Andrew Jeffery
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Andrew Jeffery @ 2016-08-30  7:55 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Russell King, Mark Rutland, Rob Herring, Benjamin Herrenschmidt,
	Jeremy Kerr, devicetree, linux-arm-kernel, linux-kernel,
	Andrew Jeffery

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
---
 arch/arm/mach-aspeed/Kconfig | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/arm/mach-aspeed/Kconfig b/arch/arm/mach-aspeed/Kconfig
index f3f8c5c658db..5aba9598f821 100644
--- a/arch/arm/mach-aspeed/Kconfig
+++ b/arch/arm/mach-aspeed/Kconfig
@@ -7,6 +7,8 @@ menuconfig ARCH_ASPEED
 	select MOXART_TIMER
 	select MFD_SYSCON
 	select PINCTRL
+	select GPIOLIB
+	select GPIO_ASPEED
 	help
 	  Say Y here if you want to run your kernel on an ASpeed BMC SoC.
 
-- 
2.9.3.1.g0db844e

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

* [PATCH v3 3/7] aspeed-g4: Add syscon and pin controller nodes
  2016-08-30  7:55 [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers Andrew Jeffery
  2016-08-30  7:55 ` [PATCH v3 1/7] mach-aspeed: Select pinctrl drivers Andrew Jeffery
  2016-08-30  7:55 ` [PATCH v3 2/7] mach-aspeed: Select GPIO driver Andrew Jeffery
@ 2016-08-30  7:55 ` Andrew Jeffery
  2016-08-30  7:55 ` [PATCH v3 4/7] palmetto: Request relevant mux functions in devicetree Andrew Jeffery
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Andrew Jeffery @ 2016-08-30  7:55 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Russell King, Mark Rutland, Rob Herring, Benjamin Herrenschmidt,
	Jeremy Kerr, devicetree, linux-arm-kernel, linux-kernel,
	Andrew Jeffery

The pin controller's child nodes expose the functions currently
implemented in the the g4 pin controller driver.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
---
 arch/arm/boot/dts/aspeed-g4.dtsi | 420 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 420 insertions(+)

diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi
index 22dee5937d5c..a5d6e81e318a 100644
--- a/arch/arm/boot/dts/aspeed-g4.dtsi
+++ b/arch/arm/boot/dts/aspeed-g4.dtsi
@@ -54,6 +54,426 @@
 				clocks = <&clk_clkin>;
 			};
 
+			syscon: syscon@1e6e2000 {
+				compatible = "aspeed,g4-scu", "syscon", "simple-mfd";
+				reg = <0x1e6e2000 0x1a8>;
+
+				pinctrl: pinctrl {
+					compatible = "aspeed,g4-pinctrl";
+
+					pinctrl_acpi_default: acpi_default {
+						function = "ACPI";
+						groups = "ACPI";
+					};
+
+					pinctrl_bmcint_default: bmcint_default {
+						function = "BMCINT";
+						groups = "BMCINT";
+					};
+
+					pinctrl_ddcclk_default: ddcclk_default {
+						function = "DDCCLK";
+						groups = "DDCCLK";
+					};
+
+					pinctrl_ddcdat_default: ddcdat_default {
+						function = "DDCDAT";
+						groups = "DDCDAT";
+					};
+
+					pinctrl_flack_default: flack_default {
+						function = "FLACK";
+						groups = "FLACK";
+					};
+
+					pinctrl_flbusy_default: flbusy_default {
+						function = "FLBUSY";
+						groups = "FLBUSY";
+					};
+
+					pinctrl_flwp_default: flwp_default {
+						function = "FLWP";
+						groups = "FLWP";
+					};
+
+					pinctrl_gpid0_default: gpid0_default {
+						function = "GPID0";
+						groups = "GPID0";
+					};
+
+					pinctrl_gpie0_default: gpie0_default {
+						function = "GPIE0";
+						groups = "GPIE0";
+					};
+
+					pinctrl_gpie2_default: gpie2_default {
+						function = "GPIE2";
+						groups = "GPIE2";
+					};
+
+					pinctrl_gpie4_default: gpie4_default {
+						function = "GPIE4";
+						groups = "GPIE4";
+					};
+
+					pinctrl_gpie6_default: gpie6_default {
+						function = "GPIE6";
+						groups = "GPIE6";
+					};
+
+					pinctrl_i2c10_default: i2c10_default {
+						function = "I2C10";
+						groups = "I2C10";
+					};
+
+					pinctrl_i2c11_default: i2c11_default {
+						function = "I2C11";
+						groups = "I2C11";
+					};
+
+					pinctrl_i2c12_default: i2c12_default {
+						function = "I2C12";
+						groups = "I2C12";
+					};
+
+					pinctrl_i2c13_default: i2c13_default {
+						function = "I2C13";
+						groups = "I2C13";
+					};
+
+					pinctrl_i2c3_default: i2c3_default {
+						function = "I2C3";
+						groups = "I2C3";
+					};
+
+					pinctrl_i2c4_default: i2c4_default {
+						function = "I2C4";
+						groups = "I2C4";
+					};
+
+					pinctrl_i2c5_default: i2c5_default {
+						function = "I2C5";
+						groups = "I2C5";
+					};
+
+					pinctrl_i2c6_default: i2c6_default {
+						function = "I2C6";
+						groups = "I2C6";
+					};
+
+					pinctrl_i2c7_default: i2c7_default {
+						function = "I2C7";
+						groups = "I2C7";
+					};
+
+					pinctrl_i2c8_default: i2c8_default {
+						function = "I2C8";
+						groups = "I2C8";
+					};
+
+					pinctrl_i2c9_default: i2c9_default {
+						function = "I2C9";
+						groups = "I2C9";
+					};
+
+					pinctrl_lpcpd_default: lpcpd_default {
+						function = "LPCPD";
+						groups = "LPCPD";
+					};
+
+					pinctrl_lpcpme_default: lpcpme_default {
+						function = "LPCPME";
+						groups = "LPCPME";
+					};
+
+					pinctrl_lpcsmi_default: lpcsmi_default {
+						function = "LPCSMI";
+						groups = "LPCSMI";
+					};
+
+					pinctrl_mdio1_default: mdio1_default {
+						function = "MDIO1";
+						groups = "MDIO1";
+					};
+
+					pinctrl_mdio2_default: mdio2_default {
+						function = "MDIO2";
+						groups = "MDIO2";
+					};
+
+					pinctrl_ncts1_default: ncts1_default {
+						function = "NCTS1";
+						groups = "NCTS1";
+					};
+
+					pinctrl_ncts3_default: ncts3_default {
+						function = "NCTS3";
+						groups = "NCTS3";
+					};
+
+					pinctrl_ncts4_default: ncts4_default {
+						function = "NCTS4";
+						groups = "NCTS4";
+					};
+
+					pinctrl_ndcd1_default: ndcd1_default {
+						function = "NDCD1";
+						groups = "NDCD1";
+					};
+
+					pinctrl_ndcd3_default: ndcd3_default {
+						function = "NDCD3";
+						groups = "NDCD3";
+					};
+
+					pinctrl_ndcd4_default: ndcd4_default {
+						function = "NDCD4";
+						groups = "NDCD4";
+					};
+
+					pinctrl_ndsr1_default: ndsr1_default {
+						function = "NDSR1";
+						groups = "NDSR1";
+					};
+
+					pinctrl_ndsr3_default: ndsr3_default {
+						function = "NDSR3";
+						groups = "NDSR3";
+					};
+
+					pinctrl_ndtr1_default: ndtr1_default {
+						function = "NDTR1";
+						groups = "NDTR1";
+					};
+
+					pinctrl_ndtr3_default: ndtr3_default {
+						function = "NDTR3";
+						groups = "NDTR3";
+					};
+
+					pinctrl_nri1_default: nri1_default {
+						function = "NRI1";
+						groups = "NRI1";
+					};
+
+					pinctrl_nri3_default: nri3_default {
+						function = "NRI3";
+						groups = "NRI3";
+					};
+
+					pinctrl_nri4_default: nri4_default {
+						function = "NRI4";
+						groups = "NRI4";
+					};
+
+					pinctrl_nrts1_default: nrts1_default {
+						function = "NRTS1";
+						groups = "NRTS1";
+					};
+
+					pinctrl_nrts3_default: nrts3_default {
+						function = "NRTS3";
+						groups = "NRTS3";
+					};
+
+					pinctrl_pwm0_default: pwm0_default {
+						function = "PWM0";
+						groups = "PWM0";
+					};
+
+					pinctrl_pwm1_default: pwm1_default {
+						function = "PWM1";
+						groups = "PWM1";
+					};
+
+					pinctrl_pwm2_default: pwm2_default {
+						function = "PWM2";
+						groups = "PWM2";
+					};
+
+					pinctrl_pwm3_default: pwm3_default {
+						function = "PWM3";
+						groups = "PWM3";
+					};
+
+					pinctrl_pwm4_default: pwm4_default {
+						function = "PWM4";
+						groups = "PWM4";
+					};
+
+					pinctrl_pwm5_default: pwm5_default {
+						function = "PWM5";
+						groups = "PWM5";
+					};
+
+					pinctrl_pwm6_default: pwm6_default {
+						function = "PWM6";
+						groups = "PWM6";
+					};
+
+					pinctrl_pwm7_default: pwm7_default {
+						function = "PWM7";
+						groups = "PWM7";
+					};
+
+					pinctrl_rgmii1_default: rgmii1_default {
+						function = "RGMII1";
+						groups = "RGMII1";
+					};
+
+					pinctrl_rmii1_default: rmii1_default {
+						function = "RMII1";
+						groups = "RMII1";
+					};
+
+					pinctrl_rom16_default: rom16_default {
+						function = "ROM16";
+						groups = "ROM16";
+					};
+
+					pinctrl_rom8_default: rom8_default {
+						function = "ROM8";
+						groups = "ROM8";
+					};
+
+					pinctrl_romcs1_default: romcs1_default {
+						function = "ROMCS1";
+						groups = "ROMCS1";
+					};
+
+					pinctrl_romcs2_default: romcs2_default {
+						function = "ROMCS2";
+						groups = "ROMCS2";
+					};
+
+					pinctrl_romcs3_default: romcs3_default {
+						function = "ROMCS3";
+						groups = "ROMCS3";
+					};
+
+					pinctrl_romcs4_default: romcs4_default {
+						function = "ROMCS4";
+						groups = "ROMCS4";
+					};
+
+					pinctrl_rxd1_default: rxd1_default {
+						function = "RXD1";
+						groups = "RXD1";
+					};
+
+					pinctrl_rxd3_default: rxd3_default {
+						function = "RXD3";
+						groups = "RXD3";
+					};
+
+					pinctrl_rxd4_default: rxd4_default {
+						function = "RXD4";
+						groups = "RXD4";
+					};
+
+					pinctrl_sd1_default: sd1_default {
+						function = "SD1";
+						groups = "SD1";
+					};
+
+					pinctrl_sgpmi_default: sgpmi_default {
+						function = "SGPMI";
+						groups = "SGPMI";
+					};
+
+					pinctrl_siopbi_default: siopbi_default {
+						function = "SIOPBI";
+						groups = "SIOPBI";
+					};
+
+					pinctrl_siopbo_default: siopbo_default {
+						function = "SIOPBO";
+						groups = "SIOPBO";
+					};
+
+					pinctrl_timer3_default: timer3_default {
+						function = "TIMER3";
+						groups = "TIMER3";
+					};
+
+					pinctrl_timer5_default: timer5_default {
+						function = "TIMER5";
+						groups = "TIMER5";
+					};
+
+					pinctrl_timer6_default: timer6_default {
+						function = "TIMER6";
+						groups = "TIMER6";
+					};
+
+					pinctrl_timer7_default: timer7_default {
+						function = "TIMER7";
+						groups = "TIMER7";
+					};
+
+					pinctrl_timer8_default: timer8_default {
+						function = "TIMER8";
+						groups = "TIMER8";
+					};
+
+					pinctrl_txd1_default: txd1_default {
+						function = "TXD1";
+						groups = "TXD1";
+					};
+
+					pinctrl_txd3_default: txd3_default {
+						function = "TXD3";
+						groups = "TXD3";
+					};
+
+					pinctrl_txd4_default: txd4_default {
+						function = "TXD4";
+						groups = "TXD4";
+					};
+
+					pinctrl_uart6_default: uart6_default {
+						function = "UART6";
+						groups = "UART6";
+					};
+
+					pinctrl_vgahs_default: vgahs_default {
+						function = "VGAHS";
+						groups = "VGAHS";
+					};
+
+					pinctrl_vgavs_default: vgavs_default {
+						function = "VGAVS";
+						groups = "VGAVS";
+					};
+
+					pinctrl_vpi18_default: vpi18_default {
+						function = "VPI18";
+						groups = "VPI18";
+					};
+
+					pinctrl_vpi24_default: vpi24_default {
+						function = "VPI24";
+						groups = "VPI24";
+					};
+
+					pinctrl_vpi30_default: vpi30_default {
+						function = "VPI30";
+						groups = "VPI30";
+					};
+
+					pinctrl_vpo12_default: vpo12_default {
+						function = "VPO12";
+						groups = "VPO12";
+					};
+
+					pinctrl_vpo24_default: vpo24_default {
+						function = "VPO24";
+						groups = "VPO24";
+					};
+
+				};
+			};
+
 			clk_apb: clk_apb@1e6e2008 {
 				#clock-cells = <0>;
 				compatible = "aspeed,g4-apb-clock";
-- 
2.9.3.1.g0db844e

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

* [PATCH v3 4/7] palmetto: Request relevant mux functions in devicetree
  2016-08-30  7:55 [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers Andrew Jeffery
                   ` (2 preceding siblings ...)
  2016-08-30  7:55 ` [PATCH v3 3/7] aspeed-g4: Add syscon and pin controller nodes Andrew Jeffery
@ 2016-08-30  7:55 ` Andrew Jeffery
  2016-09-13 12:41   ` Joel Stanley
  2016-08-30  7:55 ` [PATCH v3 5/7] aspeed-g4: Add gpio controller to devicetree Andrew Jeffery
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 13+ messages in thread
From: Andrew Jeffery @ 2016-08-30  7:55 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Russell King, Mark Rutland, Rob Herring, Benjamin Herrenschmidt,
	Jeremy Kerr, devicetree, linux-arm-kernel, linux-kernel,
	Andrew Jeffery

The requested functions are parented by the pinctrl node to provide the
Palmetto's static pin configuration.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
---
 arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts b/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts
index cc5fcf2940bf..648fb6b9e427 100644
--- a/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts
+++ b/arch/arm/boot/dts/aspeed-bmc-opp-palmetto.dts
@@ -20,6 +20,20 @@
 	};
 };
 
+&pinctrl {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_flbusy_default &pinctrl_flwp_default
+			&pinctrl_vgahs_default &pinctrl_vgavs_default
+			&pinctrl_ddcclk_default &pinctrl_ddcdat_default
+
+			&pinctrl_pwm1_default &pinctrl_pwm2_default
+			&pinctrl_pwm3_default &pinctrl_pwm4_default
+			&pinctrl_pwm5_default &pinctrl_pwm6_default
+			&pinctrl_pwm7_default
+
+			&pinctrl_bmcint_default &pinctrl_flack_default>;
+};
+
 &uart5 {
 	status = "okay";
 };
-- 
2.9.3.1.g0db844e

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

* [PATCH v3 5/7] aspeed-g4: Add gpio controller to devicetree
  2016-08-30  7:55 [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers Andrew Jeffery
                   ` (3 preceding siblings ...)
  2016-08-30  7:55 ` [PATCH v3 4/7] palmetto: Request relevant mux functions in devicetree Andrew Jeffery
@ 2016-08-30  7:55 ` Andrew Jeffery
  2016-08-30  7:55 ` [PATCH v3 6/7] aspeed-g5: Add syscon and pin controller nodes Andrew Jeffery
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 13+ messages in thread
From: Andrew Jeffery @ 2016-08-30  7:55 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Russell King, Mark Rutland, Rob Herring, Benjamin Herrenschmidt,
	Jeremy Kerr, devicetree, linux-arm-kernel, linux-kernel,
	Andrew Jeffery

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
---
 arch/arm/boot/dts/aspeed-g4.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm/boot/dts/aspeed-g4.dtsi b/arch/arm/boot/dts/aspeed-g4.dtsi
index a5d6e81e318a..7c2b73c4d5ab 100644
--- a/arch/arm/boot/dts/aspeed-g4.dtsi
+++ b/arch/arm/boot/dts/aspeed-g4.dtsi
@@ -492,6 +492,16 @@
 				reg = <0x1e720000 0x8000>;	// 32K
 			};
 
+			gpio: gpio@1e780000 {
+				#gpio-cells = <2>;
+				gpio-controller;
+				compatible = "aspeed,ast2400-gpio";
+				reg = <0x1e780000 0x1000>;
+				interrupts = <20>;
+				gpio-ranges = <&pinctrl 0 0 220>;
+				interrupt-controller;
+			};
+
 			timer: timer@1e782000 {
 				compatible = "aspeed,ast2400-timer";
 				reg = <0x1e782000 0x90>;
-- 
2.9.3.1.g0db844e

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

* [PATCH v3 6/7] aspeed-g5: Add syscon and pin controller nodes
  2016-08-30  7:55 [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers Andrew Jeffery
                   ` (4 preceding siblings ...)
  2016-08-30  7:55 ` [PATCH v3 5/7] aspeed-g4: Add gpio controller to devicetree Andrew Jeffery
@ 2016-08-30  7:55 ` Andrew Jeffery
  2016-08-30  7:56 ` [PATCH v3 7/7] aspeed-g5: Add gpio controller to devicetree Andrew Jeffery
  2016-09-13 12:44 ` [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers Joel Stanley
  7 siblings, 0 replies; 13+ messages in thread
From: Andrew Jeffery @ 2016-08-30  7:55 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Russell King, Mark Rutland, Rob Herring, Benjamin Herrenschmidt,
	Jeremy Kerr, devicetree, linux-arm-kernel, linux-kernel,
	Andrew Jeffery

The pin controller's child nodes expose the functions currently
implemented in the g5 pin controller driver.

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
---
 arch/arm/boot/dts/aspeed-g5.dtsi | 204 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 204 insertions(+)

diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi
index dd94d9361fda..24d79c88019f 100644
--- a/arch/arm/boot/dts/aspeed-g5.dtsi
+++ b/arch/arm/boot/dts/aspeed-g5.dtsi
@@ -44,6 +44,210 @@
 				reg = <0x1e6e2070 0x04>;
 			};
 
+			syscon: syscon@1e6e2000 {
+				compatible = "aspeed,g5-scu", "syscon", "simple-mfd";
+				reg = <0x1e6e2000 0x1a8>;
+
+				pinctrl: pinctrl {
+					compatible = "aspeed,g5-pinctrl";
+
+					pinctrl_gpid0_default: gpid0_default {
+						function = "GPID0";
+						groups = "GPID0";
+					};
+
+					pinctrl_gpid2_default: gpid2_default {
+						function = "GPID2";
+						groups = "GPID2";
+					};
+
+					pinctrl_gpie0_default: gpie0_default {
+						function = "GPIE0";
+						groups = "GPIE0";
+					};
+
+					pinctrl_i2c10_default: i2c10_default {
+						function = "I2C10";
+						groups = "I2C10";
+					};
+
+					pinctrl_i2c11_default: i2c11_default {
+						function = "I2C11";
+						groups = "I2C11";
+					};
+
+					pinctrl_i2c12_default: i2c12_default {
+						function = "I2C12";
+						groups = "I2C12";
+					};
+
+					pinctrl_i2c13_default: i2c13_default {
+						function = "I2C13";
+						groups = "I2C13";
+					};
+
+					pinctrl_i2c14_default: i2c14_default {
+						function = "I2C14";
+						groups = "I2C14";
+					};
+
+					pinctrl_i2c3_default: i2c3_default {
+						function = "I2C3";
+						groups = "I2C3";
+					};
+
+					pinctrl_i2c4_default: i2c4_default {
+						function = "I2C4";
+						groups = "I2C4";
+					};
+
+					pinctrl_i2c5_default: i2c5_default {
+						function = "I2C5";
+						groups = "I2C5";
+					};
+
+					pinctrl_i2c6_default: i2c6_default {
+						function = "I2C6";
+						groups = "I2C6";
+					};
+
+					pinctrl_i2c7_default: i2c7_default {
+						function = "I2C7";
+						groups = "I2C7";
+					};
+
+					pinctrl_i2c8_default: i2c8_default {
+						function = "I2C8";
+						groups = "I2C8";
+					};
+
+					pinctrl_i2c9_default: i2c9_default {
+						function = "I2C9";
+						groups = "I2C9";
+					};
+
+					pinctrl_mac1link_default: mac1link_default {
+						function = "MAC1LINK";
+						groups = "MAC1LINK";
+					};
+
+					pinctrl_mdio1_default: mdio1_default {
+						function = "MDIO1";
+						groups = "MDIO1";
+					};
+
+					pinctrl_mdio2_default: mdio2_default {
+						function = "MDIO2";
+						groups = "MDIO2";
+					};
+
+					pinctrl_oscclk_default: oscclk_default {
+						function = "OSCCLK";
+						groups = "OSCCLK";
+					};
+
+					pinctrl_pewake_default: pewake_default {
+						function = "PEWAKE";
+						groups = "PEWAKE";
+					};
+
+					pinctrl_pwm0_default: pwm0_default {
+						function = "PWM0";
+						groups = "PWM0";
+					};
+
+					pinctrl_pwm1_default: pwm1_default {
+						function = "PWM1";
+						groups = "PWM1";
+					};
+
+					pinctrl_pwm2_default: pwm2_default {
+						function = "PWM2";
+						groups = "PWM2";
+					};
+
+					pinctrl_pwm3_default: pwm3_default {
+						function = "PWM3";
+						groups = "PWM3";
+					};
+
+					pinctrl_pwm4_default: pwm4_default {
+						function = "PWM4";
+						groups = "PWM4";
+					};
+
+					pinctrl_pwm5_default: pwm5_default {
+						function = "PWM5";
+						groups = "PWM5";
+					};
+
+					pinctrl_pwm6_default: pwm6_default {
+						function = "PWM6";
+						groups = "PWM6";
+					};
+
+					pinctrl_pwm7_default: pwm7_default {
+						function = "PWM7";
+						groups = "PWM7";
+					};
+
+					pinctrl_rgmii1_default: rgmii1_default {
+						function = "RGMII1";
+						groups = "RGMII1";
+					};
+
+					pinctrl_rgmii2_default: rgmii2_default {
+						function = "RGMII2";
+						groups = "RGMII2";
+					};
+
+					pinctrl_rmii1_default: rmii1_default {
+						function = "RMII1";
+						groups = "RMII1";
+					};
+
+					pinctrl_rmii2_default: rmii2_default {
+						function = "RMII2";
+						groups = "RMII2";
+					};
+
+					pinctrl_sd1_default: sd1_default {
+						function = "SD1";
+						groups = "SD1";
+					};
+
+					pinctrl_spi1_default: spi1_default {
+						function = "SPI1";
+						groups = "SPI1";
+					};
+
+					pinctrl_timer4_default: timer4_default {
+						function = "TIMER4";
+						groups = "TIMER4";
+					};
+
+					pinctrl_timer5_default: timer5_default {
+						function = "TIMER5";
+						groups = "TIMER5";
+					};
+
+					pinctrl_timer6_default: timer6_default {
+						function = "TIMER6";
+						groups = "TIMER6";
+					};
+
+					pinctrl_timer7_default: timer7_default {
+						function = "TIMER7";
+						groups = "TIMER7";
+					};
+
+					pinctrl_timer8_default: timer8_default {
+						function = "TIMER8";
+						groups = "TIMER8";
+					};
+				};
+			};
+
 			clk_hpll: clk_hpll@1e6e2024 {
 				#clock-cells = <0>;
 				compatible = "aspeed,g5-hpll-clock";
-- 
2.9.3.1.g0db844e

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

* [PATCH v3 7/7] aspeed-g5: Add gpio controller to devicetree
  2016-08-30  7:55 [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers Andrew Jeffery
                   ` (5 preceding siblings ...)
  2016-08-30  7:55 ` [PATCH v3 6/7] aspeed-g5: Add syscon and pin controller nodes Andrew Jeffery
@ 2016-08-30  7:56 ` Andrew Jeffery
  2016-09-13 12:44 ` [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers Joel Stanley
  7 siblings, 0 replies; 13+ messages in thread
From: Andrew Jeffery @ 2016-08-30  7:56 UTC (permalink / raw)
  To: Joel Stanley
  Cc: Russell King, Mark Rutland, Rob Herring, Benjamin Herrenschmidt,
	Jeremy Kerr, devicetree, linux-arm-kernel, linux-kernel,
	Andrew Jeffery

Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
---
 arch/arm/boot/dts/aspeed-g5.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/arch/arm/boot/dts/aspeed-g5.dtsi b/arch/arm/boot/dts/aspeed-g5.dtsi
index 24d79c88019f..1f6a14a0802d 100644
--- a/arch/arm/boot/dts/aspeed-g5.dtsi
+++ b/arch/arm/boot/dts/aspeed-g5.dtsi
@@ -280,6 +280,16 @@
 				reg = <0x1e720000 0x9000>;	// 36K
 			};
 
+			gpio: gpio@1e780000 {
+				#gpio-cells = <2>;
+				gpio-controller;
+				compatible = "aspeed,ast2500-gpio";
+				reg = <0x1e780000 0x1000>;
+				interrupts = <20>;
+				gpio-ranges = <&pinctrl 0 0 220>;
+				interrupt-controller;
+			};
+
 			timer: timer@1e782000 {
 				compatible = "aspeed,ast2400-timer";
 				reg = <0x1e782000 0x90>;
-- 
2.9.3.1.g0db844e

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

* Re: [PATCH v3 4/7] palmetto: Request relevant mux functions in devicetree
  2016-08-30  7:55 ` [PATCH v3 4/7] palmetto: Request relevant mux functions in devicetree Andrew Jeffery
@ 2016-09-13 12:41   ` Joel Stanley
  2016-09-13 20:58     ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 13+ messages in thread
From: Joel Stanley @ 2016-09-13 12:41 UTC (permalink / raw)
  To: Andrew Jeffery
  Cc: Russell King, Mark Rutland, Rob Herring, Benjamin Herrenschmidt,
	Jeremy Kerr, devicetree, linux-arm-kernel, linux-kernel

On Tue, Aug 30, 2016 at 5:25 PM, Andrew Jeffery <andrew@aj.id.au> wrote:
> +&pinctrl {
> +       pinctrl-names = "default";
> +       pinctrl-0 = <&pinctrl_flbusy_default &pinctrl_flwp_default
> +                       &pinctrl_vgahs_default &pinctrl_vgavs_default
> +                       &pinctrl_ddcclk_default &pinctrl_ddcdat_default
> +
> +                       &pinctrl_pwm1_default &pinctrl_pwm2_default
> +                       &pinctrl_pwm3_default &pinctrl_pwm4_default
> +                       &pinctrl_pwm5_default &pinctrl_pwm6_default
> +                       &pinctrl_pwm7_default
> +
> +                       &pinctrl_bmcint_default &pinctrl_flack_default>;
> +};

It's not clear that all systems use these pins in that way. I will not
include this one for now.

Cheers,

Joel

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

* Re: [PATCH v3 2/7] mach-aspeed: Select GPIO driver
  2016-08-30  7:55 ` [PATCH v3 2/7] mach-aspeed: Select GPIO driver Andrew Jeffery
@ 2016-09-13 12:43   ` Joel Stanley
  0 siblings, 0 replies; 13+ messages in thread
From: Joel Stanley @ 2016-09-13 12:43 UTC (permalink / raw)
  To: Andrew Jeffery
  Cc: Russell King, Mark Rutland, Rob Herring, Benjamin Herrenschmidt,
	Jeremy Kerr, devicetree, linux-arm-kernel, linux-kernel

On Tue, Aug 30, 2016 at 5:25 PM, Andrew Jeffery <andrew@aj.id.au> wrote:
> diff --git a/arch/arm/mach-aspeed/Kconfig b/arch/arm/mach-aspeed/Kconfig
> index f3f8c5c658db..5aba9598f821 100644
> --- a/arch/arm/mach-aspeed/Kconfig
> +++ b/arch/arm/mach-aspeed/Kconfig
> @@ -7,6 +7,8 @@ menuconfig ARCH_ASPEED
>         select MOXART_TIMER
>         select MFD_SYSCON
>         select PINCTRL
> +       select GPIOLIB
> +       select GPIO_ASPEED

GPIO_ASPEED is a tristate, so if we select it in ARCH_ASPEED all users
of the driver will have it selected.

I think I will drop this patch so we still have the option of building
the gpio driver as a module. Otherwise, we should change the GPIO
driver to be built in.

Cheers,

Joel

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

* Re: [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers
  2016-08-30  7:55 [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers Andrew Jeffery
                   ` (6 preceding siblings ...)
  2016-08-30  7:56 ` [PATCH v3 7/7] aspeed-g5: Add gpio controller to devicetree Andrew Jeffery
@ 2016-09-13 12:44 ` Joel Stanley
  7 siblings, 0 replies; 13+ messages in thread
From: Joel Stanley @ 2016-09-13 12:44 UTC (permalink / raw)
  To: Andrew Jeffery, Arnd Bergmann
  Cc: Russell King, Mark Rutland, Rob Herring, Benjamin Herrenschmidt,
	Jeremy Kerr, devicetree, linux-arm-kernel, linux-kernel

On Tue, Aug 30, 2016 at 5:25 PM, Andrew Jeffery <andrew@aj.id.au> wrote:
> Here's v3 of the Aspeed pinctrl and gpio driver integration patches. v2 of the
> integration series can be found at:
>
>   https://lkml.org/lkml/2016/8/19/403

Looks good to me. I commented on the two patches that I don't think we
want to include. If you're happy with that I will send a tree to Arnd.

Arnd, the pinctrl driver is staged for 4.9. We're adding the symbol to
arch/arm/mach-aspeed, so the tree I send will have a dependency on the
pinctrl tree. How do I proceed in this case?

Cheers,

Joel

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

* Re: [PATCH v3 4/7] palmetto: Request relevant mux functions in devicetree
  2016-09-13 12:41   ` Joel Stanley
@ 2016-09-13 20:58     ` Benjamin Herrenschmidt
  2016-09-14  0:59       ` Joel Stanley
  0 siblings, 1 reply; 13+ messages in thread
From: Benjamin Herrenschmidt @ 2016-09-13 20:58 UTC (permalink / raw)
  To: Joel Stanley, Andrew Jeffery
  Cc: Russell King, Mark Rutland, Rob Herring, Jeremy Kerr, devicetree,
	linux-arm-kernel, linux-kernel

On Tue, 2016-09-13 at 22:11 +0930, Joel Stanley wrote:
> It's not clear that all systems use these pins in that way. I will
> not
> include this one for now.

Well, it has VGA so the VGA hsync, vsync and DDC should be there at
least...

Ben.

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

* Re: [PATCH v3 4/7] palmetto: Request relevant mux functions in devicetree
  2016-09-13 20:58     ` Benjamin Herrenschmidt
@ 2016-09-14  0:59       ` Joel Stanley
  0 siblings, 0 replies; 13+ messages in thread
From: Joel Stanley @ 2016-09-14  0:59 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: Andrew Jeffery, Russell King, Mark Rutland, Rob Herring,
	Jeremy Kerr, devicetree, linux-arm-kernel, linux-kernel

On Wed, Sep 14, 2016 at 6:28 AM, Benjamin Herrenschmidt
<benh@kernel.crashing.org> wrote:
> On Tue, 2016-09-13 at 22:11 +0930, Joel Stanley wrote:
>> It's not clear that all systems use these pins in that way. I will
>> not
>> include this one for now.
>
> Well, it has VGA so the VGA hsync, vsync and DDC should be there at
> least...

True. When we enable VGA in our tree these pins will be requested as
part of the VGA driver's device node, so they don't need to be hogged
by the pinctrl node like this.

The ones I'm not clear on are bmc_flack and bmc_int. Andrew, do you
have a recommendation here?

Cheers,

Joel

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

end of thread, other threads:[~2016-09-14  0:59 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-30  7:55 [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers Andrew Jeffery
2016-08-30  7:55 ` [PATCH v3 1/7] mach-aspeed: Select pinctrl drivers Andrew Jeffery
2016-08-30  7:55 ` [PATCH v3 2/7] mach-aspeed: Select GPIO driver Andrew Jeffery
2016-09-13 12:43   ` Joel Stanley
2016-08-30  7:55 ` [PATCH v3 3/7] aspeed-g4: Add syscon and pin controller nodes Andrew Jeffery
2016-08-30  7:55 ` [PATCH v3 4/7] palmetto: Request relevant mux functions in devicetree Andrew Jeffery
2016-09-13 12:41   ` Joel Stanley
2016-09-13 20:58     ` Benjamin Herrenschmidt
2016-09-14  0:59       ` Joel Stanley
2016-08-30  7:55 ` [PATCH v3 5/7] aspeed-g4: Add gpio controller to devicetree Andrew Jeffery
2016-08-30  7:55 ` [PATCH v3 6/7] aspeed-g5: Add syscon and pin controller nodes Andrew Jeffery
2016-08-30  7:56 ` [PATCH v3 7/7] aspeed-g5: Add gpio controller to devicetree Andrew Jeffery
2016-09-13 12:44 ` [PATCH v3 0/7] aspeed: Integrate pinctrl and gpio drivers Joel Stanley

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).