1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h> 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun/ { 9*4882a593Smuzhiyun #address-cells = <1>; 10*4882a593Smuzhiyun #size-cells = <1>; 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun memory { 13*4882a593Smuzhiyun device_type = "memory"; 14*4882a593Smuzhiyun reg = <0x00000000 0x04000000>, 15*4882a593Smuzhiyun <0x08000000 0x04000000>; 16*4882a593Smuzhiyun }; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun L2: cache-controller { 19*4882a593Smuzhiyun compatible = "arm,l210-cache"; 20*4882a593Smuzhiyun reg = <0x10210000 0x1000>; 21*4882a593Smuzhiyun interrupt-parent = <&vica>; 22*4882a593Smuzhiyun interrupts = <30>; 23*4882a593Smuzhiyun cache-unified; 24*4882a593Smuzhiyun cache-level = <2>; 25*4882a593Smuzhiyun cache-size = <131072>; 26*4882a593Smuzhiyun cache-sets = <512>; 27*4882a593Smuzhiyun cache-line-size = <32>; 28*4882a593Smuzhiyun /* At full speed latency must be >=2 */ 29*4882a593Smuzhiyun arm,tag-latency = <8>; 30*4882a593Smuzhiyun arm,data-latency = <8 8>; 31*4882a593Smuzhiyun arm,dirty-latency = <8>; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun mtu0: mtu@101e2000 { 35*4882a593Smuzhiyun /* Nomadik system timer */ 36*4882a593Smuzhiyun compatible = "st,nomadik-mtu"; 37*4882a593Smuzhiyun reg = <0x101e2000 0x1000>; 38*4882a593Smuzhiyun interrupt-parent = <&vica>; 39*4882a593Smuzhiyun interrupts = <4>; 40*4882a593Smuzhiyun clocks = <&timclk>, <&pclk>; 41*4882a593Smuzhiyun clock-names = "timclk", "apb_pclk"; 42*4882a593Smuzhiyun }; 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun mtu1: mtu@101e3000 { 45*4882a593Smuzhiyun /* Secondary timer */ 46*4882a593Smuzhiyun reg = <0x101e3000 0x1000>; 47*4882a593Smuzhiyun interrupt-parent = <&vica>; 48*4882a593Smuzhiyun interrupts = <5>; 49*4882a593Smuzhiyun clocks = <&timclk>, <&pclk>; 50*4882a593Smuzhiyun clock-names = "timclk", "apb_pclk"; 51*4882a593Smuzhiyun }; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun gpio0: gpio@101e4000 { 54*4882a593Smuzhiyun compatible = "st,nomadik-gpio"; 55*4882a593Smuzhiyun reg = <0x101e4000 0x80>; 56*4882a593Smuzhiyun interrupt-parent = <&vica>; 57*4882a593Smuzhiyun interrupts = <6>; 58*4882a593Smuzhiyun interrupt-controller; 59*4882a593Smuzhiyun #interrupt-cells = <2>; 60*4882a593Smuzhiyun gpio-controller; 61*4882a593Smuzhiyun #gpio-cells = <2>; 62*4882a593Smuzhiyun gpio-bank = <0>; 63*4882a593Smuzhiyun gpio-ranges = <&pinctrl 0 0 32>; 64*4882a593Smuzhiyun clocks = <&pclk>; 65*4882a593Smuzhiyun }; 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun gpio1: gpio@101e5000 { 68*4882a593Smuzhiyun compatible = "st,nomadik-gpio"; 69*4882a593Smuzhiyun reg = <0x101e5000 0x80>; 70*4882a593Smuzhiyun interrupt-parent = <&vica>; 71*4882a593Smuzhiyun interrupts = <7>; 72*4882a593Smuzhiyun interrupt-controller; 73*4882a593Smuzhiyun #interrupt-cells = <2>; 74*4882a593Smuzhiyun gpio-controller; 75*4882a593Smuzhiyun #gpio-cells = <2>; 76*4882a593Smuzhiyun gpio-bank = <1>; 77*4882a593Smuzhiyun gpio-ranges = <&pinctrl 0 32 32>; 78*4882a593Smuzhiyun clocks = <&pclk>; 79*4882a593Smuzhiyun }; 80*4882a593Smuzhiyun 81*4882a593Smuzhiyun gpio2: gpio@101e6000 { 82*4882a593Smuzhiyun compatible = "st,nomadik-gpio"; 83*4882a593Smuzhiyun reg = <0x101e6000 0x80>; 84*4882a593Smuzhiyun interrupt-parent = <&vica>; 85*4882a593Smuzhiyun interrupts = <8>; 86*4882a593Smuzhiyun interrupt-controller; 87*4882a593Smuzhiyun #interrupt-cells = <2>; 88*4882a593Smuzhiyun gpio-controller; 89*4882a593Smuzhiyun #gpio-cells = <2>; 90*4882a593Smuzhiyun gpio-bank = <2>; 91*4882a593Smuzhiyun gpio-ranges = <&pinctrl 0 64 32>; 92*4882a593Smuzhiyun clocks = <&pclk>; 93*4882a593Smuzhiyun }; 94*4882a593Smuzhiyun 95*4882a593Smuzhiyun gpio3: gpio@101e7000 { 96*4882a593Smuzhiyun compatible = "st,nomadik-gpio"; 97*4882a593Smuzhiyun reg = <0x101e7000 0x80>; 98*4882a593Smuzhiyun ngpio = <28>; 99*4882a593Smuzhiyun interrupt-parent = <&vica>; 100*4882a593Smuzhiyun interrupts = <9>; 101*4882a593Smuzhiyun interrupt-controller; 102*4882a593Smuzhiyun #interrupt-cells = <2>; 103*4882a593Smuzhiyun gpio-controller; 104*4882a593Smuzhiyun #gpio-cells = <2>; 105*4882a593Smuzhiyun gpio-bank = <3>; 106*4882a593Smuzhiyun gpio-ranges = <&pinctrl 0 96 28>; 107*4882a593Smuzhiyun clocks = <&pclk>; 108*4882a593Smuzhiyun }; 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun pinctrl: pinctrl { 111*4882a593Smuzhiyun compatible = "stericsson,stn8815-pinctrl"; 112*4882a593Smuzhiyun nomadik-gpio-chips = <&gpio0>, <&gpio1>, <&gpio2>, <&gpio3>; 113*4882a593Smuzhiyun /* Pin configurations */ 114*4882a593Smuzhiyun uart1 { 115*4882a593Smuzhiyun uart1_default_mux: uart1_mux { 116*4882a593Smuzhiyun u1_default_mux { 117*4882a593Smuzhiyun function = "u1"; 118*4882a593Smuzhiyun groups = "u1_a_1"; 119*4882a593Smuzhiyun }; 120*4882a593Smuzhiyun }; 121*4882a593Smuzhiyun }; 122*4882a593Smuzhiyun mmcsd { 123*4882a593Smuzhiyun mmcsd_default_mux: mmcsd_mux { 124*4882a593Smuzhiyun mmcsd_default_mux { 125*4882a593Smuzhiyun function = "mmcsd"; 126*4882a593Smuzhiyun groups = "mmcsd_a_1", "mmcsd_b_1"; 127*4882a593Smuzhiyun }; 128*4882a593Smuzhiyun }; 129*4882a593Smuzhiyun mmcsd_default_mode: mmcsd_default { 130*4882a593Smuzhiyun mmcsd_default_cfg1 { 131*4882a593Smuzhiyun /* 132*4882a593Smuzhiyun * MCCLK, MCCMDDIR, MCDAT0DIR, MCDAT31DIR, MCDATDIR2 133*4882a593Smuzhiyun * MCCMD, MCDAT3-0, MCMSFBCLK 134*4882a593Smuzhiyun */ 135*4882a593Smuzhiyun pins = "GPIO8_B10", "GPIO9_A10", "GPIO10_C11", "GPIO11_B11", 136*4882a593Smuzhiyun "GPIO12_A11", "GPIO13_C12", "GPIO14_B12", "GPIO15_A12", 137*4882a593Smuzhiyun "GPIO16_C13", "GPIO23_D15", "GPIO24_C15"; 138*4882a593Smuzhiyun ste,output = <2>; 139*4882a593Smuzhiyun }; 140*4882a593Smuzhiyun }; 141*4882a593Smuzhiyun }; 142*4882a593Smuzhiyun i2c0 { 143*4882a593Smuzhiyun i2c0_default_mux: i2c0_mux { 144*4882a593Smuzhiyun i2c0_default_mux { 145*4882a593Smuzhiyun function = "i2c0"; 146*4882a593Smuzhiyun groups = "i2c0_a_1"; 147*4882a593Smuzhiyun }; 148*4882a593Smuzhiyun }; 149*4882a593Smuzhiyun i2c0_default_mode: i2c0_default { 150*4882a593Smuzhiyun i2c0_default_cfg { 151*4882a593Smuzhiyun pins = "GPIO62_D3", "GPIO63_D2"; 152*4882a593Smuzhiyun ste,input = <0>; 153*4882a593Smuzhiyun }; 154*4882a593Smuzhiyun }; 155*4882a593Smuzhiyun }; 156*4882a593Smuzhiyun i2c1 { 157*4882a593Smuzhiyun i2c1_default_mux: i2c1_mux { 158*4882a593Smuzhiyun i2c1_default_mux { 159*4882a593Smuzhiyun function = "i2c1"; 160*4882a593Smuzhiyun groups = "i2c1_a_1"; 161*4882a593Smuzhiyun }; 162*4882a593Smuzhiyun }; 163*4882a593Smuzhiyun i2c1_default_mode: i2c1_default { 164*4882a593Smuzhiyun i2c1_default_cfg { 165*4882a593Smuzhiyun pins = "GPIO53_L4", "GPIO54_L3"; 166*4882a593Smuzhiyun ste,input = <0>; 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun }; 169*4882a593Smuzhiyun }; 170*4882a593Smuzhiyun clcd { 171*4882a593Smuzhiyun /* 172*4882a593Smuzhiyun * This should be activated to use the additional 173*4882a593Smuzhiyun * 8 lines for bits 16 thru 23 from the CLCD block. 174*4882a593Smuzhiyun */ 175*4882a593Smuzhiyun clcd_24bit_mux: clcd_mux { 176*4882a593Smuzhiyun clcd_24bit_mux { 177*4882a593Smuzhiyun function = "clcd"; 178*4882a593Smuzhiyun groups = "clcd_16_23_b_1"; 179*4882a593Smuzhiyun }; 180*4882a593Smuzhiyun }; 181*4882a593Smuzhiyun }; 182*4882a593Smuzhiyun }; 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun /* Power Management Unit */ 185*4882a593Smuzhiyun pmu: pmu@101e9000 { 186*4882a593Smuzhiyun compatible = "stericsson,nomadik-pmu", "syscon"; 187*4882a593Smuzhiyun reg = <0x101e0000 0x1000>; 188*4882a593Smuzhiyun }; 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun src: src@101e0000 { 191*4882a593Smuzhiyun compatible = "stericsson,nomadik-src"; 192*4882a593Smuzhiyun reg = <0x101e0000 0x1000>; 193*4882a593Smuzhiyun 194*4882a593Smuzhiyun /* 195*4882a593Smuzhiyun * MXTAL "Main Chrystal" is a chrystal oscillator @19.2 MHz 196*4882a593Smuzhiyun * that is parent of TIMCLK, PLL1 and PLL2 197*4882a593Smuzhiyun */ 198*4882a593Smuzhiyun mxtal: mxtal@19.2M { 199*4882a593Smuzhiyun #clock-cells = <0>; 200*4882a593Smuzhiyun compatible = "fixed-clock"; 201*4882a593Smuzhiyun clock-frequency = <19200000>; 202*4882a593Smuzhiyun }; 203*4882a593Smuzhiyun 204*4882a593Smuzhiyun /* 205*4882a593Smuzhiyun * The 2.4 MHz TIMCLK reference clock is active at 206*4882a593Smuzhiyun * boot time, this is actually the MXTALCLK @19.2 MHz 207*4882a593Smuzhiyun * divided by 8. This clock is used by the timers and 208*4882a593Smuzhiyun * watchdog. See page 105 ff. 209*4882a593Smuzhiyun */ 210*4882a593Smuzhiyun timclk: timclk@2.4M { 211*4882a593Smuzhiyun #clock-cells = <0>; 212*4882a593Smuzhiyun compatible = "fixed-factor-clock"; 213*4882a593Smuzhiyun clock-div = <8>; 214*4882a593Smuzhiyun clock-mult = <1>; 215*4882a593Smuzhiyun clocks = <&mxtal>; 216*4882a593Smuzhiyun }; 217*4882a593Smuzhiyun 218*4882a593Smuzhiyun /* PLL1 is locked to MXTALI and variable from 20.4 to 334 MHz */ 219*4882a593Smuzhiyun pll1: pll1@0 { 220*4882a593Smuzhiyun #clock-cells = <0>; 221*4882a593Smuzhiyun compatible = "st,nomadik-pll-clock"; 222*4882a593Smuzhiyun pll-id = <1>; 223*4882a593Smuzhiyun clocks = <&mxtal>; 224*4882a593Smuzhiyun }; 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun /* HCLK divides the PLL1 with 1,2,3 or 4 */ 227*4882a593Smuzhiyun hclk: hclk@0 { 228*4882a593Smuzhiyun #clock-cells = <0>; 229*4882a593Smuzhiyun compatible = "st,nomadik-hclk-clock"; 230*4882a593Smuzhiyun clocks = <&pll1>; 231*4882a593Smuzhiyun }; 232*4882a593Smuzhiyun /* The PCLK domain uses HCLK right off */ 233*4882a593Smuzhiyun pclk: pclk@0 { 234*4882a593Smuzhiyun #clock-cells = <0>; 235*4882a593Smuzhiyun compatible = "fixed-factor-clock"; 236*4882a593Smuzhiyun clock-div = <1>; 237*4882a593Smuzhiyun clock-mult = <1>; 238*4882a593Smuzhiyun clocks = <&hclk>; 239*4882a593Smuzhiyun }; 240*4882a593Smuzhiyun 241*4882a593Smuzhiyun /* PLL2 is usually 864 MHz and divided into a few fixed rates */ 242*4882a593Smuzhiyun pll2: pll2@0 { 243*4882a593Smuzhiyun #clock-cells = <0>; 244*4882a593Smuzhiyun compatible = "st,nomadik-pll-clock"; 245*4882a593Smuzhiyun pll-id = <2>; 246*4882a593Smuzhiyun clocks = <&mxtal>; 247*4882a593Smuzhiyun }; 248*4882a593Smuzhiyun clk216: clk216@216M { 249*4882a593Smuzhiyun #clock-cells = <0>; 250*4882a593Smuzhiyun compatible = "fixed-factor-clock"; 251*4882a593Smuzhiyun clock-div = <4>; 252*4882a593Smuzhiyun clock-mult = <1>; 253*4882a593Smuzhiyun clocks = <&pll2>; 254*4882a593Smuzhiyun }; 255*4882a593Smuzhiyun clk108: clk108@108M { 256*4882a593Smuzhiyun #clock-cells = <0>; 257*4882a593Smuzhiyun compatible = "fixed-factor-clock"; 258*4882a593Smuzhiyun clock-div = <2>; 259*4882a593Smuzhiyun clock-mult = <1>; 260*4882a593Smuzhiyun clocks = <&clk216>; 261*4882a593Smuzhiyun }; 262*4882a593Smuzhiyun clk72: clk72@72M { 263*4882a593Smuzhiyun #clock-cells = <0>; 264*4882a593Smuzhiyun compatible = "fixed-factor-clock"; 265*4882a593Smuzhiyun /* The data sheet does not say how this is derived */ 266*4882a593Smuzhiyun clock-div = <12>; 267*4882a593Smuzhiyun clock-mult = <1>; 268*4882a593Smuzhiyun clocks = <&pll2>; 269*4882a593Smuzhiyun }; 270*4882a593Smuzhiyun clk48: clk48@48M { 271*4882a593Smuzhiyun #clock-cells = <0>; 272*4882a593Smuzhiyun compatible = "fixed-factor-clock"; 273*4882a593Smuzhiyun /* The data sheet does not say how this is derived */ 274*4882a593Smuzhiyun clock-div = <18>; 275*4882a593Smuzhiyun clock-mult = <1>; 276*4882a593Smuzhiyun clocks = <&pll2>; 277*4882a593Smuzhiyun }; 278*4882a593Smuzhiyun clk27: clk27@27M { 279*4882a593Smuzhiyun #clock-cells = <0>; 280*4882a593Smuzhiyun compatible = "fixed-factor-clock"; 281*4882a593Smuzhiyun clock-div = <4>; 282*4882a593Smuzhiyun clock-mult = <1>; 283*4882a593Smuzhiyun clocks = <&clk108>; 284*4882a593Smuzhiyun }; 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun /* This apparently exists as well */ 287*4882a593Smuzhiyun ulpiclk: ulpiclk@60M { 288*4882a593Smuzhiyun #clock-cells = <0>; 289*4882a593Smuzhiyun compatible = "fixed-clock"; 290*4882a593Smuzhiyun clock-frequency = <60000000>; 291*4882a593Smuzhiyun }; 292*4882a593Smuzhiyun 293*4882a593Smuzhiyun /* 294*4882a593Smuzhiyun * IP AMBA bus clocks, driving the bus side of the 295*4882a593Smuzhiyun * peripheral clocking, clock gates. 296*4882a593Smuzhiyun */ 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun hclkdma0: hclkdma0@48M { 299*4882a593Smuzhiyun #clock-cells = <0>; 300*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 301*4882a593Smuzhiyun clock-id = <0>; 302*4882a593Smuzhiyun clocks = <&hclk>; 303*4882a593Smuzhiyun }; 304*4882a593Smuzhiyun hclksmc: hclksmc@48M { 305*4882a593Smuzhiyun #clock-cells = <0>; 306*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 307*4882a593Smuzhiyun clock-id = <1>; 308*4882a593Smuzhiyun clocks = <&hclk>; 309*4882a593Smuzhiyun }; 310*4882a593Smuzhiyun hclksdram: hclksdram@48M { 311*4882a593Smuzhiyun #clock-cells = <0>; 312*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 313*4882a593Smuzhiyun clock-id = <2>; 314*4882a593Smuzhiyun clocks = <&hclk>; 315*4882a593Smuzhiyun }; 316*4882a593Smuzhiyun hclkdma1: hclkdma1@48M { 317*4882a593Smuzhiyun #clock-cells = <0>; 318*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 319*4882a593Smuzhiyun clock-id = <3>; 320*4882a593Smuzhiyun clocks = <&hclk>; 321*4882a593Smuzhiyun }; 322*4882a593Smuzhiyun hclkclcd: hclkclcd@48M { 323*4882a593Smuzhiyun #clock-cells = <0>; 324*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 325*4882a593Smuzhiyun clock-id = <4>; 326*4882a593Smuzhiyun clocks = <&hclk>; 327*4882a593Smuzhiyun }; 328*4882a593Smuzhiyun pclkirda: pclkirda@48M { 329*4882a593Smuzhiyun #clock-cells = <0>; 330*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 331*4882a593Smuzhiyun clock-id = <5>; 332*4882a593Smuzhiyun clocks = <&pclk>; 333*4882a593Smuzhiyun }; 334*4882a593Smuzhiyun pclkssp: pclkssp@48M { 335*4882a593Smuzhiyun #clock-cells = <0>; 336*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 337*4882a593Smuzhiyun clock-id = <6>; 338*4882a593Smuzhiyun clocks = <&pclk>; 339*4882a593Smuzhiyun }; 340*4882a593Smuzhiyun pclkuart0: pclkuart0@48M { 341*4882a593Smuzhiyun #clock-cells = <0>; 342*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 343*4882a593Smuzhiyun clock-id = <7>; 344*4882a593Smuzhiyun clocks = <&pclk>; 345*4882a593Smuzhiyun }; 346*4882a593Smuzhiyun pclksdi: pclksdi@48M { 347*4882a593Smuzhiyun #clock-cells = <0>; 348*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 349*4882a593Smuzhiyun clock-id = <8>; 350*4882a593Smuzhiyun clocks = <&pclk>; 351*4882a593Smuzhiyun }; 352*4882a593Smuzhiyun pclki2c0: pclki2c0@48M { 353*4882a593Smuzhiyun #clock-cells = <0>; 354*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 355*4882a593Smuzhiyun clock-id = <9>; 356*4882a593Smuzhiyun clocks = <&pclk>; 357*4882a593Smuzhiyun }; 358*4882a593Smuzhiyun pclki2c1: pclki2c1@48M { 359*4882a593Smuzhiyun #clock-cells = <0>; 360*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 361*4882a593Smuzhiyun clock-id = <10>; 362*4882a593Smuzhiyun clocks = <&pclk>; 363*4882a593Smuzhiyun }; 364*4882a593Smuzhiyun pclkuart1: pclkuart1@48M { 365*4882a593Smuzhiyun #clock-cells = <0>; 366*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 367*4882a593Smuzhiyun clock-id = <11>; 368*4882a593Smuzhiyun clocks = <&pclk>; 369*4882a593Smuzhiyun }; 370*4882a593Smuzhiyun pclkmsp0: pclkmsp0@48M { 371*4882a593Smuzhiyun #clock-cells = <0>; 372*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 373*4882a593Smuzhiyun clock-id = <12>; 374*4882a593Smuzhiyun clocks = <&pclk>; 375*4882a593Smuzhiyun }; 376*4882a593Smuzhiyun hclkusb: hclkusb@48M { 377*4882a593Smuzhiyun #clock-cells = <0>; 378*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 379*4882a593Smuzhiyun clock-id = <13>; 380*4882a593Smuzhiyun clocks = <&hclk>; 381*4882a593Smuzhiyun }; 382*4882a593Smuzhiyun hclkdif: hclkdif@48M { 383*4882a593Smuzhiyun #clock-cells = <0>; 384*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 385*4882a593Smuzhiyun clock-id = <14>; 386*4882a593Smuzhiyun clocks = <&hclk>; 387*4882a593Smuzhiyun }; 388*4882a593Smuzhiyun hclksaa: hclksaa@48M { 389*4882a593Smuzhiyun #clock-cells = <0>; 390*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 391*4882a593Smuzhiyun clock-id = <15>; 392*4882a593Smuzhiyun clocks = <&hclk>; 393*4882a593Smuzhiyun }; 394*4882a593Smuzhiyun hclksva: hclksva@48M { 395*4882a593Smuzhiyun #clock-cells = <0>; 396*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 397*4882a593Smuzhiyun clock-id = <16>; 398*4882a593Smuzhiyun clocks = <&hclk>; 399*4882a593Smuzhiyun }; 400*4882a593Smuzhiyun pclkhsi: pclkhsi@48M { 401*4882a593Smuzhiyun #clock-cells = <0>; 402*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 403*4882a593Smuzhiyun clock-id = <17>; 404*4882a593Smuzhiyun clocks = <&pclk>; 405*4882a593Smuzhiyun }; 406*4882a593Smuzhiyun pclkxti: pclkxti@48M { 407*4882a593Smuzhiyun #clock-cells = <0>; 408*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 409*4882a593Smuzhiyun clock-id = <18>; 410*4882a593Smuzhiyun clocks = <&pclk>; 411*4882a593Smuzhiyun }; 412*4882a593Smuzhiyun pclkuart2: pclkuart2@48M { 413*4882a593Smuzhiyun #clock-cells = <0>; 414*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 415*4882a593Smuzhiyun clock-id = <19>; 416*4882a593Smuzhiyun clocks = <&pclk>; 417*4882a593Smuzhiyun }; 418*4882a593Smuzhiyun pclkmsp1: pclkmsp1@48M { 419*4882a593Smuzhiyun #clock-cells = <0>; 420*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 421*4882a593Smuzhiyun clock-id = <20>; 422*4882a593Smuzhiyun clocks = <&pclk>; 423*4882a593Smuzhiyun }; 424*4882a593Smuzhiyun pclkmsp2: pclkmsp2@48M { 425*4882a593Smuzhiyun #clock-cells = <0>; 426*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 427*4882a593Smuzhiyun clock-id = <21>; 428*4882a593Smuzhiyun clocks = <&pclk>; 429*4882a593Smuzhiyun }; 430*4882a593Smuzhiyun pclkowm: pclkowm@48M { 431*4882a593Smuzhiyun #clock-cells = <0>; 432*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 433*4882a593Smuzhiyun clock-id = <22>; 434*4882a593Smuzhiyun clocks = <&pclk>; 435*4882a593Smuzhiyun }; 436*4882a593Smuzhiyun hclkhpi: hclkhpi@48M { 437*4882a593Smuzhiyun #clock-cells = <0>; 438*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 439*4882a593Smuzhiyun clock-id = <23>; 440*4882a593Smuzhiyun clocks = <&hclk>; 441*4882a593Smuzhiyun }; 442*4882a593Smuzhiyun pclkske: pclkske@48M { 443*4882a593Smuzhiyun #clock-cells = <0>; 444*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 445*4882a593Smuzhiyun clock-id = <24>; 446*4882a593Smuzhiyun clocks = <&pclk>; 447*4882a593Smuzhiyun }; 448*4882a593Smuzhiyun pclkhsem: pclkhsem@48M { 449*4882a593Smuzhiyun #clock-cells = <0>; 450*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 451*4882a593Smuzhiyun clock-id = <25>; 452*4882a593Smuzhiyun clocks = <&pclk>; 453*4882a593Smuzhiyun }; 454*4882a593Smuzhiyun hclk3d: hclk3d@48M { 455*4882a593Smuzhiyun #clock-cells = <0>; 456*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 457*4882a593Smuzhiyun clock-id = <26>; 458*4882a593Smuzhiyun clocks = <&hclk>; 459*4882a593Smuzhiyun }; 460*4882a593Smuzhiyun hclkhash: hclkhash@48M { 461*4882a593Smuzhiyun #clock-cells = <0>; 462*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 463*4882a593Smuzhiyun clock-id = <27>; 464*4882a593Smuzhiyun clocks = <&hclk>; 465*4882a593Smuzhiyun }; 466*4882a593Smuzhiyun hclkcryp: hclkcryp@48M { 467*4882a593Smuzhiyun #clock-cells = <0>; 468*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 469*4882a593Smuzhiyun clock-id = <28>; 470*4882a593Smuzhiyun clocks = <&hclk>; 471*4882a593Smuzhiyun }; 472*4882a593Smuzhiyun pclkmshc: pclkmshc@48M { 473*4882a593Smuzhiyun #clock-cells = <0>; 474*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 475*4882a593Smuzhiyun clock-id = <29>; 476*4882a593Smuzhiyun clocks = <&pclk>; 477*4882a593Smuzhiyun }; 478*4882a593Smuzhiyun hclkusbm: hclkusbm@48M { 479*4882a593Smuzhiyun #clock-cells = <0>; 480*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 481*4882a593Smuzhiyun clock-id = <30>; 482*4882a593Smuzhiyun clocks = <&hclk>; 483*4882a593Smuzhiyun }; 484*4882a593Smuzhiyun hclkrng: hclkrng@48M { 485*4882a593Smuzhiyun #clock-cells = <0>; 486*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 487*4882a593Smuzhiyun clock-id = <31>; 488*4882a593Smuzhiyun clocks = <&hclk>; 489*4882a593Smuzhiyun }; 490*4882a593Smuzhiyun 491*4882a593Smuzhiyun /* IP kernel clocks */ 492*4882a593Smuzhiyun clcdclk: clcdclk@0 { 493*4882a593Smuzhiyun #clock-cells = <0>; 494*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 495*4882a593Smuzhiyun clock-id = <36>; 496*4882a593Smuzhiyun clocks = <&clk72 &clk48>; 497*4882a593Smuzhiyun }; 498*4882a593Smuzhiyun irdaclk: irdaclk@48M { 499*4882a593Smuzhiyun #clock-cells = <0>; 500*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 501*4882a593Smuzhiyun clock-id = <37>; 502*4882a593Smuzhiyun clocks = <&clk48>; 503*4882a593Smuzhiyun }; 504*4882a593Smuzhiyun sspiclk: sspiclk@48M { 505*4882a593Smuzhiyun #clock-cells = <0>; 506*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 507*4882a593Smuzhiyun clock-id = <38>; 508*4882a593Smuzhiyun clocks = <&clk48>; 509*4882a593Smuzhiyun }; 510*4882a593Smuzhiyun uart0clk: uart0clk@48M { 511*4882a593Smuzhiyun #clock-cells = <0>; 512*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 513*4882a593Smuzhiyun clock-id = <39>; 514*4882a593Smuzhiyun clocks = <&clk48>; 515*4882a593Smuzhiyun }; 516*4882a593Smuzhiyun sdiclk: sdiclk@48M { 517*4882a593Smuzhiyun /* Also called MCCLK in some documents */ 518*4882a593Smuzhiyun #clock-cells = <0>; 519*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 520*4882a593Smuzhiyun clock-id = <40>; 521*4882a593Smuzhiyun clocks = <&clk48>; 522*4882a593Smuzhiyun }; 523*4882a593Smuzhiyun i2c0clk: i2c0clk@48M { 524*4882a593Smuzhiyun #clock-cells = <0>; 525*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 526*4882a593Smuzhiyun clock-id = <41>; 527*4882a593Smuzhiyun clocks = <&clk48>; 528*4882a593Smuzhiyun }; 529*4882a593Smuzhiyun i2c1clk: i2c1clk@48M { 530*4882a593Smuzhiyun #clock-cells = <0>; 531*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 532*4882a593Smuzhiyun clock-id = <42>; 533*4882a593Smuzhiyun clocks = <&clk48>; 534*4882a593Smuzhiyun }; 535*4882a593Smuzhiyun uart1clk: uart1clk@48M { 536*4882a593Smuzhiyun #clock-cells = <0>; 537*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 538*4882a593Smuzhiyun clock-id = <43>; 539*4882a593Smuzhiyun clocks = <&clk48>; 540*4882a593Smuzhiyun }; 541*4882a593Smuzhiyun mspclk0: mspclk0@48M { 542*4882a593Smuzhiyun #clock-cells = <0>; 543*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 544*4882a593Smuzhiyun clock-id = <44>; 545*4882a593Smuzhiyun clocks = <&clk48>; 546*4882a593Smuzhiyun }; 547*4882a593Smuzhiyun usbclk: usbclk@48M { 548*4882a593Smuzhiyun #clock-cells = <0>; 549*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 550*4882a593Smuzhiyun clock-id = <45>; 551*4882a593Smuzhiyun clocks = <&clk48>; /* 48 MHz not ULPI */ 552*4882a593Smuzhiyun }; 553*4882a593Smuzhiyun difclk: difclk@72M { 554*4882a593Smuzhiyun #clock-cells = <0>; 555*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 556*4882a593Smuzhiyun clock-id = <46>; 557*4882a593Smuzhiyun clocks = <&clk72>; 558*4882a593Smuzhiyun }; 559*4882a593Smuzhiyun ipi2cclk: ipi2cclk@48M { 560*4882a593Smuzhiyun #clock-cells = <0>; 561*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 562*4882a593Smuzhiyun clock-id = <47>; 563*4882a593Smuzhiyun clocks = <&clk48>; /* Guess */ 564*4882a593Smuzhiyun }; 565*4882a593Smuzhiyun ipbmcclk: ipbmcclk@48M { 566*4882a593Smuzhiyun #clock-cells = <0>; 567*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 568*4882a593Smuzhiyun clock-id = <48>; 569*4882a593Smuzhiyun clocks = <&clk48>; /* Guess */ 570*4882a593Smuzhiyun }; 571*4882a593Smuzhiyun hsiclkrx: hsiclkrx@216M { 572*4882a593Smuzhiyun #clock-cells = <0>; 573*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 574*4882a593Smuzhiyun clock-id = <49>; 575*4882a593Smuzhiyun clocks = <&clk216>; 576*4882a593Smuzhiyun }; 577*4882a593Smuzhiyun hsiclktx: hsiclktx@108M { 578*4882a593Smuzhiyun #clock-cells = <0>; 579*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 580*4882a593Smuzhiyun clock-id = <50>; 581*4882a593Smuzhiyun clocks = <&clk108>; 582*4882a593Smuzhiyun }; 583*4882a593Smuzhiyun uart2clk: uart2clk@48M { 584*4882a593Smuzhiyun #clock-cells = <0>; 585*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 586*4882a593Smuzhiyun clock-id = <51>; 587*4882a593Smuzhiyun clocks = <&clk48>; 588*4882a593Smuzhiyun }; 589*4882a593Smuzhiyun mspclk1: mspclk1@48M { 590*4882a593Smuzhiyun #clock-cells = <0>; 591*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 592*4882a593Smuzhiyun clock-id = <52>; 593*4882a593Smuzhiyun clocks = <&clk48>; 594*4882a593Smuzhiyun }; 595*4882a593Smuzhiyun mspclk2: mspclk2@48M { 596*4882a593Smuzhiyun #clock-cells = <0>; 597*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 598*4882a593Smuzhiyun clock-id = <53>; 599*4882a593Smuzhiyun clocks = <&clk48>; 600*4882a593Smuzhiyun }; 601*4882a593Smuzhiyun owmclk: owmclk@48M { 602*4882a593Smuzhiyun #clock-cells = <0>; 603*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 604*4882a593Smuzhiyun clock-id = <54>; 605*4882a593Smuzhiyun clocks = <&clk48>; /* Guess */ 606*4882a593Smuzhiyun }; 607*4882a593Smuzhiyun skeclk: skeclk@48M { 608*4882a593Smuzhiyun #clock-cells = <0>; 609*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 610*4882a593Smuzhiyun clock-id = <56>; 611*4882a593Smuzhiyun clocks = <&clk48>; /* Guess */ 612*4882a593Smuzhiyun }; 613*4882a593Smuzhiyun x3dclk: x3dclk@48M { 614*4882a593Smuzhiyun #clock-cells = <0>; 615*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 616*4882a593Smuzhiyun clock-id = <58>; 617*4882a593Smuzhiyun clocks = <&clk48>; /* Guess */ 618*4882a593Smuzhiyun }; 619*4882a593Smuzhiyun pclkmsp3: pclkmsp3@48M { 620*4882a593Smuzhiyun #clock-cells = <0>; 621*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 622*4882a593Smuzhiyun clock-id = <59>; 623*4882a593Smuzhiyun clocks = <&pclk>; 624*4882a593Smuzhiyun }; 625*4882a593Smuzhiyun mspclk3: mspclk3@48M { 626*4882a593Smuzhiyun #clock-cells = <0>; 627*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 628*4882a593Smuzhiyun clock-id = <60>; 629*4882a593Smuzhiyun clocks = <&clk48>; 630*4882a593Smuzhiyun }; 631*4882a593Smuzhiyun mshcclk: mshcclk@48M { 632*4882a593Smuzhiyun #clock-cells = <0>; 633*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 634*4882a593Smuzhiyun clock-id = <61>; 635*4882a593Smuzhiyun clocks = <&clk48>; /* Guess */ 636*4882a593Smuzhiyun }; 637*4882a593Smuzhiyun usbmclk: usbmclk@48M { 638*4882a593Smuzhiyun #clock-cells = <0>; 639*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 640*4882a593Smuzhiyun clock-id = <62>; 641*4882a593Smuzhiyun /* Stated as "48 MHz not ULPI clock" */ 642*4882a593Smuzhiyun clocks = <&clk48>; 643*4882a593Smuzhiyun }; 644*4882a593Smuzhiyun rngcclk: rngcclk@48M { 645*4882a593Smuzhiyun #clock-cells = <0>; 646*4882a593Smuzhiyun compatible = "st,nomadik-src-clock"; 647*4882a593Smuzhiyun clock-id = <63>; 648*4882a593Smuzhiyun clocks = <&clk48>; /* Guess */ 649*4882a593Smuzhiyun }; 650*4882a593Smuzhiyun }; 651*4882a593Smuzhiyun 652*4882a593Smuzhiyun /* A NAND flash of 128 MiB */ 653*4882a593Smuzhiyun fsmc: flash@40000000 { 654*4882a593Smuzhiyun compatible = "stericsson,fsmc-nand"; 655*4882a593Smuzhiyun #address-cells = <1>; 656*4882a593Smuzhiyun #size-cells = <1>; 657*4882a593Smuzhiyun reg = <0x10100000 0x1000>, /* FSMC Register*/ 658*4882a593Smuzhiyun <0x40000000 0x2000>, /* NAND Base DATA */ 659*4882a593Smuzhiyun <0x41000000 0x2000>, /* NAND Base ADDR */ 660*4882a593Smuzhiyun <0x40800000 0x2000>; /* NAND Base CMD */ 661*4882a593Smuzhiyun reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd"; 662*4882a593Smuzhiyun clocks = <&hclksmc>; 663*4882a593Smuzhiyun status = "okay"; 664*4882a593Smuzhiyun 665*4882a593Smuzhiyun partition@0 { 666*4882a593Smuzhiyun label = "X-Loader(NAND)"; 667*4882a593Smuzhiyun reg = <0x0 0x40000>; 668*4882a593Smuzhiyun }; 669*4882a593Smuzhiyun partition@40000 { 670*4882a593Smuzhiyun label = "MemInit(NAND)"; 671*4882a593Smuzhiyun reg = <0x40000 0x40000>; 672*4882a593Smuzhiyun }; 673*4882a593Smuzhiyun partition@80000 { 674*4882a593Smuzhiyun label = "BootLoader(NAND)"; 675*4882a593Smuzhiyun reg = <0x80000 0x200000>; 676*4882a593Smuzhiyun }; 677*4882a593Smuzhiyun partition@280000 { 678*4882a593Smuzhiyun label = "Kernel zImage(NAND)"; 679*4882a593Smuzhiyun reg = <0x280000 0x300000>; 680*4882a593Smuzhiyun }; 681*4882a593Smuzhiyun partition@580000 { 682*4882a593Smuzhiyun label = "Root Filesystem(NAND)"; 683*4882a593Smuzhiyun reg = <0x580000 0x1600000>; 684*4882a593Smuzhiyun }; 685*4882a593Smuzhiyun partition@1b80000 { 686*4882a593Smuzhiyun label = "User Filesystem(NAND)"; 687*4882a593Smuzhiyun reg = <0x1b80000 0x6480000>; 688*4882a593Smuzhiyun }; 689*4882a593Smuzhiyun }; 690*4882a593Smuzhiyun 691*4882a593Smuzhiyun /* I2C0 connected to the STw4811 power management chip */ 692*4882a593Smuzhiyun i2c0 { 693*4882a593Smuzhiyun compatible = "st,nomadik-i2c", "arm,primecell"; 694*4882a593Smuzhiyun reg = <0x101f8000 0x1000>; 695*4882a593Smuzhiyun interrupt-parent = <&vica>; 696*4882a593Smuzhiyun interrupts = <20>; 697*4882a593Smuzhiyun clock-frequency = <100000>; 698*4882a593Smuzhiyun #address-cells = <1>; 699*4882a593Smuzhiyun #size-cells = <0>; 700*4882a593Smuzhiyun clocks = <&i2c0clk>, <&pclki2c0>; 701*4882a593Smuzhiyun clock-names = "mclk", "apb_pclk"; 702*4882a593Smuzhiyun pinctrl-names = "default"; 703*4882a593Smuzhiyun pinctrl-0 = <&i2c0_default_mux>, <&i2c0_default_mode>; 704*4882a593Smuzhiyun 705*4882a593Smuzhiyun stw4811@2d { 706*4882a593Smuzhiyun compatible = "st,stw4811"; 707*4882a593Smuzhiyun reg = <0x2d>; 708*4882a593Smuzhiyun vmmc_regulator: vmmc { 709*4882a593Smuzhiyun compatible = "st,stw481x-vmmc"; 710*4882a593Smuzhiyun regulator-name = "VMMC"; 711*4882a593Smuzhiyun regulator-min-microvolt = <1800000>; 712*4882a593Smuzhiyun regulator-max-microvolt = <3300000>; 713*4882a593Smuzhiyun }; 714*4882a593Smuzhiyun }; 715*4882a593Smuzhiyun }; 716*4882a593Smuzhiyun 717*4882a593Smuzhiyun /* I2C1 connected to various sensors */ 718*4882a593Smuzhiyun i2c1 { 719*4882a593Smuzhiyun compatible = "st,nomadik-i2c", "arm,primecell"; 720*4882a593Smuzhiyun reg = <0x101f7000 0x1000>; 721*4882a593Smuzhiyun interrupt-parent = <&vica>; 722*4882a593Smuzhiyun interrupts = <21>; 723*4882a593Smuzhiyun clock-frequency = <100000>; 724*4882a593Smuzhiyun #address-cells = <1>; 725*4882a593Smuzhiyun #size-cells = <0>; 726*4882a593Smuzhiyun clocks = <&i2c1clk>, <&pclki2c1>; 727*4882a593Smuzhiyun clock-names = "mclk", "apb_pclk"; 728*4882a593Smuzhiyun pinctrl-names = "default"; 729*4882a593Smuzhiyun pinctrl-0 = <&i2c1_default_mux>, <&i2c1_default_mode>; 730*4882a593Smuzhiyun 731*4882a593Smuzhiyun camera@2d { 732*4882a593Smuzhiyun compatible = "st,camera"; 733*4882a593Smuzhiyun reg = <0x10>; 734*4882a593Smuzhiyun }; 735*4882a593Smuzhiyun stw5095@1a { 736*4882a593Smuzhiyun compatible = "st,stw5095"; 737*4882a593Smuzhiyun reg = <0x1a>; 738*4882a593Smuzhiyun }; 739*4882a593Smuzhiyun }; 740*4882a593Smuzhiyun 741*4882a593Smuzhiyun amba { 742*4882a593Smuzhiyun compatible = "simple-bus"; 743*4882a593Smuzhiyun #address-cells = <1>; 744*4882a593Smuzhiyun #size-cells = <1>; 745*4882a593Smuzhiyun ranges; 746*4882a593Smuzhiyun 747*4882a593Smuzhiyun clcd@10120000 { 748*4882a593Smuzhiyun compatible = "arm,pl110", "arm,primecell"; 749*4882a593Smuzhiyun reg = <0x10120000 0x1000>; 750*4882a593Smuzhiyun interrupt-names = "combined"; 751*4882a593Smuzhiyun interrupts = <14>; 752*4882a593Smuzhiyun interrupt-parent = <&vica>; 753*4882a593Smuzhiyun clocks = <&clcdclk>, <&hclkclcd>; 754*4882a593Smuzhiyun clock-names = "clcdclk", "apb_pclk"; 755*4882a593Smuzhiyun status = "disabled"; 756*4882a593Smuzhiyun }; 757*4882a593Smuzhiyun 758*4882a593Smuzhiyun vica: interrupt-controller@10140000 { 759*4882a593Smuzhiyun compatible = "arm,versatile-vic"; 760*4882a593Smuzhiyun interrupt-controller; 761*4882a593Smuzhiyun #interrupt-cells = <1>; 762*4882a593Smuzhiyun reg = <0x10140000 0x20>; 763*4882a593Smuzhiyun }; 764*4882a593Smuzhiyun 765*4882a593Smuzhiyun vicb: interrupt-controller@10140020 { 766*4882a593Smuzhiyun compatible = "arm,versatile-vic"; 767*4882a593Smuzhiyun interrupt-controller; 768*4882a593Smuzhiyun #interrupt-cells = <1>; 769*4882a593Smuzhiyun reg = <0x10140020 0x20>; 770*4882a593Smuzhiyun }; 771*4882a593Smuzhiyun 772*4882a593Smuzhiyun uart0: uart@101fd000 { 773*4882a593Smuzhiyun compatible = "arm,pl011", "arm,primecell"; 774*4882a593Smuzhiyun reg = <0x101fd000 0x1000>; 775*4882a593Smuzhiyun interrupt-parent = <&vica>; 776*4882a593Smuzhiyun interrupts = <12>; 777*4882a593Smuzhiyun clocks = <&uart0clk>, <&pclkuart0>; 778*4882a593Smuzhiyun clock-names = "uartclk", "apb_pclk"; 779*4882a593Smuzhiyun status = "disabled"; 780*4882a593Smuzhiyun dmas = <&dmac0 14 1>, 781*4882a593Smuzhiyun <&dmac0 15 1>; 782*4882a593Smuzhiyun dma-names = "rx", "tx"; 783*4882a593Smuzhiyun }; 784*4882a593Smuzhiyun 785*4882a593Smuzhiyun uart1: uart@101fb000 { 786*4882a593Smuzhiyun compatible = "arm,pl011", "arm,primecell"; 787*4882a593Smuzhiyun reg = <0x101fb000 0x1000>; 788*4882a593Smuzhiyun interrupt-parent = <&vica>; 789*4882a593Smuzhiyun interrupts = <17>; 790*4882a593Smuzhiyun clocks = <&uart1clk>, <&pclkuart1>; 791*4882a593Smuzhiyun clock-names = "uartclk", "apb_pclk"; 792*4882a593Smuzhiyun pinctrl-names = "default"; 793*4882a593Smuzhiyun pinctrl-0 = <&uart1_default_mux>; 794*4882a593Smuzhiyun dmas = <&dmac1 22 1>, 795*4882a593Smuzhiyun <&dmac1 23 1>; 796*4882a593Smuzhiyun dma-names = "rx", "tx"; 797*4882a593Smuzhiyun }; 798*4882a593Smuzhiyun 799*4882a593Smuzhiyun uart2: uart@101f2000 { 800*4882a593Smuzhiyun compatible = "arm,pl011", "arm,primecell"; 801*4882a593Smuzhiyun reg = <0x101f2000 0x1000>; 802*4882a593Smuzhiyun interrupt-parent = <&vica>; 803*4882a593Smuzhiyun interrupts = <28>; 804*4882a593Smuzhiyun clocks = <&uart2clk>, <&pclkuart2>; 805*4882a593Smuzhiyun clock-names = "uartclk", "apb_pclk"; 806*4882a593Smuzhiyun status = "disabled"; 807*4882a593Smuzhiyun dmas = <&dmac1 30 1>, 808*4882a593Smuzhiyun <&dmac1 31 1>; 809*4882a593Smuzhiyun dma-names = "rx", "tx"; 810*4882a593Smuzhiyun }; 811*4882a593Smuzhiyun 812*4882a593Smuzhiyun rng: rng@101b0000 { 813*4882a593Smuzhiyun compatible = "arm,primecell"; 814*4882a593Smuzhiyun reg = <0x101b0000 0x1000>; 815*4882a593Smuzhiyun clocks = <&rngcclk>, <&hclkrng>; 816*4882a593Smuzhiyun clock-names = "rng", "apb_pclk"; 817*4882a593Smuzhiyun }; 818*4882a593Smuzhiyun 819*4882a593Smuzhiyun rtc: rtc@101e8000 { 820*4882a593Smuzhiyun compatible = "arm,pl031", "arm,primecell"; 821*4882a593Smuzhiyun reg = <0x101e8000 0x1000>; 822*4882a593Smuzhiyun clocks = <&pclk>; 823*4882a593Smuzhiyun clock-names = "apb_pclk"; 824*4882a593Smuzhiyun interrupt-parent = <&vica>; 825*4882a593Smuzhiyun interrupts = <10>; 826*4882a593Smuzhiyun }; 827*4882a593Smuzhiyun 828*4882a593Smuzhiyun mmcsd: sdi@101f6000 { 829*4882a593Smuzhiyun compatible = "arm,pl18x", "arm,primecell"; 830*4882a593Smuzhiyun reg = <0x101f6000 0x1000>; 831*4882a593Smuzhiyun clocks = <&sdiclk>, <&pclksdi>; 832*4882a593Smuzhiyun clock-names = "mclk", "apb_pclk"; 833*4882a593Smuzhiyun interrupt-parent = <&vica>; 834*4882a593Smuzhiyun interrupts = <22>; 835*4882a593Smuzhiyun max-frequency = <400000>; 836*4882a593Smuzhiyun bus-width = <4>; 837*4882a593Smuzhiyun cap-mmc-highspeed; 838*4882a593Smuzhiyun cap-sd-highspeed; 839*4882a593Smuzhiyun full-pwr-cycle; 840*4882a593Smuzhiyun /* 841*4882a593Smuzhiyun * The STw4811 circuit used with the Nomadik strictly 842*4882a593Smuzhiyun * requires that all of these signal direction pins be 843*4882a593Smuzhiyun * routed and used for its 4-bit levelshifter. 844*4882a593Smuzhiyun */ 845*4882a593Smuzhiyun st,sig-dir-dat0; 846*4882a593Smuzhiyun st,sig-dir-dat2; 847*4882a593Smuzhiyun st,sig-dir-dat31; 848*4882a593Smuzhiyun st,sig-dir-cmd; 849*4882a593Smuzhiyun st,sig-pin-fbclk; 850*4882a593Smuzhiyun pinctrl-names = "default"; 851*4882a593Smuzhiyun pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>; 852*4882a593Smuzhiyun vmmc-supply = <&vmmc_regulator>; 853*4882a593Smuzhiyun }; 854*4882a593Smuzhiyun 855*4882a593Smuzhiyun dmac0: dma-controller@10130000 { 856*4882a593Smuzhiyun compatible = "arm,pl080", "arm,primecell"; 857*4882a593Smuzhiyun reg = <0x10130000 0x1000>; 858*4882a593Smuzhiyun interrupt-parent = <&vica>; 859*4882a593Smuzhiyun interrupts = <15>; 860*4882a593Smuzhiyun clocks = <&hclkdma0>; 861*4882a593Smuzhiyun clock-names = "apb_pclk"; 862*4882a593Smuzhiyun lli-bus-interface-ahb1; 863*4882a593Smuzhiyun lli-bus-interface-ahb2; 864*4882a593Smuzhiyun mem-bus-interface-ahb2; 865*4882a593Smuzhiyun memcpy-burst-size = <256>; 866*4882a593Smuzhiyun memcpy-bus-width = <32>; 867*4882a593Smuzhiyun #dma-cells = <2>; 868*4882a593Smuzhiyun }; 869*4882a593Smuzhiyun dmac1: dma-controller@10150000 { 870*4882a593Smuzhiyun compatible = "arm,pl080", "arm,primecell"; 871*4882a593Smuzhiyun reg = <0x10150000 0x1000>; 872*4882a593Smuzhiyun interrupt-parent = <&vica>; 873*4882a593Smuzhiyun interrupts = <13>; 874*4882a593Smuzhiyun clocks = <&hclkdma1>; 875*4882a593Smuzhiyun clock-names = "apb_pclk"; 876*4882a593Smuzhiyun lli-bus-interface-ahb1; 877*4882a593Smuzhiyun lli-bus-interface-ahb2; 878*4882a593Smuzhiyun mem-bus-interface-ahb2; 879*4882a593Smuzhiyun memcpy-burst-size = <256>; 880*4882a593Smuzhiyun memcpy-bus-width = <32>; 881*4882a593Smuzhiyun #dma-cells = <2>; 882*4882a593Smuzhiyun }; 883*4882a593Smuzhiyun }; 884*4882a593Smuzhiyun}; 885