1279377Simp/* 2279377Simp * This file is licensed under the terms of the GNU General Public License 3279377Simp * version 2. This program is licensed "as is" without any warranty of any 4279377Simp * kind, whether express or implied. 5279377Simp */ 6279377Simp 7279377Simp#include <dt-bindings/gpio/gpio.h> 8279377Simp#include <dt-bindings/pinctrl/omap.h> 9279377Simp 10279377Simp#include "skeleton.dtsi" 11279377Simp 12279377Simp/ { 13279377Simp compatible = "ti,dm816"; 14279377Simp interrupt-parent = <&intc>; 15279377Simp 16279377Simp aliases { 17279377Simp i2c0 = &i2c1; 18279377Simp i2c1 = &i2c2; 19279377Simp serial0 = &uart1; 20279377Simp serial1 = &uart2; 21279377Simp serial2 = &uart3; 22279377Simp ethernet0 = ð0; 23279377Simp ethernet1 = ð1; 24279377Simp }; 25279377Simp 26279377Simp cpus { 27279377Simp #address-cells = <1>; 28279377Simp #size-cells = <0>; 29279377Simp cpu@0 { 30279377Simp compatible = "arm,cortex-a8"; 31279377Simp device_type = "cpu"; 32279377Simp reg = <0>; 33279377Simp }; 34279377Simp }; 35279377Simp 36279377Simp pmu { 37279377Simp compatible = "arm,cortex-a8-pmu"; 38279377Simp interrupts = <3>; 39279377Simp }; 40279377Simp 41279377Simp /* 42279377Simp * The soc node represents the soc top level view. It is used for IPs 43279377Simp * that are not memory mapped in the MPU view or for the MPU itself. 44279377Simp */ 45279377Simp soc { 46279377Simp compatible = "ti,omap-infra"; 47279377Simp mpu { 48279377Simp compatible = "ti,omap3-mpu"; 49279377Simp ti,hwmods = "mpu"; 50279377Simp }; 51279377Simp }; 52279377Simp 53279377Simp /* 54279377Simp * XXX: Use a flat representation of the dm816x interconnect. 55279377Simp * The real dm816x interconnect network is quite complex. Since 56279377Simp * it will not bring real advantage to represent that in DT 57279377Simp * for the moment, just use a fake OCP bus entry to represent 58279377Simp * the whole bus hierarchy. 59279377Simp */ 60279377Simp ocp { 61295436Sandrew compatible = "simple-bus"; 62279377Simp reg = <0x44000000 0x10000>; 63279377Simp interrupts = <9 10>; 64279377Simp #address-cells = <1>; 65279377Simp #size-cells = <1>; 66279377Simp ranges; 67279377Simp 68279377Simp prcm: prcm@48180000 { 69279377Simp compatible = "ti,dm816-prcm"; 70279377Simp reg = <0x48180000 0x4000>; 71279377Simp 72279377Simp prcm_clocks: clocks { 73279377Simp #address-cells = <1>; 74279377Simp #size-cells = <0>; 75279377Simp }; 76279377Simp 77279377Simp prcm_clockdomains: clockdomains { 78279377Simp }; 79279377Simp }; 80279377Simp 81279377Simp scrm: scrm@48140000 { 82279377Simp compatible = "ti,dm816-scrm", "simple-bus"; 83279377Simp reg = <0x48140000 0x21000>; 84279377Simp #address-cells = <1>; 85279377Simp #size-cells = <1>; 86279377Simp ranges = <0 0x48140000 0x21000>; 87279377Simp 88279377Simp dm816x_pinmux: pinmux@800 { 89279377Simp compatible = "pinctrl-single"; 90279377Simp reg = <0x800 0x50a>; 91279377Simp #address-cells = <1>; 92279377Simp #size-cells = <0>; 93279377Simp pinctrl-single,register-width = <16>; 94279377Simp pinctrl-single,function-mask = <0xf>; 95279377Simp }; 96279377Simp 97279377Simp /* Device Configuration Registers */ 98279377Simp scm_conf: syscon@600 { 99295436Sandrew compatible = "syscon", "simple-bus"; 100279377Simp reg = <0x600 0x110>; 101279377Simp #address-cells = <1>; 102279377Simp #size-cells = <1>; 103295436Sandrew ranges = <0 0x600 0x110>; 104295436Sandrew 105295436Sandrew usb_phy0: usb-phy@20 { 106295436Sandrew compatible = "ti,dm8168-usb-phy"; 107295436Sandrew reg = <0x20 0x8>; 108295436Sandrew reg-names = "phy"; 109295436Sandrew clocks = <&main_fapll 6>; 110295436Sandrew clock-names = "refclk"; 111295436Sandrew #phy-cells = <0>; 112295436Sandrew syscon = <&scm_conf>; 113295436Sandrew }; 114295436Sandrew 115295436Sandrew usb_phy1: usb-phy@28 { 116295436Sandrew compatible = "ti,dm8168-usb-phy"; 117295436Sandrew reg = <0x28 0x8>; 118295436Sandrew reg-names = "phy"; 119295436Sandrew clocks = <&main_fapll 6>; 120295436Sandrew clock-names = "refclk"; 121295436Sandrew #phy-cells = <0>; 122295436Sandrew syscon = <&scm_conf>; 123295436Sandrew }; 124279377Simp }; 125279377Simp 126279377Simp scrm_clocks: clocks { 127279377Simp #address-cells = <1>; 128279377Simp #size-cells = <0>; 129279377Simp }; 130279377Simp 131279377Simp scrm_clockdomains: clockdomains { 132279377Simp }; 133279377Simp }; 134279377Simp 135279377Simp edma: edma@49000000 { 136279377Simp compatible = "ti,edma3"; 137279377Simp ti,hwmods = "tpcc", "tptc0", "tptc1", "tptc2", "tptc3"; 138279377Simp reg = <0x49000000 0x10000>, 139279377Simp <0x44e10f90 0x40>; 140279377Simp interrupts = <12 13 14>; 141279377Simp #dma-cells = <1>; 142279377Simp }; 143279377Simp 144279377Simp elm: elm@48080000 { 145279377Simp compatible = "ti,816-elm"; 146279377Simp ti,hwmods = "elm"; 147279377Simp reg = <0x48080000 0x2000>; 148279377Simp interrupts = <4>; 149279377Simp }; 150279377Simp 151279377Simp gpio1: gpio@48032000 { 152295436Sandrew compatible = "ti,omap4-gpio"; 153279377Simp ti,hwmods = "gpio1"; 154295436Sandrew ti,gpio-always-on; 155279377Simp reg = <0x48032000 0x1000>; 156295436Sandrew interrupts = <96>; 157295436Sandrew gpio-controller; 158295436Sandrew #gpio-cells = <2>; 159295436Sandrew interrupt-controller; 160295436Sandrew #interrupt-cells = <2>; 161279377Simp }; 162279377Simp 163279377Simp gpio2: gpio@4804c000 { 164295436Sandrew compatible = "ti,omap4-gpio"; 165279377Simp ti,hwmods = "gpio2"; 166295436Sandrew ti,gpio-always-on; 167279377Simp reg = <0x4804c000 0x1000>; 168295436Sandrew interrupts = <98>; 169295436Sandrew gpio-controller; 170295436Sandrew #gpio-cells = <2>; 171295436Sandrew interrupt-controller; 172295436Sandrew #interrupt-cells = <2>; 173279377Simp }; 174279377Simp 175279377Simp gpmc: gpmc@50000000 { 176279377Simp compatible = "ti,am3352-gpmc"; 177279377Simp ti,hwmods = "gpmc"; 178279377Simp reg = <0x50000000 0x2000>; 179279377Simp #address-cells = <2>; 180279377Simp #size-cells = <1>; 181279377Simp interrupts = <100>; 182295436Sandrew dmas = <&edma 52>; 183295436Sandrew dma-names = "rxtx"; 184279377Simp gpmc,num-cs = <6>; 185279377Simp gpmc,num-waitpins = <2>; 186279377Simp }; 187279377Simp 188279377Simp i2c1: i2c@48028000 { 189279377Simp compatible = "ti,omap4-i2c"; 190279377Simp ti,hwmods = "i2c1"; 191279377Simp reg = <0x48028000 0x1000>; 192279377Simp #address-cells = <1>; 193279377Simp #size-cells = <0>; 194279377Simp interrupts = <70>; 195279377Simp dmas = <&edma 58 &edma 59>; 196279377Simp dma-names = "tx", "rx"; 197279377Simp }; 198279377Simp 199279377Simp i2c2: i2c@4802a000 { 200279377Simp compatible = "ti,omap4-i2c"; 201279377Simp ti,hwmods = "i2c2"; 202279377Simp reg = <0x4802a000 0x1000>; 203279377Simp #address-cells = <1>; 204279377Simp #size-cells = <0>; 205279377Simp interrupts = <71>; 206279377Simp dmas = <&edma 60 &edma 61>; 207279377Simp dma-names = "tx", "rx"; 208279377Simp }; 209279377Simp 210279377Simp intc: interrupt-controller@48200000 { 211279377Simp compatible = "ti,dm816-intc"; 212279377Simp interrupt-controller; 213279377Simp #interrupt-cells = <1>; 214279377Simp reg = <0x48200000 0x1000>; 215279377Simp }; 216279377Simp 217279377Simp mailbox: mailbox@480c8000 { 218279377Simp compatible = "ti,omap4-mailbox"; 219279377Simp reg = <0x480c8000 0x2000>; 220279377Simp interrupts = <77>; 221279377Simp ti,hwmods = "mailbox"; 222295436Sandrew #mbox-cells = <1>; 223279377Simp ti,mbox-num-users = <4>; 224279377Simp ti,mbox-num-fifos = <12>; 225279377Simp mbox_dsp: mbox_dsp { 226279377Simp ti,mbox-tx = <3 0 0>; 227279377Simp ti,mbox-rx = <0 0 0>; 228279377Simp }; 229279377Simp }; 230279377Simp 231295436Sandrew spinbox: spinbox@480ca000 { 232295436Sandrew compatible = "ti,omap4-hwspinlock"; 233295436Sandrew reg = <0x480ca000 0x2000>; 234295436Sandrew ti,hwmods = "spinbox"; 235295436Sandrew #hwlock-cells = <1>; 236295436Sandrew }; 237295436Sandrew 238279377Simp mdio: mdio@4a100800 { 239279377Simp compatible = "ti,davinci_mdio"; 240279377Simp #address-cells = <1>; 241279377Simp #size-cells = <0>; 242279377Simp reg = <0x4a100800 0x100>; 243279377Simp ti,hwmods = "davinci_mdio"; 244279377Simp bus_freq = <1000000>; 245279377Simp phy0: ethernet-phy@0 { 246279377Simp reg = <1>; 247279377Simp }; 248279377Simp phy1: ethernet-phy@1 { 249279377Simp reg = <2>; 250279377Simp }; 251279377Simp }; 252279377Simp 253279377Simp eth0: ethernet@4a100000 { 254279377Simp compatible = "ti,dm816-emac"; 255279377Simp ti,hwmods = "emac0"; 256279377Simp reg = <0x4a100000 0x800 257279377Simp 0x4a100900 0x3700>; 258279377Simp clocks = <&sysclk24_ck>; 259279377Simp syscon = <&scm_conf>; 260279377Simp ti,davinci-ctrl-reg-offset = <0>; 261279377Simp ti,davinci-ctrl-mod-reg-offset = <0x900>; 262279377Simp ti,davinci-ctrl-ram-offset = <0x2000>; 263279377Simp ti,davinci-ctrl-ram-size = <0x2000>; 264279377Simp interrupts = <40 41 42 43>; 265279377Simp phy-handle = <&phy0>; 266279377Simp }; 267279377Simp 268279377Simp eth1: ethernet@4a120000 { 269279377Simp compatible = "ti,dm816-emac"; 270279377Simp ti,hwmods = "emac1"; 271279377Simp reg = <0x4a120000 0x4000>; 272279377Simp clocks = <&sysclk24_ck>; 273279377Simp syscon = <&scm_conf>; 274279377Simp ti,davinci-ctrl-reg-offset = <0>; 275279377Simp ti,davinci-ctrl-mod-reg-offset = <0x900>; 276279377Simp ti,davinci-ctrl-ram-offset = <0x2000>; 277279377Simp ti,davinci-ctrl-ram-size = <0x2000>; 278279377Simp interrupts = <44 45 46 47>; 279279377Simp phy-handle = <&phy1>; 280279377Simp }; 281279377Simp 282279377Simp mcspi1: spi@48030000 { 283279377Simp compatible = "ti,omap4-mcspi"; 284279377Simp reg = <0x48030000 0x1000>; 285279377Simp #address-cells = <1>; 286279377Simp #size-cells = <0>; 287279377Simp interrupts = <65>; 288279377Simp ti,spi-num-cs = <4>; 289279377Simp ti,hwmods = "mcspi1"; 290279377Simp dmas = <&edma 16 &edma 17 291295436Sandrew &edma 18 &edma 19 292295436Sandrew &edma 20 &edma 21 293295436Sandrew &edma 22 &edma 23>; 294295436Sandrew dma-names = "tx0", "rx0", "tx1", "rx1", 295295436Sandrew "tx2", "rx2", "tx3", "rx3"; 296279377Simp }; 297279377Simp 298279377Simp mmc1: mmc@48060000 { 299279377Simp compatible = "ti,omap4-hsmmc"; 300279377Simp reg = <0x48060000 0x11000>; 301279377Simp ti,hwmods = "mmc1"; 302279377Simp interrupts = <64>; 303279377Simp dmas = <&edma 24 &edma 25>; 304279377Simp dma-names = "tx", "rx"; 305279377Simp }; 306279377Simp 307279377Simp timer1: timer@4802e000 { 308279377Simp compatible = "ti,dm816-timer"; 309279377Simp reg = <0x4802e000 0x2000>; 310279377Simp interrupts = <67>; 311279377Simp ti,hwmods = "timer1"; 312279377Simp ti,timer-alwon; 313279377Simp }; 314279377Simp 315279377Simp timer2: timer@48040000 { 316279377Simp compatible = "ti,dm816-timer"; 317279377Simp reg = <0x48040000 0x2000>; 318279377Simp interrupts = <68>; 319279377Simp ti,hwmods = "timer2"; 320279377Simp }; 321279377Simp 322279377Simp timer3: timer@48042000 { 323279377Simp compatible = "ti,dm816-timer"; 324279377Simp reg = <0x48042000 0x2000>; 325279377Simp interrupts = <69>; 326279377Simp ti,hwmods = "timer3"; 327279377Simp }; 328279377Simp 329279377Simp timer4: timer@48044000 { 330279377Simp compatible = "ti,dm816-timer"; 331279377Simp reg = <0x48044000 0x2000>; 332279377Simp interrupts = <92>; 333279377Simp ti,hwmods = "timer4"; 334295436Sandrew ti,timer-pwm; 335279377Simp }; 336279377Simp 337279377Simp timer5: timer@48046000 { 338279377Simp compatible = "ti,dm816-timer"; 339279377Simp reg = <0x48046000 0x2000>; 340279377Simp interrupts = <93>; 341279377Simp ti,hwmods = "timer5"; 342295436Sandrew ti,timer-pwm; 343279377Simp }; 344279377Simp 345279377Simp timer6: timer@48048000 { 346279377Simp compatible = "ti,dm816-timer"; 347279377Simp reg = <0x48048000 0x2000>; 348279377Simp interrupts = <94>; 349279377Simp ti,hwmods = "timer6"; 350295436Sandrew ti,timer-pwm; 351279377Simp }; 352279377Simp 353279377Simp timer7: timer@4804a000 { 354279377Simp compatible = "ti,dm816-timer"; 355279377Simp reg = <0x4804a000 0x2000>; 356279377Simp interrupts = <95>; 357279377Simp ti,hwmods = "timer7"; 358295436Sandrew ti,timer-pwm; 359279377Simp }; 360279377Simp 361279377Simp uart1: uart@48020000 { 362279377Simp compatible = "ti,omap3-uart"; 363279377Simp ti,hwmods = "uart1"; 364279377Simp reg = <0x48020000 0x2000>; 365279377Simp clock-frequency = <48000000>; 366279377Simp interrupts = <72>; 367279377Simp dmas = <&edma 26 &edma 27>; 368279377Simp dma-names = "tx", "rx"; 369279377Simp }; 370279377Simp 371279377Simp uart2: uart@48022000 { 372279377Simp compatible = "ti,omap3-uart"; 373279377Simp ti,hwmods = "uart2"; 374279377Simp reg = <0x48022000 0x2000>; 375279377Simp clock-frequency = <48000000>; 376279377Simp interrupts = <73>; 377279377Simp dmas = <&edma 28 &edma 29>; 378279377Simp dma-names = "tx", "rx"; 379279377Simp }; 380279377Simp 381279377Simp uart3: uart@48024000 { 382279377Simp compatible = "ti,omap3-uart"; 383279377Simp ti,hwmods = "uart3"; 384279377Simp reg = <0x48024000 0x2000>; 385279377Simp clock-frequency = <48000000>; 386279377Simp interrupts = <74>; 387279377Simp dmas = <&edma 30 &edma 31>; 388279377Simp dma-names = "tx", "rx"; 389279377Simp }; 390279377Simp 391279377Simp /* NOTE: USB needs a transceiver driver for phys to work */ 392279377Simp usb: usb_otg_hs@47401000 { 393279377Simp compatible = "ti,am33xx-usb"; 394279377Simp reg = <0x47401000 0x400000>; 395279377Simp ranges; 396279377Simp #address-cells = <1>; 397279377Simp #size-cells = <1>; 398279377Simp ti,hwmods = "usb_otg_hs"; 399279377Simp 400279377Simp usb0: usb@47401000 { 401295436Sandrew compatible = "ti,musb-dm816"; 402279377Simp reg = <0x47401400 0x400 403279377Simp 0x47401000 0x200>; 404279377Simp reg-names = "mc", "control"; 405279377Simp interrupts = <18>; 406279377Simp interrupt-names = "mc"; 407295436Sandrew dr_mode = "host"; 408295436Sandrew interface-type = <0>; 409295436Sandrew phys = <&usb_phy0>; 410295436Sandrew phy-names = "usb2-phy"; 411279377Simp mentor,multipoint = <1>; 412279377Simp mentor,num-eps = <16>; 413279377Simp mentor,ram-bits = <12>; 414279377Simp mentor,power = <500>; 415295436Sandrew 416295436Sandrew dmas = <&cppi41dma 0 0 &cppi41dma 1 0 417295436Sandrew &cppi41dma 2 0 &cppi41dma 3 0 418295436Sandrew &cppi41dma 4 0 &cppi41dma 5 0 419295436Sandrew &cppi41dma 6 0 &cppi41dma 7 0 420295436Sandrew &cppi41dma 8 0 &cppi41dma 9 0 421295436Sandrew &cppi41dma 10 0 &cppi41dma 11 0 422295436Sandrew &cppi41dma 12 0 &cppi41dma 13 0 423295436Sandrew &cppi41dma 14 0 &cppi41dma 0 1 424295436Sandrew &cppi41dma 1 1 &cppi41dma 2 1 425295436Sandrew &cppi41dma 3 1 &cppi41dma 4 1 426295436Sandrew &cppi41dma 5 1 &cppi41dma 6 1 427295436Sandrew &cppi41dma 7 1 &cppi41dma 8 1 428295436Sandrew &cppi41dma 9 1 &cppi41dma 10 1 429295436Sandrew &cppi41dma 11 1 &cppi41dma 12 1 430295436Sandrew &cppi41dma 13 1 &cppi41dma 14 1>; 431295436Sandrew dma-names = 432295436Sandrew "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", 433295436Sandrew "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", 434295436Sandrew "rx14", "rx15", 435295436Sandrew "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", 436295436Sandrew "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", 437295436Sandrew "tx14", "tx15"; 438279377Simp }; 439279377Simp 440279377Simp usb1: usb@47401800 { 441295436Sandrew compatible = "ti,musb-dm816"; 442279377Simp reg = <0x47401c00 0x400 443279377Simp 0x47401800 0x200>; 444279377Simp reg-names = "mc", "control"; 445279377Simp interrupts = <19>; 446279377Simp interrupt-names = "mc"; 447295436Sandrew dr_mode = "host"; 448295436Sandrew interface-type = <0>; 449295436Sandrew phys = <&usb_phy1>; 450295436Sandrew phy-names = "usb2-phy"; 451279377Simp mentor,multipoint = <1>; 452279377Simp mentor,num-eps = <16>; 453279377Simp mentor,ram-bits = <12>; 454279377Simp mentor,power = <500>; 455295436Sandrew 456295436Sandrew dmas = <&cppi41dma 15 0 &cppi41dma 16 0 457295436Sandrew &cppi41dma 17 0 &cppi41dma 18 0 458295436Sandrew &cppi41dma 19 0 &cppi41dma 20 0 459295436Sandrew &cppi41dma 21 0 &cppi41dma 22 0 460295436Sandrew &cppi41dma 23 0 &cppi41dma 24 0 461295436Sandrew &cppi41dma 25 0 &cppi41dma 26 0 462295436Sandrew &cppi41dma 27 0 &cppi41dma 28 0 463295436Sandrew &cppi41dma 29 0 &cppi41dma 15 1 464295436Sandrew &cppi41dma 16 1 &cppi41dma 17 1 465295436Sandrew &cppi41dma 18 1 &cppi41dma 19 1 466295436Sandrew &cppi41dma 20 1 &cppi41dma 21 1 467295436Sandrew &cppi41dma 22 1 &cppi41dma 23 1 468295436Sandrew &cppi41dma 24 1 &cppi41dma 25 1 469295436Sandrew &cppi41dma 26 1 &cppi41dma 27 1 470295436Sandrew &cppi41dma 28 1 &cppi41dma 29 1>; 471295436Sandrew dma-names = 472295436Sandrew "rx1", "rx2", "rx3", "rx4", "rx5", "rx6", "rx7", 473295436Sandrew "rx8", "rx9", "rx10", "rx11", "rx12", "rx13", 474295436Sandrew "rx14", "rx15", 475295436Sandrew "tx1", "tx2", "tx3", "tx4", "tx5", "tx6", "tx7", 476295436Sandrew "tx8", "tx9", "tx10", "tx11", "tx12", "tx13", 477295436Sandrew "tx14", "tx15"; 478279377Simp }; 479295436Sandrew 480295436Sandrew cppi41dma: dma-controller@47402000 { 481295436Sandrew compatible = "ti,am3359-cppi41"; 482295436Sandrew reg = <0x47400000 0x1000 483295436Sandrew 0x47402000 0x1000 484295436Sandrew 0x47403000 0x1000 485295436Sandrew 0x47404000 0x4000>; 486295436Sandrew reg-names = "glue", "controller", "scheduler", "queuemgr"; 487295436Sandrew interrupts = <17>; 488295436Sandrew interrupt-names = "glue"; 489295436Sandrew #dma-cells = <2>; 490295436Sandrew #dma-channels = <30>; 491295436Sandrew #dma-requests = <256>; 492295436Sandrew }; 493279377Simp }; 494279377Simp 495279377Simp wd_timer2: wd_timer@480c2000 { 496279377Simp compatible = "ti,omap3-wdt"; 497279377Simp ti,hwmods = "wd_timer"; 498279377Simp reg = <0x480c2000 0x1000>; 499279377Simp interrupts = <0>; 500279377Simp }; 501279377Simp }; 502279377Simp}; 503279377Simp 504279377Simp#include "dm816x-clocks.dtsi" 505