public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers
@ 2014-10-31  3:05 Chen-Yu Tsai
  2014-10-31  3:05 ` [PATCH v2 1/6] ARM: dts: sun9i: Add i2c controller nodes to a80 dtsi Chen-Yu Tsai
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: Chen-Yu Tsai @ 2014-10-31  3:05 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

This series enables the uart and i2c controller found on the A80 Optimus
board's gpio expansion header, as well as 2 out of 3 onboard LEDs. The
last LED needs R_PIO support.

This series contains only changes to the dtsi and dts files, and is based
on Maxime's pinctrl driver series. The patches should be self-explanatory.

Changes since v1:

  - Dropped a80_ prefix on the led labels
  - Fixed mapping for leds to pins, previously led2 and led4 were reversed.
  - Use dash instead of underscore in led-pins DT node name

Cheers,
ChenYu


Chen-Yu Tsai (6):
  ARM: dts: sun9i: Add i2c controller nodes to a80 dtsi
  ARM: dts: sun9i: Add i2c3 pinmux setting for A80 SoC
  ARM: dts: sun9i: Enable i2c3 on A80 Optimus board
  ARM: dts: sun9i: Add GPIO LEDs for A80 Optimus board
  ARM: dts: sun9i: Add uart4 pinmux setting for A80 SoC
  ARM: dts: sun9i: Enable uart4 for A80 Optimus board

 arch/arm/boot/dts/sun9i-a80-optimus.dts | 51 ++++++++++++++++++++++++
 arch/arm/boot/dts/sun9i-a80.dtsi        | 69 +++++++++++++++++++++++++++++++++
 2 files changed, 120 insertions(+)

-- 
2.1.1

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

* [PATCH v2 1/6] ARM: dts: sun9i: Add i2c controller nodes to a80 dtsi
  2014-10-31  3:05 [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers Chen-Yu Tsai
@ 2014-10-31  3:05 ` Chen-Yu Tsai
  2014-10-31  3:05 ` [PATCH v2 2/6] ARM: dts: sun9i: Add i2c3 pinmux setting for A80 SoC Chen-Yu Tsai
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Chen-Yu Tsai @ 2014-10-31  3:05 UTC (permalink / raw)
  To: linux-arm-kernel

The A80 has 5 i2c controllers in the main processor block.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
 arch/arm/boot/dts/sun9i-a80.dtsi | 55 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
index da680cf..3ec727d 100644
--- a/arch/arm/boot/dts/sun9i-a80.dtsi
+++ b/arch/arm/boot/dts/sun9i-a80.dtsi
@@ -426,6 +426,61 @@
 			status = "disabled";
 		};
 
+		i2c0: i2c at 07002800 {
+			compatible = "allwinner,sun6i-a31-i2c";
+			reg = <0x07002800 0x400>;
+			interrupts = <0 6 4>;
+			clocks = <&apb1_gates 0>;
+			resets = <&apb1_resets 0>;
+			status = "disabled";
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
+		i2c1: i2c at 07002c00 {
+			compatible = "allwinner,sun6i-a31-i2c";
+			reg = <0x07002c00 0x400>;
+			interrupts = <0 7 4>;
+			clocks = <&apb1_gates 1>;
+			resets = <&apb1_resets 1>;
+			status = "disabled";
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
+		i2c2: i2c at 07003000 {
+			compatible = "allwinner,sun6i-a31-i2c";
+			reg = <0x07003000 0x400>;
+			interrupts = <0 8 4>;
+			clocks = <&apb1_gates 2>;
+			resets = <&apb1_resets 2>;
+			status = "disabled";
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
+		i2c3: i2c at 07003400 {
+			compatible = "allwinner,sun6i-a31-i2c";
+			reg = <0x07003400 0x400>;
+			interrupts = <0 9 4>;
+			clocks = <&apb1_gates 3>;
+			resets = <&apb1_resets 3>;
+			status = "disabled";
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
+		i2c4: i2c at 07003800 {
+			compatible = "allwinner,sun6i-a31-i2c";
+			reg = <0x07003800 0x400>;
+			interrupts = <0 10 4>;
+			clocks = <&apb1_gates 4>;
+			resets = <&apb1_resets 4>;
+			status = "disabled";
+			#address-cells = <1>;
+			#size-cells = <0>;
+		};
+
 		r_wdt: watchdog at 08001000 {
 			compatible = "allwinner,sun6i-a31-wdt";
 			reg = <0x08001000 0x20>;
-- 
2.1.1

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

* [PATCH v2 2/6] ARM: dts: sun9i: Add i2c3 pinmux setting for A80 SoC
  2014-10-31  3:05 [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers Chen-Yu Tsai
  2014-10-31  3:05 ` [PATCH v2 1/6] ARM: dts: sun9i: Add i2c controller nodes to a80 dtsi Chen-Yu Tsai
