1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Device Tree for the ST-Ericsson U300 Machine and SoC 4 */ 5 6/dts-v1/; 7 8/ { 9 model = "ST-Ericsson U300"; 10 compatible = "stericsson,u300"; 11 #address-cells = <1>; 12 #size-cells = <1>; 13 14 chosen { 15 bootargs = "root=/dev/ram0 console=ttyAMA0,115200n8 earlyprintk"; 16 }; 17 18 aliases { 19 serial0 = &uart0; 20 serial1 = &uart1; 21 }; 22 23 memory { 24 device_type = "memory"; 25 reg = <0x48000000 0x03c00000>; 26 }; 27 28 s365 { 29 compatible = "stericsson,s365"; 30 vana15-supply = <&ab3100_ldo_d_reg>; 31 syscon = <&syscon>; 32 }; 33 34 syscon: syscon@c0011000 { 35 compatible = "stericsson,u300-syscon", "syscon"; 36 reg = <0xc0011000 0x1000>; 37 clk32: app_32_clk@32k { 38 #clock-cells = <0>; 39 compatible = "fixed-clock"; 40 clock-frequency = <32768>; 41 }; 42 pll13: pll13@13M { 43 #clock-cells = <0>; 44 compatible = "fixed-clock"; 45 clock-frequency = <13000000>; 46 }; 47 /* Slow bridge clocks under PLL13 */ 48 slow_clk: slow_clk@13M { 49 #clock-cells = <0>; 50 compatible = "stericsson,u300-syscon-clk"; 51 clock-type = <0>; /* Slow */ 52 clock-id = <0>; 53 clocks = <&pll13>; 54 }; 55 uart0_clk: uart0_clk@13M { 56 #clock-cells = <0>; 57 compatible = "stericsson,u300-syscon-clk"; 58 clock-type = <0>; /* Slow */ 59 clock-id = <1>; 60 clocks = <&slow_clk>; 61 }; 62 gpio_clk: gpio_clk@13M { 63 #clock-cells = <0>; 64 compatible = "stericsson,u300-syscon-clk"; 65 clock-type = <0>; /* Slow */ 66 clock-id = <4>; 67 clocks = <&slow_clk>; 68 }; 69 rtc_clk: rtc_clk@13M { 70 #clock-cells = <0>; 71 compatible = "stericsson,u300-syscon-clk"; 72 clock-type = <0>; /* Slow */ 73 clock-id = <6>; 74 clocks = <&slow_clk>; 75 }; 76 apptimer_clk: app_tmr_clk@13M { 77 #clock-cells = <0>; 78 compatible = "stericsson,u300-syscon-clk"; 79 clock-type = <0>; /* Slow */ 80 clock-id = <7>; 81 clocks = <&slow_clk>; 82 }; 83 acc_tmr_clk@13M { 84 #clock-cells = <0>; 85 compatible = "stericsson,u300-syscon-clk"; 86 clock-type = <0>; /* Slow */ 87 clock-id = <8>; 88 clocks = <&slow_clk>; 89 }; 90 pll208: pll208@208M { 91 #clock-cells = <0>; 92 compatible = "fixed-clock"; 93 clock-frequency = <208000000>; 94 }; 95 app208: app_208_clk@208M { 96 #clock-cells = <0>; 97 compatible = "fixed-factor-clock"; 98 clock-div = <1>; 99 clock-mult = <1>; 100 clocks = <&pll208>; 101 }; 102 cpu_clk@208M { 103 #clock-cells = <0>; 104 compatible = "stericsson,u300-syscon-clk"; 105 clock-type = <2>; /* Rest */ 106 clock-id = <3>; 107 clocks = <&app208>; 108 }; 109 app104: app_104_clk@104M { 110 #clock-cells = <0>; 111 compatible = "fixed-factor-clock"; 112 clock-div = <2>; 113 clock-mult = <1>; 114 clocks = <&pll208>; 115 }; 116 semi_clk@104M { 117 #clock-cells = <0>; 118 compatible = "stericsson,u300-syscon-clk"; 119 clock-type = <2>; /* Rest */ 120 clock-id = <9>; 121 clocks = <&app104>; 122 }; 123 app52: app_52_clk@52M { 124 #clock-cells = <0>; 125 compatible = "fixed-factor-clock"; 126 clock-div = <4>; 127 clock-mult = <1>; 128 clocks = <&pll208>; 129 }; 130 /* AHB subsystem clocks */ 131 ahb_clk: ahb_subsys_clk@52M { 132 #clock-cells = <0>; 133 compatible = "stericsson,u300-syscon-clk"; 134 clock-type = <2>; /* Rest */ 135 clock-id = <10>; 136 clocks = <&app52>; 137 }; 138 intcon_clk@52M { 139 #clock-cells = <0>; 140 compatible = "stericsson,u300-syscon-clk"; 141 clock-type = <2>; /* Rest */ 142 clock-id = <12>; 143 clocks = <&ahb_clk>; 144 }; 145 emif_clk@52M { 146 #clock-cells = <0>; 147 compatible = "stericsson,u300-syscon-clk"; 148 clock-type = <2>; /* Rest */ 149 clock-id = <5>; 150 clocks = <&ahb_clk>; 151 }; 152 dmac_clk: dmac_clk@52M { 153 #clock-cells = <0>; 154 compatible = "stericsson,u300-syscon-clk"; 155 clock-type = <2>; /* Rest */ 156 clock-id = <4>; 157 clocks = <&app52>; 158 }; 159 fsmc_clk: fsmc_clk@52M { 160 #clock-cells = <0>; 161 compatible = "stericsson,u300-syscon-clk"; 162 clock-type = <2>; /* Rest */ 163 clock-id = <6>; 164 clocks = <&app52>; 165 }; 166 xgam_clk: xgam_clk@52M { 167 #clock-cells = <0>; 168 compatible = "stericsson,u300-syscon-clk"; 169 clock-type = <2>; /* Rest */ 170 clock-id = <8>; 171 clocks = <&app52>; 172 }; 173 app26: app_26_clk@26M { 174 #clock-cells = <0>; 175 compatible = "fixed-factor-clock"; 176 clock-div = <2>; 177 clock-mult = <1>; 178 clocks = <&app52>; 179 }; 180 /* Fast bridge clocks */ 181 fast_clk: fast_clk@26M { 182 #clock-cells = <0>; 183 compatible = "stericsson,u300-syscon-clk"; 184 clock-type = <1>; /* Fast */ 185 clock-id = <0>; 186 clocks = <&app26>; 187 }; 188 i2c0_clk: i2c0_clk@26M { 189 #clock-cells = <0>; 190 compatible = "stericsson,u300-syscon-clk"; 191 clock-type = <1>; /* Fast */ 192 clock-id = <1>; 193 clocks = <&fast_clk>; 194 }; 195 i2c1_clk: i2c1_clk@26M { 196 #clock-cells = <0>; 197 compatible = "stericsson,u300-syscon-clk"; 198 clock-type = <1>; /* Fast */ 199 clock-id = <2>; 200 clocks = <&fast_clk>; 201 }; 202 mmc_pclk: mmc_p_clk@26M { 203 #clock-cells = <0>; 204 compatible = "stericsson,u300-syscon-clk"; 205 clock-type = <1>; /* Fast */ 206 clock-id = <5>; 207 clocks = <&fast_clk>; 208 }; 209 mmc_mclk: mmc_mclk { 210 #clock-cells = <0>; 211 compatible = "stericsson,u300-syscon-mclk"; 212 clocks = <&mmc_pclk>; 213 }; 214 spi_clk: spi_p_clk@26M { 215 #clock-cells = <0>; 216 compatible = "stericsson,u300-syscon-clk"; 217 clock-type = <1>; /* Fast */ 218 clock-id = <6>; 219 clocks = <&fast_clk>; 220 }; 221 }; 222 223 timer: timer@c0014000 { 224 compatible = "stericsson,u300-apptimer"; 225 reg = <0xc0014000 0x1000>; 226 interrupt-parent = <&vica>; 227 interrupts = <24 25 26 27>; 228 clocks = <&apptimer_clk>; 229 }; 230 231 gpio: gpio@c0016000 { 232 compatible = "stericsson,gpio-coh901"; 233 reg = <0xc0016000 0x1000>; 234 interrupt-parent = <&vicb>; 235 interrupts = <0 1 2 18 21 22 23>; 236 clocks = <&gpio_clk>; 237 interrupt-names = "gpio0", "gpio1", "gpio2", "gpio3", 238 "gpio4", "gpio5", "gpio6"; 239 interrupt-controller; 240 #interrupt-cells = <2>; 241 gpio-controller; 242 #gpio-cells = <2>; 243 }; 244 245 pinctrl: pinctrl@c0011000 { 246 compatible = "stericsson,pinctrl-u300"; 247 reg = <0xc0011000 0x1000>; 248 }; 249 250 watchdog: watchdog@c0012000 { 251 compatible = "stericsson,coh901327"; 252 reg = <0xc0012000 0x1000>; 253 interrupt-parent = <&vicb>; 254 interrupts = <3>; 255 clocks = <&clk32>; 256 }; 257 258 rtc: rtc@c0017000 { 259 compatible = "stericsson,coh901331"; 260 reg = <0xc0017000 0x1000>; 261 interrupt-parent = <&vicb>; 262 interrupts = <10>; 263 clocks = <&rtc_clk>; 264 }; 265 266 dmac: dma-controller@c00020000 { 267 compatible = "stericsson,coh901318"; 268 reg = <0xc0020000 0x1000>; 269 interrupt-parent = <&vica>; 270 interrupts = <2>; 271 #dma-cells = <1>; 272 dma-channels = <40>; 273 clocks = <&dmac_clk>; 274 }; 275 276 /* A NAND flash of 128 MiB */ 277 fsmc: flash@40000000 { 278 compatible = "stericsson,fsmc-nand"; 279 #address-cells = <1>; 280 #size-cells = <1>; 281 reg = <0x9f800000 0x1000>, /* FSMC Register*/ 282 <0x80000000 0x4000>, /* NAND Base DATA */ 283 <0x80020000 0x4000>, /* NAND Base ADDR */ 284 <0x80010000 0x4000>; /* NAND Base CMD */ 285 reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd"; 286 nand-skip-bbtscan; 287 clocks = <&fsmc_clk>; 288 289 partition@0 { 290 label = "boot records"; 291 reg = <0x0 0x20000>; 292 }; 293 partition@20000 { 294 label = "free"; 295 reg = <0x20000 0x7e0000>; 296 }; 297 partition@800000 { 298 label = "platform"; 299 reg = <0x800000 0xf800000>; 300 }; 301 }; 302 303 i2c0: i2c@c0004000 { 304 compatible = "st,ddci2c"; 305 reg = <0xc0004000 0x1000>; 306 interrupt-parent = <&vicb>; 307 interrupts = <8>; 308 clocks = <&i2c0_clk>; 309 #address-cells = <1>; 310 #size-cells = <0>; 311 ab3100: ab3100@48 { 312 compatible = "stericsson,ab3100"; 313 reg = <0x48>; 314 interrupt-parent = <&vica>; 315 interrupts = <0>; /* EXT0 IRQ */ 316 ab3100-regulators { 317 compatible = "stericsson,ab3100-regulators"; 318 ab3100_ldo_a_reg: ab3100_ldo_a { 319 startup-delay-us = <200>; 320 regulator-always-on; 321 regulator-boot-on; 322 }; 323 ab3100_ldo_c_reg: ab3100_ldo_c { 324 startup-delay-us = <200>; 325 }; 326 ab3100_ldo_d_reg: ab3100_ldo_d { 327 startup-delay-us = <200>; 328 }; 329 ab3100_ldo_e_reg: ab3100_ldo_e { 330 regulator-min-microvolt = <1800000>; 331 regulator-max-microvolt = <1800000>; 332 startup-delay-us = <200>; 333 regulator-always-on; 334 regulator-boot-on; 335 }; 336 ab3100_ldo_f_reg: ab3100_ldo_f { 337 regulator-min-microvolt = <2500000>; 338 regulator-max-microvolt = <2500000>; 339 startup-delay-us = <600>; 340 regulator-always-on; 341 regulator-boot-on; 342 }; 343 ab3100_ldo_g_reg: ab3100_ldo_g { 344 regulator-min-microvolt = <1500000>; 345 regulator-max-microvolt = <2850000>; 346 startup-delay-us = <400>; 347 }; 348 ab3100_ldo_h_reg: ab3100_ldo_h { 349 regulator-min-microvolt = <1200000>; 350 regulator-max-microvolt = <2750000>; 351 startup-delay-us = <200>; 352 }; 353 ab3100_ldo_k_reg: ab3100_ldo_k { 354 regulator-min-microvolt = <1800000>; 355 regulator-max-microvolt = <2750000>; 356 startup-delay-us = <200>; 357 }; 358 ab3100_ext_reg: ab3100_ext { 359 }; 360 ab3100_buck_reg: ab3100_buck { 361 regulator-min-microvolt = <1200000>; 362 regulator-max-microvolt = <1800000>; 363 startup-delay-us = <1000>; 364 regulator-always-on; 365 regulator-boot-on; 366 }; 367 }; 368 }; 369 }; 370 371 i2c1: i2c@c0005000 { 372 compatible = "st,ddci2c"; 373 reg = <0xc0005000 0x1000>; 374 interrupt-parent = <&vicb>; 375 interrupts = <9>; 376 clocks = <&i2c1_clk>; 377 #address-cells = <1>; 378 #size-cells = <0>; 379 fwcam0: fwcam@10 { 380 reg = <0x10>; 381 }; 382 fwcam1: fwcam@5d { 383 reg = <0x5d>; 384 }; 385 }; 386 387 amba { 388 compatible = "simple-bus"; 389 #address-cells = <1>; 390 #size-cells = <1>; 391 ranges; 392 393 vica: interrupt-controller@a0001000 { 394 compatible = "arm,versatile-vic"; 395 interrupt-controller; 396 #interrupt-cells = <1>; 397 reg = <0xa0001000 0x20>; 398 }; 399 400 vicb: interrupt-controller@a0002000 { 401 compatible = "arm,versatile-vic"; 402 interrupt-controller; 403 #interrupt-cells = <1>; 404 reg = <0xa0002000 0x20>; 405 }; 406 407 uart0: serial@c0013000 { 408 compatible = "arm,pl011", "arm,primecell"; 409 reg = <0xc0013000 0x1000>; 410 interrupt-parent = <&vica>; 411 interrupts = <22>; 412 clocks = <&uart0_clk>, <&uart0_clk>; 413 clock-names = "apb_pclk", "uart0_clk"; 414 dmas = <&dmac 17 &dmac 18>; 415 dma-names = "tx", "rx"; 416 }; 417 418 uart1: serial@c0007000 { 419 compatible = "arm,pl011", "arm,primecell"; 420 reg = <0xc0007000 0x1000>; 421 interrupt-parent = <&vicb>; 422 interrupts = <20>; 423 dmas = <&dmac 38 &dmac 39>; 424 dma-names = "tx", "rx"; 425 }; 426 427 mmcsd: mmcsd@c0001000 { 428 compatible = "arm,pl18x", "arm,primecell"; 429 reg = <0xc0001000 0x1000>; 430 interrupt-parent = <&vicb>; 431 interrupts = <6 7>; 432 clocks = <&mmc_pclk>, <&mmc_mclk>; 433 clock-names = "apb_pclk", "mclk"; 434 max-frequency = <24000000>; 435 bus-width = <4>; // SD-card slot 436 cap-mmc-highspeed; 437 cap-sd-highspeed; 438 cd-gpios = <&gpio 12 0x4>; 439 cd-inverted; 440 vmmc-supply = <&ab3100_ldo_g_reg>; 441 dmas = <&dmac 14>; 442 dma-names = "rx"; 443 }; 444 445 spi: spi@c0006000 { 446 compatible = "arm,pl022", "arm,primecell"; 447 reg = <0xc0006000 0x1000>; 448 interrupt-parent = <&vica>; 449 interrupts = <23>; 450 clocks = <&spi_clk>, <&spi_clk>; 451 clock-names = "SSPCLK", "apb_pclk"; 452 dmas = <&dmac 27 &dmac 28>; 453 dma-names = "tx", "rx"; 454 num-cs = <3>; 455 #address-cells = <1>; 456 #size-cells = <0>; 457 spi-dummy@1 { 458 compatible = "arm,pl022-dummy"; 459 reg = <1>; 460 spi-max-frequency = <20000000>; 461 }; 462 }; 463 }; 464}; 465