Skip to contentSkip to conversation

ARM: sunxi: Sinlinx SinA31s support / AXP22x dtsi conversion

PATCH New Chen-Yu Tsai 2 participants 18 messages Oct 10, 2015 – Oct 19, 2015

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

v2 cover ARM: sunxi: Sinlinx SinA31s support / AXP22x dtsi conversion

Hi Maxime,

This is v2 of the Primo81/SinA31s series. I dropped the Primo81 stuff as it needs more work.

Changes since v1:

- Requires "ARM: dts: sun6i: hummingbird: Drop AXP221 DC1SW and DC5LDO supplies"

- Dropped already merged patches

- Dropped Primo81 patch; needs more work to support various device bindings

- Renamed axp221.dtsi to axp22x.dtsi to generalize for AXP223 later on

- Added "ARM: dts: sun6i: hummingbird: Fix VDD-CPU and VDD-GPU regulator names"

- Added 'ARM: dts: sun6i: hummingbird: Enable AXP221 DC5LDO regulator

    as "vdd-cpus"'

This series adds support for Sinlinx's SinA31s development kit. This also adds a common axp22x.dtsi, like we have for axp209 and axp152. This will be used for AXP221/AXP223. The Hummingbird A31 dts is also migrated to this.

Patch 1 fixes the regulator names for the Hummingbird A31. The CPU and GPU regulators were mixed up.

Patch 2 adds a common dtsi for the AXP22x family of PMICs. This includes listing all the regulators, and the basic common properties, like "interrupt-controller".

Patch 3 migrates the Hummingbird A31 dts to use the new axp221.dtsi

Patch 4 enables the AXP221 DC5LDO regulator on the Hummingbird A31. This is used to power the embedded controller/processor core.

Patch 5 adds dtsi/dts files for the Sinlinx SinA31s development kit.

Regards
ChenYu

Chen-Yu Tsai (5):
ARM: dts: sun6i: hummingbird: Fix VDD-CPU and VDD-GPU regulator names
ARM: dts: sunxi: Add dtsi for AXP22x PMIC
ARM: dts: sun6i: hummingbird: Use axp22x.dtsi for AXP221 regulators
ARM: dts: sun6i: hummingbird: Enable AXP221 DC5LDO regulator as

    "vdd-cpus"

ARM: dts: sun6i: Add support for Sinlinx A31s SDK board

 arch/arm/boot/dts/Makefile                     |   1 +
 arch/arm/boot/dts/axp22x.dtsi                  | 143 +++++++++++++++++++++
 arch/arm/boot/dts/sun6i-a31-hummingbird.dts    | 119 +++++++++---------
 arch/arm/boot/dts/sun6i-a31s-sina31s-core.dtsi | 140 +++++++++++++++++++++
 arch/arm/boot/dts/sun6i-a31s-sina31s.dts       | 167 +++++++++++++++++++++++++
 5 files changed, 513 insertions(+), 57 deletions(-)
 create mode 100644 arch/arm/boot/dts/axp22x.dtsi
 create mode 100644 arch/arm/boot/dts/sun6i-a31s-sina31s-core.dtsi
 create mode 100644 arch/arm/boot/dts/sun6i-a31s-sina31s.dts
Signature · 1 line
2.5.3
#1 lore raw

PATCH v2 1/5 ARM: dts: sun6i: hummingbird: Fix VDD-CPU and VDD-GPU regulator names

The VDD-CPU and VDD-GPU regulators were incorrectly swapped.

Fixes bab03561224ba ("ARM: dts: sun6i: hummingbird: Add AXP221 regulator
       nodes")
---
 arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
arch/arm/boot/dts/sun6i-a31-hummingbird.dts +4 -4
index f9d9fc07bc63..e25d4924dbe7 100644
@@ -191,18 +191,18 @@
 				regulator-name = "vcc-3v0";
 			};
 
