All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
@ 2015-01-25 15:32 ` Adam Sampson
  0 siblings, 0 replies; 14+ messages in thread
From: Adam Sampson @ 2015-01-25 15:32 UTC (permalink / raw)
  To: maxime.ripard; +Cc: devicetree, Adam Sampson, linux-arm-kernel

Add support for the LinkSprite pcDuino 3 Nano board. This is a low-cost
Allwinner A20 board with Arduino-style GPIO headers; it features 1G RAM,
4G NAND flash, 1 micro-SD, 2 USB sockets, 1 micro USB socket for OTG and
another for power in, HDMI, SATA, 5V power for SATA devices, gigabit
Ethernet, an IR receiver, 3.5mm audio out and a MIPI camera connector.

For more details, see: http://linux-sunxi.org/LinkSprite_pcDuino3_Nano

Signed-off-by: Adam Sampson <ats@offog.org>
---
 arch/arm/boot/dts/Makefile                    |    3 +-
 arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts |  203 +++++++++++++++++++++++++
 2 files changed, 205 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 7df26a2..c025724 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -479,7 +479,8 @@ dtb-$(CONFIG_MACH_SUN7I) += \
 	sun7i-a20-olinuxino-lime.dtb \
 	sun7i-a20-olinuxino-lime2.dtb \
 	sun7i-a20-olinuxino-micro.dtb \
-	sun7i-a20-pcduino3.dtb
+	sun7i-a20-pcduino3.dtb \
+	sun7i-a20-pcduino3-nano.dtb
 dtb-$(CONFIG_MACH_SUN8I) += \
 	sun8i-a23-ippo-q8h-v5.dtb \
 	sun8i-a23-ippo-q8h-v1.2.dtb
diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
new file mode 100644
index 0000000..a2b18de
--- /dev/null
+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
@@ -0,0 +1,203 @@
+/*
+ * Copyright 2015 Adam Sampson <ats@offog.org>
+ *
+ * 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.
+ *
+ *     You should have received a copy of the GNU General Public
+ *     License along with this file; if not, write to the Free
+ *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ *     MA 02110-1301 USA
+ *
+ * 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.
+ */
+
+/dts-v1/;
+#include "sun7i-a20.dtsi"
+#include "sunxi-common-regulators.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+	model = "LinkSprite pcDuino3 Nano";
+	compatible = "linksprite,pcduino3-nano", "allwinner,sun7i-a20";
+
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&led_pins_pcduino3_nano>;
+
+		led3 {
+			label = "pcduino3-nano:green:led3";
+			gpios = <&pio 7 16 GPIO_ACTIVE_LOW>; /* PH16 */
+		};
+
+		led4 {
+			label = "pcduino3-nano:green:led4";
+			gpios = <&pio 7 15 GPIO_ACTIVE_LOW>; /* PH15 */
+		};
+	};
+};
+
+&ahci {
+	target-supply = <&reg_ahci_5v>;
+	status = "okay";
+};
+
+&ehci0 {
+	status = "okay";
+};
+
+&ehci1 {
+	status = "okay";
+};
+
+&gmac {
+	pinctrl-names = "default";
+	pinctrl-0 = <&gmac_pins_rgmii_a>;
+	phy = <&phy1>;
+	phy-mode = "rgmii";
+	status = "okay";
+
+	phy1: ethernet-phy@1 {
+		reg = <1>;
+	};
+};
+
+&i2c0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c0_pins_a>;
+	status = "okay";
+
+	axp209: pmic@34 {
+		compatible = "x-powers,axp209";
+		reg = <0x34>;
+		interrupt-parent = <&nmi_intc>;
+		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+
+		interrupt-controller;
+		#interrupt-cells = <1>;
+	};
+};
+
+&i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c2_pins_a>;
+	status = "okay";
+};
+
+&ir0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&ir0_pins_a>;
+	status = "okay";
+};
+
+&mmc0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
+	vmmc-supply = <&reg_vcc3v3>;
+	bus-width = <4>;
+	cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
+	cd-inverted;
+	status = "okay";
+};
+
+&ohci0 {
+	status = "okay";
+};
+
+&ohci1 {
+	status = "okay";
+};
+
+&pio {
+	ahci_pwr_pin_a: ahci_pwr_pin@0 {
+		allwinner,pins = "PH2";
+	};
+
+	led_pins_pcduino3_nano: led_pins@0 {
+		allwinner,pins = "PH16", "PH15";
+		allwinner,function = "gpio_out";
+		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+	};
+
+	usb1_vbus_pin_pcduino3_nano: usb1_vbus_pin@0 {
+		allwinner,pins = "PH11";
+		allwinner,function = "gpio_out";
+		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+	};
+};
+
+&reg_ahci_5v {
+	gpio = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
+	status = "okay";
+};
+
+&reg_usb1_vbus {
+	pinctrl-0 = <&usb1_vbus_pin_pcduino3_nano>;
+	gpio = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
+	status = "okay";
+};
+
+&reg_usb2_vbus {
+	status = "okay";
+};
+
+&spi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi0_pins_a>;
+	status = "okay";
+};
+
+&uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart0_pins_a>;
+	status = "okay";
+};
+
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart2_pins_a>;
+	status = "okay";
+};
+
+&usbphy {
+	usb1_vbus-supply = <&reg_usb1_vbus>;
+	usb2_vbus-supply = <&reg_usb2_vbus>;
+	status = "okay";
+};
-- 
1.7.10.4

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

* [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
@ 2015-01-25 15:32 ` Adam Sampson
  0 siblings, 0 replies; 14+ messages in thread
From: Adam Sampson @ 2015-01-25 15:32 UTC (permalink / raw)
  To: linux-arm-kernel

Add support for the LinkSprite pcDuino 3 Nano board. This is a low-cost
Allwinner A20 board with Arduino-style GPIO headers; it features 1G RAM,
4G NAND flash, 1 micro-SD, 2 USB sockets, 1 micro USB socket for OTG and
another for power in, HDMI, SATA, 5V power for SATA devices, gigabit
Ethernet, an IR receiver, 3.5mm audio out and a MIPI camera connector.