@ 2014-10-31  3:05 ` Chen-Yu Tsai
  2014-10-31  3:05 ` [PATCH v2 3/6] ARM: dts: sun9i: Enable i2c3 on A80 Optimus board Chen-Yu Tsai
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Chen-Yu Tsai @ 2014-10-31  3:05 UTC (permalink / raw)
  To: linux-arm-kernel

i2c3 has only one possible pinmux setting on the A80 SoC.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
 arch/arm/boot/dts/sun9i-a80.dtsi | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
index 3ec727d..0a1f1a8 100644
--- a/arch/arm/boot/dts/sun9i-a80.dtsi
+++ b/arch/arm/boot/dts/sun9i-a80.dtsi
@@ -352,6 +352,13 @@
 			#size-cells = <0>;
 			#gpio-cells = <3>;
 
+			i2c3_pins_a: i2c3 at 0 {
+				allwinner,pins = "PG10", "PG11";
+				allwinner,function = "i2c3";
+				allwinner,drive = <0>;
+				allwinner,pull = <0>;
+			};
+
 			uart0_pins_a: uart0 at 0 {
 				allwinner,pins = "PH12", "PH13";
 				allwinner,function = "uart0";
-- 
2.1.1

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

* [PATCH v2 3/6] ARM: dts: sun9i: Enable i2c3 on A80 Optimus board
  2014-10-31  3:05 [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers Chen-Yu Tsai
  2014-10-31  3:05 ` [PATCH v2 1/6] ARM: dts: sun9i: Add i2c controller nodes to a80 dtsi Chen-Yu Tsai
  2014-10-31  3:05 ` [PATCH v2 2/6] ARM: dts: sun9i: Add i2c3 pinmux setting for A80 SoC Chen-Yu Tsai
@ 2014-10-31  3:05 ` Chen-Yu Tsai
  2014-10-31  3:05 ` [PATCH v2 4/6] ARM: dts: sun9i: Add GPIO LEDs for " Chen-Yu Tsai
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Chen-Yu Tsai @ 2014-10-31  3:05 UTC (permalink / raw)
  To: linux-arm-kernel

i2c3 is exposed on the GPIO extension header. Enable it so we can use it.

Also enable internal pull-ups on the pins, as they don't seem to have
external pull-up resistors.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
 arch/arm/boot/dts/sun9i-a80-optimus.dts | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
index 5d9bc80..955436a 100644
--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -59,10 +59,23 @@
 	};
 
 	soc {
+		pio: pinctrl at 06000800 {
+			i2c3_pins_a: i2c3 at 0 {
+				/* Enable internal pull-up */
+				allwinner,pull = <1>;
+			};
+		};
+
 		uart0: serial at 07000000 {
 			pinctrl-names = "default";
 			pinctrl-0 = <&uart0_pins_a>;
 			status = "okay";
 		};
+
+		i2c3: i2c at 07003400 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&i2c3_pins_a>;
+			status = "okay";
+		};
 	};
 };
-- 
2.1.1

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

