From edb96014a8f4ac19800ba61639692c5e9f7c17da Mon Sep 17 00:00:00 2001 From: Ganbold Tsagaankhuu Date: Tue, 31 Mar 2015 11:55:56 +0000 Subject: [PATCH] Add device tree files for Hardkernel Odroid-C1 and Visson ATV-102 devices. Submitted by: John Wehle Approved by: stas (mentor) --- sys/boot/fdt/dts/arm/odroidc1.dts | 497 +++++++++++++++++++++++++++ sys/boot/fdt/dts/arm/vsatv102-m6.dts | 412 ++++++++++++++++++++++ 2 files changed, 909 insertions(+) create mode 100644 sys/boot/fdt/dts/arm/odroidc1.dts create mode 100644 sys/boot/fdt/dts/arm/vsatv102-m6.dts diff --git a/sys/boot/fdt/dts/arm/odroidc1.dts b/sys/boot/fdt/dts/arm/odroidc1.dts new file mode 100644 index 00000000000..6a90ed434cc --- /dev/null +++ b/sys/boot/fdt/dts/arm/odroidc1.dts @@ -0,0 +1,497 @@ +/*- + * Copyright (c) 2015 John Wehle + * 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$ + */ + +/* + * The ordering of certain devices is significant (e.g. usb depends on + * usb-phy which depends on gpio, also the timer should appear early on + * to provide a reasonably accurate DELAY implementation). + * + * Both usb-phys devices must be configured to prevent the usb controller + * from hanging during initialization. + */ + +/dts-v1/; + +/memreserve/ 0x7900000 0x00600000; /* 6MB frame buffer */ + +/ { + model = "hardkernel,odroid-c1"; + compatible = "hardkernel,odroid-c1", "amlogic,s805"; + + #address-cells = <1>; + #size-cells = <1>; + + interrupt-parent = <&gic>; + + aliases { + soc = &soc; + screen = &screen; + uart0 = &uart0; + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a5"; + reg = <0x0>; + }; + + cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a5"; + reg = <0x1>; + }; + + cpu@2 { + device_type = "cpu"; + compatible = "arm,cortex-a5"; + reg = <0x2>; + }; + + cpu@3 { + device_type = "cpu"; + compatible = "arm,cortex-a5"; + reg = <0x3>; + }; + }; + + memory { + device_type = "memory"; + reg = <0x0 0x40000000>; /* 1GB RAM */ + }; + + soc: soc@c0000000 { + device_type = "soc"; + compatible = "simple-bus"; + bus-frequency = <0>; + + #address-cells = <1>; + #size-cells = <1>; + + ranges = <0x0 0xc0000000 0x1a100000>; + + gic: gic@4301000 { + device_type = "interrupt-controller"; + compatible = "arm,gic"; + reg = <0x4301000 0x1000>, // distributer registers + <0x4300100 0x0100>; // CPU if registers + + interrupt-controller; + #interrupt-cells = <1>; + }; + + scu: scu@4300000 { + compatible = "arm,cortex-a5-scu"; + reg = <0x4300000 0x1000>; + }; + + cpuconfig: cpuconfig@1901ff80 { + compatible = "amlogic,aml8726-cpuconfig"; + reg = <0x1901ff80 16>; + }; + + pl310@4200000 { + compatible = "arm,pl310"; + reg = <0x4200000 0x1000>; + interrupts = <61>; + interrupt-parent = <&gic>; + }; + + ccm@1104140 { + compatible = "amlogic,aml8726-ccm"; + reg = <0x1104140 20>; /* cbus 0x1050 */ + + functions = "ethernet", "i2c", "rng", "sdio", "sdxc", + "uart-a", "uart-b", "uart-c", + "usb-a", "usb-b"; + }; + + pinctrl@11080b0 { + compatible = "amlogic,aml8726-pinctrl"; + reg = <0x11080b0 40>, /* mux */ + <0x11080e8 24>, /* pu/pd */ + <0x1108120 24>, /* pull enable */ + <0x8100014 4>, /* ao mux */ + <0x810002c 4>, /* ao pu/pd */ + <0x810002c 4>; /* ao pull enable */ + + /* + * Currently only pin muxing that deviates + * from the power on default of gpio is + * specified here. + */ + + pinctrl-names = "default"; + pinctrl-0 = <&pins_uartao &pins_ethernet &pins_hdmi>; + + pins_ethernet: ethernet { + amlogic,pins = "ref_clk", + "tx_clk", "tx_en", + "tx_d0", "tx_d1", + "tx_d2", "tx_d3", + "rx_clk", "rx_dv", + "rx_d0", "rx_d1", + "rx_d2", "rx_d3", + "mdc", "mdio"; + amlogic,function = "ethernet"; + }; + + pins_hdmi: hdmi { + amlogic,pins = "cec", "hpd", + "scl", "sda"; + amlogic,function = "hdmi"; + }; + + pins_sdio_b: sdio_b { + amlogic,pins = "clk", "cmd", + "d0", "d1", + "d2", "d3"; + amlogic,function = "sdio-b"; + amlogic,pull = "up"; + }; + + pins_sdxc_b: sdxc_b { + amlogic,pins = "clk", "cmd", + "d0", "d1", + "d2", "d3"; + amlogic,function = "sdxc-b"; + amlogic,pull = "up"; + }; + + pins_sdio_c: sdio_c { + amlogic,pins = "clk", "cmd", + "d0", "d1", + "d2", "d3"; + amlogic,function = "sdio-c"; + amlogic,pull = "up"; + }; + + pins_sdxc_c: sdxc_c { + amlogic,pins = "clk", "cmd", + "d0", "d1", + "d2", "d3", + "d4", "d5", + "d6", "d7"; + amlogic,function = "sdxc-c"; + amlogic,pull = "up"; + }; + + pins_i2c_a: i2c_a { + amlogic,pins = "scl", "sda"; + amlogic,function = "i2c-a"; + }; + + pins_i2c_b: i2c_b { + amlogic,pins = "scl", "sda"; + amlogic,function = "i2c-b"; + }; + + pins_uarta: uarta { + amlogic,pins = "tx", "rx", "cts", "rts"; + amlogic,function = "uart-a"; + }; + + pins_uartb: uartb { + + /* + * gpiox18 appears to have special + * meaning to the bootloader making + * hardware handshaking unavailable. + */ + + amlogic,pins = "tx", "rx"; + amlogic,function = "uart-b"; + }; + + pins_uartc: uartc { + amlogic,pins = "tx", "rx", "cts", "rts"; + amlogic,function = "uart-c"; + }; + + pins_uartao: uartao { + amlogic,pins = "tx", "rx"; + amlogic,function = "uart-ao"; + }; + }; + + watchdog@1109900 { + compatible = "amlogic,aml8726-wdt"; + reg = <0x1109900 8>; /* cbus 0x2640 */ + interrupts = <0>; + interrupt-parent = <&gic>; + }; + + timer@1109940 { + compatible = "amlogic,aml8726-timer"; + reg = <0x1109940 24>; /* cbus 0x2650 */ + interrupts = <10 11 6 29>; + interrupt-parent = <&gic>; + }; + + rtc@8100740 { + compatible = "amlogic,aml8726-rtc"; + reg = <0x8100740 20>; /* aobus 0x1d0 */ + interrupts = <72>; + interrupt-parent = <&gic>; + + init-always = "false"; + xo-init = <0x180a>; + gpo-init = <0x500000>; + }; + + clkmsr: clkmsr@1108758 { + compatible = "amlogic,aml8726-clkmsr"; + reg = <0x1108758 16>; /* cbus 0x21d6 */ + }; + + uart0: uart@81004c0 { + /* uart-ao */ + device_type = "serial"; + compatible = "amlogic,aml8726-uart"; + clock-frequency = <0>; + current-speed = <115200>; + reg = <0x81004c0 20>; /* aobus 0x130 */ + interrupts = <90>; + interrupt-parent = <&gic>; + }; + + gpioao: gpio@8100024 { + /* gpio unit 7 */ + compatible = "amlogic,aml8726-gpio"; + reg = <0x8100024 4>, /* oen aobus 0x9 */ + <0x8100024 4>, /* out */ + <0x8100028 4>; /* in */ + + gpio-controller; + #gpio-cells = <1>; + pin-count = <14>; + }; + + gpio3: gpio@1108054 { + compatible = "amlogic,aml8726-gpio"; + reg = <0x1108054 4>, /* oen cbus 0x2015 */ + <0x1108058 4>, /* out */ + <0x110805c 4>; /* in */ + + gpio-controller; + #gpio-cells = <1>; + pin-count = <32>; + }; + + gpio5: gpio@110806c { + compatible = "amlogic,aml8726-gpio"; + reg = <0x110806c 4>, /* oen cbus 0x201b */ + <0x1108070 4>, /* out */ + <0x1108074 4>; /* in */ + + gpio-controller; + #gpio-cells = <1>; + pin-count = <32>; + }; + + mmc@1108c20 { + compatible = "amlogic,aml8726-mmc"; + reg = <0x1108c20 32>; /* cbus 0x2308 */ + interrupts = <28>; + interrupt-parent = <&gic>; + + pinctrl-names = "default"; + pinctrl-0 = <&pins_sdio_b>; + + /* + * Ordering is significant. + * + * mmc-vselect low sets first voltage + * mmc-vselect high sets second voltage + * + * If mmc-vselect is not present, then + * only one voltage should be specified. + */ + mmc-voltages = "3.3", "1.8"; + mmc-vselect = <&gpioao 3>; /* gpioao_3 */ + + mmc-pwr-en = <&gpio5 31 0>; /* card_8 */ + ins-detect = <&gpio5 29 0>; /* card_6 */ + }; + + sdxc@1108e00 { + compatible = "amlogic,aml8726-sdxc-m8"; + clock-frequency = <1275000000>; + reg = <0x1108e00 60>; /* cbus 0x2380 */ + interrupts = <78>; + interrupt-parent = <&gic>; + + pinctrl-names = "default"; + pinctrl-0 = <&pins_sdxc_c>; + + mmc-voltages = "1.8"; + + mmc-rst = <&gpio3 9 0>; /* boot_9 emmc-rst */ + }; + + rng@1108100 { + compatible = "amlogic,aml8726-rng"; + reg = <0x1108100 8>; /* cbus 0x2040 */ + }; + + i2c@1108500 { + /* i2c-a */ + compatible = "amlogic,aml8726-i2c"; + reg = <0x1108500 32>; /* cbus 0x2140 */ + interrupts = <21>; + interrupt-parent = <&gic>; + }; + + i2c@11087c0 { + /* i2c-b */ + compatible = "amlogic,aml8726-i2c"; + reg = <0x11087c0 32>; /* cbus 0x21f0 */ + interrupts = <128>; + interrupt-parent = <&gic>; + }; + + uart@11084c0 { + /* uart-a */ + device_type = "serial"; + compatible = "amlogic,aml8726-uart"; + clock-frequency = <0>; + current-speed = <115200>; + reg = <0x11084c0 20>; /* cbus 0x2130 */ + interrupts = <26>; + interrupt-parent = <&gic>; + }; + + uart@11084dc { + /* uart-b */ + device_type = "serial"; + compatible = "amlogic,aml8726-uart"; + clock-frequency = <0>; + current-speed = <115200>; + reg = <0x11084dc 20>; /* cbus 0x2137 */ + interrupts = <75>; + interrupt-parent = <&gic>; + }; + + uart@1108700 { + /* uart-c */ + device_type = "serial"; + compatible = "amlogic,aml8726-uart"; + clock-frequency = <0>; + current-speed = <115200>; + reg = <0x1108700 20>; /* cbus 0x21c0 */ + interrupts = <93>; + interrupt-parent = <&gic>; + }; + + usb-phy@1108800 { + /* usb-a phy */ + compatible = "amlogic,aml8726-m8-usb-phy"; + reg = <0x1108800 32>; /* cbus 0x2200 */ + + usb-pwr-en = <&gpioao 5 1>; /* gpioao_5 vbus */ + }; + + usb-phy@1108820 { + /* usb-b phy */ + compatible = "amlogic,aml8726-m8-usb-phy"; + reg = <0x1108820 32>; /* cbus 0x2208 */ + + force-aca = "true"; + usb-hub-rst = <&gpioao 4 0>; /* gpioao_4 hub-rst */ + }; + + usb@9040000 { + /* usb-a */ + compatible = "synopsys,designware-hs-otg2"; + reg = <0x9040000 0x40000>; /* ahbbus 0x40000*/ + interrupts = <30>; + interrupt-parent = <&gic>; + #address-cells = <1>; + #size-cells = <0>; + + dr_mode = "host"; + }; + + usb@90c0000 { + /* usb-b */ + compatible = "synopsys,designware-hs-otg2"; + reg = <0x90c0000 0x40000>; /* ahbbus 0xc0000 */ + interrupts = <31>; + interrupt-parent = <&gic>; + #address-cells = <1>; + #size-cells = <0>; + + dr_mode = "host"; + }; + + eth@9410000 { + /* ethernet */ + compatible = "snps,dwmac"; + reg = <0x9410000 0x2000>; /* ahbbus 0x410000 */ + interrupts = <8>; + interrupt-parent = <&gic>; + #address-cells = <1>; + #size-cells = <0>; + + eth-phy-rst = <&gpio3 23 0>; /* gpioh_4 phy-rst */ + }; + + screen: fb@8006020 { + device_type = "display"; + compatible = "amlogic,aml8726-fb"; + reg = <0x8006048 12>, /* CANVAS */ + <0x1106800 1024>, /* VIU */ + <0x1107400 1024>; /* VPP */ + interrupts = <2 3 12 13>; + interrupt-parent = <&gic>; + + address = <0x7900000>; /* match memreserve */ + width = <720>; + height = <480>; + depth = <24>; + linebytes = <2160>; + }; + }; + + leds { + compatible = "gpio-leds"; + + sys_led { + gpios = <&gpioao 13>; /* gpioao_13 sys_led */ + label = "sys_led"; + }; + }; + + chosen { + stdin = "uart0"; + stdout = "uart0"; + }; +}; diff --git a/sys/boot/fdt/dts/arm/vsatv102-m6.dts b/sys/boot/fdt/dts/arm/vsatv102-m6.dts new file mode 100644 index 00000000000..639e0100e75 --- /dev/null +++ b/sys/boot/fdt/dts/arm/vsatv102-m6.dts @@ -0,0 +1,412 @@ +/*- + * Copyright (c) 2013-2015 John Wehle + * 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$ + */ + +/* + * The ordering of certain devices is significant (e.g. usb depends on + * usb-phy which depends on gpio, also the timer should appear early on + * to provide a reasonably accurate DELAY implementation). + * + * Both usb-phys devices must be configured to prevent the usb controller + * from hanging during initialization. + */ + +/dts-v1/; + +/memreserve/ 0x84900000 0x00600000; /* 6MB frame buffer */ + +/ { + /* + * My development unit visually appears to be a Visson ATV-102 + * and the specs for both my unit and the Visson ATV-102 say + * the SoC is an aml8726-m3. However the uboot prompt says + * m6_mbx_v1, the RTC is located on SECBUS2 instead of AOBUS, + * and there are two cores so it seems my unit is a newer + * version using the later processor. + */ + + model = "visson,atv-102"; + compatible = "visson,atv-102", "amlogic,aml8726-m6"; + + #address-cells = <1>; + #size-cells = <1>; + + interrupt-parent = <&gic>; + + aliases { + soc = &soc; + screen = &screen; + uart0 = &uart0; + }; + + cpus { + #address-cells = <1>; + #size-cells = <0>; + + cpu@0 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0x0>; + }; + + cpu@1 { + device_type = "cpu"; + compatible = "arm,cortex-a9"; + reg = <0x1>; + }; + }; + + memory { + device_type = "memory"; + reg = <0x80000000 0x40000000>; /* 1GB RAM */ + }; + + soc: soc@c0000000 { + device_type = "soc"; + compatible = "simple-bus"; + bus-frequency = <0>; + + #address-cells = <1>; + #size-cells = <1>; + + ranges = <0x0 0xc0000000 0x1a100000>; + + pic: pic@1109a40 { + device_type = "interrupt-controller"; + compatible = "amlogic,aml8726-pic"; + reg = <0x1109a40 128>; /* cbus 0x2690 */ + + interrupt-controller; + #interrupt-cells = <1>; + }; + + gic: gic@4301000 { + device_type = "interrupt-controller"; + compatible = "arm,gic"; + reg = <0x4301000 0x1000>, /* distributer registers */ + <0x4300100 0x0100>; /* CPU if registers */ + + interrupt-controller; + #interrupt-cells = <1>; + }; + + scu: scu@4300000 { + compatible = "arm,cortex-a9-scu"; + reg = <0x4300000 0x1000>; + }; + + cpuconfig: cpuconfig@1901ff80 { + compatible = "amlogic,aml8726-cpuconfig"; + reg = <0x1901ff80 8>; + }; + + pl310@4200000 { + compatible = "arm,pl310"; + reg = <0x4200000 0x1000>; + interrupts = <61>; /* AM_IRQ1(29) */ + interrupt-parent = <&gic>; + }; + + ccm@1104140 { + compatible = "amlogic,aml8726-ccm"; + reg = <0x1104140 20>; /* cbus 0x1050 */ + + functions = "ethernet", "i2c", "rng", "sdio", + "uart-a", "uart-b", "uart-c", + "usb-a", "usb-b"; + }; + + pinctrl: pinctrl@11080b0 { + compatible = "amlogic,aml8726-pinctrl"; + reg = <0x11080b0 40>, /* mux */ + <0x11080e8 24>, /* pu/pd */ + <0x11080e8 24>, /* pull enable */ + <0x8100014 4>, /* ao mux */ + <0x810002c 4>, /* ao pu/pd */ + <0x810002c 4>; /* ao pull enable */ + + /* + * Currently only pin muxing that deviates + * from the power on default of gpio is + * specified here. + */ + + pinctrl-names = "default"; + pinctrl-0 = <&pins_uartao &pins_ethernet &pins_hdmi>; + + pins_ethernet: ethernet { + amlogic,pins = "ref_clk_in", + "tx_clk", "tx_en", + "tx_d0", "tx_d1", + "tx_d2", "tx_d3", + "rx_clk", "rx_dv", + "rx_d0", "rx_d1", + "rx_d2", "rx_d3", + "mdc", "mdio"; + amlogic,function = "ethernet"; + }; + + pins_hdmi: hdmi { + amlogic,pins = "cec", "hpd", + "scl", "sda"; + amlogic,function = "hdmi"; + }; + + pins_sdio_b: sdio_b { + amlogic,pins = "clk", "cmd", + "d0", "d1", + "d2", "d3"; + amlogic,function = "sdio-b"; + }; + + pins_uartao: uartao { + amlogic,pins = "tx", "rx"; + amlogic,function = "uart-ao"; + }; + }; + + watchdog@1109900 { + compatible = "amlogic,aml8726-wdt"; + reg = <0x1109900 8>; /* cbus 0x2640 */ + interrupts = <0>; /* AM_IRQ0(0) */ + interrupt-parent = <&gic>; + }; + + timer@1109940 { + compatible = "amlogic,aml8726-timer"; + reg = <0x1109940 24>; /* cbus 0x2650 */ + interrupts = <10 /* AM_IRQ0(10) */ + 11 /* AM_IRQ0(11) */ + 6 /* AM_IRQ0(6) */ + 29>; /* AM_IRQ0(29) */ + interrupt-parent = <&gic>; + }; + + rtc@1a004340 { + compatible = "amlogic,aml8726-rtc"; + reg = <0x1a004340 20>; /* secbus2 0xd0 */ + interrupts = <72>; /* AM_IRQ2(8) */ + interrupt-parent = <&gic>; + + init-always = "false"; + xo-init = <0x180a>; + gpo-init = <0x500000>; + }; + + clkmsr: clkmsr@1108758 { + compatible = "amlogic,aml8726-clkmsr"; + reg = <0x1108758 16>; /* cbus 0x21d6 */ + }; + + uart0: uart@81004c0 { + /* uart-ao */ + device_type = "serial"; + compatible = "amlogic,aml8726-uart"; + clock-frequency = <0>; + current-speed = <115200>; + reg = <0x81004c0 20>; /* aobus 0x130 */ + interrupts = <90>; /* AM_IRQ2(26) */ + interrupt-parent = <&gic>; + }; + + gpioao: gpio@8100024 { + /* gpio unit 7 */ + compatible = "amlogic,aml8726-gpio"; + reg = <0x8100024 4>, /* oen aobus 0x9 */ + <0x8100024 4>, /* out */ + <0x8100028 4>; /* in */ + + gpio-controller; + #gpio-cells = <1>; + pin-count = <12>; + }; + + gpio5: gpio@110806c { + compatible = "amlogic,aml8726-gpio"; + reg = <0x110806c 4>, /* oen cbus 0x201b */ + <0x1108070 4>, /* out */ + <0x1108074 4>; /* in */ + + gpio-controller; + #gpio-cells = <1>; + pin-count = <32>; + }; + + gpio6: gpio@1108020 { + compatible = "amlogic,aml8726-gpio"; + reg = <0x1108020 4>, /* oen cbus 0x2008 */ + <0x1108024 4>, /* out */ + <0x1108028 4>; /* in */ + + gpio-controller; + #gpio-cells = <1>; + pin-count = <29>; + }; + + mmc@1108c20 { + compatible = "amlogic,aml8726-mmc"; + reg = <0x1108c20 32>; /* cbus 0x2308 */ + interrupts = <28>; /* AM_IRQ0(28) */ + interrupt-parent = <&gic>; + + pinctrl-names = "default"; + pinctrl-0 = <&pins_sdio_b>; + + mmc-voltages = "3.3"; + + mmc-pwr-en = <&gpio5 31 0>; /* card_8 */ + ins-detect = <&gpio5 29 0>; /* card_6 */ + }; + + rng@1108100 { + compatible = "amlogic,aml8726-rng"; + reg = <0x1108100 8>; /* cbus 0x2040 */ + }; + + i2c@1108500 { + /* i2c-a */ + compatible = "amlogic,aml8726-i2c"; + reg = <0x1108500 32>; /* cbus 0x2140 */ + interrupts = <21>; + interrupt-parent = <&gic>; + }; + + i2c@11087c0 { + /* i2c-b */ + compatible = "amlogic,aml8726-i2c"; + reg = <0x11087c0 32>; /* cbus 0x21f0 */ + interrupts = <128>; + interrupt-parent = <&gic>; + }; + + uart@11084c0 { + /* uart-a */ + device_type = "serial"; + compatible = "amlogic,aml8726-uart"; + clock-frequency = <0>; + current-speed = <115200>; + reg = <0x11084c0 20>; /* cbus 0x2130 */ + interrupts = <26>; + interrupt-parent = <&gic>; + }; + + uart@11084dc { + /* uart-b */ + device_type = "serial"; + compatible = "amlogic,aml8726-uart"; + clock-frequency = <0>; + current-speed = <115200>; + reg = <0x11084dc 20>; /* cbus 0x2137 */ + interrupts = <75>; + interrupt-parent = <&gic>; + }; + + uart@1108700 { + /* uart-c */ + device_type = "serial"; + compatible = "amlogic,aml8726-uart"; + clock-frequency = <0>; + current-speed = <115200>; + reg = <0x1108700 20>; /* cbus 0x21c0 */ + interrupts = <93>; + interrupt-parent = <&gic>; + }; + + usb-phy@1108400 { + /* usb-a phy */ + compatible = "amlogic,aml8726-m6-usb-phy"; + reg = <0x1108400 32>; /* cbus 0x2100 */ + }; + + usb-phy@1108420 { + /* usb-b phy */ + compatible = "amlogic,aml8726-m6-usb-phy"; + reg = <0x1108420 32>; /* cbus 0x2108 */ + + usb-pwr-en = <&gpioao 3 1>, /* gpioao_3 vbus */ + <&gpio6 11 0>; /* gpioe_11 wifi */ + }; + + usb@9040000 { + /* usb-a */ + compatible = "synopsys,designware-hs-otg2"; + reg = <0x9040000 0x40000>; /* ahbbus 0x40000*/ + interrupts = <30>; /* AM_IRQ0(30) */ + interrupt-parent = <&gic>; + #address-cells = <1>; + #size-cells = <0>; + }; + + usb@90c0000 { + /* usb-b */ + compatible = "synopsys,designware-hs-otg2"; + reg = <0x90c0000 0x40000>; /* ahbbus 0xc0000 */ + interrupts = <31>; /* AM_IRQ0(31) */ + interrupt-parent = <&gic>; + #address-cells = <1>; + #size-cells = <0>; + + dr_mode = "host"; + }; + + eth@9410000 { + /* ethernet */ + compatible = "snps,dwmac"; + reg = <0x9410000 0x2000>; /* ahbbus 0x410000 */ + interrupts = <8>; /* AM_IRQ0(8) */ + interrupt-parent = <&gic>; + #address-cells = <1>; + #size-cells = <0>; + + eth-phy-rst = <&gpio5 15 0>; /* gpioy_15 phy-rst */ + }; + + screen: fb@8006324 { + device_type = "display"; + compatible = "amlogic,aml8726-fb"; + reg = <0x8006324 12>, /* CANVAS */ + <0x1106800 1024>, /* VIU */ + <0x1107400 1024>; /* VPP */ + interrupts = <2 /* AM_IRQ0(2) */ + 3 /* AM_IRQ0(3) */ + 12 /* AM_IRQ0(12) */ + 13>; /* AM_IRQ0(13) */ + interrupt-parent = <&gic>; + + address = <0x84900000>; /* match memreserve */ + width = <720>; + height = <480>; + depth = <24>; + linebytes = <2160>; + }; + }; + + chosen { + stdin = "uart0"; + stdout = "uart0"; + }; +}; -- 2.45.2