For more details, see: http://linux-sunxi.org/LinkSprite_pcDuino3_Nano

Signed-off-by: Adam Sampson <ats@offog.org>
---
 arch/arm/boot/dts/Makefile                    |    3 +-
 arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts |  203 +++++++++++++++++++++++++
 2 files changed, 205 insertions(+), 1 deletion(-)
 create mode 100644 arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 7df26a2..c025724 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -479,7 +479,8 @@ dtb-$(CONFIG_MACH_SUN7I) += \
 	sun7i-a20-olinuxino-lime.dtb \
 	sun7i-a20-olinuxino-lime2.dtb \
 	sun7i-a20-olinuxino-micro.dtb \
-	sun7i-a20-pcduino3.dtb
+	sun7i-a20-pcduino3.dtb \
+	sun7i-a20-pcduino3-nano.dtb
 dtb-$(CONFIG_MACH_SUN8I) += \
 	sun8i-a23-ippo-q8h-v5.dtb \
 	sun8i-a23-ippo-q8h-v1.2.dtb
diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
new file mode 100644
index 0000000..a2b18de
--- /dev/null
+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
@@ -0,0 +1,203 @@
+/*
+ * Copyright 2015 Adam Sampson <ats@offog.org>
+ *
+ * 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.
+ *
+ *     You should have received a copy of the GNU General Public
+ *     License along with this file; if not, write to the Free
+ *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ *     MA 02110-1301 USA
+ *
+ * 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.
+ */
+
+/dts-v1/;
+#include "sun7i-a20.dtsi"
+#include "sunxi-common-regulators.dtsi"
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/arm-gic.h>
+
+/ {
+	model = "LinkSprite pcDuino3 Nano";
+	compatible = "linksprite,pcduino3-nano", "allwinner,sun7i-a20";
+
+	leds {
+		compatible = "gpio-leds";
+		pinctrl-names = "default";
+		pinctrl-0 = <&led_pins_pcduino3_nano>;
+
+		led3 {
+			label = "pcduino3-nano:green:led3";
+			gpios = <&pio 7 16 GPIO_ACTIVE_LOW>; /* PH16 */
+		};
+
+		led4 {
+			label = "pcduino3-nano:green:led4";
+			gpios = <&pio 7 15 GPIO_ACTIVE_LOW>; /* PH15 */
+		};
+	};
+};
+
+&ahci {
+	target-supply = <&reg_ahci_5v>;
+	status = "okay";
+};
+
+&ehci0 {
+	status = "okay";
+};
+
+&ehci1 {
+	status = "okay";
+};
+
+&gmac {
+	pinctrl-names = "default";
+	pinctrl-0 = <&gmac_pins_rgmii_a>;
+	phy = <&phy1>;
+	phy-mode = "rgmii";
+	status = "okay";
+
+	phy1: ethernet-phy at 1 {
+		reg = <1>;
+	};
+};
+
+&i2c0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c0_pins_a>;
+	status = "okay";
+
+	axp209: pmic at 34 {
+		compatible = "x-powers,axp209";
+		reg = <0x34>;
+		interrupt-parent = <&nmi_intc>;
+		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
+
+		interrupt-controller;
+		#interrupt-cells = <1>;
+	};
+};
+
+&i2c2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2c2_pins_a>;
+	status = "okay";
+};
+
+&ir0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&ir0_pins_a>;
+	status = "okay";
+};
+
+&mmc0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
+	vmmc-supply = <&reg_vcc3v3>;
+	bus-width = <4>;
+	cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
+	cd-inverted;
+	status = "okay";
+};
+
+&ohci0 {
+	status = "okay";
+};
+
+&ohci1 {
+	status = "okay";
+};
+
+&pio {
+	ahci_pwr_pin_a: ahci_pwr_pin at 0 {
+		allwinner,pins = "PH2";
+	};
+
+	led_pins_pcduino3_nano: led_pins at 0 {
+		allwinner,pins = "PH16", "PH15";
+		allwinner,function = "gpio_out";
+		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+	};
+
+	usb1_vbus_pin_pcduino3_nano: usb1_vbus_pin at 0 {
+		allwinner,pins = "PH11";
+		allwinner,function = "gpio_out";
+		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
+		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
+	};
+};
+
+&reg_ahci_5v {
+	gpio = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
+	status = "okay";
+};
+
+&reg_usb1_vbus {
+	pinctrl-0 = <&usb1_vbus_pin_pcduino3_nano>;
+	gpio = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
+	status = "okay";
+};
+
+&reg_usb2_vbus {
+	status = "okay";
+};
+
+&spi0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&spi0_pins_a>;
+	status = "okay";
+};
+
+&uart0 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart0_pins_a>;
+	status = "okay";
+};
+
+&uart2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&uart2_pins_a>;
+	status = "okay";
+};
+
+&usbphy {
+	usb1_vbus-supply = <&reg_usb1_vbus>;
+	usb2_vbus-supply = <&reg_usb2_vbus>;
+	status = "okay";
+};
-- 
1.7.10.4

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

