From c49c5e6bfcaf363450586dd20e67dacdee96a775 Mon Sep 17 00:00:00 2001
From: Kevin Mihelich <kevin@archlinuxarm.org>
Date: Sat, 13 Jun 2015 13:46:30 -0600
Subject: [PATCH 3/3] at91: arietta-g25 support

Signed-off-by: Kevin Mihelich <kevin@archlinuxarm.org>
---
 arch/arm/boot/dts/Makefile            |   2 +
 arch/arm/boot/dts/at91-arietta128.dts | 165 ++++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/at91-arietta256.dts | 165 ++++++++++++++++++++++++++++++++++
 3 files changed, 332 insertions(+)
 create mode 100644 arch/arm/boot/dts/at91-arietta128.dts
 create mode 100644 arch/arm/boot/dts/at91-arietta256.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index d0381e9caf21..b2dc7069634b 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -37,6 +37,8 @@ dtb-$(CONFIG_SOC_AT91SAM9) += \
 	at91sam9n12ek.dtb \
 	at91sam9rlek.dtb \
 	at91-ariag25.dtb \
+	at91-arietta128.dtb \
+	at91-arietta256.dtb \
 	at91-ariettag25.dtb \
 	at91-cosino_mega2560.dtb \
 	at91-kizboxmini.dtb \