* [PATCH v2 4/6] ARM: dts: sun9i: Add GPIO LEDs for A80 Optimus board
  2014-10-31  3:05 [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers Chen-Yu Tsai
                   ` (2 preceding siblings ...)
  2014-10-31  3:05 ` [PATCH v2 3/6] ARM: dts: sun9i: Enable i2c3 on A80 Optimus board Chen-Yu Tsai
@ 2014-10-31  3:05 ` Chen-Yu Tsai
  2014-10-31  3:05 ` [PATCH v2 5/6] ARM: dts: sun9i: Add uart4 pinmux setting for A80 SoC Chen-Yu Tsai
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: Chen-Yu Tsai @ 2014-10-31  3:05 UTC (permalink / raw)
  To: linux-arm-kernel

The A80 Optimus board has 3 usable LEDs that are controlled via GPIO.

This patch adds support for 2 of them which are driver by GPIOs in the
main pin controller. The remaining one uses GPIO from the R_PIO
controller, which we don't support yet.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
 arch/arm/boot/dts/sun9i-a80-optimus.dts | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
index 955436a..87b1355 100644
--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -64,6 +64,13 @@
 				/* Enable internal pull-up */
 				allwinner,pull = <1>;
 			};
+
+			led_pins_optimus: led-pins at 0 {
+				allwinner,pins = "PH0", "PH1";
+				allwinner,function = "gpio_out";
+				allwinner,drive = <0>;
+				allwinner,pull = <0>;
+			};
 		};
 
 		uart0: serial at 07000000 {
@@ -78,4 +85,24 @@
 			status = "okay";
 		};
 	};
+
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&led_pins_optimus>;
+
+		/* The LED names match those found on the board */
+
+		led2 {
+			label = "optimus:led2:usr";
+			gpios = <&pio 7 1 0>;
+		};
+
+		/* led3 is on PM15, in R_PIO */
+
+		led4 {
+			label = "optimus:led4:usr";
+			gpios = <&pio 7 0 0>;
+		};
+	};
 };
-- 
2.1.1

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

