Patchwork ARM: sunxi: dt: Add device tree for Mele A1000

login
register
mail settings
Submitter Emilio López
Date Aug. 13, 2013, 7:07 p.m.
Message ID <1376420865-4650-1-git-send-email-emilio@elopez.com.ar>
Download mbox | patch
Permalink /patch/266906/
State New
Headers show

Comments

Emilio López - Aug. 13, 2013, 7:07 p.m.
This adds a device tree usable on Mele A1000 (and A2000, as it
apparently is the same device except for the case). This device features
one UART port, Ethernet, an AXP209 PMU on i2c0 and two user configurable
LEDs.

Signed-off-by: Emilio López <emilio@elopez.com.ar>
---

This has been tested by arokux on #linux-sunxi in Freenode and found to 
work correctly.

 arch/arm/boot/dts/Makefile            |   1 +
 arch/arm/boot/dts/sun4i-a10-a1000.dts | 106 ++++++++++++++++++++++++++++++++++
 2 files changed, 107 insertions(+)
 create mode 100644 arch/arm/boot/dts/sun4i-a10-a1000.dts
Maxime Ripard - Aug. 13, 2013, 8:30 p.m.
Hi Emilio,

On Tue, Aug 13, 2013 at 04:07:45PM -0300, Emilio López wrote:
> This adds a device tree usable on Mele A1000 (and A2000, as it
> apparently is the same device except for the case). This device features
> one UART port, Ethernet, an AXP209 PMU on i2c0 and two user configurable
> LEDs.
> 
> Signed-off-by: Emilio López <emilio@elopez.com.ar>
> ---
> 
> This has been tested by arokux on #linux-sunxi in Freenode and found to 
> work correctly.
>
>  arch/arm/boot/dts/Makefile            |   1 +
>  arch/arm/boot/dts/sun4i-a10-a1000.dts | 106 ++++++++++++++++++++++++++++++++++
>  2 files changed, 107 insertions(+)
>  create mode 100644 arch/arm/boot/dts/sun4i-a10-a1000.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 641b3c9..3fd3919 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -206,6 +206,7 @@ dtb-$(CONFIG_ARCH_STI)+= stih415-b2000.dtb \
>  	stih415-b2020.dtb \
>  	stih416-b2020.dtb
>  dtb-$(CONFIG_ARCH_SUNXI) += \
> +	sun4i-a10-a1000.dtb \
>  	sun4i-a10-cubieboard.dtb \
>  	sun4i-a10-mini-xplus.dtb \
>  	sun4i-a10-hackberry.dtb \
> diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
> new file mode 100644
> index 0000000..304a38e
> --- /dev/null
> +++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
> @@ -0,0 +1,106 @@
> +/*
> + * Copyright 2013 Emilio López
> + *
> + * Emilio López <emilio@elopez.com.ar>
> + *
> + * The code contained herein is licensed under the GNU General Public
> + * License. You may obtain a copy of the GNU General Public License
> + * Version 2 or later at the following locations:
> + *
> + * http://www.opensource.org/licenses/gpl-license.html
> + * http://www.gnu.org/copyleft/gpl.html
> + */
> +
> +/dts-v1/;
> +/include/ "sun4i-a10.dtsi"
> +
> +/ {
> +	model = "Mele A1000";
> +	compatible = "mele,a1000", "allwinner,sun4i-a10";
> +
> +	aliases {
> +		serial0 = &uart0;
> +	};
> +
> +	chosen {
> +		bootargs = "earlyprintk console=ttyS0,115200";
> +	};

That's not quite useful anymore now that we have a DT-aware bootloader,
I'd remove it.

> +
> +	soc@01c20000 {
> +		emac: ethernet@01c0b000 {
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&emac_pins_a>;
> +			phy = <&phy1>;
> +			status = "okay";
> +		};
> +
> +		mdio@01c0b080 {
> +			phy-supply = <&reg_emac_3v3>;
> +			status = "okay";
> +
> +			phy1: ethernet-phy@1 {
> +				reg = <1>;
> +			};
> +		};
> +
> +		pinctrl@01c20800 {
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&a1000_hogs>;
> +
> +			a1000_hogs: hogs@0 {
> +				allwinner,pins = "PH15";
> +				allwinner,function = "gpio_out";
> +				allwinner,drive = <0>;
> +				allwinner,pull = <0>;
> +			};

Why using the hog pins here? I don't think you require it anymore, just
grab the pinctrl node from the regulator, it should work, right?

> +
> +			led_pins_a1000: led_pins@0 {
> +				allwinner,pins = "PH10", "PH20";
> +				allwinner,function = "gpio_out";
> +				allwinner,drive = <1>;

Do you really need the extra 10 mA here?

> +				allwinner,pull = <0>;
> +			};
> +		};
> +
> +		uart0: serial@01c28000 {
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&uart0_pins_a>;
> +			status = "okay";
> +		};
> +
> +		i2c0: i2c@01c2ac00 {
> +			pinctrl-names = "default";
> +			pinctrl-0 = <&i2c0_pins_a>;
> +			status = "okay";
> +		};
> +	};
> +
> +	leds {
> +		compatible = "gpio-leds";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&led_pins_a1000>;
> +
> +		red {
> +			label = "a1000:red:usr";
> +			gpios = <&pio 7 10 0>;
> +		};
> +
> +		blue {
> +			label = "a1000:blue:usr";
> +			gpios = <&pio 7 20 0>;
> +		};
> +	};
> +
> +	regulators {
> +		compatible = "simple-bus";
> +
> +		reg_emac_3v3: emac-3v3 {
> +			compatible = "regulator-fixed";
> +			regulator-name = "emac-3v3";
> +			regulator-min-microvolt = <3300000>;
> +			regulator-max-microvolt = <3300000>;
> +			enable-active-high;
> +			gpio = <&pio 7 15 0>;
> +		};
> +	};
> +};
> -- 
> 1.8.3.4
> 