* Re: [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
  2015-01-25 15:32 ` Adam Sampson
@ 2015-01-25 16:48     ` Maxime Ripard
  -1 siblings, 0 replies; 14+ messages in thread
From: Maxime Ripard @ 2015-01-25 16:48 UTC (permalink / raw)
  To: Adam Sampson
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r

[-- Attachment #1: Type: text/plain, Size: 7902 bytes --]

Hi Adam,

On Sun, Jan 25, 2015 at 03:32:01PM +0000, Adam Sampson wrote:
> Add support for the LinkSprite pcDuino 3 Nano board. This is a low-cost
> Allwinner A20 board with Arduino-style GPIO headers; it features 1G RAM,
> 4G NAND flash, 1 micro-SD, 2 USB sockets, 1 micro USB socket for OTG and
> another for power in, HDMI, SATA, 5V power for SATA devices, gigabit
> Ethernet, an IR receiver, 3.5mm audio out and a MIPI camera connector.
> 
> For more details, see: http://linux-sunxi.org/LinkSprite_pcDuino3_Nano
> 
> Signed-off-by: Adam Sampson <ats-G+91BasbrijYtjvyW6yDsg@public.gmane.org>

Thanks for your patch.

> ---
>  arch/arm/boot/dts/Makefile                    |    3 +-
>  arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts |  203 +++++++++++++++++++++++++
>  2 files changed, 205 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 7df26a2..c025724 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -479,7 +479,8 @@ dtb-$(CONFIG_MACH_SUN7I) += \
>  	sun7i-a20-olinuxino-lime.dtb \
>  	sun7i-a20-olinuxino-lime2.dtb \
>  	sun7i-a20-olinuxino-micro.dtb \
> -	sun7i-a20-pcduino3.dtb
> +	sun7i-a20-pcduino3.dtb \
> +	sun7i-a20-pcduino3-nano.dtb
>  dtb-$(CONFIG_MACH_SUN8I) += \
>  	sun8i-a23-ippo-q8h-v5.dtb \
>  	sun8i-a23-ippo-q8h-v1.2.dtb
> diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
> new file mode 100644
> index 0000000..a2b18de
> --- /dev/null
> +++ b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
> @@ -0,0 +1,203 @@
> +/*
> + * Copyright 2015 Adam Sampson <ats-G+91BasbrijYtjvyW6yDsg@public.gmane.org>
> + *
> + * 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.
> + *
> + *     You should have received a copy of the GNU General Public
> + *     License along with this file; if not, write to the Free
> + *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
> + *     MA 02110-1301 USA
> + *
> + * 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.
> + */
> +
> +/dts-v1/;
> +#include "sun7i-a20.dtsi"
> +#include "sunxi-common-regulators.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +/ {
> +	model = "LinkSprite pcDuino3 Nano";
> +	compatible = "linksprite,pcduino3-nano", "allwinner,sun7i-a20";
> +
> +	leds {
> +		compatible = "gpio-leds";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&led_pins_pcduino3_nano>;
> +
> +		led3 {
> +			label = "pcduino3-nano:green:led3";
> +			gpios = <&pio 7 16 GPIO_ACTIVE_LOW>; /* PH16 */
> +		};
> +
> +		led4 {
> +			label = "pcduino3-nano:green:led4";
> +			gpios = <&pio 7 15 GPIO_ACTIVE_LOW>; /* PH15 */
> +		};

Where are the three other leds?

Also, usually, the last part of the label is what the led function
usually is. In most case, "usr" will be fine, that might be others
too, but the led number definitely isn't an option.


> +	};
> +};
> +
> +&ahci {
> +	target-supply = <&reg_ahci_5v>;
> +	status = "okay";
> +};
> +
> +&ehci0 {
> +	status = "okay";
> +};
> +
> +&ehci1 {
> +	status = "okay";
> +};
> +
> +&gmac {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&gmac_pins_rgmii_a>;
> +	phy = <&phy1>;
> +	phy-mode = "rgmii";
> +	status = "okay";
> +
> +	phy1: ethernet-phy@1 {
> +		reg = <1>;
> +	};
> +};
> +
> +&i2c0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c0_pins_a>;
> +	status = "okay";
> +
> +	axp209: pmic@34 {
> +		compatible = "x-powers,axp209";
> +		reg = <0x34>;
> +		interrupt-parent = <&nmi_intc>;
> +		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
> +
> +		interrupt-controller;
> +		#interrupt-cells = <1>;
> +	};
> +};
> +
> +&i2c2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c2_pins_a>;
> +	status = "okay";
> +};
> +
> +&ir0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&ir0_pins_a>;
> +	status = "okay";
> +};
> +
> +&mmc0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
> +	vmmc-supply = <&reg_vcc3v3>;
> +	bus-width = <4>;
> +	cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
> +	cd-inverted;
> +	status = "okay";
> +};
> +
> +&ohci0 {
> +	status = "okay";
> +};
> +
> +&ohci1 {
> +	status = "okay";
> +};
> +
> +&pio {
> +	ahci_pwr_pin_a: ahci_pwr_pin@0 {
> +		allwinner,pins = "PH2";
> +	};

We usually declare a whole new node for this one...

> +	led_pins_pcduino3_nano: led_pins@0 {
> +		allwinner,pins = "PH16", "PH15";
> +		allwinner,function = "gpio_out";
> +		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
> +		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
> +	};
> +
> +	usb1_vbus_pin_pcduino3_nano: usb1_vbus_pin@0 {
> +		allwinner,pins = "PH11";
> +		allwinner,function = "gpio_out";
> +		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
> +		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
> +	};
> +};
> +
> +&reg_ahci_5v {
> +	gpio = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */

... and we override the pinctrl-0 property here.

> +	status = "okay";
> +};
> +
> +&reg_usb1_vbus {
> +	pinctrl-0 = <&usb1_vbus_pin_pcduino3_nano>;
> +	gpio = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
> +	status = "okay";
> +};
> +
> +&reg_usb2_vbus {
> +	status = "okay";
> +};
> +
> +&spi0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&spi0_pins_a>;
> +	status = "okay";
> +};
> +
> +&uart0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart0_pins_a>;
> +	status = "okay";
> +};
> +
> +&uart2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart2_pins_a>;
> +	status = "okay";
> +};

You probably want aliases for these two UARTs.

Looks good otherwise,
Maxime


-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

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