-			vdd_cpu: dcdc2 {
+			vdd_gpu: dcdc2 {
 				regulator-always-on;
 				regulator-min-microvolt = <700000>;
 				regulator-max-microvolt = <1320000>;
-				regulator-name = "vdd-cpu";
+				regulator-name = "vdd-gpu";
 			};
 
-			vdd_gpu: dcdc3 {
+			vdd_cpu: dcdc3 {
 				regulator-always-on;
 				regulator-min-microvolt = <700000>;
 				regulator-max-microvolt = <1320000>;
-				regulator-name = "vdd-gpu";
+				regulator-name = "vdd-cpu";
 			};
 
 			vdd_sys_dll: dcdc4 {
Signature · 1 line
2.5.3
#2 lore raw

PATCH v2 1/5 ARM: dts: sun6i: hummingbird: Fix VDD-CPU and VDD-GPU regulator names

Hi,

Quoted 16 lines · Chen-Yu Tsai

The VDD-CPU and VDD-GPU regulators were incorrectly swapped.

Fixes bab03561224ba ("ARM: dts: sun6i: hummingbird: Add AXP221 regulator
       nodes")
---
 arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
arch/arm/boot/dts/sun6i-a31-hummingbird.dts +0 -0
index f9d9fc07bc63..e25d4924dbe7 100644
@@ -191,18 +191,18 @@
 				regulator-name = "vcc-3v0";

arch/arm/boot/dts/sun6i-a31-hummingbird.dts line 199

Quoted 10 lines
arch/arm/boot/dts/sun6i-a31-hummingbird.dts +2 -2
 			};
 
-			vdd_cpu: dcdc2 {
+			vdd_gpu: dcdc2 {
 				regulator-always-on;
 				regulator-min-microvolt = <700000>;
 				regulator-max-microvolt = <1320000>;
-				regulator-name = "vdd-cpu";
+				regulator-name = "vdd-gpu";
 			};

Do we need to leave the GPU regulator on ?

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/20151012/38713a8a/attachment.sig>
#3 lore raw

PATCH v2 1/5 ARM: dts: sun6i: hummingbird: Fix VDD-CPU and VDD-GPU regulator names

Quoted 21 lines · Maxime Ripard

Hi,

Quoted 18 lines · Chen-Yu Tsai

The VDD-CPU and VDD-GPU regulators were incorrectly swapped.

Fixes bab03561224ba ("ARM: dts: sun6i: hummingbird: Add AXP221 regulator
       nodes")
---
 arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
arch/arm/boot/dts/sun6i-a31-hummingbird.dts +0 -0
index f9d9fc07bc63..e25d4924dbe7 100644
@@ -191,18 +191,18 @@
                              regulator-name = "vcc-3v0";
                      };
 
Quoted 10 lines

arch/arm/boot/dts/sun6i-a31-hummingbird.dts line 199

Quoted 8 lines
arch/arm/boot/dts/sun6i-a31-hummingbird.dts +2 -2
-                     vdd_cpu: dcdc2 {
+                     vdd_gpu: dcdc2 {
                              regulator-always-on;
                              regulator-min-microvolt = <700000>;
                              regulator-max-microvolt = <1320000>;
-                             regulator-name = "vdd-cpu";
+                             regulator-name = "vdd-gpu";
                      };

Do we need to leave the GPU regulator on ?

No. But that is addressed in patch 3, which converts to using axp22x.dtsi.

I wanted to keep this fix as simple as possible.

ChenYu

#4 lore raw

PATCH v2 1/5 ARM: dts: sun6i: hummingbird: Fix VDD-CPU and VDD-GPU regulator names

In reply to Chen-Yu Tsai
Quoted 6 lines · Chen-Yu Tsai

The VDD-CPU and VDD-GPU regulators were incorrectly swapped.

Fixes bab03561224ba ("ARM: dts: sun6i: hummingbird: Add AXP221 regulator
       nodes")

Applied, 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/20151013/9334c4a3/attachment.sig>
#5 lore raw

PATCH v2 2/5 ARM: dts: sunxi: Add dtsi for AXP22x PMIC

In reply to Chen-Yu Tsai

The AXP22x family of PMIC is used with some Allwinner SoCs. This includes the AXP221, AXP221s and AXP223. They differ in the host interface, maximum supply current for DCDC1 regulator, and default voltage and state for various LDO regulators. Also, the AXP221s does not support fine calibration of the battery fuel gauge.

This patch adds a dtsi file for all the common bindings for these PMICs. Currently this is just listing all the regulator nodes. The regulators are initialized based on their device node names.

---
 arch/arm/boot/dts/axp22x.dtsi | 143 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 143 insertions(+)
 create mode 100644 arch/arm/boot/dts/axp22x.dtsi
arch/arm/boot/dts/axp22x.dtsi new file +143 -0
new file mode 100644
index 000000000000..76302f58c478
@@ -0,0 +1,143 @@
+/*
+ * Copyright 2015 Chen-Yu Tsai
+ *
+ * Chen-Yu Tsai <[email protected]>
+ *
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
+ *
+ *  a) This file is free software; you can redistribute it and/or
+ *     modify it under the terms of the GNU General Public License as
+ *     published by the Free Software Foundation; either version 2 of the
+ *     License, or (at your option) any later version.
+ *
+ *     This file is distributed in the hope that it will be useful,
+ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *     GNU General Public License for more details.
+ *
+ * Or, alternatively,
+ *
+ *  b) Permission is hereby granted, free of charge, to any person
+ *     obtaining a copy of this software and associated documentation
+ *     files (the "Software"), to deal in the Software without
+ *     restriction, including without limitation the rights to use,
+ *     copy, modify, merge, publish, distribute, sublicense, and/or
+ *     sell copies of the Software, and to permit persons to whom the
+ *     Software is furnished to do so, subject to the following
+ *     conditions:
+ *
+ *     The above copyright notice and this permission notice shall be
+ *     included in all copies or substantial portions of the Software.
+ *
+ *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ *     OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * AXP221/221s/223 Integrated Power Management Chip
+ * http://www.x-powers.com/product/AXP22X.php
+ * http://dl.linux-sunxi.org/AXP/AXP221%20Datasheet%20V1.2%2020130326%20.pdf
+ */
+
+&axp22x {
+	interrupt-controller;
+	#interrupt-cells = <1>;
+
+	regulators {
+		/* Default work frequency for buck regulators */
+		x-powers,dcdc-freq = <3000>;
+
+		reg_dcdc1: dcdc1 {
+			regulator-name = "dcdc1";
+		};
+
+		reg_dcdc2: dcdc2 {
+			regulator-name = "dcdc2";
+		};
+
+		reg_dcdc3: dcdc3 {
+			regulator-name = "dcdc3";
+		};
+
+		reg_dcdc4: dcdc4 {
+			regulator-name = "dcdc4";
+		};
+
+		reg_dcdc5: dcdc5 {
+			regulator-name = "dcdc5";
+		};
+
+		reg_dc1sw: dc1sw {
+			regulator-name = "dc1sw";
+		};
+
+		reg_dc5ldo: dc5ldo {
+			regulator-name = "dc5ldo";
+		};
+
+		reg_aldo1: aldo1 {
+			regulator-name = "aldo1";
+		};
+
+		reg_aldo2: aldo2 {
+			regulator-name = "aldo2";
+		};
+
+		reg_aldo3: aldo3 {
+			regulator-name = "aldo3";
+		};
+
+		reg_dldo1: dldo1 {
+			regulator-name = "dldo1";
+		};
+
+		reg_dldo2: dldo2 {
+			regulator-name = "dldo2";
+		};
+
+		reg_dldo3: dldo3 {
+			regulator-name = "dldo3";
+		};
+
+		reg_dldo4: dldo4 {
+			regulator-name = "dldo4";
+		};
+
+		reg_eldo1: eldo1 {
+			regulator-name = "eldo1";
+		};
+
+		reg_eldo2: eldo2 {
+			regulator-name = "eldo2";
+		};
+
+		reg_eldo3: eldo3 {
+			regulator-name = "eldo3";
+		};
+
+		reg_ldo_io0: ldo_io0 {
+			regulator-name = "ldo_io0";
+		};
+
+		reg_ldo_io1: ldo_io1 {
+			regulator-name = "ldo_io1";
+		};
+
+		reg_rtc_ldo: rtc_ldo {
+			/* RTC_LDO is a fixed, always-on regulator */
+			regulator-always-on;
+			regulator-min-microvolt = <3000000>;
+			regulator-max-microvolt = <3000000>;
+			regulator-name = "rtc_ldo";
+		};
+	};
+};
Signature · 1 line
2.5.3
#6 lore raw

PATCH v2 2/5 ARM: dts: sunxi: Add dtsi for AXP22x PMIC

Quoted 11 lines · Chen-Yu Tsai

The AXP22x family of PMIC is used with some Allwinner SoCs. This includes the AXP221, AXP221s and AXP223. They differ in the host interface, maximum supply current for DCDC1 regulator, and default voltage and state for various LDO regulators. Also, the AXP221s does not support fine calibration of the battery fuel gauge.

This patch adds a dtsi file for all the common bindings for these PMICs. Currently this is just listing all the regulator nodes. The regulators are initialized based on their device node names.

Applied, 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/20151012/2797d1d1/attachment.sig>
#7 lore raw

PATCH v2 3/5 ARM: dts: sun6i: hummingbird: Use axp22x.dtsi for AXP221 regulators

In reply to Chen-Yu Tsai

Now that we have axp22x.dtsi describing common axp22x hardware, use it and reference the nodes instead of declaring the whole tree.

Also drop the "always-on" from the vdd-gpu regulator, since we don't support the GPU anyway.

And add a regulator reference for cpu0.

---
 arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 113 ++++++++++++++--------------
 1 file changed, 56 insertions(+), 57 deletions(-)
arch/arm/boot/dts/sun6i-a31-hummingbird.dts +56 -57
index e25d4924dbe7..a9b87ae89855 100644
@@ -69,6 +69,10 @@
 	};
 };
 
+&cpu0 {
+	cpu-supply = <&reg_dcdc3>;
+};
+
 &ehci0 {
 	status = "okay";
 };
@@ -121,7 +125,7 @@
 &mmc0 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_hummingbird>;
-	vmmc-supply = <&vcc_3v0>;
+	vmmc-supply = <&reg_dcdc1>;
 	bus-width = <4>;
 	cd-gpios = <&pio 0 8 GPIO_ACTIVE_HIGH>; /* PA8 */
 	cd-inverted;
@@ -136,7 +140,7 @@
 &mmc1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc1_pins_a>, <&wifi_reset_pin_hummingbird>;
-	vmmc-supply = <&vcc_wifi>;
+	vmmc-supply = <&reg_aldo1>;
 	mmc-pwrseq = <&wifi_pwrseq>;
 	bus-width = <4>;
 	non-removable;
@@ -173,68 +177,63 @@
 &p2wi {
 	status = "okay";
 
-	axp221: pmic at 68 {
+	axp22x: pmic at 68 {
 		compatible = "x-powers,axp221";
 		reg = <0x68>;
 		interrupt-parent = <&nmi_intc>;
 		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
-		interrupt-controller;
-		#interrupt-cells = <1>;
-
-		regulators {
-			x-powers,dcdc-freq = <3000>;
-
-			vcc_3v0: dcdc1 {
-				regulator-always-on;
-				regulator-min-microvolt = <3000000>;
-				regulator-max-microvolt = <3000000>;
-				regulator-name = "vcc-3v0";
-			};
-
-			vdd_gpu: dcdc2 {
-				regulator-always-on;
-				regulator-min-microvolt = <700000>;
-				regulator-max-microvolt = <1320000>;
-				regulator-name = "vdd-gpu";
-			};
-
-			vdd_cpu: dcdc3 {
-				regulator-always-on;
-				regulator-min-microvolt = <700000>;
-				regulator-max-microvolt = <1320000>;
-				regulator-name = "vdd-cpu";
-			};
-
-			vdd_sys_dll: dcdc4 {
-				regulator-always-on;
-				regulator-min-microvolt = <1100000>;
-				regulator-max-microvolt = <1100000>;
-				regulator-name = "vdd-sys-dll";
-			};
-
-			vcc_dram: dcdc5 {
-				regulator-always-on;
-				regulator-min-microvolt = <1500000>;
-				regulator-max-microvolt = <1500000>;
-				regulator-name = "vcc-dram";
-			};
-
-			vcc_wifi: aldo1 {
-				regulator-min-microvolt = <3300000>;
-				regulator-max-microvolt = <3300000>;
-				regulator-name = "vcc_wifi";
-			};
-
-			avcc: aldo3 {
-				regulator-always-on;
-				regulator-min-microvolt = <3000000>;
-				regulator-max-microvolt = <3000000>;
-				regulator-name = "avcc";
-			};
-		};
 	};
 };
 
+#include "axp22x.dtsi"
+
+&reg_aldo1 {
+	regulator-min-microvolt = <3300000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "vcc-wifi";
+};
+
+&reg_aldo3 {
+	regulator-always-on;
+	regulator-min-microvolt = <2700000>;
+	regulator-max-microvolt = <3300000>;
+	regulator-name = "avcc";
+};
+
+&reg_dcdc1 {
+	regulator-always-on;
+	regulator-min-microvolt = <3000000>;
+	regulator-max-microvolt = <3000000>;
+	regulator-name = "vcc-3v0";
+};
+
+&reg_dcdc2 {
+	regulator-min-microvolt = <700000>;
+	regulator-max-microvolt = <1320000>;
+	regulator-name = "vdd-gpu";
+};
+
+&reg_dcdc3 {
+	regulator-always-on;
+	regulator-min-microvolt = <700000>;
+	regulator-max-microvolt = <1320000>;
+	regulator-name = "vdd-cpu";
+};
+
+&reg_dcdc4 {
+	regulator-always-on;
+	regulator-min-microvolt = <700000>;
+	regulator-max-microvolt = <1320000>;
+	regulator-name = "vdd-sys-dll";
+};
+
+&reg_dcdc5 {
+	regulator-always-on;
+	regulator-min-microvolt = <1500000>;
+	regulator-max-microvolt = <1500000>;
+	regulator-name = "vcc-dram";
+};
+
 &reg_usb1_vbus {
 	gpio = <&pio 7 24 GPIO_ACTIVE_HIGH>; /* PH24 */
 	status = "okay";
Signature · 1 line
2.5.3
#8 lore raw

PATCH v2 3/5 ARM: dts: sun6i: hummingbird: Use axp22x.dtsi for AXP221 regulators

Quoted 9 lines · Chen-Yu Tsai

Now that we have axp22x.dtsi describing common axp22x hardware, use it and reference the nodes instead of declaring the whole tree.

Also drop the "always-on" from the vdd-gpu regulator, since we don't support the GPU anyway.

And add a regulator reference for cpu0.

Applied, 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/20151013/0b6b0920/attachment.sig>
#9 lore raw

PATCH v2 4/5 ARM: dts: sun6i: hummingbird: Enable AXP221 DC5LDO regulator as "vdd-cpus"

In reply to Chen-Yu Tsai

The DC5LDO regulator supplies VDD-CPUS, which is for the embedded controller in the A31 SoC.

---
 arch/arm/boot/dts/sun6i-a31-hummingbird.dts | 6 ++++++
 1 file changed, 6 insertions(+)
arch/arm/boot/dts/sun6i-a31-hummingbird.dts +6 -0
index a9b87ae89855..9a74637f677f 100644
@@ -200,6 +200,12 @@
 	regulator-name = "avcc";
 };
 
+&reg_dc5ldo {
+	regulator-min-microvolt = <700000>;
+	regulator-max-microvolt = <1320000>;
+	regulator-name = "vdd-cpus";
+};
+
 &reg_dcdc1 {
 	regulator-always-on;
 	regulator-min-microvolt = <3000000>;
Signature · 1 line
2.5.3
#10 lore raw

PATCH v2 4/5 ARM: dts: sun6i: hummingbird: Enable AXP221 DC5LDO regulator as "vdd-cpus"

Quoted 4 lines · Chen-Yu Tsai

The DC5LDO regulator supplies VDD-CPUS, which is for the embedded controller in the A31 SoC.

Applied, 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/20151013/d9f6b85d/attachment-0001.sig>
#11 lore raw

PATCH v2 5/5 ARM: dts: sun6i: Add support for Sinlinx A31s SDK board

In reply to Chen-Yu Tsai

The Sinlinx A31s SDK is a A31s based module/baseboard development kit.

The core module has the SoC, PMIC, DRAM, eMMC and supporting components. There are also pads for UART0, JTAG and I2S.

The baseboard has 100 Mbps Ethernet, 5x USB 2.0 host ports via a USB 2.0 hub chip, MMC, HDMI, SPDIF, CIR, audio jacks, 2 tablet-like volume buttons, RS232 style UART and USB OTG (though VBUS is not connected). Various headers are available for other addon modules, such as SDIO WiFi, LCD display, camera sensor, UARTs, I2C, SPI and GPIOs.

---
 arch/arm/boot/dts/Makefile                     |   1 +
 arch/arm/boot/dts/sun6i-a31s-sina31s-core.dtsi | 140 +++++++++++++++++++++
 arch/arm/boot/dts/sun6i-a31s-sina31s.dts       | 167 +++++++++++++++++++++++++
 3 files changed, 308 insertions(+)
 create mode 100644 arch/arm/boot/dts/sun6i-a31s-sina31s-core.dtsi
 create mode 100644 arch/arm/boot/dts/sun6i-a31s-sina31s.dts
arch/arm/boot/dts/Makefile +1 -0
index 342ab3116feb..9fb5ece17b8e 100644
@@ -609,6 +609,7 @@ dtb-$(CONFIG_MACH_SUN6I) += \
 	sun6i-a31-m9.dtb \
 	sun6i-a31-mele-a1000g-quad.dtb \
 	sun6i-a31s-cs908.dtb \
+	sun6i-a31s-sina31s.dtb \
 	sun6i-a31s-yones-toptech-bs1078-v2.dtb
 dtb-$(CONFIG_MACH_SUN7I) += \
 	sun7i-a20-bananapi.dtb \
arch/arm/boot/dts/sun6i-a31s-sina31s-core.dtsi new file +140 -0

140 lines not on this page · raw message

arch/arm/boot/dts/sun6i-a31s-sina31s.dts new file +167 -0

167 lines not on this page · raw message

Signature · 1 line
2.5.3
#12 lore raw

PATCH v2 5/5 ARM: dts: sun6i: Add support for Sinlinx A31s SDK board

Hi,

arch/arm/boot/dts/sun6i-a31s-sina31s.dts line 102

Quoted 13 lines · Chen-Yu Tsai

+&i2c0 {

arch/arm/boot/dts/sun6i-a31s-sina31s.dts new file +12 -0
+	/* Available on camera header */
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c0_pins_a>;
+	status = "okay";
+};
+
+&i2c1 {
+	/* Available on LCD header */
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c1_pins_a>;
+	status = "okay";
+};

Are those two actually used anywhere on the board itself, or just exposed on the pin headers?

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/20151012/722fb7be/attachment.sig>
#13 lore raw

PATCH v2 5/5 ARM: dts: sun6i: Add support for Sinlinx A31s SDK board

Quoted 19 lines · Maxime Ripard

Hi,

arch/arm/boot/dts/sun6i-a31s-sina31s.dts line 102

Quoted 13 lines · Chen-Yu Tsai

+&i2c0 {

arch/arm/boot/dts/sun6i-a31s-sina31s.dts new file +12 -0
+     /* Available on camera header */
+     pinctrl-names = "default";
+     pinctrl-0 = <&i2c0_pins_a>;
+     status = "okay";
+};
+
+&i2c1 {
+     /* Available on LCD header */
+     pinctrl-names = "default";
+     pinctrl-0 = <&i2c1_pins_a>;
+     status = "okay";
+};

Are those two actually used anywhere on the board itself, or just exposed on the pin headers?

They are exposed as grouped headers. 1 header has all the camera related stuff, like the CSI pins, and various voltage sources from the PMIC. The other has the LCD pins, resistive touchpanel, I2C for capacitive touchpanel, and of course voltage sources.

The LCD header is an FPC connector, while the camera header is the common (common for sunxi devboards) 2.0mm pins. I'm not sure if there is some common pinout amongst vendors, but at least Sinlinx sells their own 7" LCD display w/ CTP, VGA converter, and camera modules. I have both the LCD and VGA converter.

Note that these I2C pins have valid external pull-ups. I doubt they can be easily re-purposed.

Regards
ChenYu

#14 lore raw

PATCH v2 5/5 ARM: dts: sun6i: Add support for Sinlinx A31s SDK board

Hi,

Quoted 27 lines · Chen-Yu Tsai
Quoted 19 lines · Maxime Ripard

Hi,

arch/arm/boot/dts/sun6i-a31s-sina31s.dts line 102

Quoted 13 lines · Chen-Yu Tsai

+&i2c0 {

arch/arm/boot/dts/sun6i-a31s-sina31s.dts new file +12 -0
+     /* Available on camera header */
+     pinctrl-names = "default";
+     pinctrl-0 = <&i2c0_pins_a>;
+     status = "okay";
+};
+
+&i2c1 {
+     /* Available on LCD header */
+     pinctrl-names = "default";
+     pinctrl-0 = <&i2c1_pins_a>;
+     status = "okay";
+};

Are those two actually used anywhere on the board itself, or just exposed on the pin headers?

They are exposed as grouped headers. 1 header has all the camera related stuff, like the CSI pins, and various voltage sources from the PMIC. The other has the LCD pins, resistive touchpanel, I2C for capacitive touchpanel, and of course voltage sources.

Quoted 8 lines

The LCD header is an FPC connector, while the camera header is the common (common for sunxi devboards) 2.0mm pins. I'm not sure if there is some common pinout amongst vendors, but at least Sinlinx sells their own 7" LCD display w/ CTP, VGA converter, and camera modules. I have both the LCD and VGA converter.

Note that these I2C pins have valid external pull-ups. I doubt they can be easily re-purposed.

Still, the policy we've had so far is that if the user can use it for something else (like a GPIO, which is the case here), we don't do enforce any default, and the user will make the right choice.

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/20151016/ed61ae31/attachment.sig>
#15 lore raw

PATCH v2 5/5 ARM: dts: sun6i: Add support for Sinlinx A31s SDK board

Quoted 36 lines · Maxime Ripard

Hi,

Quoted 33 lines · Chen-Yu Tsai
Quoted 19 lines · Maxime Ripard

Hi,

arch/arm/boot/dts/sun6i-a31s-sina31s.dts line 102

Quoted 13 lines · Chen-Yu Tsai

+&i2c0 {

arch/arm/boot/dts/sun6i-a31s-sina31s.dts new file +12 -0
+     /* Available on camera header */
+     pinctrl-names = "default";
+     pinctrl-0 = <&i2c0_pins_a>;
+     status = "okay";
+};
+
+&i2c1 {
+     /* Available on LCD header */
+     pinctrl-names = "default";
+     pinctrl-0 = <&i2c1_pins_a>;
+     status = "okay";
+};

Are those two actually used anywhere on the board itself, or just exposed on the pin headers?

They are exposed as grouped headers. 1 header has all the camera related stuff, like the CSI pins, and various voltage sources from the PMIC. The other has the LCD pins, resistive touchpanel, I2C for capacitive touchpanel, and of course voltage sources.

The LCD header is an FPC connector, while the camera header is the common (common for sunxi devboards) 2.0mm pins. I'm not sure if there is some common pinout amongst vendors, but at least Sinlinx sells their own 7" LCD display w/ CTP, VGA converter, and camera modules. I have both the LCD and VGA converter.

Quoted 6 lines
Quoted 2 lines

Note that these I2C pins have valid external pull-ups. I doubt they can be easily re-purposed.

Still, the policy we've had so far is that if the user can use it for something else (like a GPIO, which is the case here), we don't do enforce any default, and the user will make the right choice.

To clarify, unless an actual device is connected, forcing a choice, we won't make that choice for the user, even if the connector is specifically designed for one type of application.

Did I get that right?

Thanks

ChenYu

#16 lore raw

PATCH v2 5/5 ARM: dts: sun6i: Add support for Sinlinx A31s SDK board

Quoted 45 lines · Chen-Yu Tsai
Quoted 36 lines · Maxime Ripard

Hi,

Quoted 33 lines · Chen-Yu Tsai
Quoted 19 lines · Maxime Ripard

Hi,

arch/arm/boot/dts/sun6i-a31s-sina31s.dts line 102

Quoted 13 lines · Chen-Yu Tsai

+&i2c0 {

arch/arm/boot/dts/sun6i-a31s-sina31s.dts new file +12 -0
+     /* Available on camera header */
+     pinctrl-names = "default";
+     pinctrl-0 = <&i2c0_pins_a>;
+     status = "okay";
+};
+
+&i2c1 {
+     /* Available on LCD header */
+     pinctrl-names = "default";
+     pinctrl-0 = <&i2c1_pins_a>;
+     status = "okay";
+};

Are those two actually used anywhere on the board itself, or just exposed on the pin headers?

They are exposed as grouped headers. 1 header has all the camera related stuff, like the CSI pins, and various voltage sources from the PMIC. The other has the LCD pins, resistive touchpanel, I2C for capacitive touchpanel, and of course voltage sources.

The LCD header is an FPC connector, while the camera header is the common (common for sunxi devboards) 2.0mm pins. I'm not sure if there is some common pinout amongst vendors, but at least Sinlinx sells their own 7" LCD display w/ CTP, VGA converter, and camera modules. I have both the LCD and VGA converter.

Quoted 6 lines
Quoted 2 lines

Note that these I2C pins have valid external pull-ups. I doubt they can be easily re-purposed.

Still, the policy we've had so far is that if the user can use it for something else (like a GPIO, which is the case here), we don't do enforce any default, and the user will make the right choice.

Quoted 5 lines

To clarify, unless an actual device is connected, forcing a choice, we won't make that choice for the user, even if the connector is specifically designed for one type of application.

Did I get that right?

Yep.

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/20151019/049a7d7f/attachment.sig>
#17 lore raw

PATCH v2 5/5 ARM: dts: sun6i: Add support for Sinlinx A31s SDK board

Quoted 46 lines · Maxime Ripard
Quoted 45 lines · Chen-Yu Tsai
Quoted 42 lines · Maxime Ripard

Hi,

Quoted 27 lines · Chen-Yu Tsai
Quoted 19 lines · Maxime Ripard

Hi,

arch/arm/boot/dts/sun6i-a31s-sina31s.dts line 102

Quoted 13 lines · Chen-Yu Tsai

+&i2c0 {

arch/arm/boot/dts/sun6i-a31s-sina31s.dts new file +12 -0
+     /* Available on camera header */
+     pinctrl-names = "default";
+     pinctrl-0 = <&i2c0_pins_a>;
+     status = "okay";
+};
+
+&i2c1 {
+     /* Available on LCD header */
+     pinctrl-names = "default";
+     pinctrl-0 = <&i2c1_pins_a>;
+     status = "okay";
+};

Are those two actually used anywhere on the board itself, or just exposed on the pin headers?

They are exposed as grouped headers. 1 header has all the camera related stuff, like the CSI pins, and various voltage sources from the PMIC. The other has the LCD pins, resistive touchpanel, I2C for capacitive touchpanel, and of course voltage sources.

Quoted 8 lines

The LCD header is an FPC connector, while the camera header is the common (common for sunxi devboards) 2.0mm pins. I'm not sure if there is some common pinout amongst vendors, but at least Sinlinx sells their own 7" LCD display w/ CTP, VGA converter, and camera modules. I have both the LCD and VGA converter.

Note that these I2C pins have valid external pull-ups. I doubt they can be easily re-purposed.

Still, the policy we've had so far is that if the user can use it for something else (like a GPIO, which is the case here), we don't do enforce any default, and the user will make the right choice.

Quoted 7 lines
Quoted 5 lines

To clarify, unless an actual device is connected, forcing a choice, we won't make that choice for the user, even if the connector is specifically designed for one type of application.

Did I get that right?

Yep.

Cool. I already sent an updated version of this patch yesterday.

ChenYu