1/* 2 * Copyright (C) 2012 STMicroelectronics Limited. 3 * Author: Srinivas Kandagatla <srinivas.kandagatla@st.com> 4 * 5 * This program is free software; you can redistribute it and/or modify 6 * it under the terms of the GNU General Public License version 2 as 7 * publishhed by the Free Software Foundation. 8 */ 9#include "stih41x.dtsi" 10#include "stih416-clock.dtsi" 11#include "stih416-pinctrl.dtsi" 12 13#include <dt-bindings/phy/phy.h> 14#include <dt-bindings/interrupt-controller/arm-gic.h> 15#include <dt-bindings/reset/stih416-resets.h> 16#include <dt-bindings/interrupt-controller/irq-st.h> 17/ { 18 L2: cache-controller { 19 compatible = "arm,pl310-cache"; 20 reg = <0xfffe2000 0x1000>; 21 arm,data-latency = <3 3 3>; 22 arm,tag-latency = <2 2 2>; 23 cache-unified; 24 cache-level = <2>; 25 }; 26 27 arm-pmu { 28 compatible = "arm,cortex-a9-pmu"; 29 interrupt-parent = <&intc>; 30 interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>; 31 }; 32 33 soc { 34 #address-cells = <1>; 35 #size-cells = <1>; 36 interrupt-parent = <&intc>; 37 ranges; 38 compatible = "simple-bus"; 39 40 restart { 41 compatible = "st,stih416-restart"; 42 st,syscfg = <&syscfg_sbc>; 43 status = "okay"; 44 }; 45 46 powerdown: powerdown-controller { 47 #reset-cells = <1>; 48 compatible = "st,stih416-powerdown"; 49 }; 50 51 softreset: softreset-controller { 52 #reset-cells = <1>; 53 compatible = "st,stih416-softreset"; 54 }; 55 56 syscfg_sbc:sbc-syscfg@fe600000{ 57 compatible = "st,stih416-sbc-syscfg", "syscon"; 58 reg = <0xfe600000 0x1000>; 59 }; 60 61 syscfg_front:front-syscfg@fee10000{ 62 compatible = "st,stih416-front-syscfg", "syscon"; 63 reg = <0xfee10000 0x1000>; 64 }; 65 66 syscfg_rear:rear-syscfg@fe830000{ 67 compatible = "st,stih416-rear-syscfg", "syscon"; 68 reg = <0xfe830000 0x1000>; 69 }; 70 71 /* MPE */ 72 syscfg_fvdp_fe:fvdp-fe-syscfg@fddf0000{ 73 compatible = "st,stih416-fvdp-fe-syscfg", "syscon"; 74 reg = <0xfddf0000 0x1000>; 75 }; 76 77 syscfg_fvdp_lite:fvdp-lite-syscfg@fd6a0000{ 78 compatible = "st,stih416-fvdp-lite-syscfg", "syscon"; 79 reg = <0xfd6a0000 0x1000>; 80 }; 81 82 syscfg_cpu:cpu-syscfg@fdde0000{ 83 compatible = "st,stih416-cpu-syscfg", "syscon"; 84 reg = <0xfdde0000 0x1000>; 85 }; 86 87 syscfg_compo:compo-syscfg@fd320000{ 88 compatible = "st,stih416-compo-syscfg", "syscon"; 89 reg = <0xfd320000 0x1000>; 90 }; 91 92 syscfg_transport:transport-syscfg@fd690000{ 93 compatible = "st,stih416-transport-syscfg", "syscon"; 94 reg = <0xfd690000 0x1000>; 95 }; 96 97 syscfg_lpm:lpm-syscfg@fe4b5100{ 98 compatible = "st,stih416-lpm-syscfg", "syscon"; 99 reg = <0xfe4b5100 0x8>; 100 }; 101 102 irq-syscfg { 103 compatible = "st,stih416-irq-syscfg"; 104 st,syscfg = <&syscfg_cpu>; 105 st,irq-device = <ST_IRQ_SYSCFG_PMU_0>, 106 <ST_IRQ_SYSCFG_PMU_1>; 107 st,fiq-device = <ST_IRQ_SYSCFG_DISABLED>, 108 <ST_IRQ_SYSCFG_DISABLED>; 109 }; 110 111 serial2: serial@fed32000{ 112 compatible = "st,asc"; 113 status = "disabled"; 114 reg = <0xfed32000 0x2c>; 115 interrupts = <0 197 0>; 116 clocks = <&clk_s_a0_ls CLK_ICN_REG>; 117 pinctrl-names = "default"; 118 pinctrl-0 = <&pinctrl_serial2 &pinctrl_serial2_oe>; 119 }; 120 121 /* SBC_UART1 */ 122 sbc_serial1: serial@fe531000 { 123 compatible = "st,asc"; 124 status = "disabled"; 125 reg = <0xfe531000 0x2c>; 126 interrupts = <0 210 0>; 127 pinctrl-names = "default"; 128 pinctrl-0 = <&pinctrl_sbc_serial1>; 129 clocks = <&clk_sysin>; 130 }; 131 132 i2c@fed40000 { 133 compatible = "st,comms-ssc4-i2c"; 134 reg = <0xfed40000 0x110>; 135 interrupts = <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>; 136 clocks = <&clk_s_a0_ls CLK_ICN_REG>; 137 clock-names = "ssc"; 138 clock-frequency = <400000>; 139 pinctrl-names = "default"; 140 pinctrl-0 = <&pinctrl_i2c0_default>; 141 142 status = "disabled"; 143 }; 144 145 i2c@fed41000 { 146 compatible = "st,comms-ssc4-i2c"; 147 reg = <0xfed41000 0x110>; 148 interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; 149 clocks = <&clk_s_a0_ls CLK_ICN_REG>; 150 clock-names = "ssc"; 151 clock-frequency = <400000>; 152 pinctrl-names = "default"; 153 pinctrl-0 = <&pinctrl_i2c1_default>; 154 155 status = "disabled"; 156 }; 157 158 i2c@fe540000 { 159 compatible = "st,comms-ssc4-i2c"; 160 reg = <0xfe540000 0x110>; 161 interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>; 162 clocks = <&clk_sysin>; 163 clock-names = "ssc"; 164 clock-frequency = <400000>; 165 pinctrl-names = "default"; 166 pinctrl-0 = <&pinctrl_sbc_i2c0_default>; 167 168 status = "disabled"; 169 }; 170 171 i2c@fe541000 { 172 compatible = "st,comms-ssc4-i2c"; 173 reg = <0xfe541000 0x110>; 174 interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>; 175 clocks = <&clk_sysin>; 176 clock-names = "ssc"; 177 clock-frequency = <400000>; 178 pinctrl-names = "default"; 179 pinctrl-0 = <&pinctrl_sbc_i2c1_default>; 180 181 status = "disabled"; 182 }; 183 184 ethernet0: dwmac@fe810000 { 185 device_type = "network"; 186 compatible = "st,stih416-dwmac", "snps,dwmac", "snps,dwmac-3.710"; 187 status = "disabled"; 188 reg = <0xfe810000 0x8000>; 189 reg-names = "stmmaceth"; 190 191 interrupts = <0 133 0>, <0 134 0>, <0 135 0>; 192 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi"; 193 194 snps,pbl = <32>; 195 snps,mixed-burst; 196 197 st,syscon = <&syscfg_rear 0x8bc>; 198 resets = <&softreset STIH416_ETH0_SOFTRESET>; 199 reset-names = "stmmaceth"; 200 pinctrl-names = "default"; 201 pinctrl-0 = <&pinctrl_mii0>; 202 clock-names = "stmmaceth", "sti-ethclk"; 203 clocks = <&clk_s_a1_ls CLK_ICN_IF_2>, <&clk_s_a1_ls CLK_GMAC0_PHY>; 204 }; 205 206 ethernet1: dwmac@fef08000 { 207 device_type = "network"; 208 compatible = "st,stih416-dwmac", "snps,dwmac", "snps,dwmac-3.710"; 209 status = "disabled"; 210 reg = <0xfef08000 0x8000>; 211 reg-names = "stmmaceth"; 212 interrupts = <0 136 0>, <0 137 0>, <0 138 0>; 213 interrupt-names = "macirq", "eth_wake_irq", "eth_lpi"; 214 215 snps,pbl = <32>; 216 snps,mixed-burst; 217 218 st,syscon = <&syscfg_sbc 0x7f0>; 219 220 resets = <&softreset STIH416_ETH1_SOFTRESET>; 221 reset-names = "stmmaceth"; 222 pinctrl-names = "default"; 223 pinctrl-0 = <&pinctrl_mii1>; 224 clock-names = "stmmaceth", "sti-ethclk"; 225 clocks = <&clk_s_a0_ls CLK_ICN_REG>, <&clk_s_a0_ls CLK_ETH1_PHY>; 226 }; 227 228 rc: rc@fe518000 { 229 compatible = "st,comms-irb"; 230 reg = <0xfe518000 0x234>; 231 interrupts = <0 203 0>; 232 rx-mode = "infrared"; 233 clocks = <&clk_sysin>; 234 pinctrl-names = "default"; 235 pinctrl-0 = <&pinctrl_ir>; 236 resets = <&softreset STIH416_IRB_SOFTRESET>; 237 }; 238 239 /* FSM */ 240 spifsm: spifsm@fe902000 { 241 compatible = "st,spi-fsm"; 242 reg = <0xfe902000 0x1000>; 243 pinctrl-0 = <&pinctrl_fsm>; 244 245 st,syscfg = <&syscfg_rear>; 246 st,boot-device-reg = <0x958>; 247 st,boot-device-spi = <0x1a>; 248 249 status = "disabled"; 250 }; 251 252 keyscan: keyscan@fe4b0000 { 253 compatible = "st,sti-keyscan"; 254 status = "disabled"; 255 reg = <0xfe4b0000 0x2000>; 256 interrupts = <GIC_SPI 212 IRQ_TYPE_NONE>; 257 clocks = <&clk_sysin>; 258 pinctrl-names = "default"; 259 pinctrl-0 = <&pinctrl_keyscan>; 260 resets = <&powerdown STIH416_KEYSCAN_POWERDOWN>, 261 <&softreset STIH416_KEYSCAN_SOFTRESET>; 262 }; 263 264 temp0 { 265 compatible = "st,stih416-sas-thermal"; 266 clock-names = "thermal"; 267 clocks = <&clockgen_c_vcc 14>; 268 269 status = "okay"; 270 }; 271 272 temp1@fdfe8000 { 273 compatible = "st,stih416-mpe-thermal"; 274 reg = <0xfdfe8000 0x10>; 275 clocks = <&clockgen_e 3>; 276 clock-names = "thermal"; 277 interrupts = <GIC_SPI 23 IRQ_TYPE_EDGE_RISING>; 278 279 status = "okay"; 280 }; 281 282 mmc0: sdhci@fe81e000 { 283 compatible = "st,sdhci"; 284 status = "disabled"; 285 reg = <0xfe81e000 0x1000>; 286 interrupts = <GIC_SPI 127 IRQ_TYPE_NONE>; 287 interrupt-names = "mmcirq"; 288 pinctrl-names = "default"; 289 pinctrl-0 = <&pinctrl_mmc0>; 290 clock-names = "mmc"; 291 clocks = <&clk_s_a1_ls 1>; 292 }; 293 294 mmc1: sdhci@fe81f000 { 295 compatible = "st,sdhci"; 296 status = "disabled"; 297 reg = <0xfe81f000 0x1000>; 298 interrupts = <GIC_SPI 128 IRQ_TYPE_NONE>; 299 interrupt-names = "mmcirq"; 300 pinctrl-names = "default"; 301 pinctrl-0 = <&pinctrl_mmc1>; 302 clock-names = "mmc"; 303 clocks = <&clk_s_a1_ls 8>; 304 }; 305 306 miphy365x_phy: phy@fe382000 { 307 compatible = "st,miphy365x-phy"; 308 st,syscfg = <&syscfg_rear 0x824 0x828>; 309 #address-cells = <1>; 310 #size-cells = <1>; 311 ranges; 312 313 phy_port0: port@fe382000 { 314 #phy-cells = <1>; 315 reg = <0xfe382000 0x100>, <0xfe394000 0x100>; 316 reg-names = "sata", "pcie"; 317 }; 318 319 phy_port1: port@fe38a000 { 320 #phy-cells = <1>; 321 reg = <0xfe38a000 0x100>, <0xfe804000 0x100>; 322 reg-names = "sata", "pcie"; 323 }; 324 }; 325 326 sata0: sata@fe380000 { 327 compatible = "st,sti-ahci"; 328 reg = <0xfe380000 0x1000>; 329 interrupts = <GIC_SPI 157 IRQ_TYPE_NONE>; 330 interrupt-names = "hostc"; 331 phys = <&phy_port0 PHY_TYPE_SATA>; 332 phy-names = "sata-phy"; 333 resets = <&powerdown STIH416_SATA0_POWERDOWN>, 334 <&softreset STIH416_SATA0_SOFTRESET>; 335 reset-names = "pwr-dwn", "sw-rst"; 336 clock-names = "ahci_clk"; 337 clocks = <&clk_s_a0_ls CLK_ICN_REG>; 338 339 status = "disabled"; 340 }; 341 342 usb2_phy: phy@0 { 343 compatible = "st,stih416-usb-phy"; 344 #phy-cells = <0>; 345 st,syscfg = <&syscfg_rear>; 346 clocks = <&clk_sysin>; 347 clock-names = "osc_phy"; 348 }; 349 350 ehci0: usb@fe1ffe00 { 351 compatible = "st,st-ehci-300x"; 352 reg = <0xfe1ffe00 0x100>; 353 interrupts = <GIC_SPI 148 IRQ_TYPE_NONE>; 354 pinctrl-names = "default"; 355 pinctrl-0 = <&pinctrl_usb0>; 356 clocks = <&clk_s_a1_ls 0>, 357 <&clockgen_b0 0>; 358 clock-names = "ic", "clk48"; 359 phys = <&usb2_phy>; 360 phy-names = "usb"; 361 resets = <&powerdown STIH416_USB0_POWERDOWN>, 362 <&softreset STIH416_USB0_SOFTRESET>; 363 reset-names = "power", "softreset"; 364 }; 365 366 ohci0: usb@fe1ffc00 { 367 compatible = "st,st-ohci-300x"; 368 reg = <0xfe1ffc00 0x100>; 369 interrupts = <GIC_SPI 149 IRQ_TYPE_NONE>; 370 clocks = <&clk_s_a1_ls 0>, 371 <&clockgen_b0 0>; 372 clock-names = "ic", "clk48"; 373 phys = <&usb2_phy>; 374 phy-names = "usb"; 375 status = "okay"; 376 resets = <&powerdown STIH416_USB0_POWERDOWN>, 377 <&softreset STIH416_USB0_SOFTRESET>; 378 reset-names = "power", "softreset"; 379 }; 380 381 ehci1: usb@fe203e00 { 382 compatible = "st,st-ehci-300x"; 383 reg = <0xfe203e00 0x100>; 384 interrupts = <GIC_SPI 150 IRQ_TYPE_NONE>; 385 pinctrl-names = "default"; 386 pinctrl-0 = <&pinctrl_usb1>; 387 clocks = <&clk_s_a1_ls 0>, 388 <&clockgen_b0 0>; 389 clock-names = "ic", "clk48"; 390 phys = <&usb2_phy>; 391 phy-names = "usb"; 392 resets = <&powerdown STIH416_USB1_POWERDOWN>, 393 <&softreset STIH416_USB1_SOFTRESET>; 394 reset-names = "power", "softreset"; 395 }; 396 397 ohci1: usb@fe203c00 { 398 compatible = "st,st-ohci-300x"; 399 reg = <0xfe203c00 0x100>; 400 interrupts = <GIC_SPI 151 IRQ_TYPE_NONE>; 401 clocks = <&clk_s_a1_ls 0>, 402 <&clockgen_b0 0>; 403 clock-names = "ic", "clk48"; 404 phys = <&usb2_phy>; 405 phy-names = "usb"; 406 resets = <&powerdown STIH416_USB1_POWERDOWN>, 407 <&softreset STIH416_USB1_SOFTRESET>; 408 reset-names = "power", "softreset"; 409 }; 410 411 ehci2: usb@fe303e00 { 412 compatible = "st,st-ehci-300x"; 413 reg = <0xfe303e00 0x100>; 414 interrupts = <GIC_SPI 152 IRQ_TYPE_NONE>; 415 pinctrl-names = "default"; 416 pinctrl-0 = <&pinctrl_usb2>; 417 clocks = <&clk_s_a1_ls 0>, 418 <&clockgen_b0 0>; 419 clock-names = "ic", "clk48"; 420 phys = <&usb2_phy>; 421 phy-names = "usb"; 422 resets = <&powerdown STIH416_USB2_POWERDOWN>, 423 <&softreset STIH416_USB2_SOFTRESET>; 424 reset-names = "power", "softreset"; 425 }; 426 427 ohci2: usb@fe303c00 { 428 compatible = "st,st-ohci-300x"; 429 reg = <0xfe303c00 0x100>; 430 interrupts = <GIC_SPI 153 IRQ_TYPE_NONE>; 431 clocks = <&clk_s_a1_ls 0>, 432 <&clockgen_b0 0>; 433 clock-names = "ic", "clk48"; 434 phys = <&usb2_phy>; 435 phy-names = "usb"; 436 resets = <&powerdown STIH416_USB2_POWERDOWN>, 437 <&softreset STIH416_USB2_SOFTRESET>; 438 reset-names = "power", "softreset"; 439 }; 440 441 ehci3: usb@fe343e00 { 442 compatible = "st,st-ehci-300x"; 443 reg = <0xfe343e00 0x100>; 444 interrupts = <GIC_SPI 154 IRQ_TYPE_NONE>; 445 pinctrl-names = "default"; 446 pinctrl-0 = <&pinctrl_usb3>; 447 clocks = <&clk_s_a1_ls 0>, 448 <&clockgen_b0 0>; 449 clock-names = "ic", "clk48"; 450 phys = <&usb2_phy>; 451 phy-names = "usb"; 452 resets = <&powerdown STIH416_USB3_POWERDOWN>, 453 <&softreset STIH416_USB3_SOFTRESET>; 454 reset-names = "power", "softreset"; 455 }; 456 457 ohci3: usb@fe343c00 { 458 compatible = "st,st-ohci-300x"; 459 reg = <0xfe343c00 0x100>; 460 interrupts = <GIC_SPI 155 IRQ_TYPE_NONE>; 461 clocks = <&clk_s_a1_ls 0>, 462 <&clockgen_b0 0>; 463 clock-names = "ic", "clk48"; 464 phys = <&usb2_phy>; 465 phy-names = "usb"; 466 resets = <&powerdown STIH416_USB3_POWERDOWN>, 467 <&softreset STIH416_USB3_SOFTRESET>; 468 reset-names = "power", "softreset"; 469 }; 470 471 /* SAS PWM Module */ 472 pwm0: pwm@fed10000 { 473 compatible = "st,sti-pwm"; 474 status = "disabled"; 475 #pwm-cells = <2>; 476 reg = <0xfed10000 0x68>; 477 interrupts = <GIC_SPI 200 IRQ_TYPE_NONE>; 478 479 pinctrl-names = "default"; 480 pinctrl-0 = <&pinctrl_pwm0_chan0_default 481 &pinctrl_pwm0_chan1_default 482 &pinctrl_pwm0_chan2_default 483 &pinctrl_pwm0_chan3_default>; 484 485 clock-names = "pwm", "capture"; 486 clocks = <&clk_sysin>, <&clk_s_a0_ls CLK_ICN_REG>; 487 488 st,pwm-num-chan = <4>; 489 st,capture-num-chan = <2>; 490 }; 491 492 /* SBC PWM Module */ 493 pwm1: pwm@fe510000 { 494 compatible = "st,sti-pwm"; 495 status = "disabled"; 496 #pwm-cells = <2>; 497 reg = <0xfe510000 0x68>; 498 interrupts = <GIC_SPI 202 IRQ_TYPE_NONE>; 499 500 pinctrl-names = "default"; 501 pinctrl-0 = <&pinctrl_pwm1_chan0_default 502 /* 503 * Shared with SBC_OBS_NOTRST. Don't 504 * enable unless you really know what 505 * you're doing. 506 * 507 * &pinctrl_pwm1_chan1_default 508 */ 509 &pinctrl_pwm1_chan2_default 510 &pinctrl_pwm1_chan3_default>; 511 512 clock-names = "pwm"; 513 clocks = <&clk_sysin>; 514 st,pwm-num-chan = <3>; 515 }; 516 }; 517}; 518