* [PATCH v2 5/6] ARM: dts: sun9i: Add uart4 pinmux setting for A80 SoC
  2014-10-31  3:05 [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers Chen-Yu Tsai
                   ` (3 preceding siblings ...)
  2014-10-31  3:05 ` [PATCH v2 4/6] ARM: dts: sun9i: Add GPIO LEDs for " Chen-Yu Tsai
@ 2014-10-31  3:05 ` Chen-Yu Tsai
  2014-10-31  3:05 ` [PATCH v2 6/6] ARM: dts: sun9i: Enable uart4 for A80 Optimus board Chen-Yu Tsai
  2014-10-31  8:27 ` [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers Maxime Ripard
  6 siblings, 0 replies; 8+ messages in thread
From: Chen-Yu Tsai @ 2014-10-31  3:05 UTC (permalink / raw)
  To: linux-arm-kernel

uart4 only has one possible pinmux setting on the A80 SoC.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
 arch/arm/boot/dts/sun9i-a80.dtsi | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/boot/dts/sun9i-a80.dtsi b/arch/arm/boot/dts/sun9i-a80.dtsi
index 0a1f1a8..494714f 100644
--- a/arch/arm/boot/dts/sun9i-a80.dtsi
+++ b/arch/arm/boot/dts/sun9i-a80.dtsi
@@ -365,6 +365,13 @@
 				allwinner,drive = <0>;
 				allwinner,pull = <0>;
 			};
+
+			uart4_pins_a: uart4 at 0 {
+				allwinner,pins = "PG12", "PG13", "PG14", "PG15";
+				allwinner,function = "uart4";
+				allwinner,drive = <0>;
+				allwinner,pull = <0>;
+			};
 		};
 
 		uart0: serial at 07000000 {
-- 
2.1.1

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

* [PATCH v2 6/6] ARM: dts: sun9i: Enable uart4 for A80 Optimus board
  2014-10-31  3:05 [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers Chen-Yu Tsai
                   ` (4 preceding siblings ...)
  2014-10-31  3:05 ` [PATCH v2 5/6] ARM: dts: sun9i: Add uart4 pinmux setting for A80 SoC Chen-Yu Tsai
@ 2014-10-31  3:05 ` Chen-Yu Tsai
  2014-10-31  8:27 ` [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers Maxime Ripard
  6 siblings, 0 replies; 8+ messages in thread
From: Chen-Yu Tsai @ 2014-10-31  3:05 UTC (permalink / raw)
  To: linux-arm-kernel

The A80 Optimus board exposes uart4 on the GPIO expansion header.
Enable it so we can use it.

Also enable the internal pull-ups, as there doesn't seem to be
external pull-up resistors for pins on the expansion header.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
---
 arch/arm/boot/dts/sun9i-a80-optimus.dts | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/arch/arm/boot/dts/sun9i-a80-optimus.dts b/arch/arm/boot/dts/sun9i-a80-optimus.dts
index 87b1355..506948f 100644
--- a/arch/arm/boot/dts/sun9i-a80-optimus.dts
+++ b/arch/arm/boot/dts/sun9i-a80-optimus.dts
@@ -71,6 +71,11 @@
 				allwinner,drive = <0>;
 				allwinner,pull = <0>;
 			};
+
+			uart4_pins_a: uart4 at 0 {
+				/* Enable internal pull-up */
+				allwinner,pull = <1>;
+			};
 		};
 
 		uart0: serial at 07000000 {
@@ -79,6 +84,12 @@
 			status = "okay";
 		};
 
+		uart4: serial at 07001000 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&uart4_pins_a>;
+			status = "okay";
+		};
+
 		i2c3: i2c at 07003400 {
 			pinctrl-names = "default";
 			pinctrl-0 = <&i2c3_pins_a>;
-- 
2.1.1

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

* [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers
  2014-10-31  3:05 [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers Chen-Yu Tsai
                   ` (5 preceding siblings ...)
  2014-10-31  3:05 ` [PATCH v2 6/6] ARM: dts: sun9i: Enable uart4 for A80 Optimus board Chen-Yu Tsai
@ 2014-10-31  8:27 ` Maxime Ripard
  6 siblings, 0 replies; 8+ messages in thread
From: Maxime Ripard @ 2014-10-31  8:27 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Oct 31, 2014 at 11:05:45AM +0800, Chen-Yu Tsai wrote:
> Hi,
> 
> This series enables the uart and i2c controller found on the A80 Optimus
> board's gpio expansion header, as well as 2 out of 3 onboard LEDs. The
> last LED needs R_PIO support.
> 
> This series contains only changes to the dtsi and dts files, and is based
> on Maxime's pinctrl driver series. The patches should be self-explanatory.
> 
> Changes since v1:
> 
>   - Dropped a80_ prefix on the led labels
>   - Fixed mapping for leds to pins, previously led2 and led4 were reversed.
>   - Use dash instead of underscore in led-pins DT node name


Merged, thanks!
Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141031/f3709f90/attachment.sig>

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

end of thread, other threads:[~2014-10-31  8:27 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-10-31  3:05 [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers Chen-Yu Tsai
2014-10-31  3:05 ` [PATCH v2 1/6] ARM: dts: sun9i: Add i2c controller nodes to a80 dtsi Chen-Yu Tsai
2014-10-31  3:05 ` [PATCH v2 2/6] ARM: dts: sun9i: Add i2c3 pinmux setting for A80 SoC Chen-Yu Tsai
2014-10-31  3:05 ` [PATCH v2 3/6] ARM: dts: sun9i: Enable i2c3 on A80 Optimus board Chen-Yu Tsai
2014-10-31  3:05 ` [PATCH v2 4/6] ARM: dts: sun9i: Add GPIO LEDs for " Chen-Yu Tsai
2014-10-31  3:05 ` [PATCH v2 5/6] ARM: dts: sun9i: Add uart4 pinmux setting for A80 SoC Chen-Yu Tsai
2014-10-31  3:05 ` [PATCH v2 6/6] ARM: dts: sun9i: Enable uart4 for A80 Optimus board Chen-Yu Tsai
2014-10-31  8:27 ` [PATCH v2 0/6] ARM: sun9i: Enable extra uarts, leds and i2c controllers Maxime Ripard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox