Skip to contentSkip to conversation

ARM: dts: sunxi: Add regulator-boot-on property to ahci-5v regulator

PATCH New Hans de Goede 2 participants 15 messages Nov 13, 2014 – Nov 14, 2014

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

PATCH 1/7 ARM: dts: sunxi: Add regulator-boot-on property to ahci-5v regulator

This avoids it getting briefly turned off between when the regulator getting registered and the ahci driver turning it back on, thus avoiding the disk going into emergency head park mode.

---
 arch/arm/boot/dts/sunxi-common-regulators.dtsi | 1 +
 1 file changed, 1 insertion(+)
arch/arm/boot/dts/sunxi-common-regulators.dtsi +1 -0
index c9c5b10..a950671 100644
@@ -44,6 +44,7 @@
 		regulator-name = "ahci-5v";
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
+		regulator-boot-on;
 		enable-active-high;
 		gpio = <&pio 1 8 0>;
 		status = "disabled";
Signature · 1 line
2.1.0
#1 lore raw

PATCH 2/7 ARM: dts: sun4i: Add simplefb node

Add a simplefb template node for u-boot to further fill and activate.

---
 arch/arm/boot/dts/sun4i-a10.dtsi | 12 ++++++++++++
 1 file changed, 12 insertions(+)
arch/arm/boot/dts/sun4i-a10.dtsi +12 -0
index 1ef7d57..686d8ef 100644
@@ -27,6 +27,18 @@
 		serial7 = &uart7;
 	};
 
+	chosen {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		framebuffer0 {
+			compatible = "simple-framebuffer";
+			clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
+			status = "disabled";
+		};
+	};
+
 	cpus {
 		#address-cells = <1>;
 		#size-cells = <0>;
Signature · 1 line
2.1.0
#2 lore raw

PATCH 3/7 ARM: dts: sun5i: Add simplefb node

In reply to Hans de Goede

Add a simplefb template node for u-boot to further fill and activate.

---
 arch/arm/boot/dts/sun5i-a10s.dtsi | 12 ++++++++++++
 1 file changed, 12 insertions(+)
arch/arm/boot/dts/sun5i-a10s.dtsi +12 -0
index 7089284..dcea088 100644
@@ -24,6 +24,18 @@
 		serial3 = &uart3;
 	};
 
+	chosen {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		framebuffer0 {
+			compatible = "simple-framebuffer";
+			clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
+			status = "disabled";
+		};
+	};
+
 	cpus {
 		cpu at 0 {
 			compatible = "arm,cortex-a8";
Signature · 1 line
2.1.0
#3 lore raw

PATCH 4/7 ARM: dts: sun6i: Add simplefb node

In reply to Hans de Goede

Add a simplefb template node for u-boot to further fill and activate.

---
 arch/arm/boot/dts/sun6i-a31.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)
arch/arm/boot/dts/sun6i-a31.dtsi +10 -0
index 543f895..438952e 100644
@@ -62,6 +62,16 @@
 		ethernet0 = &gmac;
 	};
 
+	chosen {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		framebuffer0 {
+			compatible = "simple-framebuffer";
+			status = "disabled";
+		};
+	};
 
 	cpus {
 		enable-method = "allwinner,sun6i-a31";
Signature · 1 line
2.1.0
#4 lore raw

PATCH 4/7 ARM: dts: sun6i: Add simplefb node

Hi,

Quoted 13 lines · Hans de Goede

Add a simplefb template node for u-boot to further fill and activate.

---
 arch/arm/boot/dts/sun6i-a31.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)
arch/arm/boot/dts/sun6i-a31.dtsi +0 -0
index 543f895..438952e 100644
@@ -62,6 +62,16 @@
 		ethernet0 = &gmac;

arch/arm/boot/dts/sun6i-a31.dtsi line 72

Quoted 10 lines
arch/arm/boot/dts/sun6i-a31.dtsi +8 -0
 	};
 
+	chosen {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		framebuffer0 {
+			compatible = "simple-framebuffer";
+			status = "disabled";

Aren't we suppose to have clocks in there too?

Thanks,
Maxime

Signature · 10 lines
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/20141113/2f2698fc/attachment-0001.sig>
#5 lore raw

PATCH 4/7 ARM: dts: sun6i: Add simplefb node

Hi,

Quoted 18 lines · Maxime Ripard

Hi,

Quoted 15 lines · Hans de Goede

Add a simplefb template node for u-boot to further fill and activate.

---
 arch/arm/boot/dts/sun6i-a31.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)
arch/arm/boot/dts/sun6i-a31.dtsi +0 -0
index 543f895..438952e 100644
@@ -62,6 +62,16 @@
 		ethernet0 = &gmac;
 	};
 
Quoted 10 lines

arch/arm/boot/dts/sun6i-a31.dtsi line 72

Quoted 8 lines
arch/arm/boot/dts/sun6i-a31.dtsi +8 -0
+	chosen {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		framebuffer0 {
+			compatible = "simple-framebuffer";
+			status = "disabled";

Aren't we suppose to have clocks in there too?

I deliberately left them out as they are not needed on sun6i, once the blocks are setup ahb access is not necessary, but it seems that the ahb_gate bits in sun4i / sun5i / sun7i double as a reset. Toggling them on / off / on breaks the mode, while toggling module clocks on / off / on only causes a glitch.

Since the sun6i has a separate reset controller, the clock gates seem to really only control ahb access which is not necessary once the mode has been set up.

Regards,

Hans

#6 lore raw

PATCH 4/7 ARM: dts: sun6i: Add simplefb node

Quoted 32 lines · Hans de Goede

Hi,

Quoted 18 lines · Maxime Ripard

Hi,

Quoted 15 lines · Hans de Goede

Add a simplefb template node for u-boot to further fill and activate.

---
 arch/arm/boot/dts/sun6i-a31.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)
arch/arm/boot/dts/sun6i-a31.dtsi +0 -0
index 543f895..438952e 100644
@@ -62,6 +62,16 @@
 		ethernet0 = &gmac;
 	};
 
Quoted 10 lines

arch/arm/boot/dts/sun6i-a31.dtsi line 72

Quoted 8 lines
arch/arm/boot/dts/sun6i-a31.dtsi +8 -0
+	chosen {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		framebuffer0 {
+			compatible = "simple-framebuffer";
+			status = "disabled";

Aren't we suppose to have clocks in there too?

Quoted 7 lines

I deliberately left them out as they are not needed on sun6i, once the blocks are setup ahb access is not necessary, but it seems that the ahb_gate bits in sun4i / sun5i / sun7i double as a reset. Toggling them on / off / on breaks the mode, while toggling module clocks on / off / on only causes a glitch.

Since the sun6i has a separate reset controller, the clock gates seem to really only control ahb access which is not necessary once the mode has been set up.

Ok. That can always be changed in the future if we ever find we need them anyway.

I'll merge these four patches as soon as the bindings doc is acked-by/merged by Grant or any other DT maintainer.

Maxime

Signature · 10 lines
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/20141114/ccbf2455/attachment.sig>
#7 lore raw

PATCH 4/7 ARM: dts: sun6i: Add simplefb node

Hi,

Quoted 38 lines · Maxime Ripard
Quoted 37 lines · Hans de Goede

Hi,

Quoted 18 lines · Maxime Ripard

Hi,

Quoted 15 lines · Hans de Goede

Add a simplefb template node for u-boot to further fill and activate.

---
 arch/arm/boot/dts/sun6i-a31.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)
arch/arm/boot/dts/sun6i-a31.dtsi +0 -0
index 543f895..438952e 100644
@@ -62,6 +62,16 @@
 		ethernet0 = &gmac;
 	};
 
Quoted 10 lines

arch/arm/boot/dts/sun6i-a31.dtsi line 72

Quoted 8 lines
arch/arm/boot/dts/sun6i-a31.dtsi +8 -0
+	chosen {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		framebuffer0 {
+			compatible = "simple-framebuffer";
+			status = "disabled";

Aren't we suppose to have clocks in there too?

I deliberately left them out as they are not needed on sun6i, once the blocks are setup ahb access is not necessary, but it seems that the ahb_gate bits in sun4i / sun5i / sun7i double as a reset. Toggling them on / off / on breaks the mode, while toggling module clocks on / off / on only causes a glitch.

Quoted 8 lines
Quoted 2 lines

Since the sun6i has a separate reset controller, the clock gates seem to really only control ahb access which is not necessary once the mode has been set up.

Ok. That can always be changed in the future if we ever find we need them anyway.

I'll merge these four patches as soon as the bindings doc is acked-by/merged by Grant or any other DT maintainer.

Note these patches are using framebuffer0 rather then framebuffer0-hdmi as node name, which may cause issues if we later want to add lcd support. So I've a v2 coming which changes the name to framebuffer0-hdmi, please merge that instead.

Regards,

Hans

#8 lore raw

PATCH 4/7 ARM: dts: sun6i: Add simplefb node

Quoted 47 lines · Hans de Goede

Hi,

Quoted 44 lines · Maxime Ripard
Quoted 32 lines · Hans de Goede

Hi,

Quoted 18 lines · Maxime Ripard

Hi,

Quoted 15 lines · Hans de Goede

Add a simplefb template node for u-boot to further fill and activate.

---
 arch/arm/boot/dts/sun6i-a31.dtsi | 10 ++++++++++
 1 file changed, 10 insertions(+)
arch/arm/boot/dts/sun6i-a31.dtsi +0 -0
index 543f895..438952e 100644
@@ -62,6 +62,16 @@
 		ethernet0 = &gmac;
 	};
 
Quoted 10 lines

arch/arm/boot/dts/sun6i-a31.dtsi line 72

Quoted 8 lines
arch/arm/boot/dts/sun6i-a31.dtsi +8 -0
+	chosen {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		framebuffer0 {
+			compatible = "simple-framebuffer";
+			status = "disabled";

Aren't we suppose to have clocks in there too?

Quoted 7 lines

I deliberately left them out as they are not needed on sun6i, once the blocks are setup ahb access is not necessary, but it seems that the ahb_gate bits in sun4i / sun5i / sun7i double as a reset. Toggling them on / off / on breaks the mode, while toggling module clocks on / off / on only causes a glitch.

Since the sun6i has a separate reset controller, the clock gates seem to really only control ahb access which is not necessary once the mode has been set up.

Ok. That can always be changed in the future if we ever find we need them anyway.

Quoted 6 lines
Quoted 2 lines

I'll merge these four patches as soon as the bindings doc is acked-by/merged by Grant or any other DT maintainer.

Note these patches are using framebuffer0 rather then framebuffer0-hdmi as node name, which may cause issues if we later want to add lcd support. So I've a v2 coming which changes the name to framebuffer0-hdmi, please merge that instead.

Ok :)

Signature · 10 lines
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/20141114/a59d0473/attachment.sig>
#9 lore raw

PATCH 5/7 ARM: dts: sun7i: Add simplefb node

In reply to Hans de Goede

Add a simplefb template node for u-boot to further fill and activate.

---
 arch/arm/boot/dts/sun7i-a20.dtsi | 12 ++++++++++++
 1 file changed, 12 insertions(+)
arch/arm/boot/dts/sun7i-a20.dtsi +12 -0
index 81d4e55..3ef078f 100644
@@ -64,6 +64,18 @@
 		serial7 = &uart7;
 	};
 
+	chosen {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		framebuffer0 {
+			compatible = "simple-framebuffer";
+			clocks = <&ahb_gates 36>, <&ahb_gates 43>, <&ahb_gates 44>;
+			status = "disabled";
+		};
+	};
+
 	cpus {
 		#address-cells = <1>;
 		#size-cells = <0>;
Signature · 1 line
2.1.0
#10 lore raw

PATCH 6/7 ARM: dts: sun6i: Add EHCI support for the M9 board

In reply to Hans de Goede

The Mele M9 / A1000G quad uses both usb-ports, one goes to an internal usb wifi card, the other to a build-in usb-hub, so neither need their OHCI companion controller to be enabled since the are always connected at USB-2 speeds.

The controller which is attached to the wifi also does not need a vbus regulator.

---
 arch/arm/boot/dts/sun6i-a31-m9.dts | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
arch/arm/boot/dts/sun6i-a31-m9.dts +26 -0
index bc6115d..c85247e 100644
@@ -32,6 +32,19 @@
 			status = "okay";
 		};
 
+		usbphy: phy at 01c19400 {
+			usb1_vbus-supply = <&reg_usb1_vbus>;
+			status = "okay";
+		};
+
+		ehci0: usb at 01c1a000 {
+			status = "okay";
+		};
+
+		ehci1: usb at 01c1b000 {
+			status = "okay";
+		};
+
 		pio: pinctrl at 01c20800 {
 			mmc0_cd_pin_m9: mmc0_cd_pin at 0 {
 				allwinner,pins = "PH22";
@@ -39,6 +52,12 @@
 				allwinner,drive = <0>;
 				allwinner,pull = <1>;
 			};
+			usb1_vbus_pin_m9: usb1_vbus_pin at 0 {
+				allwinner,pins = "PC27";
+				allwinner,function = "gpio_out";
+				allwinner,drive = <0>;
+				allwinner,pull = <0>;
+			};
 		};
 
 		uart0: serial at 01c28000 {
@@ -47,4 +66,11 @@
 			status = "okay";
 		};
 	};
+
+	reg_usb1_vbus: usb1-vbus {
+		pinctrl-names = "default";
+		pinctrl-0 = <&usb1_vbus_pin_m9>;
+		gpio = <&pio 2 27 0>;
+		status = "okay";
+	};
 };
Signature · 1 line
2.1.0
#11 lore raw

PATCH 6/7 ARM: dts: sun6i: Add EHCI support for the M9 board

Quoted 9 lines · Hans de Goede

The Mele M9 / A1000G quad uses both usb-ports, one goes to an internal usb wifi card, the other to a build-in usb-hub, so neither need their OHCI companion controller to be enabled since the are always connected at USB-2 speeds.

The controller which is attached to the wifi also does not need a vbus regulator.

Applied, with a newline before the pinctrl node.

Thanks!
Maxime

Signature · 10 lines
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/20141113/4e452451/attachment-0001.sig>
#12 lore raw

PATCH 7/7 ARM: dts: sun6i: Add support for the status led

In reply to Hans de Goede

The Mele M9 / A1000G quad has a blue status led, add support for this.

---
 arch/arm/boot/dts/sun6i-a31-m9.dts | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
arch/arm/boot/dts/sun6i-a31-m9.dts +17 -0
index c85247e..43f8f18 100644
@@ -46,6 +46,12 @@
 		};
 
 		pio: pinctrl at 01c20800 {
+			led_pins_m9: led_pins at 0 {
+				allwinner,pins = "PH13";
+				allwinner,function = "gpio_out";
+				allwinner,drive = <0>;
+				allwinner,pull = <0>;
+			};
 			mmc0_cd_pin_m9: mmc0_cd_pin at 0 {
 				allwinner,pins = "PH22";
 				allwinner,function = "gpio_in";
@@ -67,6 +73,17 @@
 		};
 	};
 
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&led_pins_m9>;
+
+		blue {
+			label = "m9:blue:usr";
+			gpios = <&pio 7 13 0>;
+		};
+	};
+
 	reg_usb1_vbus: usb1-vbus {
 		pinctrl-names = "default";
 		pinctrl-0 = <&usb1_vbus_pin_m9>;
Signature · 1 line
2.1.0
#13 lore raw

PATCH 7/7 ARM: dts: sun6i: Add support for the status led

Quoted 3 lines · Hans de Goede

The Mele M9 / A1000G quad has a blue status led, add support for this.

Applied, with a newline after the pnictrl node.

Thanks!
Maxime

Signature · 10 lines
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/20141113/58fd626c/attachment-0001.sig>
#14 lore raw

PATCH 1/7 ARM: dts: sunxi: Add regulator-boot-on property to ahci-5v regulator

In reply to Hans de Goede
Quoted 7 lines · Hans de Goede

This avoids it getting briefly turned off between when the regulator getting registered and the ahci driver turning it back on, thus avoiding the disk going into emergency head park mode.

Applied, and split up the tags.

Thanks!
Maxime

Signature · 10 lines
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/20141113/69844dc4/attachment-0001.sig>