diff --git a/arch/arm/boot/dts/at91-arietta128.dts b/arch/arm/boot/dts/at91-arietta128.dts
new file mode 100644
index 000000000000..5f9860c89bb2
--- /dev/null
+++ b/arch/arm/boot/dts/at91-arietta128.dts
@@ -0,0 +1,165 @@
+/*
+ * acme-arietta.dts - Device Tree file for Arietta G25
+ * Generated by http://dts.acmesystems.it/arietta
+ */
+/dts-v1/;
+#include "at91sam9g25.dtsi"
+/ {
+	model = "Acme Systems Arietta G25";
+	compatible = "acme,ariettag25", "atmel,at91sam9x5ek","atmel,at91sam9x5", "atmel,at91sam9";
+	aliases {
+		serial0 = &dbgu;
+		serial1 = &usart0;
+		serial2 = &usart1;
+		serial3 = &usart2;
+		serial4 = &usart3;
+		serial5 = &uart0;
+		serial6 = &uart1;
+	};
+	chosen {
+		bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
+	};
+	memory {
+		reg = <0x20000000 0x8000000>;
+	};
+	clocks {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+		main_clock: clock@0 {
+			compatible = "atmel,osc", "fixed-clock";
+			clock-frequency = <12000000>;
+		};
+
+		main_xtal {
+			clock-frequency = <12000000>;
+		};
+	};
+	ahb {
+		apb {
+			mmc0: mmc@f0008000 {
+				pinctrl-0 = <
+				  &pinctrl_mmc0_slot0_clk_cmd_dat0
+				  &pinctrl_mmc0_slot0_dat1_3>;
+				status = "okay";
+				slot@0 {
+					reg = <0>;
+					bus-width = <4>;
+				};
+			};
+			i2c0: i2c@f8010000 {
+				status ="okay";
+				wm8731: wm8731@1b {
+					compatible = "wm8731";
+					reg = <0x1b>;
+				};
+			};
+			i2c1: i2c@f8014000 {
+				status ="okay";
+			};
+			usart0: serial@f801c000 {
+				pinctrl-0 = <&pinctrl_usart0>;
+				status ="okay";
+			};
+			spi1: spi@f0004000 {
+				status = "okay";
+				cs-gpios = <&pioA 8 0>, <&pioA 0 0>, <&pioA 31 0>, <&pioA 30 0>;
+				device@0 {
+					compatible = "spidev";
+					spi-max-frequency = <5000000>;	    // 5 MHz
+					reg = <0>;
+				};
+			};
+
+			pinctrl@fffff400 {
+				adc0 {
+					pinctrl_adc0_ad0: adc0_ad0 {
+						atmel,pins = <AT91_PIOB 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+					pinctrl_adc0_ad1: adc0_ad1 {
+						atmel,pins = <AT91_PIOB 12 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+					pinctrl_adc0_ad2: adc0_ad2 {
+						atmel,pins = <AT91_PIOB 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+					pinctrl_adc0_ad3: adc0_ad3 {
+						atmel,pins = <AT91_PIOB 14 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+				};
+			};
+
+			adc0: adc@f804c000 {
+				status = "okay";
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_adc0_ad0 &pinctrl_adc0_ad1 &pinctrl_adc0_ad2 &pinctrl_adc0_ad3>;
+				atmel,adc-channels-used = <0xf>;
+				atmel,adc-num-channels = <4>;
+				compatible = "atmel,at91sam9x5-adc";
+				atmel,adc-startup-time = <40>;
+				atmel,adc-status-register = <0x1c>;
+				atmel,adc-trigger-register = <0x08>;
+				atmel,adc-use-external;
+				atmel,adc-vref = <3250>;
+				atmel,adc-res = <8 10>;
+				atmel,adc-res-names = "lowres", "highres";
+				atmel,adc-use-res = "highres";
+			};
+
+			ssc0: ssc@f0010000 {
+				status = "okay";
+			};
+			usb2: gadget@f803c000 {
+				status = "okay";
+			};
+			dbgu: serial@fffff200 {
+				status = "okay";
+			};
+			pinctrl@fffff400 {
+				w1_0 {
+					pinctrl_w1_0: w1_0-0 {
+						/* pull up on */
+						atmel,pins = <2 31 0x0 0x1>;
+					};
+				};
+
+			};
+			rtc@fffffeb0 {
+				status = "okay";
+			};
+		};
+		usb0: ohci@600000 {
+			status = "okay";
+			num-ports = <3>;
+		};
+		usb1: ehci@700000 {
+			status = "okay";
+		};
+	};
+	leds {
+		compatible = "gpio-leds";
+		arietta_led {
+			label = "arietta_led";
+			gpios = <&pioB 8 GPIO_ACTIVE_HIGH>; /* PB8 */
+			linux,default-trigger = "heartbeat";
+		};
+	};
+	onewire@0 {
+		compatible = "w1-gpio";
+		gpios = <&pioC 31 GPIO_ACTIVE_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_w1_0>;
+	};
+
+	sound {
+		compatible = "atmel,sam9x5-wm8731-audio";
+		atmel,model = "wm8731 @ AT91SAM9X5EK";
+		atmel,audio-routing =
+		"Headphone Jack", "RHPOUT",
+		"Headphone Jack", "LHPOUT",
+		"LLINEIN", "Line In Jack",
+		"RLINEIN", "Line In Jack";
+		atmel,ssc-controller = <&ssc0>;
+		atmel,audio-codec = <&wm8731>;
+	};
+
+};
diff --git a/arch/arm/boot/dts/at91-arietta256.dts b/arch/arm/boot/dts/at91-arietta256.dts
new file mode 100644
index 000000000000..cf18f869611a
--- /dev/null
+++ b/arch/arm/boot/dts/at91-arietta256.dts
@@ -0,0 +1,165 @@
+/*
+ * acme-arietta.dts - Device Tree file for Arietta G25
+ * Generated by http://dts.acmesystems.it/arietta
+ */
+/dts-v1/;
+#include "at91sam9g25.dtsi"
+/ {
+	model = "Acme Systems Arietta G25";
+	compatible = "acme,ariettag25", "atmel,at91sam9x5ek","atmel,at91sam9x5", "atmel,at91sam9";
+	aliases {
+		serial0 = &dbgu;
+		serial1 = &usart0;
+		serial2 = &usart1;
+		serial3 = &usart2;
+		serial4 = &usart3;
+		serial5 = &uart0;
+		serial6 = &uart1;
+	};
+	chosen {
+		bootargs = "console=ttyS0,115200 root=/dev/mmcblk0p2 rw rootwait";
+	};
+	memory {
+		reg = <0x20000000 0x10000000>;
+	};
+	clocks {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+		main_clock: clock@0 {
+			compatible = "atmel,osc", "fixed-clock";
+			clock-frequency = <12000000>;
+		};
+
+		main_xtal {
+			clock-frequency = <12000000>;
+		};
+	};
+	ahb {
+		apb {
+			mmc0: mmc@f0008000 {
+				pinctrl-0 = <
+				  &pinctrl_mmc0_slot0_clk_cmd_dat0
+				  &pinctrl_mmc0_slot0_dat1_3>;
+				status = "okay";
+				slot@0 {
+					reg = <0>;
+					bus-width = <4>;
+				};
+			};
+			i2c0: i2c@f8010000 {
+				status ="okay";
+				wm8731: wm8731@1b {
+					compatible = "wm8731";
+					reg = <0x1b>;
+				};
+			};
+			i2c1: i2c@f8014000 {
+				status ="okay";
+			};
+			usart0: serial@f801c000 {
+				pinctrl-0 = <&pinctrl_usart0>;
+				status ="okay";
+			};
+			spi1: spi@f0004000 {
+				status = "okay";
+				cs-gpios = <&pioA 8 0>, <&pioA 0 0>, <&pioA 31 0>, <&pioA 30 0>;
+				device@0 {
+					compatible = "spidev";
+					spi-max-frequency = <5000000>;	    // 5 MHz
+					reg = <0>;
+				};
+			};
+
+			pinctrl@fffff400 {
+				adc0 {
+					pinctrl_adc0_ad0: adc0_ad0 {
+						atmel,pins = <AT91_PIOB 11 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+					pinctrl_adc0_ad1: adc0_ad1 {
+						atmel,pins = <AT91_PIOB 12 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+					pinctrl_adc0_ad2: adc0_ad2 {
+						atmel,pins = <AT91_PIOB 13 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+					pinctrl_adc0_ad3: adc0_ad3 {
+						atmel,pins = <AT91_PIOB 14 AT91_PERIPH_GPIO AT91_PINCTRL_NONE>;
+					};
+				};
+			};
+
+			adc0: adc@f804c000 {
+				status = "okay";
+				pinctrl-names = "default";
+				pinctrl-0 = <&pinctrl_adc0_ad0 &pinctrl_adc0_ad1 &pinctrl_adc0_ad2 &pinctrl_adc0_ad3>;
+				atmel,adc-channels-used = <0xf>;
+				atmel,adc-num-channels = <4>;
+				compatible = "atmel,at91sam9x5-adc";
+				atmel,adc-startup-time = <40>;
+				atmel,adc-status-register = <0x1c>;
+				atmel,adc-trigger-register = <0x08>;
+				atmel,adc-use-external;
+				atmel,adc-vref = <3250>;
+				atmel,adc-res = <8 10>;
+				atmel,adc-res-names = "lowres", "highres";
+				atmel,adc-use-res = "highres";
+			};
+
+			ssc0: ssc@f0010000 {
+				status = "okay";
+			};
+			usb2: gadget@f803c000 {
+				status = "okay";
+			};
+			dbgu: serial@fffff200 {
+				status = "okay";
+			};
+			pinctrl@fffff400 {
+				w1_0 {
+					pinctrl_w1_0: w1_0-0 {
+						/* pull up on */
+						atmel,pins = <2 31 0x0 0x1>;
+					};
+				};
+
+			};
+			rtc@fffffeb0 {
+				status = "okay";
+			};
+		};
+		usb0: ohci@600000 {
+			status = "okay";
+			num-ports = <3>;
+		};
+		usb1: ehci@700000 {
+			status = "okay";
+		};
+	};
+	leds {
+		compatible = "gpio-leds";
+		arietta_led {
+			label = "arietta_led";
+			gpios = <&pioB 8 GPIO_ACTIVE_HIGH>; /* PB8 */
+			linux,default-trigger = "heartbeat";
+		};
+	};
+	onewire@0 {
+		compatible = "w1-gpio";
+		gpios = <&pioC 31 GPIO_ACTIVE_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_w1_0>;
+	};
+
+	sound {
+		compatible = "atmel,sam9x5-wm8731-audio";
+		atmel,model = "wm8731 @ AT91SAM9X5EK";
+		atmel,audio-routing =
+		"Headphone Jack", "RHPOUT",
+		"Headphone Jack", "LHPOUT",
+		"LLINEIN", "Line In Jack",
+		"RLINEIN", "Line In Jack";
+		atmel,ssc-controller = <&ssc0>;
+		atmel,audio-codec = <&wm8731>;
+	};
+
+};
-- 
2.15.0