Thanks!
Maxime
Maxime Ripard - Aug. 14, 2013, 8:05 a.m.
On Wed, Aug 14, 2013 at 02:50:14AM +0200, Arokux X wrote:
> Tested-by: Arokux <arokux@gmail.com>

We won't take any contributions using a pseudonym. Please use your real
name.

Maxime

Patch

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 641b3c9..3fd3919 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -206,6 +206,7 @@  dtb-$(CONFIG_ARCH_STI)+= stih415-b2000.dtb \
 	stih415-b2020.dtb \
 	stih416-b2020.dtb
 dtb-$(CONFIG_ARCH_SUNXI) += \
+	sun4i-a10-a1000.dtb \
 	sun4i-a10-cubieboard.dtb \
 	sun4i-a10-mini-xplus.dtb \
 	sun4i-a10-hackberry.dtb \
diff --git a/arch/arm/boot/dts/sun4i-a10-a1000.dts b/arch/arm/boot/dts/sun4i-a10-a1000.dts
new file mode 100644
index 0000000..304a38e
--- /dev/null
+++ b/arch/arm/boot/dts/sun4i-a10-a1000.dts
@@ -0,0 +1,106 @@ 
+/*
+ * Copyright 2013 Emilio López
+ *
+ * Emilio López <emilio@elopez.com.ar>
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+
+/dts-v1/;
+/include/ "sun4i-a10.dtsi"
+
+/ {
+	model = "Mele A1000";
+	compatible = "mele,a1000", "allwinner,sun4i-a10";
+
+	aliases {
+		serial0 = &uart0;
+	};
+
+	chosen {
+		bootargs = "earlyprintk console=ttyS0,115200";
+	};
+
+	soc@01c20000 {
+		emac: ethernet@01c0b000 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&emac_pins_a>;
+			phy = <&phy1>;
+			status = "okay";
+		};
+
+		mdio@01c0b080 {
+			phy-supply = <&reg_emac_3v3>;
+			status = "okay";
+
+			phy1: ethernet-phy@1 {
+				reg = <1>;
+			};
+		};
+
+		pinctrl@01c20800 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&a1000_hogs>;
+
+			a1000_hogs: hogs@0 {
+				allwinner,pins = "PH15";
+				allwinner,function = "gpio_out";
+				allwinner,drive = <0>;
+				allwinner,pull = <0>;
+			};
+
+			led_pins_a1000: led_pins@0 {
+				allwinner,pins = "PH10", "PH20";
+				allwinner,function = "gpio_out";
+				allwinner,drive = <1>;
+				allwinner,pull = <0>;
+			};
+		};
+
+		uart0: serial@01c28000 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&uart0_pins_a>;
+			status = "okay";
+		};
+
+		i2c0: i2c@01c2ac00 {
+			pinctrl-names = "default";
+			pinctrl-0 = <&i2c0_pins_a>;
+			status = "okay";
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&led_pins_a1000>;
+
+		red {
+			label = "a1000:red:usr";
+			gpios = <&pio 7 10 0>;
+		};
+
+		blue {
+			label = "a1000:blue:usr";
+			gpios = <&pio 7 20 0>;
+		};
+	};
+
+	regulators {
+		compatible = "simple-bus";
+
+		reg_emac_3v3: emac-3v3 {
+			compatible = "regulator-fixed";
+			regulator-name = "emac-3v3";
+			regulator-min-microvolt = <3300000>;
+			regulator-max-microvolt = <3300000>;
+			enable-active-high;
+			gpio = <&pio 7 15 0>;
+		};
+	};
+};