* [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
@ 2015-01-25 16:48     ` Maxime Ripard
  0 siblings, 0 replies; 14+ messages in thread
From: Maxime Ripard @ 2015-01-25 16:48 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Adam,

On Sun, Jan 25, 2015 at 03:32:01PM +0000, Adam Sampson wrote:
> Add support for the LinkSprite pcDuino 3 Nano board. This is a low-cost
> Allwinner A20 board with Arduino-style GPIO headers; it features 1G RAM,
> 4G NAND flash, 1 micro-SD, 2 USB sockets, 1 micro USB socket for OTG and
> another for power in, HDMI, SATA, 5V power for SATA devices, gigabit
> Ethernet, an IR receiver, 3.5mm audio out and a MIPI camera connector.
> 
> For more details, see: http://linux-sunxi.org/LinkSprite_pcDuino3_Nano
> 
> Signed-off-by: Adam Sampson <ats@offog.org>

Thanks for your patch.

> ---
>  arch/arm/boot/dts/Makefile                    |    3 +-
>  arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts |  203 +++++++++++++++++++++++++
>  2 files changed, 205 insertions(+), 1 deletion(-)
>  create mode 100644 arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
> 
> diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
> index 7df26a2..c025724 100644
> --- a/arch/arm/boot/dts/Makefile
> +++ b/arch/arm/boot/dts/Makefile
> @@ -479,7 +479,8 @@ dtb-$(CONFIG_MACH_SUN7I) += \
>  	sun7i-a20-olinuxino-lime.dtb \
>  	sun7i-a20-olinuxino-lime2.dtb \
>  	sun7i-a20-olinuxino-micro.dtb \
> -	sun7i-a20-pcduino3.dtb
> +	sun7i-a20-pcduino3.dtb \
> +	sun7i-a20-pcduino3-nano.dtb
>  dtb-$(CONFIG_MACH_SUN8I) += \
>  	sun8i-a23-ippo-q8h-v5.dtb \
>  	sun8i-a23-ippo-q8h-v1.2.dtb
> diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
> new file mode 100644
> index 0000000..a2b18de
> --- /dev/null
> +++ b/arch/arm/boot/dts/sun7i-a20-pcduino3-nano.dts
> @@ -0,0 +1,203 @@
> +/*
> + * Copyright 2015 Adam Sampson <ats@offog.org>
> + *
> + * 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.
> + *
> + *     You should have received a copy of the GNU General Public
> + *     License along with this file; if not, write to the Free
> + *     Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
> + *     MA 02110-1301 USA
> + *
> + * 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.
> + */
> +
> +/dts-v1/;
> +#include "sun7i-a20.dtsi"
> +#include "sunxi-common-regulators.dtsi"
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> +/ {
> +	model = "LinkSprite pcDuino3 Nano";
> +	compatible = "linksprite,pcduino3-nano", "allwinner,sun7i-a20";
> +
> +	leds {
> +		compatible = "gpio-leds";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&led_pins_pcduino3_nano>;
> +
> +		led3 {
> +			label = "pcduino3-nano:green:led3";
> +			gpios = <&pio 7 16 GPIO_ACTIVE_LOW>; /* PH16 */
> +		};
> +
> +		led4 {
> +			label = "pcduino3-nano:green:led4";
> +			gpios = <&pio 7 15 GPIO_ACTIVE_LOW>; /* PH15 */
> +		};

Where are the three other leds?

Also, usually, the last part of the label is what the led function
usually is. In most case, "usr" will be fine, that might be others
too, but the led number definitely isn't an option.


> +	};
> +};
> +
> +&ahci {
> +	target-supply = <&reg_ahci_5v>;
> +	status = "okay";
> +};
> +
> +&ehci0 {
> +	status = "okay";
> +};
> +
> +&ehci1 {
> +	status = "okay";
> +};
> +
> +&gmac {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&gmac_pins_rgmii_a>;
> +	phy = <&phy1>;
> +	phy-mode = "rgmii";
> +	status = "okay";
> +
> +	phy1: ethernet-phy at 1 {
> +		reg = <1>;
> +	};
> +};
> +
> +&i2c0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c0_pins_a>;
> +	status = "okay";
> +
> +	axp209: pmic at 34 {
> +		compatible = "x-powers,axp209";
> +		reg = <0x34>;
> +		interrupt-parent = <&nmi_intc>;
> +		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
> +
> +		interrupt-controller;
> +		#interrupt-cells = <1>;
> +	};
> +};
> +
> +&i2c2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2c2_pins_a>;
> +	status = "okay";
> +};
> +
> +&ir0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&ir0_pins_a>;
> +	status = "okay";
> +};
> +
> +&mmc0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&mmc0_pins_a>, <&mmc0_cd_pin_reference_design>;
> +	vmmc-supply = <&reg_vcc3v3>;
> +	bus-width = <4>;
> +	cd-gpios = <&pio 7 1 GPIO_ACTIVE_HIGH>; /* PH1 */
> +	cd-inverted;
> +	status = "okay";
> +};
> +
> +&ohci0 {
> +	status = "okay";
> +};
> +
> +&ohci1 {
> +	status = "okay";
> +};
> +
> +&pio {
> +	ahci_pwr_pin_a: ahci_pwr_pin at 0 {
> +		allwinner,pins = "PH2";
> +	};

We usually declare a whole new node for this one...

> +	led_pins_pcduino3_nano: led_pins at 0 {
> +		allwinner,pins = "PH16", "PH15";
> +		allwinner,function = "gpio_out";
> +		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
> +		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
> +	};
> +
> +	usb1_vbus_pin_pcduino3_nano: usb1_vbus_pin at 0 {
> +		allwinner,pins = "PH11";
> +		allwinner,function = "gpio_out";
> +		allwinner,drive = <SUN4I_PINCTRL_10_MA>;
> +		allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
> +	};
> +};
> +
> +&reg_ahci_5v {
> +	gpio = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */

... and we override the pinctrl-0 property here.

> +	status = "okay";
> +};
> +
> +&reg_usb1_vbus {
> +	pinctrl-0 = <&usb1_vbus_pin_pcduino3_nano>;
> +	gpio = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
> +	status = "okay";
> +};
> +
> +&reg_usb2_vbus {
> +	status = "okay";
> +};
> +
> +&spi0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&spi0_pins_a>;
> +	status = "okay";
> +};
> +
> +&uart0 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart0_pins_a>;
> +	status = "okay";
> +};
> +
> +&uart2 {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&uart2_pins_a>;
> +	status = "okay";
> +};

You probably want aliases for these two UARTs.

Looks good otherwise,
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/20150125/d407b93b/attachment-0001.sig>

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

* Re: [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
  2015-01-25 16:48     ` Maxime Ripard
@ 2015-01-26  0:35       ` Adam Sampson
  -1 siblings, 0 replies; 14+ messages in thread
From: Adam Sampson @ 2015-01-26  0:35 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-linux-sunxi-/JYPxA39Uh5TLH3MbocFFw

Hi Maxime,

On Sun, Jan 25, 2015 at 05:48:46PM +0100, Maxime Ripard wrote:
> > +			label = "pcduino3-nano:green:led3";
...
> > +			label = "pcduino3-nano:green:led4";
> Where are the three other leds?

LED1 is the power LED, and as far as I can see there isn't an LED2 on
the board. LED5 is next to LED3/4, but it's not exposed by the 3.4
kernel that LinkSprite ship, and this forum post says it's not
software-controllable (which seems weird):
http://forum.linksprite.com/index.php?/topic/3145-pcduino3-nano-led-control/

> Also, usually, the last part of the label is what the led function
> usually is.

"LED3" and "LED4" are how those LEDs are actually labelled on the board
(unlike the pcDuino v3, which labels them "TX" and "RX", and calls them
pcduino3:green:rx/tx in the DTS). I've changed them to
pcduino3-nano:led3:usr and pcduino3-nano:led4:usr, but if you've got any
better suggestions then please let me know!

> > +&pio {
> > +	ahci_pwr_pin_a: ahci_pwr_pin@0 {
> > +		allwinner,pins = "PH2";
> > +	};
> We usually declare a whole new node for this one...
...
> > +&reg_ahci_5v {
> > +	gpio = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
> ... and we override the pinctrl-0 property here.

Done -- I've followed lime2's example, which makes it looks the same as
I've done for reg_usb1_vbus.

> > +&uart0 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&uart0_pins_a>;
> > +	status = "okay";
> > +};
> > +
> > +&uart2 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&uart2_pins_a>;
> > +	status = "okay";
> > +};
> 
> You probably want aliases for these two UARTs.

Done: I've aliased serial0 = &uart0 and serial1 = &uart2. Should there
be aliases for I2C as well, since the same situation applies (i2c0 and
i2c2)?

More generally, is it correct to add nodes like these (uart2, spi0,
i2c2) for features that appear on the Arduino GPIO headers?

Thanks very much,

-- 
Adam Sampson <ats-G+91BasbrijYtjvyW6yDsg@public.gmane.org>                         <http://offog.org/>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

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

* [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
@ 2015-01-26  0:35       ` Adam Sampson
  0 siblings, 0 replies; 14+ messages in thread
From: Adam Sampson @ 2015-01-26  0:35 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Maxime,

On Sun, Jan 25, 2015 at 05:48:46PM +0100, Maxime Ripard wrote:
> > +			label = "pcduino3-nano:green:led3";
...
> > +			label = "pcduino3-nano:green:led4";
> Where are the three other leds?

LED1 is the power LED, and as far as I can see there isn't an LED2 on
the board. LED5 is next to LED3/4, but it's not exposed by the 3.4
kernel that LinkSprite ship, and this forum post says it's not
software-controllable (which seems weird):
http://forum.linksprite.com/index.php?/topic/3145-pcduino3-nano-led-control/

> Also, usually, the last part of the label is what the led function
> usually is.

"LED3" and "LED4" are how those LEDs are actually labelled on the board
(unlike the pcDuino v3, which labels them "TX" and "RX", and calls them
pcduino3:green:rx/tx in the DTS). I've changed them to
pcduino3-nano:led3:usr and pcduino3-nano:led4:usr, but if you've got any
better suggestions then please let me know!

> > +&pio {
> > +	ahci_pwr_pin_a: ahci_pwr_pin at 0 {
> > +		allwinner,pins = "PH2";
> > +	};
> We usually declare a whole new node for this one...
...
> > +&reg_ahci_5v {
> > +	gpio = <&pio 7 2 GPIO_ACTIVE_HIGH>; /* PH2 */
> ... and we override the pinctrl-0 property here.

Done -- I've followed lime2's example, which makes it looks the same as
I've done for reg_usb1_vbus.

> > +&uart0 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&uart0_pins_a>;
> > +	status = "okay";
> > +};
> > +
> > +&uart2 {
> > +	pinctrl-names = "default";
> > +	pinctrl-0 = <&uart2_pins_a>;
> > +	status = "okay";
> > +};
> 
> You probably want aliases for these two UARTs.

Done: I've aliased serial0 = &uart0 and serial1 = &uart2. Should there
be aliases for I2C as well, since the same situation applies (i2c0 and
i2c2)?

More generally, is it correct to add nodes like these (uart2, spi0,
i2c2) for features that appear on the Arduino GPIO headers?

Thanks very much,

-- 
Adam Sampson <ats@offog.org>                         <http://offog.org/>

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

* Re: [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
  2015-01-26  0:35       ` Adam Sampson
@ 2015-01-26 10:09           ` Maxime Ripard
  -1 siblings, 0 replies; 14+ messages in thread
From: Maxime Ripard @ 2015-01-26 10:09 UTC (permalink / raw)
  To: Adam Sampson
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-linux-sunxi-/JYPxA39Uh5TLH3MbocFFw

[-- Attachment #1: Type: text/plain, Size: 2163 bytes --]

On Mon, Jan 26, 2015 at 12:35:20AM +0000, Adam Sampson wrote:
> Hi Maxime,
> 
> On Sun, Jan 25, 2015 at 05:48:46PM +0100, Maxime Ripard wrote:
> > > +			label = "pcduino3-nano:green:led3";
> ...
> > > +			label = "pcduino3-nano:green:led4";
> > Where are the three other leds?
> 
> LED1 is the power LED, and as far as I can see there isn't an LED2 on
> the board. LED5 is next to LED3/4, but it's not exposed by the 3.4
> kernel that LinkSprite ship, and this forum post says it's not
> software-controllable (which seems weird):
> http://forum.linksprite.com/index.php?/topic/3145-pcduino3-nano-led-control/
> 
> > Also, usually, the last part of the label is what the led function
> > usually is.
> 
> "LED3" and "LED4" are how those LEDs are actually labelled on the board
> (unlike the pcDuino v3, which labels them "TX" and "RX", and calls them
> pcduino3:green:rx/tx in the DTS). I've changed them to
> pcduino3-nano:led3:usr and pcduino3-nano:led4:usr, but if you've got any
> better suggestions then please let me know!

It depends on what the leds are used for, but this is not what the
label should be either.

If you read Documentation/leds/leds-class.txt, the pattern to follow is:

"devicename:colour:function"

so it should rather be pcduino3-nano:green:usr1 and usr2, or some
other thing.

> > > +&uart0 {
> > > +	pinctrl-names = "default";
> > > +	pinctrl-0 = <&uart0_pins_a>;
> > > +	status = "okay";
> > > +};
> > > +
> > > +&uart2 {
> > > +	pinctrl-names = "default";
> > > +	pinctrl-0 = <&uart2_pins_a>;
> > > +	status = "okay";
> > > +};
> > 
> > You probably want aliases for these two UARTs.
> 
> Done: I've aliased serial0 = &uart0 and serial1 = &uart2. Should there
> be aliases for I2C as well, since the same situation applies (i2c0 and
> i2c2)?

Yep.

> More generally, is it correct to add nodes like these (uart2, spi0,
> i2c2) for features that appear on the Arduino GPIO headers?

If those pins are specifically dedicated to this feature, then yes.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

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

* [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
@ 2015-01-26 10:09           ` Maxime Ripard
  0 siblings, 0 replies; 14+ messages in thread
From: Maxime Ripard @ 2015-01-26 10:09 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Jan 26, 2015 at 12:35:20AM +0000, Adam Sampson wrote:
> Hi Maxime,
> 
> On Sun, Jan 25, 2015 at 05:48:46PM +0100, Maxime Ripard wrote:
> > > +			label = "pcduino3-nano:green:led3";
> ...
> > > +			label = "pcduino3-nano:green:led4";
> > Where are the three other leds?
> 
> LED1 is the power LED, and as far as I can see there isn't an LED2 on
> the board. LED5 is next to LED3/4, but it's not exposed by the 3.4
> kernel that LinkSprite ship, and this forum post says it's not
> software-controllable (which seems weird):
> http://forum.linksprite.com/index.php?/topic/3145-pcduino3-nano-led-control/
> 
> > Also, usually, the last part of the label is what the led function
> > usually is.
> 
> "LED3" and "LED4" are how those LEDs are actually labelled on the board
> (unlike the pcDuino v3, which labels them "TX" and "RX", and calls them
> pcduino3:green:rx/tx in the DTS). I've changed them to
> pcduino3-nano:led3:usr and pcduino3-nano:led4:usr, but if you've got any
> better suggestions then please let me know!

It depends on what the leds are used for, but this is not what the
label should be either.

If you read Documentation/leds/leds-class.txt, the pattern to follow is:

"devicename:colour:function"

so it should rather be pcduino3-nano:green:usr1 and usr2, or some
other thing.

> > > +&uart0 {
> > > +	pinctrl-names = "default";
> > > +	pinctrl-0 = <&uart0_pins_a>;
> > > +	status = "okay";
> > > +};
> > > +
> > > +&uart2 {
> > > +	pinctrl-names = "default";
> > > +	pinctrl-0 = <&uart2_pins_a>;
> > > +	status = "okay";
> > > +};
> > 
> > You probably want aliases for these two UARTs.
> 
> Done: I've aliased serial0 = &uart0 and serial1 = &uart2. Should there
> be aliases for I2C as well, since the same situation applies (i2c0 and
> i2c2)?

Yep.

> More generally, is it correct to add nodes like these (uart2, spi0,
> i2c2) for features that appear on the Arduino GPIO headers?

If those pins are specifically dedicated to this feature, then yes.

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/20150126/f9329746/attachment.sig>

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

* Re: [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
  2015-01-26 10:09           ` Maxime Ripard
@ 2015-01-26 13:59             ` Adam Sampson
  -1 siblings, 0 replies; 14+ messages in thread
From: Adam Sampson @ 2015-01-26 13:59 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw

Hi Maxime,

On Mon, Jan 26, 2015 at 11:09:21AM +0100, Maxime Ripard wrote:
> If you read Documentation/leds/leds-class.txt, the pattern to follow is:
> "devicename:colour:function"
> so it should rather be pcduino3-nano:green:usr1 and usr2, or some
> other thing.

How about pcduino3-nano:green:usr-led3/4? Or ...:usr1/2, and a comment
in the .dts explaining how they're labelled on the board?

There are a couple of other sunxi boards that have the same problem
(multiple user-controllable LEDs of the same colour):

sun4i-a10-marsboard.dts: label = "marsboard:red1:usr";
sun4i-a10-marsboard.dts: label = "marsboard:red2:usr";
sun4i-a10-marsboard.dts: label = "marsboard:red3:usr";
sun4i-a10-marsboard.dts: label = "marsboard:red4:usr";
sun9i-a80-optimus.dts: label = "optimus:led2:usr";
sun9i-a80-optimus.dts: label = "optimus:led4:usr";

I can send a patch for those if you'd like as well?

> > Should there be aliases for I2C as well, since the same situation
> > applies (i2c0 and i2c2)?
> Yep.

Added.

> > More generally, is it correct to add nodes like these (uart2, spi0,
> > i2c2) for features that appear on the Arduino GPIO headers?
> If those pins are specifically dedicated to this feature, then yes.

They're multipurpose pins on Arduino-compatible headers:
http://learn.linksprite.com/wp-content/uploads/2014/10/pcDuino3-Nano_header-Model.jpg

How you want them to be configured will depend on what you have plugged
in; for example, some Arduino add-on boards will expect J11 P1/2 to be
serial RX/TX and some will expect them to be GPIOs. So should we
configure i2c2 etc. by default (and let the user turn them into GPIOs
if required), or just provide the GPIOs (and require the user to adjust
the .dts)?

Cheers,

-- 
Adam Sampson <ats-G+91BasbrijYtjvyW6yDsg@public.gmane.org>                         <http://offog.org/>

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

* [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
@ 2015-01-26 13:59             ` Adam Sampson
  0 siblings, 0 replies; 14+ messages in thread
From: Adam Sampson @ 2015-01-26 13:59 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Maxime,

On Mon, Jan 26, 2015 at 11:09:21AM +0100, Maxime Ripard wrote:
> If you read Documentation/leds/leds-class.txt, the pattern to follow is:
> "devicename:colour:function"
> so it should rather be pcduino3-nano:green:usr1 and usr2, or some
> other thing.

How about pcduino3-nano:green:usr-led3/4? Or ...:usr1/2, and a comment
in the .dts explaining how they're labelled on the board?

There are a couple of other sunxi boards that have the same problem
(multiple user-controllable LEDs of the same colour):

sun4i-a10-marsboard.dts: label = "marsboard:red1:usr";
sun4i-a10-marsboard.dts: label = "marsboard:red2:usr";
sun4i-a10-marsboard.dts: label = "marsboard:red3:usr";
sun4i-a10-marsboard.dts: label = "marsboard:red4:usr";
sun9i-a80-optimus.dts: label = "optimus:led2:usr";
sun9i-a80-optimus.dts: label = "optimus:led4:usr";

I can send a patch for those if you'd like as well?

> > Should there be aliases for I2C as well, since the same situation
> > applies (i2c0 and i2c2)?
> Yep.

Added.

> > More generally, is it correct to add nodes like these (uart2, spi0,
> > i2c2) for features that appear on the Arduino GPIO headers?
> If those pins are specifically dedicated to this feature, then yes.

They're multipurpose pins on Arduino-compatible headers:
http://learn.linksprite.com/wp-content/uploads/2014/10/pcDuino3-Nano_header-Model.jpg

How you want them to be configured will depend on what you have plugged
in; for example, some Arduino add-on boards will expect J11 P1/2 to be
serial RX/TX and some will expect them to be GPIOs. So should we
configure i2c2 etc. by default (and let the user turn them into GPIOs
if required), or just provide the GPIOs (and require the user to adjust
the .dts)?

Cheers,

-- 
Adam Sampson <ats@offog.org>                         <http://offog.org/>

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

* Re: [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
  2015-01-26 13:59             ` Adam Sampson
@ 2015-01-27 17:00                 ` Maxime Ripard
  -1 siblings, 0 replies; 14+ messages in thread
From: Maxime Ripard @ 2015-01-27 17:00 UTC (permalink / raw)
  To: Adam Sampson
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw

[-- Attachment #1: Type: text/plain, Size: 2163 bytes --]

On Mon, Jan 26, 2015 at 01:59:31PM +0000, Adam Sampson wrote:
> Hi Maxime,
> 
> On Mon, Jan 26, 2015 at 11:09:21AM +0100, Maxime Ripard wrote:
> > If you read Documentation/leds/leds-class.txt, the pattern to follow is:
> > "devicename:colour:function"
> > so it should rather be pcduino3-nano:green:usr1 and usr2, or some
> > other thing.
> 
> How about pcduino3-nano:green:usr-led3/4? Or ...:usr1/2, and a comment
> in the .dts explaining how they're labelled on the board?

The latter looks better yes. tx and rx would do too, if you know what
tx and what rx we're talking about here.

> There are a couple of other sunxi boards that have the same problem
> (multiple user-controllable LEDs of the same colour):
> 
> sun4i-a10-marsboard.dts: label = "marsboard:red1:usr";
> sun4i-a10-marsboard.dts: label = "marsboard:red2:usr";
> sun4i-a10-marsboard.dts: label = "marsboard:red3:usr";
> sun4i-a10-marsboard.dts: label = "marsboard:red4:usr";
> sun9i-a80-optimus.dts: label = "optimus:led2:usr";
> sun9i-a80-optimus.dts: label = "optimus:led4:usr";

Thing is, it's too late for those. If we change the label, we would
break the user space scripts that might depend on these names.

> > > More generally, is it correct to add nodes like these (uart2, spi0,
> > > i2c2) for features that appear on the Arduino GPIO headers?
> > If those pins are specifically dedicated to this feature, then yes.
> 
> They're multipurpose pins on Arduino-compatible headers:
> http://learn.linksprite.com/wp-content/uploads/2014/10/pcDuino3-Nano_header-Model.jpg
> 
> How you want them to be configured will depend on what you have plugged
> in; for example, some Arduino add-on boards will expect J11 P1/2 to be
> serial RX/TX and some will expect them to be GPIOs. So should we
> configure i2c2 etc. by default (and let the user turn them into GPIOs
> if required), or just provide the GPIOs (and require the user to adjust
> the .dts)?

None of the above, if there's no hardware default, we won't enforce
any default either. This is a case for the DT overlays.

Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

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

* [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
@ 2015-01-27 17:00                 ` Maxime Ripard
  0 siblings, 0 replies; 14+ messages in thread
From: Maxime Ripard @ 2015-01-27 17:00 UTC (permalink / raw)
  To: linux-arm-kernel

On Mon, Jan 26, 2015 at 01:59:31PM +0000, Adam Sampson wrote:
> Hi Maxime,
> 
> On Mon, Jan 26, 2015 at 11:09:21AM +0100, Maxime Ripard wrote:
> > If you read Documentation/leds/leds-class.txt, the pattern to follow is:
> > "devicename:colour:function"
> > so it should rather be pcduino3-nano:green:usr1 and usr2, or some
> > other thing.
> 
> How about pcduino3-nano:green:usr-led3/4? Or ...:usr1/2, and a comment
> in the .dts explaining how they're labelled on the board?

The latter looks better yes. tx and rx would do too, if you know what
tx and what rx we're talking about here.

> There are a couple of other sunxi boards that have the same problem
> (multiple user-controllable LEDs of the same colour):
> 
> sun4i-a10-marsboard.dts: label = "marsboard:red1:usr";
> sun4i-a10-marsboard.dts: label = "marsboard:red2:usr";
> sun4i-a10-marsboard.dts: label = "marsboard:red3:usr";
> sun4i-a10-marsboard.dts: label = "marsboard:red4:usr";
> sun9i-a80-optimus.dts: label = "optimus:led2:usr";
> sun9i-a80-optimus.dts: label = "optimus:led4:usr";

Thing is, it's too late for those. If we change the label, we would
break the user space scripts that might depend on these names.

> > > More generally, is it correct to add nodes like these (uart2, spi0,
> > > i2c2) for features that appear on the Arduino GPIO headers?
> > If those pins are specifically dedicated to this feature, then yes.
> 
> They're multipurpose pins on Arduino-compatible headers:
> http://learn.linksprite.com/wp-content/uploads/2014/10/pcDuino3-Nano_header-Model.jpg
> 
> How you want them to be configured will depend on what you have plugged
> in; for example, some Arduino add-on boards will expect J11 P1/2 to be
> serial RX/TX and some will expect them to be GPIOs. So should we
> configure i2c2 etc. by default (and let the user turn them into GPIOs
> if required), or just provide the GPIOs (and require the user to adjust
> the .dts)?

None of the above, if there's no hardware default, we won't enforce
any default either. This is a case for the DT overlays.

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/20150127/07197640/attachment-0001.sig>

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

* Re: [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
  2015-01-27 17:00                 ` Maxime Ripard
@ 2015-01-27 18:25                   ` Adam Sampson
  -1 siblings, 0 replies; 14+ messages in thread
From: Adam Sampson @ 2015-01-27 18:25 UTC (permalink / raw)
  To: Maxime Ripard
  Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-sunxi-/JYPxA39Uh5TLH3MbocFFw

On Tue, Jan 27, 2015 at 06:00:35PM +0100, Maxime Ripard wrote:
> > How about pcduino3-nano:green:usr-led3/4? Or ...:usr1/2, and a comment
> > in the .dts explaining how they're labelled on the board?
> The latter looks better yes. tx and rx would do too, if you know what
> tx and what rx we're talking about here.

I've changed it to usr1/2 with comments. (I don't know if they were
intended to be TX/RX; the documentation doesn't suggest so.)

> > They're multipurpose pins on Arduino-compatible headers:
...
> > So should we [...]
> None of the above, if there's no hardware default, we won't enforce
> any default either. This is a case for the DT overlays.

OK -- that simplifies it quite a bit, then. v3 of the patch incoming!

Thanks very much,

-- 
Adam Sampson <ats-G+91BasbrijYtjvyW6yDsg@public.gmane.org>                         <http://offog.org/>

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

* [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board
@ 2015-01-27 18:25                   ` Adam Sampson
  0 siblings, 0 replies; 14+ messages in thread
From: Adam Sampson @ 2015-01-27 18:25 UTC (permalink / raw)
  To: linux-arm-kernel

On Tue, Jan 27, 2015 at 06:00:35PM +0100, Maxime Ripard wrote:
> > How about pcduino3-nano:green:usr-led3/4? Or ...:usr1/2, and a comment
> > in the .dts explaining how they're labelled on the board?
> The latter looks better yes. tx and rx would do too, if you know what
> tx and what rx we're talking about here.

I've changed it to usr1/2 with comments. (I don't know if they were
intended to be TX/RX; the documentation doesn't suggest so.)

> > They're multipurpose pins on Arduino-compatible headers:
...
> > So should we [...]
> None of the above, if there's no hardware default, we won't enforce
> any default either. This is a case for the DT overlays.

OK -- that simplifies it quite a bit, then. v3 of the patch incoming!

Thanks very much,

-- 
Adam Sampson <ats@offog.org>                         <http://offog.org/>

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

end of thread, other threads:[~2015-01-27 18:25 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-25 15:32 [PATCH] ARM: dts: sun7i: Add dts file for pcDuino 3 Nano board Adam Sampson
2015-01-25 15:32 ` Adam Sampson
     [not found] ` <1422199921-325-1-git-send-email-ats-G+91BasbrijYtjvyW6yDsg@public.gmane.org>
2015-01-25 16:48   ` Maxime Ripard
2015-01-25 16:48     ` Maxime Ripard
2015-01-26  0:35     ` Adam Sampson
2015-01-26  0:35       ` Adam Sampson
     [not found]       ` <20150126003520.GA871-dFjyuVMluBNBLe56cvE0J2D2FQJk+8+b@public.gmane.org>
2015-01-26 10:09         ` Maxime Ripard
2015-01-26 10:09           ` Maxime Ripard
2015-01-26 13:59           ` Adam Sampson
2015-01-26 13:59             ` Adam Sampson
     [not found]             ` <20150126135931.GB871-dFjyuVMluBNBLe56cvE0J2D2FQJk+8+b@public.gmane.org>
2015-01-27 17:00               ` Maxime Ripard
2015-01-27 17:00                 ` Maxime Ripard
2015-01-27 18:25                 ` Adam Sampson
2015-01-27 18:25                   ` Adam Sampson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.