From 51d5e458a3ae59fc8ff1c06b4a91c31f72cb9f95 Mon Sep 17 00:00:00 2001 From: Zoltan Herpai Date: Sat, 4 Jan 2014 10:06:17 +0000 Subject: [PATCH] sunxi: add support for pcDuino board Signed-off-by: Zoltan HERPAI SVN-Revision: 39190 --- .../arch/arm/boot/dts/sun4i-a10-pcduino.dts | 168 ++++++++++++++++++ target/linux/sunxi/image/Makefile | 1 + .../patches-3.12/230-dt-add-pcduino.patch | 11 ++ target/linux/sunxi/profiles/pcduino.mk | 18 ++ 4 files changed, 198 insertions(+) create mode 100644 target/linux/sunxi/files/arch/arm/boot/dts/sun4i-a10-pcduino.dts create mode 100644 target/linux/sunxi/patches-3.12/230-dt-add-pcduino.patch create mode 100644 target/linux/sunxi/profiles/pcduino.mk diff --git a/target/linux/sunxi/files/arch/arm/boot/dts/sun4i-a10-pcduino.dts b/target/linux/sunxi/files/arch/arm/boot/dts/sun4i-a10-pcduino.dts new file mode 100644 index 000000000000..a65b498dbad8 --- /dev/null +++ b/target/linux/sunxi/files/arch/arm/boot/dts/sun4i-a10-pcduino.dts @@ -0,0 +1,168 @@ +/* + * Copyright 2012 Stefan Roese + * Stefan Roese + * + * 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 = "pcDuino"; + compatible = "pcduino,a10-pcduino", "allwinner,sun4i-a10"; + + aliases { + serial0 = &uart0; + serial1 = &uart1; + }; + + chosen { + bootargs = "earlyprintk console=ttyS0,115200"; + }; + + soc@01c00000 { + emac: ethernet@01c0b000 { + pinctrl-names = "default"; + pinctrl-0 = <&emac_pins_a>; + phy = <&phy1>; + status = "okay"; + }; + + mdio@01c0b080 { + status = "okay"; + + phy1: ethernet-phy@1 { + reg = <1>; + }; + }; + + sdc0: sdc@01c0f000 { + pinctrl-names = "default"; + pinctrl-0 = <&sdc0_pins_a>; + pinctrl-1 = <&mmc0_cd_pin_pcduino>; + cd-gpios = <&pio 7 1 0>; /* PH1 */ + cd-mode = <1>; + status = "okay"; + }; + + pinctrl@01c20800 { + mmc0_cd_pin_pcduino: mmc0_cd_pin@0 { + allwinner,pins = "PH1"; + allwinner,function = "gpio_in"; + allwinner,drive = <0>; + allwinner,pull = <0>; + }; + + led_pins_pcduino: led_pins@0 { + allwinner,pins = "PH20", "PH21"; + allwinner,function = "gpio_out"; + allwinner,drive = <1>; + allwinner,pull = <0>; + }; + + usb1_vbus_pin: usb1_vbus_pin@0 { + allwinner,pins = "PH6"; + allwinner,function = "gpio_out"; + allwinner,drive = <0>; + allwinner,pull = <2>; + }; + + usb2_vbus_pin: usb2_vbus_pin@0 { + allwinner,pins = "PH3"; + allwinner,function = "gpio_out"; + allwinner,drive = <0>; + allwinner,pull = <2>; + }; + }; + + 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"; + }; + + i2c1: i2c@01c2b000 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1_pins_a>; + status = "okay"; + }; + + ehci0: ehci0@0x01c14000 { + vbus-supply = <®_usb1_vbus>; + status = "okay"; + }; + + ehci1: ehci1@0x01c1c000 { + vbus-supply = <®_usb2_vbus>; + status = "okay"; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&led_pins_pcduino>; + + blue { + label = "pcduino:blue:usr"; + gpios = <&pio 7 21 0>; /* LED1 */ + }; + + green { + label = "pcduino:green:usr"; + gpios = <&pio 7 20 0>; /* LED2 */ + linux,default-trigger = "heartbeat"; + }; + }; + + regulators { + compatible = "simple-bus"; + + reg_usb1_vbus: usb1-vbus { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + pinctrl-0 = <&usb1_vbus_pin>; + regulator-name = "usb1-vbus"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&pio 7 6 0>; + }; + + reg_usb2_vbus: usb2-vbus { + compatible = "regulator-fixed"; + pinctrl-names = "default"; + pinctrl-0 = <&usb2_vbus_pin>; + regulator-name = "usb2-vbus"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + enable-active-high; + gpio = <&pio 7 3 0>; + }; + }; + + regulators { + compatible = "simple-bus"; + pinctrl-names = "default"; + + vcc_3v3_reg: regulator@0 { + compatible = "regulator-fixed"; + regulator-name = "vcc_3v3"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-always-on; + }; + }; +}; diff --git a/target/linux/sunxi/image/Makefile b/target/linux/sunxi/image/Makefile index 2d7a603ad1e6..d77aff059b77 100644 --- a/target/linux/sunxi/image/Makefile +++ b/target/linux/sunxi/image/Makefile @@ -8,6 +8,7 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/image.mk BOARDS:= \ + sun4i-a10-pcduino \ sun4i-a10-cubieboard \ sun5i-a13-olinuxino \ sun7i-a20-olinuxino-micro \ diff --git a/target/linux/sunxi/patches-3.12/230-dt-add-pcduino.patch b/target/linux/sunxi/patches-3.12/230-dt-add-pcduino.patch new file mode 100644 index 000000000000..91c633cf1734 --- /dev/null +++ b/target/linux/sunxi/patches-3.12/230-dt-add-pcduino.patch @@ -0,0 +1,11 @@ +diff -ruN old/arch/arm/boot/dts/Makefile new/arch/arm/boot/dts/Makefile +--- old/arch/arm/boot/dts/Makefile 2014-01-02 22:08:07.288255421 +0100 ++++ new/arch/arm/boot/dts/Makefile 2014-01-02 21:25:02.000000000 +0100 +@@ -231,6 +231,7 @@ + sun4i-a10-cubieboard.dtb \ + sun4i-a10-mini-xplus.dtb \ + sun4i-a10-hackberry.dtb \ ++ sun4i-a10-pcduino.dtb \ + sun5i-a10s-olinuxino-micro.dtb \ + sun5i-a13-olinuxino.dtb \ + sun6i-a31-colombus.dtb \ diff --git a/target/linux/sunxi/profiles/pcduino.mk b/target/linux/sunxi/profiles/pcduino.mk new file mode 100644 index 000000000000..1f35ddb1b3f8 --- /dev/null +++ b/target/linux/sunxi/profiles/pcduino.mk @@ -0,0 +1,18 @@ +# +# Copyright (C) 2013 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +define Profile/pcDuino + NAME:=pcDuino + PACKAGES:=\ + uboot-sunxi-pcDuino +endef + +define Profile/pcDuino/Description + Package set optimized for the pcDuino +endef + +$(eval $(call Profile,pcDuino)) -- 2.30.2