[haiku-commits] haiku: hrev48862 - src/data/dts/arch/arm

  • From: kallisti5@xxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 5 Mar 2015 03:16:23 +0100 (CET)

hrev48862 adds 1 changeset to branch 'master'
old head: 6f4df461de0dd93de15ff6fa028d6100e2eb16d3
new head: e2ec1f2f8e7436c5ea80cfe7f2234791329645ba
overview: 
http://cgit.haiku-os.org/haiku/log/?qt=range&q=e2ec1f2f8e74+%5E6f4df461de0d

----------------------------------------------------------------------------

e2ec1f2f8e74: FDT: Update ARM FDT's based on FreeBSD HEAD
  
  * Pull in Beaglebone, Beaglebone Black, and Cubieboard because
    those could be targets some day

                          [ Alexander von Gluck IV <kallisti5@xxxxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev48862
Commit:      e2ec1f2f8e7436c5ea80cfe7f2234791329645ba
URL:         http://cgit.haiku-os.org/haiku/commit/?id=e2ec1f2f8e74
Author:      Alexander von Gluck IV <kallisti5@xxxxxxxxxxx>
Date:        Thu Mar  5 02:10:26 2015 UTC

----------------------------------------------------------------------------

9 files changed, 1137 insertions(+), 2 deletions(-)
src/data/dts/arch/arm/am335x.dtsi          | 349 +++++++++++++++++++++++++
src/data/dts/arch/arm/bcm2835.dtsi         |  28 ++
src/data/dts/arch/arm/beaglebone-black.dts | 184 +++++++++++++
src/data/dts/arch/arm/beaglebone.dts       | 145 ++++++++++
src/data/dts/arch/arm/cubieboard.dts       |  71 +++++
src/data/dts/arch/arm/cubieboard2.dts      |  75 ++++++
src/data/dts/arch/arm/rpi.dts              |  15 +-
src/data/dts/arch/arm/sun4i-a10.dtsi       | 133 ++++++++++
src/data/dts/arch/arm/sun7i-a20.dtsi       | 139 ++++++++++

----------------------------------------------------------------------------

diff --git a/src/data/dts/arch/arm/am335x.dtsi 
b/src/data/dts/arch/arm/am335x.dtsi
new file mode 100644
index 0000000..fea57e9
--- /dev/null
+++ b/src/data/dts/arch/arm/am335x.dtsi
@@ -0,0 +1,349 @@
+/*-
+ * Copyright (c) 2012 Damjan Marion <dmarion@xxxxxxxxxxx>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * $FreeBSD$
+ */
+
+/ {
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       interrupt-parent = <&AINTC>;
+
+       SOC: am335x {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               ranges;
+               bus-frequency = <0>;
+
+               AINTC: interrupt-controller@48200000 {
+                       compatible = "ti,aintc";
+                       interrupt-controller;
+                       #address-cells = <0>;
+                       #interrupt-cells = <1>;
+                       reg =   < 0x48200000 0x1000 >;
+               };
+
+               pmu {
+                       compatible = "arm,cortex-a8-pmu";
+                       interrupts = <3>;
+               };
+
+               scm@44e10000 {
+                       compatible = "ti,scm";
+                       reg =   < 0x44e10000 0x2000 >;
+               };
+
+               prcm@44E00000 {
+                       compatible = "am335x,prcm";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = < 0x44E00000 0x1300 >;
+               };
+
+               dmtimers@44E05000 {
+                       compatible = "ti,am335x-dmtimer";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg =   < 0x44E05000 0x1000
+                                 0x44E31000 0x1000
+                                 0x48040000 0x1000
+                                 0x48042000 0x1000
+                                 0x48044000 0x1000
+                                 0x48046000 0x1000
+                                 0x48048000 0x1000
+                                 0x4804A000 0x1000 >;
+                       interrupts = < 66 67 68 69 92 93 94 95 >;
+                       interrupt-parent = <&AINTC>;
+               };
+
+               rtc: rtc@44E3E000 {
+                       compatible = "ti,da830-rtc";
+                       reg = <0x44E3E000 0x1000>;
+                       interrupts = < 75 76 >;
+                       interrupt-parent = <&AINTC>;
+               };
+
+               adc0: adc@44E0D000 {
+                       compatible = "ti,adc";
+                       reg = <0x44E0D000 0x2000>;
+                       interrupts = < 16 >;
+                       interrupt-parent = <&AINTC>;
+               };
+
+               wdt1@44E35000 {
+                       compatible = "ti,omap3-wdt";
+                       reg = <0x44E35000 0x1000>;
+                       interrupts = <91>;
+                       interrupt-parent = <&AINTC>;
+               };
+               
+               GPIO: gpio {
+                       #gpio-cells = <3>;
+                       compatible = "ti,gpio";
+                       gpio-controller;
+                       reg =<  0x44E07000 0x1000
+                               0x4804C000 0x1000
+                               0x481AC000 0x1000
+                               0x481AE000 0x1000 >;
+                       interrupts = < 96 97 98 99 32 33 62 63 >;
+                       interrupt-parent = <&AINTC>;
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+               };
+
+               uart0: serial@44E09000 {
+                       compatible = "ti,ns16550";
+                       reg = <0x44E09000 0x1000>;
+                       reg-shift = <2>;
+                       interrupts = < 72 >;
+                       interrupt-parent = <&AINTC>;
+                       clock-frequency = < 48000000 >;
+                       uart-device-id = < 0 >;
+               };
+               
+               uart1: serial@48022000 {
+                       compatible = "ti,ns16550";
+                       reg = <0x48022000 0x1000>;
+                       reg-shift = <2>;
+                       interrupts = < 73 >;
+                       interrupt-parent = <&AINTC>;
+                       clock-frequency = < 48000000 >; 
+                       uart-device-id = < 1 >;
+                       status = "disabled";
+               };
+               
+               uart2: serial@48024000 {
+                       compatible = "ti,ns16550";
+                       reg = <0x48024000 0x1000>;
+                       reg-shift = <2>;
+                       interrupts = < 74 >;
+                       interrupt-parent = <&AINTC>;
+                       clock-frequency = < 48000000 >; 
+                       uart-device-id = < 2 >;
+                       status = "disabled";
+               };
+               
+               uart3: serial@481a6000 {
+                       compatible = "ti,ns16550";
+                       reg = <0x481A6000 0x1000>;
+                       reg-shift = <2>;
+                       interrupts = < 44 >;
+                       interrupt-parent = <&AINTC>;
+                       clock-frequency = < 48000000 >; 
+                       uart-device-id = < 3 >;
+                       status = "disabled";
+               };
+ 
+               uart4: serial@481a8000 {
+                       compatible = "ti,ns16550";
+                       reg = <0x481A8000 0x1000>;
+                       reg-shift = <2>;
+                       interrupts = < 45 >;
+                       interrupt-parent = <&AINTC>;
+                       clock-frequency = < 48000000 >; 
+                       uart-device-id = < 4 >;
+                       status = "disabled";
+               };
+ 
+               uart5: serial@481aa000 {
+                       compatible = "ti,ns16550";
+                       reg = <0x481AA000 0x1000>;
+                       reg-shift = <2>;
+                       interrupts = < 46 >;
+                       interrupt-parent = <&AINTC>;
+                       clock-frequency = < 48000000 >; 
+                       uart-device-id = < 5 >;
+                       status = "disabled";
+               };
+
+               edma3@49000000 {
+                       compatible = "ti,edma3";
+                       reg =<  0x49000000 0x100000     /* Channel Controller 
Regs */
+                               0x49800000 0x100000     /* Transfer Controller 
0 Regs */
+                               0x49900000 0x100000     /* Transfer Controller 
1 Regs */
+                               0x49a00000 0x100000 >;  /* Transfer Controller 
2 Regs */
+                       interrupts = <12 13 14>;
+                       interrupt-parent = <&AINTC>;
+               };
+
+               mmchs0@48060000 {
+                       compatible = "ti,omap3-hsmmc", "ti,mmchs";
+                       reg =<0x48060000 0x1000 >;
+                       interrupts = <64>;
+                       interrupt-parent = <&AINTC>;
+                       mmchs-device-id = <0>;
+                       mmchs-wp-gpio-pin = <0xffffffff>;
+                       ti,dual-volt;
+               };
+
+               mmchs1@481D8000 {
+                       compatible = "ti,omap3-hsmmc", "ti,mmchs";
+                       reg =<0x481D8000 0x1000 >;
+                       interrupts = <28>;
+                       interrupt-parent = <&AINTC>;
+                       mmchs-device-id = <1>;
+                       mmchs-wp-gpio-pin = <0xffffffff>;
+                       status = "disabled";
+               };
+
+               enet0: ethernet@4A100000 {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "ti,cpsw";
+                       reg = <0x4A100000 0x4000>;
+                       interrupts = <40 41 42 43>;
+                       interrupt-parent = <&AINTC>;
+                       phy-handle = <&phy0>;
+                       mdio@0 {
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               compatible = "ti,cpsw-mdio";
+                               phy0: ethernet-phy@0 {
+                                       reg = <0x0>;
+                               };
+                       };
+               };
+
+               i2c0: i2c@44e0b000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "ti,i2c";
+                       reg =<  0x44e0b000 0x1000 >;
+                       interrupts = <70>;
+                       interrupt-parent = <&AINTC>;
+                       i2c-device-id = <0>;
+               };
+
+               i2c1: i2c@4802a000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "ti,i2c";
+                       reg =<  0x4802a000 0x1000 >;
+                       interrupts = <71>;
+                       interrupt-parent = <&AINTC>;
+                       i2c-device-id = <1>;
+               };
+
+               i2c2: i2c@4819c000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "ti,i2c";
+                       reg =<  0x4819c000 0x1000 >;
+                       interrupts = <30>;
+                       interrupt-parent = <&AINTC>;
+                       i2c-device-id = <2>;
+               };
+
+               pwm@48300000 {
+                       compatible = "ti,am335x-pwm";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = < 0x48300000 0x100        /* PWMSS0 */
+                               0x48300100 0x80         /* eCAP0 */
+                               0x48300180 0x80         /* eQEP0 */
+                               0x48300200 0x60         /* ePWM0 */
+                       >;
+                       interrupts = <86 58>; /* ePWM0INT, ePWM0_TZINT */
+                       interrupt-parent = <&AINTC>;
+                       pwm-device-id = <0>;
+               };
+
+               pwm@48302000 {
+                       compatible = "ti,am335x-pwm";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = < 0x48302000 0x100        /* PWMSS1 */
+                               0x48302100 0x80         /* eCAP1 */
+                               0x48302180 0x80         /* eQEP1 */
+                               0x48302200 0x60         /* ePWM1 */
+                       >;
+                       interrupts = <87 59>; /* ePWM1INT, ePWM1_TZINT */
+                       interrupt-parent = <&AINTC>;
+                       pwm-device-id = <1>;
+               };
+
+               pwm@48304000 {
+                       compatible = "ti,am335x-pwm";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = < 0x48304000 0x100        /* PWMSS2 */
+                               0x48304100 0x80         /* eCAP2 */
+                               0x48304180 0x80         /* eQEP2 */
+                               0x48304200 0x60         /* ePWM2 */
+                       >;
+                       interrupts = <88 60>; /* ePWM2INT, ePWM2_TZINT */
+                       interrupt-parent = <&AINTC>;
+                       pwm-device-id = <2>;
+               };
+
+               lcd: lcd@4830e000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "ti,am335x-lcd";
+                       reg =<  0x4830e000 0x1000 >;
+                       interrupts = <36>;
+                       interrupt-parent = <&AINTC>;
+               };
+
+               usb@47400000 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "ti,musb-am33xx";
+                       reg =<  0x47400000 0x1000       /* USBSS */
+                               0x47401000 0x300        /* USB0 */
+                               0x47401300 0x100        /* USB0_PHY */
+                               0x47401400 0x400        /* USB0_CORE */
+                               0x47401800 0x300        /* USB1 */
+                               0x47401B00 0x100        /* USB1_PHY */
+                               0x47401C00 0x400        /* USB1_CORE */
+                       >;
+                       interrupts = <17 18 19>;
+                       interrupt-parent = <&AINTC>;
+                       /* 1 - Host Mode, 0 - Device Mode */
+                       modemask = <2>;
+               };
+
+               mbox0@480C8000 {
+                       compatible = "am335x,system-mbox";
+                       reg = < 0x480C8000 0x1000 >;
+                       interrupts = <77>;
+                       interrupt-parent = <&AINTC>;
+               };
+
+               spinlock0@480CA000 {
+                       compatible = "am335x,spinlock";
+                       reg = < 0x480CA000 0x1000 >;
+               };
+
+               pruss@4A300000 {
+                       compatible = "ti,pruss-v2";
+                       reg = <0x4A300000 0x80000>;
+                       interrupt-parent = <&AINTC>;
+                       interrupts = <20 21 22 23 24 25 26 27>;
+               };
+       };
+};
diff --git a/src/data/dts/arch/arm/bcm2835.dtsi 
b/src/data/dts/arch/arm/bcm2835.dtsi
index 8078ee4..6ff1944 100644
--- a/src/data/dts/arch/arm/bcm2835.dtsi
+++ b/src/data/dts/arch/arm/bcm2835.dtsi
@@ -396,6 +396,34 @@
                        };
                };
 
