vsatv102-m6.dts revision 280906
1280906Sganbold/*- 2280906Sganbold * Copyright (c) 2013-2015 John Wehle <john@feith.com> 3280906Sganbold * All rights reserved. 4280906Sganbold * 5280906Sganbold * Redistribution and use in source and binary forms, with or without 6280906Sganbold * modification, are permitted provided that the following conditions 7280906Sganbold * are met: 8280906Sganbold * 1. Redistributions of source code must retain the above copyright 9280906Sganbold * notice, this list of conditions and the following disclaimer. 10280906Sganbold * 2. Redistributions in binary form must reproduce the above copyright 11280906Sganbold * notice, this list of conditions and the following disclaimer in the 12280906Sganbold * documentation and/or other materials provided with the distribution. 13280906Sganbold * 14280906Sganbold * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15280906Sganbold * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16280906Sganbold * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17280906Sganbold * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18280906Sganbold * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19280906Sganbold * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20280906Sganbold * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21280906Sganbold * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22280906Sganbold * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23280906Sganbold * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24280906Sganbold * SUCH DAMAGE. 25280906Sganbold * 26280906Sganbold * $FreeBSD: head/sys/boot/fdt/dts/arm/vsatv102-m6.dts 280906 2015-03-31 11:55:56Z ganbold $ 27280906Sganbold */ 28280906Sganbold 29280906Sganbold/* 30280906Sganbold * The ordering of certain devices is significant (e.g. usb depends on 31280906Sganbold * usb-phy which depends on gpio, also the timer should appear early on 32280906Sganbold * to provide a reasonably accurate DELAY implementation). 33280906Sganbold * 34280906Sganbold * Both usb-phys devices must be configured to prevent the usb controller 35280906Sganbold * from hanging during initialization. 36280906Sganbold */ 37280906Sganbold 38280906Sganbold/dts-v1/; 39280906Sganbold 40280906Sganbold/memreserve/ 0x84900000 0x00600000; /* 6MB frame buffer */ 41280906Sganbold 42280906Sganbold/ { 43280906Sganbold /* 44280906Sganbold * My development unit visually appears to be a Visson ATV-102 45280906Sganbold * and the specs for both my unit and the Visson ATV-102 say 46280906Sganbold * the SoC is an aml8726-m3. However the uboot prompt says 47280906Sganbold * m6_mbx_v1, the RTC is located on SECBUS2 instead of AOBUS, 48280906Sganbold * and there are two cores so it seems my unit is a newer 49280906Sganbold * version using the later processor. 50280906Sganbold */ 51280906Sganbold 52280906Sganbold model = "visson,atv-102"; 53280906Sganbold compatible = "visson,atv-102", "amlogic,aml8726-m6"; 54280906Sganbold 55280906Sganbold #address-cells = <1>; 56280906Sganbold #size-cells = <1>; 57280906Sganbold 58280906Sganbold interrupt-parent = <&gic>; 59280906Sganbold 60280906Sganbold aliases { 61280906Sganbold soc = &soc; 62280906Sganbold screen = &screen; 63280906Sganbold uart0 = &uart0; 64280906Sganbold }; 65280906Sganbold 66280906Sganbold cpus { 67280906Sganbold #address-cells = <1>; 68280906Sganbold #size-cells = <0>; 69280906Sganbold 70280906Sganbold cpu@0 { 71280906Sganbold device_type = "cpu"; 72280906Sganbold compatible = "arm,cortex-a9"; 73280906Sganbold reg = <0x0>; 74280906Sganbold }; 75280906Sganbold 76280906Sganbold cpu@1 { 77280906Sganbold device_type = "cpu"; 78280906Sganbold compatible = "arm,cortex-a9"; 79280906Sganbold reg = <0x1>; 80280906Sganbold }; 81280906Sganbold }; 82280906Sganbold 83280906Sganbold memory { 84280906Sganbold device_type = "memory"; 85280906Sganbold reg = <0x80000000 0x40000000>; /* 1GB RAM */ 86280906Sganbold }; 87280906Sganbold 88280906Sganbold soc: soc@c0000000 { 89280906Sganbold device_type = "soc"; 90280906Sganbold compatible = "simple-bus"; 91280906Sganbold bus-frequency = <0>; 92280906Sganbold 93280906Sganbold #address-cells = <1>; 94280906Sganbold #size-cells = <1>; 95280906Sganbold 96280906Sganbold ranges = <0x0 0xc0000000 0x1a100000>; 97280906Sganbold 98280906Sganbold pic: pic@1109a40 { 99280906Sganbold device_type = "interrupt-controller"; 100280906Sganbold compatible = "amlogic,aml8726-pic"; 101280906Sganbold reg = <0x1109a40 128>; /* cbus 0x2690 */ 102280906Sganbold 103280906Sganbold interrupt-controller; 104280906Sganbold #interrupt-cells = <1>; 105280906Sganbold }; 106280906Sganbold 107280906Sganbold gic: gic@4301000 { 108280906Sganbold device_type = "interrupt-controller"; 109280906Sganbold compatible = "arm,gic"; 110280906Sganbold reg = <0x4301000 0x1000>, /* distributer registers */ 111280906Sganbold <0x4300100 0x0100>; /* CPU if registers */ 112280906Sganbold 113280906Sganbold interrupt-controller; 114280906Sganbold #interrupt-cells = <1>; 115280906Sganbold }; 116280906Sganbold 117280906Sganbold scu: scu@4300000 { 118280906Sganbold compatible = "arm,cortex-a9-scu"; 119280906Sganbold reg = <0x4300000 0x1000>; 120280906Sganbold }; 121280906Sganbold 122280906Sganbold cpuconfig: cpuconfig@1901ff80 { 123280906Sganbold compatible = "amlogic,aml8726-cpuconfig"; 124280906Sganbold reg = <0x1901ff80 8>; 125280906Sganbold }; 126280906Sganbold 127280906Sganbold pl310@4200000 { 128280906Sganbold compatible = "arm,pl310"; 129280906Sganbold reg = <0x4200000 0x1000>; 130280906Sganbold interrupts = <61>; /* AM_IRQ1(29) */ 131280906Sganbold interrupt-parent = <&gic>; 132280906Sganbold }; 133280906Sganbold 134280906Sganbold ccm@1104140 { 135280906Sganbold compatible = "amlogic,aml8726-ccm"; 136280906Sganbold reg = <0x1104140 20>; /* cbus 0x1050 */ 137280906Sganbold 138280906Sganbold functions = "ethernet", "i2c", "rng", "sdio", 139280906Sganbold "uart-a", "uart-b", "uart-c", 140280906Sganbold "usb-a", "usb-b"; 141280906Sganbold }; 142280906Sganbold 143280906Sganbold pinctrl: pinctrl@11080b0 { 144280906Sganbold compatible = "amlogic,aml8726-pinctrl"; 145280906Sganbold reg = <0x11080b0 40>, /* mux */ 146280906Sganbold <0x11080e8 24>, /* pu/pd */ 147280906Sganbold <0x11080e8 24>, /* pull enable */ 148280906Sganbold <0x8100014 4>, /* ao mux */ 149280906Sganbold <0x810002c 4>, /* ao pu/pd */ 150280906Sganbold <0x810002c 4>; /* ao pull enable */ 151280906Sganbold 152280906Sganbold /* 153280906Sganbold * Currently only pin muxing that deviates 154280906Sganbold * from the power on default of gpio is 155280906Sganbold * specified here. 156280906Sganbold */ 157280906Sganbold 158280906Sganbold pinctrl-names = "default"; 159280906Sganbold pinctrl-0 = <&pins_uartao &pins_ethernet &pins_hdmi>; 160280906Sganbold 161280906Sganbold pins_ethernet: ethernet { 162280906Sganbold amlogic,pins = "ref_clk_in", 163280906Sganbold "tx_clk", "tx_en", 164280906Sganbold "tx_d0", "tx_d1", 165280906Sganbold "tx_d2", "tx_d3", 166280906Sganbold "rx_clk", "rx_dv", 167280906Sganbold "rx_d0", "rx_d1", 168280906Sganbold "rx_d2", "rx_d3", 169280906Sganbold "mdc", "mdio"; 170280906Sganbold amlogic,function = "ethernet"; 171280906Sganbold }; 172280906Sganbold 173280906Sganbold pins_hdmi: hdmi { 174280906Sganbold amlogic,pins = "cec", "hpd", 175280906Sganbold "scl", "sda"; 176280906Sganbold amlogic,function = "hdmi"; 177280906Sganbold }; 178280906Sganbold 179280906Sganbold pins_sdio_b: sdio_b { 180280906Sganbold amlogic,pins = "clk", "cmd", 181280906Sganbold "d0", "d1", 182280906Sganbold "d2", "d3"; 183280906Sganbold amlogic,function = "sdio-b"; 184280906Sganbold }; 185280906Sganbold 186280906Sganbold pins_uartao: uartao { 187280906Sganbold amlogic,pins = "tx", "rx"; 188280906Sganbold amlogic,function = "uart-ao"; 189280906Sganbold }; 190280906Sganbold }; 191280906Sganbold 192280906Sganbold watchdog@1109900 { 193280906Sganbold compatible = "amlogic,aml8726-wdt"; 194280906Sganbold reg = <0x1109900 8>; /* cbus 0x2640 */ 195280906Sganbold interrupts = <0>; /* AM_IRQ0(0) */ 196280906Sganbold interrupt-parent = <&gic>; 197280906Sganbold }; 198280906Sganbold 199280906Sganbold timer@1109940 { 200280906Sganbold compatible = "amlogic,aml8726-timer"; 201280906Sganbold reg = <0x1109940 24>; /* cbus 0x2650 */ 202280906Sganbold interrupts = <10 /* AM_IRQ0(10) */ 203280906Sganbold 11 /* AM_IRQ0(11) */ 204280906Sganbold 6 /* AM_IRQ0(6) */ 205280906Sganbold 29>; /* AM_IRQ0(29) */ 206280906Sganbold interrupt-parent = <&gic>; 207280906Sganbold }; 208280906Sganbold 209280906Sganbold rtc@1a004340 { 210280906Sganbold compatible = "amlogic,aml8726-rtc"; 211280906Sganbold reg = <0x1a004340 20>; /* secbus2 0xd0 */ 212280906Sganbold interrupts = <72>; /* AM_IRQ2(8) */ 213280906Sganbold interrupt-parent = <&gic>; 214280906Sganbold 215280906Sganbold init-always = "false"; 216280906Sganbold xo-init = <0x180a>; 217280906Sganbold gpo-init = <0x500000>; 218280906Sganbold }; 219280906Sganbold 220280906Sganbold clkmsr: clkmsr@1108758 { 221280906Sganbold compatible = "amlogic,aml8726-clkmsr"; 222280906Sganbold reg = <0x1108758 16>; /* cbus 0x21d6 */ 223280906Sganbold }; 224280906Sganbold 225280906Sganbold uart0: uart@81004c0 { 226280906Sganbold /* uart-ao */ 227280906Sganbold device_type = "serial"; 228280906Sganbold compatible = "amlogic,aml8726-uart"; 229280906Sganbold clock-frequency = <0>; 230280906Sganbold current-speed = <115200>; 231280906Sganbold reg = <0x81004c0 20>; /* aobus 0x130 */ 232280906Sganbold interrupts = <90>; /* AM_IRQ2(26) */ 233280906Sganbold interrupt-parent = <&gic>; 234280906Sganbold }; 235280906Sganbold 236280906Sganbold gpioao: gpio@8100024 { 237280906Sganbold /* gpio unit 7 */ 238280906Sganbold compatible = "amlogic,aml8726-gpio"; 239280906Sganbold reg = <0x8100024 4>, /* oen aobus 0x9 */ 240280906Sganbold <0x8100024 4>, /* out */ 241280906Sganbold <0x8100028 4>; /* in */ 242280906Sganbold 243280906Sganbold gpio-controller; 244280906Sganbold #gpio-cells = <1>; 245280906Sganbold pin-count = <12>; 246280906Sganbold }; 247280906Sganbold 248280906Sganbold gpio5: gpio@110806c { 249280906Sganbold compatible = "amlogic,aml8726-gpio"; 250280906Sganbold reg = <0x110806c 4>, /* oen cbus 0x201b */ 251280906Sganbold <0x1108070 4>, /* out */ 252280906Sganbold <0x1108074 4>; /* in */ 253280906Sganbold 254280906Sganbold gpio-controller; 255280906Sganbold #gpio-cells = <1>; 256280906Sganbold pin-count = <32>; 257280906Sganbold }; 258280906Sganbold 259280906Sganbold gpio6: gpio@1108020 { 260280906Sganbold compatible = "amlogic,aml8726-gpio"; 261280906Sganbold reg = <0x1108020 4>, /* oen cbus 0x2008 */ 262280906Sganbold <0x1108024 4>, /* out */ 263280906Sganbold <0x1108028 4>; /* in */ 264280906Sganbold 265280906Sganbold gpio-controller; 266280906Sganbold #gpio-cells = <1>; 267280906Sganbold pin-count = <29>; 268280906Sganbold }; 269280906Sganbold 270280906Sganbold mmc@1108c20 { 271280906Sganbold compatible = "amlogic,aml8726-mmc"; 272280906Sganbold reg = <0x1108c20 32>; /* cbus 0x2308 */ 273280906Sganbold interrupts = <28>; /* AM_IRQ0(28) */ 274280906Sganbold interrupt-parent = <&gic>; 275280906Sganbold 276280906Sganbold pinctrl-names = "default"; 277280906Sganbold pinctrl-0 = <&pins_sdio_b>; 278280906Sganbold 279280906Sganbold mmc-voltages = "3.3"; 280280906Sganbold 281280906Sganbold mmc-pwr-en = <&gpio5 31 0>; /* card_8 */ 282280906Sganbold ins-detect = <&gpio5 29 0>; /* card_6 */ 283280906Sganbold }; 284280906Sganbold 285280906Sganbold rng@1108100 { 286280906Sganbold compatible = "amlogic,aml8726-rng"; 287280906Sganbold reg = <0x1108100 8>; /* cbus 0x2040 */ 288280906Sganbold }; 289280906Sganbold 290280906Sganbold i2c@1108500 { 291280906Sganbold /* i2c-a */ 292280906Sganbold compatible = "amlogic,aml8726-i2c"; 293280906Sganbold reg = <0x1108500 32>; /* cbus 0x2140 */ 294280906Sganbold interrupts = <21>; 295280906Sganbold interrupt-parent = <&gic>; 296280906Sganbold }; 297280906Sganbold 298280906Sganbold i2c@11087c0 { 299280906Sganbold /* i2c-b */ 300280906Sganbold compatible = "amlogic,aml8726-i2c"; 301280906Sganbold reg = <0x11087c0 32>; /* cbus 0x21f0 */ 302280906Sganbold interrupts = <128>; 303280906Sganbold interrupt-parent = <&gic>; 304280906Sganbold }; 305280906Sganbold 306280906Sganbold uart@11084c0 { 307280906Sganbold /* uart-a */ 308280906Sganbold device_type = "serial"; 309280906Sganbold compatible = "amlogic,aml8726-uart"; 310280906Sganbold clock-frequency = <0>; 311280906Sganbold current-speed = <115200>; 312280906Sganbold reg = <0x11084c0 20>; /* cbus 0x2130 */ 313280906Sganbold interrupts = <26>; 314280906Sganbold interrupt-parent = <&gic>; 315280906Sganbold }; 316280906Sganbold 317280906Sganbold uart@11084dc { 318280906Sganbold /* uart-b */ 319280906Sganbold device_type = "serial"; 320280906Sganbold compatible = "amlogic,aml8726-uart"; 321280906Sganbold clock-frequency = <0>; 322280906Sganbold current-speed = <115200>; 323280906Sganbold reg = <0x11084dc 20>; /* cbus 0x2137 */ 324280906Sganbold interrupts = <75>; 325280906Sganbold interrupt-parent = <&gic>; 326280906Sganbold }; 327280906Sganbold 328280906Sganbold uart@1108700 { 329280906Sganbold /* uart-c */ 330280906Sganbold device_type = "serial"; 331280906Sganbold compatible = "amlogic,aml8726-uart"; 332280906Sganbold clock-frequency = <0>; 333280906Sganbold current-speed = <115200>; 334280906Sganbold reg = <0x1108700 20>; /* cbus 0x21c0 */ 335280906Sganbold interrupts = <93>; 336280906Sganbold interrupt-parent = <&gic>; 337280906Sganbold }; 338280906Sganbold 339280906Sganbold usb-phy@1108400 { 340280906Sganbold /* usb-a phy */ 341280906Sganbold compatible = "amlogic,aml8726-m6-usb-phy"; 342280906Sganbold reg = <0x1108400 32>; /* cbus 0x2100 */ 343280906Sganbold }; 344280906Sganbold 345280906Sganbold usb-phy@1108420 { 346280906Sganbold /* usb-b phy */ 347280906Sganbold compatible = "amlogic,aml8726-m6-usb-phy"; 348280906Sganbold reg = <0x1108420 32>; /* cbus 0x2108 */ 349280906Sganbold 350280906Sganbold usb-pwr-en = <&gpioao 3 1>, /* gpioao_3 vbus */ 351280906Sganbold <&gpio6 11 0>; /* gpioe_11 wifi */ 352280906Sganbold }; 353280906Sganbold 354280906Sganbold usb@9040000 { 355280906Sganbold /* usb-a */ 356280906Sganbold compatible = "synopsys,designware-hs-otg2"; 357280906Sganbold reg = <0x9040000 0x40000>; /* ahbbus 0x40000*/ 358280906Sganbold interrupts = <30>; /* AM_IRQ0(30) */ 359280906Sganbold interrupt-parent = <&gic>; 360280906Sganbold #address-cells = <1>; 361280906Sganbold #size-cells = <0>; 362280906Sganbold }; 363280906Sganbold 364280906Sganbold usb@90c0000 { 365280906Sganbold /* usb-b */ 366280906Sganbold compatible = "synopsys,designware-hs-otg2"; 367280906Sganbold reg = <0x90c0000 0x40000>; /* ahbbus 0xc0000 */ 368280906Sganbold interrupts = <31>; /* AM_IRQ0(31) */ 369280906Sganbold interrupt-parent = <&gic>; 370280906Sganbold #address-cells = <1>; 371280906Sganbold #size-cells = <0>; 372280906Sganbold 373280906Sganbold dr_mode = "host"; 374280906Sganbold }; 375280906Sganbold 376280906Sganbold eth@9410000 { 377280906Sganbold /* ethernet */ 378280906Sganbold compatible = "snps,dwmac"; 379280906Sganbold reg = <0x9410000 0x2000>; /* ahbbus 0x410000 */ 380280906Sganbold interrupts = <8>; /* AM_IRQ0(8) */ 381280906Sganbold interrupt-parent = <&gic>; 382280906Sganbold #address-cells = <1>; 383280906Sganbold #size-cells = <0>; 384280906Sganbold 385280906Sganbold eth-phy-rst = <&gpio5 15 0>; /* gpioy_15 phy-rst */ 386280906Sganbold }; 387280906Sganbold 388280906Sganbold screen: fb@8006324 { 389280906Sganbold device_type = "display"; 390280906Sganbold compatible = "amlogic,aml8726-fb"; 391280906Sganbold reg = <0x8006324 12>, /* CANVAS */ 392280906Sganbold <0x1106800 1024>, /* VIU */ 393280906Sganbold <0x1107400 1024>; /* VPP */ 394280906Sganbold interrupts = <2 /* AM_IRQ0(2) */ 395280906Sganbold 3 /* AM_IRQ0(3) */ 396280906Sganbold 12 /* AM_IRQ0(12) */ 397280906Sganbold 13>; /* AM_IRQ0(13) */ 398280906Sganbold interrupt-parent = <&gic>; 399280906Sganbold 400280906Sganbold address = <0x84900000>; /* match memreserve */ 401280906Sganbold width = <720>; 402280906Sganbold height = <480>; 403280906Sganbold depth = <24>; 404280906Sganbold linebytes = <2160>; 405280906Sganbold }; 406280906Sganbold }; 407280906Sganbold 408280906Sganbold chosen { 409280906Sganbold stdin = "uart0"; 410280906Sganbold stdout = "uart0"; 411280906Sganbold }; 412280906Sganbold}; 413