+               bsc0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "broadcom,bcm2835-bsc",
+                                    "broadcom,bcm2708-bsc";
+                       reg = <0x205000 0x20>;
+                       interrupts = <61>;
+                       interrupt-parent = <&intc>;
+               };
+
+               bsc1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       compatible = "broadcom,bcm2835-bsc",
+                                    "broadcom,bcm2708-bsc";
+                       reg = <0x804000 0x20>;
+                       interrupts = <61>;
+                       interrupt-parent = <&intc>;
+               };
+
+               spi0 {
+                       compatible = "broadcom,bcm2835-spi",
+                                    "broadcom,bcm2708-spi";
+                       reg = <0x204000 0x20>;
+                       interrupts = <62>;
+                       interrupt-parent = <&intc>;
+               };
+
                dma: dma {
                        compatible = "broadcom,bcm2835-dma", 
                                     "broadcom,bcm2708-dma";
diff --git a/src/data/dts/arch/arm/beaglebone-black.dts 
b/src/data/dts/arch/arm/beaglebone-black.dts
new file mode 100644
index 0000000..ff25f9d
--- /dev/null
+++ b/src/data/dts/arch/arm/beaglebone-black.dts
@@ -0,0 +1,184 @@
+/*-
+ * Copyright (c) 2012 Damjan Marion <dmarion@xxxxxxxxxxx>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * $FreeBSD$
+ */
+
+/dts-v1/;
+
+/include/ "am335x.dtsi"
+
+/ {
+       model = "beaglebone-black";
+       compatible = "beaglebone-black", "beaglebone", "ti,am335x";
+
+
+       aliases {
+               soc = &SOC;
+               uart0 = &uart0;
+       };
+
+       memory {
+               device_type = "memory";
+               reg = < 0x80000000 0x20000000 >;        /* 512MB RAM */
+       };
+
+       am335x {
+               scm@44e10000 {
+                       /* Set of triplets < padname, muxname, padstate> */
+                       scm-pad-config =
+                               /* I2C0 */
+                               "I2C0_SDA", "I2C0_SDA","i2c",
+                               "I2C0_SCL", "I2C0_SCL","i2c",
+                               /* I2C1 */
+                               "SPI0_D1", "I2C1_SDA", "i2c",
+                               "SPI0_CS0", "I2C1_SCL", "i2c",
+                               /* I2C2 */
+                               "UART1_CTSn", "I2C2_SDA", "i2c",
+                               "UART1_RTSn", "I2C2_SCL", "i2c",
+                               /* Ethernet */
+                               "MII1_RX_ER", "gmii1_rxerr", "input_pulldown",
+                               "MII1_TX_EN", "gmii1_txen", "output",
+                               "MII1_RX_DV", "gmii1_rxdv", "input_pulldown",
+                               "MII1_TXD3", "gmii1_txd3", "output",
+                               "MII1_TXD2", "gmii1_txd2", "output",
+                               "MII1_TXD1", "gmii1_txd1", "output",
+                               "MII1_TXD0", "gmii1_txd0", "output",
+                               "MII1_TX_CLK", "gmii1_txclk", "input_pulldown",
+                               "MII1_RX_CLK", "gmii1_rxclk", "input_pulldown",
+                               "MII1_RXD3", "gmii1_rxd3", "input_pulldown",
+                               "MII1_RXD2", "gmii1_rxd2", "input_pulldown",
+                               "MII1_RXD1", "gmii1_rxd1",  "input_pulldown",
+                               "MII1_RXD0", "gmii1_rxd0",  "input_pulldown",
+                               "MDIO", "mdio_data", "input_pullup",
+                               "MDC", "mdio_clk", "output_pullup",
+                               /* MMCSD0 */
+                               "MMC0_CMD", "mmc0_cmd", "input_pullup",
+                               "MMC0_CLK", "mmc0_clk", "input_pullup",
+                               "MMC0_DAT0", "mmc0_dat0", "input_pullup",
+                               "MMC0_DAT1", "mmc0_dat1", "input_pullup",
+                               "MMC0_DAT2", "mmc0_dat2", "input_pullup",
+                               "MMC0_DAT3", "mmc0_dat3", "input_pullup",
+                               /* MMC1 */
+                               "GPMC_CSn1", "mmc1_clk", "input_pullup",
+                               "GPMC_CSn2", "mmc1_cmd", "input_pullup",
+                               "GPMC_CSn3", "gpio2_0", "output_pullup", /* 
Reset */
+                               "GPMC_AD0", "mmc1_dat0", "input_pullup",
+                               "GPMC_AD1", "mmc1_dat1", "input_pullup",
+                               "GPMC_AD2", "mmc1_dat2", "input_pullup",
+                               "GPMC_AD3", "mmc1_dat3", "input_pullup",
+                               "GPMC_AD4", "mmc1_dat4", "input_pullup",
+                               "GPMC_AD5", "mmc1_dat5", "input_pullup",
+                               "GPMC_AD6", "mmc1_dat6", "input_pullup",
+                               "GPMC_AD7", "mmc1_dat7", "input_pullup",
+                               /* GPIO */
+                               "ECAP0_IN_PWM0_OUT", "gpio0_7", 
"input_pulldown",
+                               "GPMC_AD10", "gpio0_26", "input_pulldown",
+                               "GPMC_AD11", "gpio0_27", "input_pulldown",
+                               "GPMC_AD12", "gpio1_12", "input_pulldown",
+                               "GPMC_AD13", "gpio1_13", "input_pulldown",
+                               "GPMC_AD14", "gpio1_14", "input_pulldown",
+                               "GPMC_AD15", "gpio1_15", "input_pulldown",
+                               "GPMC_A0", "gpio1_16", "input_pulldown",
+                               "GPMC_A1", "gpio1_17", "input_pulldown",
+                               "GPMC_A5", "gpio1_21", "output", /* User LED 1 
*/
+                               "GPMC_A6", "gpio1_22", "output", /* User LED 2 
*/
+                               "GPMC_A7", "gpio1_23", "output", /* User LED 3 
*/
+                               "GPMC_A8", "gpio1_24", "output", /* User LED 4 
*/
+                               "GPMC_BEn1", "gpio1_28", "input_pulldown",
+                               "GPMC_CSn0", "gpio1_29", "input_pulldown",
+                               "GPMC_CLK", "gpio2_1", "input_pulldown",
+                               "LCD_DATA0", "gpio2_6", "input_pulldown", 
+                               "LCD_DATA1", "gpio2_7", "input_pulldown", 
+                               "LCD_DATA2", "gpio2_8", "input_pulldown", 
+                               "LCD_DATA3", "gpio2_9", "input_pulldown", 
+                               "LCD_DATA4", "gpio2_10", "input_pulldown", 
+                               "LCD_DATA5", "gpio2_11", "input_pulldown", 
+                               "LCD_DATA6", "gpio2_12", "input_pulldown", 
+                               "LCD_DATA7", "gpio2_13", "input_pulldown", 
+                               "LCD_VSYNC", "gpio2_22", "input_pulldown",
+                               "LCD_HSYNC", "gpio2_23", "input_pulldown",
+                               "LCD_PCLK", "gpio2_24", "input_pulldown",
+                               "LCD_AC_BIAS_EN", "gpio2_25", "input_pulldown",
+                               "MCASP0_FSR", "gpio3_19", "input_pulldown",
+                               "MCASP0_AHCLKX", "gpio3_21", "input_pulldown",
+                               /* TIMERs */
+                               "GPMC_ADVn_ALE", "timer4", "output",
+                               "GPMC_BEn0_CLE", "timer5", "output",
+                               "GPMC_WEn", "timer6", "output",
+                               "GPMC_OEn_REn", "timer7", "output",
+                               /* USB0 and USB1 */
+                               "USB0_DRVVBUS", "USB0_DRVVBUS", "output",
+                               "USB1_DRVVBUS", "USB1_DRVVBUS", "output",
+                               /* PWM */
+                               "GPMC_A2", "ehrpwm1A", "output",
+                               "GPMC_A3", "ehrpwm1B", "output",
+                               "GPMC_AD8", "ehrpwm2A", "output",
+                               "GPMC_AD9", "ehrpwm2B", "output";
+               };
+
+               mmchs1@481D8000 {
+                       bus-width = <8>;
+                       status = "okay";
+                       non-removable;
+               };
+ 
+               i2c@44e0b000 {
+                       pmic@48 {
+                               compatible = "ti,am335x-pmic";
+                               reg = <0x48>;
+                       };
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led1 {
+                       gpios = <&GPIO 53 2 0>;
+                       name = "led1";
+               };
+
+               led2 {
+                       gpios = <&GPIO 54 2 0>;
+                       name = "led2";
+               };
+
+               led3 {
+                       gpios = <&GPIO 55 2 0>;
+                       name = "led3";
+               };
+
+               led4 {
+                       gpios = <&GPIO 56 2 0>;
+                       name = "led4";
+               };
+       };
+
+       chosen {
+               stdin = "uart0";
+               stdout = "uart0";
+       };
+};
diff --git a/src/data/dts/arch/arm/beaglebone.dts 
b/src/data/dts/arch/arm/beaglebone.dts
new file mode 100644
index 0000000..83b948f
--- /dev/null
+++ b/src/data/dts/arch/arm/beaglebone.dts
@@ -0,0 +1,145 @@
+/*-
+ * Copyright (c) 2012 Damjan Marion <dmarion@xxxxxxxxxxx>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * $FreeBSD$
+ */
+
+/dts-v1/;
+
+/include/ "am335x.dtsi"
+
+/ {
+       model = "beaglebone";
+       compatible = "beaglebone", "ti,am335x";
+
+       aliases {
+               soc = &SOC;
+               uart0 = &uart0;
+       };
+
+       memory {
+               device_type = "memory";
+               reg = < 0x80000000 0x10000000 >;        /* 256MB RAM */
+       };
+
+       am335x {
+               scm@44e10000 {
+                       /* Set of triplets < padname, muxname, padstate> */
+                       scm-pad-config =
+                               /* I2C0 */
+                               "I2C0_SDA", "I2C0_SDA","i2c",
+                               "I2C0_SCL", "I2C0_SCL","i2c",
+                               /* Ethernet */
+                               "MII1_RX_ER", "gmii1_rxerr", "input_pulldown",
+                               "MII1_TX_EN", "gmii1_txen", "output",
+                               "MII1_RX_DV", "gmii1_rxdv", "input_pulldown",
+                               "MII1_TXD3", "gmii1_txd3", "output",
+                               "MII1_TXD2", "gmii1_txd2", "output",
+                               "MII1_TXD1", "gmii1_txd1", "output",
+                               "MII1_TXD0", "gmii1_txd0", "output",
+                               "MII1_TX_CLK", "gmii1_txclk", "input_pulldown",
+                               "MII1_RX_CLK", "gmii1_rxclk", "input_pulldown",
+                               "MII1_RXD3", "gmii1_rxd3", "input_pulldown",
+                               "MII1_RXD2", "gmii1_rxd2", "input_pulldown",
+                               "MII1_RXD1", "gmii1_rxd1",  "input_pulldown",
+                               "MII1_RXD0", "gmii1_rxd0",  "input_pulldown",
+                               "MDIO", "mdio_data", "input_pullup",
+                               "MDC", "mdio_clk", "output_pullup",
+                               /* MMCSD0 */
+                               "MMC0_CMD", "mmc0_cmd", "input_pullup",
+                               "MMC0_CLK", "mmc0_clk", "input_pullup",
+                               "MMC0_DAT0", "mmc0_dat0", "input_pullup",
+                               "MMC0_DAT1", "mmc0_dat1", "input_pullup",
+                               "MMC0_DAT2", "mmc0_dat2", "input_pullup",
+                               "MMC0_DAT3", "mmc0_dat3", "input_pullup",
+                               /* USB0 and USB1 */
+                               "USB0_DRVVBUS", "USB0_DRVVBUS", "output",
+                               "USB1_DRVVBUS", "USB1_DRVVBUS", "output",
+                               /* GPIO */
+                               "ECAP0_IN_PWM0_OUT", "gpio0_7", 
"input_pulldown",
+                               "GPMC_AD10", "gpio0_26", "input_pulldown",
+                               "GPMC_AD11", "gpio0_27", "input_pulldown",
+                               "GPMC_AD0", "gpio1_0", "input_pulldown",
+                               "GPMC_AD1", "gpio1_1", "input_pulldown",
+                               "GPMC_AD2", "gpio1_2", "input_pulldown",
+                               "GPMC_AD3", "gpio1_3", "input_pulldown",
+                               "GPMC_AD4", "gpio1_4", "input_pulldown",
+                               "GPMC_AD5", "gpio1_5", "input_pulldown",
+                               "GPMC_AD6", "gpio1_6", "input_pulldown",
+                               "GPMC_AD7", "gpio1_7", "input_pulldown",
+                               "GPMC_AD12", "gpio1_12", "input_pulldown",
+                               "GPMC_AD13", "gpio1_13", "input_pulldown",
+                               "GPMC_AD14", "gpio1_14", "input_pulldown",
+                               "GPMC_AD15", "gpio1_15", "input_pulldown",
+                               "GPMC_A0", "gpio1_16", "input_pulldown",
+                               "GPMC_A1", "gpio1_17", "input_pulldown",
+                               "GPMC_A5", "gpio1_21", "output", /* User LED 1 
*/
+                               "GPMC_A6", "gpio1_22", "output", /* User LED 2 
*/
+                               "GPMC_A7", "gpio1_23", "output", /* User LED 3 
*/
+                               "GPMC_A8", "gpio1_24", "output", /* User LED 4 
*/
+                               "GPMC_BEn1", "gpio1_28", "input_pulldown",
+                               "GPMC_CSn0", "gpio1_29", "input_pulldown",
+                               "GPMC_CSn1", "gpio1_30", "input_pulldown",
+                               "GPMC_CSn2", "gpio1_31", "input_pulldown",
+                               "GPMC_CLK", "gpio2_1", "input_pulldown",
+                               "LCD_DATA0", "gpio2_6", "input_pulldown", 
+                               "LCD_DATA1", "gpio2_7", "input_pulldown", 
+                               "LCD_DATA2", "gpio2_8", "input_pulldown", 
+                               "LCD_DATA3", "gpio2_9", "input_pulldown", 
+                               "LCD_DATA4", "gpio2_10", "input_pulldown", 
+                               "LCD_DATA5", "gpio2_11", "input_pulldown", 
+                               "LCD_DATA6", "gpio2_12", "input_pulldown", 
+                               "LCD_DATA7", "gpio2_13", "input_pulldown", 
+                               "LCD_VSYNC", "gpio2_22", "input_pulldown",
+                               "LCD_HSYNC", "gpio2_23", "input_pulldown",
+                               "LCD_PCLK", "gpio2_24", "input_pulldown",
+                               "LCD_AC_BIAS_EN", "gpio2_25", "input_pulldown",
+                               "MCASP0_FSR", "gpio3_19", "input_pulldown",
+                               "MCASP0_AHCLKX", "gpio3_21", "input_pulldown",
+                               /* TIMERs */
+                               "GPMC_ADVn_ALE", "timer4", "output",
+                               "GPMC_BEn0_CLE", "timer5", "output",
+                               "GPMC_WEn", "timer6", "output",
+                               "GPMC_OEn_REn", "timer7", "output",
+                               /* PWM */
+                               "GPMC_A2", "ehrpwm1A", "output",
+                               "GPMC_A3", "ehrpwm1B", "output",
+                               "GPMC_AD8", "ehrpwm2A", "output",
+                               "GPMC_AD9", "ehrpwm2B", "output";
+               };
+ 
+               i2c@44e0b000 {
+                       pmic@24 {
+                               compatible = "ti,am335x-pmic";
+                               reg = <0x48>;
+                       };
+               };
+       };
+
+       chosen {
+               stdin = "uart0";
+               stdout = "uart0";
+       };
+};
diff --git a/src/data/dts/arch/arm/cubieboard.dts 
b/src/data/dts/arch/arm/cubieboard.dts
new file mode 100644
index 0000000..636b5ce
--- /dev/null
+++ b/src/data/dts/arch/arm/cubieboard.dts
@@ -0,0 +1,71 @@
+/*-
+ * Copyright (c) 2012 Ganbold Tsagaankhuu <ganbold@xxxxxxxxxxx>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * $FreeBSD$
+ */
+
+/dts-v1/;
+
+/include/ "sun4i-a10.dtsi"
+
+/ {
+       model = "Cubietech Cubieboard";
+
+       memory {
+               device_type = "memory";
+               reg = < 0x40000000 0x40000000 >;        /* 1GB RAM */
+       };
+
+       aliases {
+               soc = &SOC;
+               UART0 = &UART0;
+       };
+
+       SOC: a10 {
+
+               usb1: usb@01c14000 {
+                       status = "okay";
+               };
+
+               usb2: usb@01c1c000 {
+                       status = "okay";
+               };
+
+               UART0: serial@01c28000 {
+                       status = "okay";
+               };
+
+               emac@01c0b000 {
+                       status = "okay";
+               };
+       };
+
+       chosen {
+               bootargs = "-v";
+               stdin = "UART0";
+               stdout = "UART0";
+       };
+};
+
diff --git a/src/data/dts/arch/arm/cubieboard2.dts 
b/src/data/dts/arch/arm/cubieboard2.dts
new file mode 100644
index 0000000..ce0081e
--- /dev/null
+++ b/src/data/dts/arch/arm/cubieboard2.dts
@@ -0,0 +1,75 @@
+/*-
+ * Copyright (c) 2013 Ganbold Tsagaankhuu <ganbold@xxxxxxxxxxx>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * $FreeBSD$
+ */
+
+/dts-v1/;
+
+/include/ "sun7i-a20.dtsi"
+
+/ {
+       model = "Cubietech Cubieboard2";
+
+       memory {
+               device_type = "memory";
+               reg = < 0x40000000 0x40000000 >;        /* 1GB RAM */
+       };
+
+       aliases {
+               soc = &SOC;
+               UART0 = &UART0;
+       };
+
+       SOC: a20 {
+
+               usb1: usb@01c14000 {
+                       status = "okay";
+               };
+
+               usb2: usb@01c1c000 {
+                       status = "okay";
+               };
+
+               UART0: serial@01c28000 {
+                       status = "okay";
+               };
+
+               emac@01c0b000 {
+                       status = "okay";
+               };
+
+               ahci: sata@01c18000 {
+                       status = "okay";
+               };
+       };
+
+       chosen {
+               bootargs = "-v";
+               stdin = "UART0";
+               stdout = "UART0";
+       };
+};
+
diff --git a/src/data/dts/arch/arm/rpi.dts b/src/data/dts/arch/arm/rpi.dts
index bdcee00..08d9d24 100644
--- a/src/data/dts/arch/arm/rpi.dts
+++ b/src/data/dts/arch/arm/rpi.dts
@@ -28,13 +28,24 @@
 
 /include/ "bcm2835.dtsi"
 
-/memreserve/ 0x08000000 0x08000000;    /* Set by VideoCore */
-
 / {
        model = "Raspberry Pi (BCM2835)";
        compatible = "raspberrypi,model-a", "raspberrypi,model-b", 
                     "broadcom,bcm2835-vc", "broadcom,bcm2708-vc";
 
+       memreserve = <0x08000000 0x08000000>;   /* Set by VideoCore */
+
+       cpus {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               cpu@0 {
+                       compatible = "arm,1176jzf-s";
+                       device_type = "cpu";
+                       reg = <0>;                      /* CPU ID=0 */
+                       clock-frequency = <700000000>;  /* 700MHz */
+               };
+       };
+
        memory {
                device_type = "memory";
                reg = <0 0x8000000>; /* 128MB, Set by VideoCore */
diff --git a/src/data/dts/arch/arm/sun4i-a10.dtsi 
b/src/data/dts/arch/arm/sun4i-a10.dtsi
new file mode 100644
index 0000000..09eebaa
--- /dev/null
+++ b/src/data/dts/arch/arm/sun4i-a10.dtsi
@@ -0,0 +1,133 @@
+/*-
+ * Copyright (c) 2014 Ganbold Tsagaankhuu <ganbold@xxxxxxxxxxx>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/ {
+       compatible = "allwinner,sun4i-a10";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       interrupt-parent = <&AINTC>;
+
+       aliases {
+               soc = &SOC;
+       };
+
+       SOC: a10 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               ranges;
+               bus-frequency = <0>;
+
+               AINTC: interrupt-controller@01c20400 {
+                       compatible = "allwinner,sun4i-ic";
+                       interrupt-controller;
+                       #address-cells = <0>;
+                       #interrupt-cells = <1>;
+                       reg =   < 0x01c20400 0x400 >;
+               };
+
+               sramc@01c00000 {
+                       compatible = "allwinner,sun4i-sramc";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = < 0x01c00000 0x1000 >;
+               };
+
+               ccm@01c20000 {
+                       compatible = "allwinner,sun4i-ccm";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = < 0x01c20000 0x400 >;
+               };
+
+               timer@01c20c00 {
+                       compatible = "allwinner,sun4i-timer";
+                       reg = <0x01c20c00 0x90>;
+                       interrupts = < 22 >;
+                       interrupt-parent = <&AINTC>;
+                       clock-frequency = < 24000000 >;
+               };
+
+               watchdog@01c20c90 {
+                       compatible = "allwinner,sun4i-wdt";
+                       reg = <0x01c20c90 0x08>;
+               };
+
+
+               GPIO: gpio@01c20800 {
+                       #gpio-cells = <3>;
+                       compatible = "allwinner,sun4i-gpio";
+                       gpio-controller;
+                       reg =<  0x01c20800 0x400 >;
+                       interrupts = < 28 >;
+                       interrupt-parent = <&AINTC>;
+               };
+
+               usb1: usb@01c14000 {
+                       compatible = "allwinner,usb-ehci", "usb-ehci";
+                       reg = <0x01c14000 0x1000>;
+                       interrupts = < 39 >;
+                       interrupt-parent = <&AINTC>;
+               };
+
+               usb2: usb@01c1c000 {
+                       compatible = "allwinner,usb-ehci", "usb-ehci";
+                       reg = <0x01c1c000 0x1000>;
+                       interrupts = < 40 >;
+                       interrupt-parent = <&AINTC>;
+               };
+
+               sata@01c18000 {
+                       compatible = "allwinner,sun4i-ahci";
+                       reg = <0x01c18000 0x1000>;
+                       interrupts = <56>;
+                       interrupt-parent = <&AINTC>;
+               };
+
+               UART0: serial@01c28000 {
+                       compatible = "ns16550";
+                       reg = <0x01c28000 0x400>;
+                       reg-shift = <2>;
+                       interrupts = <1>;
+                       interrupt-parent = <&AINTC>;
+                       current-speed = <115200>;
+                       clock-frequency = < 24000000 >;
+                       busy-detect = <1>;
+                       broken-txfifo = <1>;
+               };
+
+               emac@01c0b000 {
+                       compatible = "allwinner,sun4i-emac";
+                       reg = <0x01c0b000 0x1000>;
+                       interrupts = <55>;
+                       interrupt-parent = <&AINTC>;
+               };
+       };
+};
+
diff --git a/src/data/dts/arch/arm/sun7i-a20.dtsi 
b/src/data/dts/arch/arm/sun7i-a20.dtsi
new file mode 100644
index 0000000..ab4ef1e
--- /dev/null
+++ b/src/data/dts/arch/arm/sun7i-a20.dtsi
@@ -0,0 +1,139 @@
+/*-
+ * Copyright (c) 2014 Ganbold Tsagaankhuu <ganbold@xxxxxxxxxxx>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * $FreeBSD$
+ */
+
+/ {
+       compatible = "allwinner,sun7i-a20";
+       #address-cells = <1>;
+       #size-cells = <1>;
+
+       interrupt-parent = <&GIC>;
+
+       aliases {
+               soc = &SOC;
+       };
+
+       SOC: a20 {
+               #address-cells = <1>;
+               #size-cells = <1>;
+               compatible = "simple-bus";
+               ranges;
+               bus-frequency = <0>;
+
+               GIC: interrupt-controller@01c81000 {
+                       compatible = "arm,gic";
+                       reg =   <0x01c81000 0x1000>,    /* Distributor 
Registers */
+                               <0x01c82000 0x0100>;    /* CPU Interface 
Registers */
+                       interrupt-controller;
+                       #interrupt-cells = <1>;
+               };
+
+               sramc@01c00000 {
+                       compatible = "allwinner,sun4i-sramc";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = < 0x01c00000 0x1000 >;
+               };
+
+               cpu-cfg@01c25c00 {
+                       compatible = "allwinner,sun7i-cpu-cfg";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = < 0x01c25c00 0x400 >;
+               };
+
+               ccm@01c20000 {
+                       compatible = "allwinner,sun4i-ccm";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       reg = < 0x01c20000 0x400 >;
+               };
+
+               timer@01c20c00 {
+                       compatible = "allwinner,sun7i-timer";
+                       reg = <0x01c20c00 0x90>;
+                       interrupts = < 22 >;
+                       interrupt-parent = <&GIC>;
+                       clock-frequency = < 24000000 >;
+               };
+
+               watchdog@01c20c90 {
+                       compatible = "allwinner,sun4i-wdt";
+                       reg = <0x01c20c90 0x10>;
+               };
+
+               GPIO: gpio@01c20800 {
+                       #gpio-cells = <3>;
+                       compatible = "allwinner,sun4i-gpio";
+                       gpio-controller;
+                       reg =<  0x01c20800 0x400 >;
+                       interrupts = < 28 >;
+                       interrupt-parent = <&GIC>;
+               };
+
+               usb1: usb@01c14000 {
+                       compatible = "allwinner,usb-ehci", "usb-ehci";
+                       reg = <0x01c14000 0x1000>;
+                       interrupts = < 39 >;
+                       interrupt-parent = <&GIC>;
+               };
+
+               usb2: usb@01c1c000 {
+                       compatible = "allwinner,usb-ehci", "usb-ehci";
+                       reg = <0x01c1c000 0x1000>;
+                       interrupts = < 40 >;
+                       interrupt-parent = <&GIC>;
+               };
+
+               sata@01c18000 {
+                       compatible = "allwinner,sun4i-a10-ahci";
+                       reg = <0x01c18000 0x1000>;
+                       interrupts = <56>;
+                       interrupt-parent = <&GIC>;
+               };
+
+               UART0: serial@01c28000 {
+                       compatible = "ns16550";
+                       reg = <0x01c28000 0x400>;
+                       reg-shift = <2>;
+                       interrupts = <1>;
+                       interrupt-parent = <&GIC>;
+                       current-speed = <115200>;
+                       clock-frequency = < 24000000 >;
+                       busy-detect = <1>;
+                       broken-txfifo = <1>;
+               };
+
+               emac@01c0b000 {
+                       compatible = "allwinner,sun4i-emac";
+                       reg = <0x01c0b000 0x1000>;
+                       interrupts = <55>;
+                       interrupt-parent = <&GIC>;
+               };
+       };
+};
+


Other related posts:

  • » [haiku-commits] haiku: hrev48862 - src/data/dts/arch/arm - kallisti5