stih407-family.dtsi 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /*
  3. * Copyright (C) 2014 STMicroelectronics Limited.
  4. * Author: Giuseppe Cavallaro <[email protected]>
  5. */
  6. #include "stih407-pinctrl.dtsi"
  7. #include <dt-bindings/mfd/st-lpc.h>
  8. #include <dt-bindings/phy/phy.h>
  9. #include <dt-bindings/reset/stih407-resets.h>
  10. #include <dt-bindings/interrupt-controller/irq-st.h>
  11. / {
  12. #address-cells = <1>;
  13. #size-cells = <1>;
  14. reserved-memory {
  15. #address-cells = <1>;
  16. #size-cells = <1>;
  17. ranges;
  18. gp0_reserved: rproc@45000000 {
  19. compatible = "shared-dma-pool";
  20. reg = <0x45000000 0x00400000>;
  21. no-map;
  22. };
  23. delta_reserved: rproc@44000000 {
  24. compatible = "shared-dma-pool";
  25. reg = <0x44000000 0x01000000>;
  26. no-map;
  27. };
  28. };
  29. cpus {
  30. #address-cells = <1>;
  31. #size-cells = <0>;
  32. cpu@0 {
  33. device_type = "cpu";
  34. compatible = "arm,cortex-a9";
  35. reg = <0>;
  36. /* u-boot puts hpen in SBC dmem at 0xa4 offset */
  37. cpu-release-addr = <0x94100A4>;
  38. /* kHz uV */
  39. operating-points = <1500000 0
  40. 1200000 0
  41. 800000 0
  42. 500000 0>;
  43. clocks = <&clk_m_a9>;
  44. clock-names = "cpu";
  45. clock-latency = <100000>;
  46. cpu0-supply = <&pwm_regulator>;
  47. st,syscfg = <&syscfg_core 0x8e0>;
  48. };
  49. cpu@1 {
  50. device_type = "cpu";
  51. compatible = "arm,cortex-a9";
  52. reg = <1>;
  53. /* u-boot puts hpen in SBC dmem at 0xa4 offset */
  54. cpu-release-addr = <0x94100A4>;
  55. /* kHz uV */
  56. operating-points = <1500000 0
  57. 1200000 0
  58. 800000 0
  59. 500000 0>;
  60. };
  61. };
  62. intc: interrupt-controller@8761000 {
  63. compatible = "arm,cortex-a9-gic";
  64. #interrupt-cells = <3>;
  65. interrupt-controller;
  66. reg = <0x08761000 0x1000>, <0x08760100 0x100>;
  67. };
  68. scu@8760000 {
  69. compatible = "arm,cortex-a9-scu";
  70. reg = <0x08760000 0x1000>;
  71. };
  72. timer@8760200 {
  73. interrupt-parent = <&intc>;
  74. compatible = "arm,cortex-a9-global-timer";
  75. reg = <0x08760200 0x100>;
  76. interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
  77. clocks = <&arm_periph_clk>;
  78. };
  79. l2: cache-controller@8762000 {
  80. compatible = "arm,pl310-cache";
  81. reg = <0x08762000 0x1000>;
  82. arm,data-latency = <3 3 3>;
  83. arm,tag-latency = <2 2 2>;
  84. cache-unified;
  85. cache-level = <2>;
  86. };
  87. arm-pmu {
  88. interrupt-parent = <&intc>;
  89. compatible = "arm,cortex-a9-pmu";
  90. interrupts = <GIC_PPI 15 IRQ_TYPE_LEVEL_HIGH>;
  91. };
  92. pwm_regulator: pwm-regulator {
  93. compatible = "pwm-regulator";
  94. pwms = <&pwm1 3 8448>;
  95. regulator-name = "CPU_1V0_AVS";
  96. regulator-min-microvolt = <784000>;
  97. regulator-max-microvolt = <1299000>;
  98. regulator-always-on;
  99. max-duty-cycle = <255>;
  100. status = "okay";
  101. };
  102. restart: restart-controller {
  103. compatible = "st,stih407-restart";
  104. st,syscfg = <&syscfg_sbc_reg>;
  105. status = "okay";
  106. };
  107. powerdown: powerdown-controller {
  108. compatible = "st,stih407-powerdown";
  109. #reset-cells = <1>;
  110. };
  111. softreset: softreset-controller {
  112. compatible = "st,stih407-softreset";
  113. #reset-cells = <1>;
  114. };
  115. picophyreset: picophyreset-controller {
  116. compatible = "st,stih407-picophyreset";
  117. #reset-cells = <1>;
  118. };
  119. irq-syscfg {
  120. compatible = "st,stih407-irq-syscfg";
  121. st,syscfg = <&syscfg_core>;
  122. st,irq-device = <ST_IRQ_SYSCFG_PMU_0>,
  123. <ST_IRQ_SYSCFG_PMU_1>;
  124. st,fiq-device = <ST_IRQ_SYSCFG_DISABLED>,
  125. <ST_IRQ_SYSCFG_DISABLED>;
  126. };
  127. usb2_picophy0: phy1 {
  128. compatible = "st,stih407-usb2-phy";
  129. #phy-cells = <0>;
  130. st,syscfg = <&syscfg_core 0x100 0xf4>;
  131. resets = <&softreset STIH407_PICOPHY_SOFTRESET>,
  132. <&picophyreset STIH407_PICOPHY2_RESET>;
  133. reset-names = "global", "port";
  134. };
  135. miphy28lp_phy: miphy28lp {
  136. compatible = "st,miphy28lp-phy";
  137. st,syscfg = <&syscfg_core>;
  138. #address-cells = <1>;
  139. #size-cells = <1>;
  140. ranges;
  141. phy_port0: port@9b22000 {
  142. reg = <0x9b22000 0xff>,
  143. <0x9b09000 0xff>,
  144. <0x9b04000 0xff>;
  145. reg-names = "sata-up",
  146. "pcie-up",
  147. "pipew";
  148. st,syscfg = <0x114 0x818 0xe0 0xec>;
  149. #phy-cells = <1>;
  150. reset-names = "miphy-sw-rst";
  151. resets = <&softreset STIH407_MIPHY0_SOFTRESET>;
  152. };
  153. phy_port1: port@9b2a000 {
  154. reg = <0x9b2a000 0xff>,
  155. <0x9b19000 0xff>,
  156. <0x9b14000 0xff>;
  157. reg-names = "sata-up",
  158. "pcie-up",
  159. "pipew";
  160. st,syscfg = <0x118 0x81c 0xe4 0xf0>;
  161. #phy-cells = <1>;
  162. reset-names = "miphy-sw-rst";
  163. resets = <&softreset STIH407_MIPHY1_SOFTRESET>;
  164. };
  165. phy_port2: port@8f95000 {
  166. reg = <0x8f95000 0xff>,
  167. <0x8f90000 0xff>;
  168. reg-names = "pipew",
  169. "usb3-up";
  170. st,syscfg = <0x11c 0x820>;
  171. #phy-cells = <1>;
  172. reset-names = "miphy-sw-rst";
  173. resets = <&softreset STIH407_MIPHY2_SOFTRESET>;
  174. };
  175. };
  176. st231_gp0: st231-gp0 {
  177. compatible = "st,st231-rproc";
  178. memory-region = <&gp0_reserved>;
  179. resets = <&softreset STIH407_ST231_GP0_SOFTRESET>;
  180. reset-names = "sw_reset";
  181. clocks = <&clk_s_c0_flexgen CLK_ST231_GP_0>;
  182. clock-frequency = <600000000>;
  183. st,syscfg = <&syscfg_core 0x22c>;
  184. #mbox-cells = <1>;
  185. mbox-names = "vq0_rx", "vq0_tx", "vq1_rx", "vq1_tx";
  186. mboxes = <&mailbox0 0 2>, <&mailbox2 0 1>, <&mailbox0 0 3>, <&mailbox2 0 0>;
  187. };
  188. st231_delta: st231-delta {
  189. compatible = "st,st231-rproc";
  190. memory-region = <&delta_reserved>;
  191. resets = <&softreset STIH407_ST231_DMU_SOFTRESET>;
  192. reset-names = "sw_reset";
  193. clocks = <&clk_s_c0_flexgen CLK_ST231_DMU>;
  194. clock-frequency = <600000000>;
  195. st,syscfg = <&syscfg_core 0x224>;
  196. #mbox-cells = <1>;
  197. mbox-names = "vq0_rx", "vq0_tx", "vq1_rx", "vq1_tx";
  198. mboxes = <&mailbox0 0 0>, <&mailbox3 0 1>, <&mailbox0 0 1>, <&mailbox3 0 0>;
  199. };
  200. delta0 {
  201. compatible = "st,st-delta";
  202. clock-names = "delta",
  203. "delta-st231",
  204. "delta-flash-promip";
  205. clocks = <&clk_s_c0_flexgen CLK_VID_DMU>,
  206. <&clk_s_c0_flexgen CLK_ST231_DMU>,
  207. <&clk_s_c0_flexgen CLK_FLASH_PROMIP>;
  208. };
  209. soc {
  210. #address-cells = <1>;
  211. #size-cells = <1>;
  212. interrupt-parent = <&intc>;
  213. ranges;
  214. compatible = "simple-bus";
  215. syscfg_sbc: sbc-syscfg@9620000 {
  216. compatible = "st,stih407-sbc-syscfg", "syscon";
  217. reg = <0x9620000 0x1000>;
  218. };
  219. syscfg_front: front-syscfg@9280000 {
  220. compatible = "st,stih407-front-syscfg", "syscon";
  221. reg = <0x9280000 0x1000>;
  222. };
  223. syscfg_rear: rear-syscfg@9290000 {
  224. compatible = "st,stih407-rear-syscfg", "syscon";
  225. reg = <0x9290000 0x1000>;
  226. };
  227. syscfg_flash: flash-syscfg@92a0000 {
  228. compatible = "st,stih407-flash-syscfg", "syscon";
  229. reg = <0x92a0000 0x1000>;
  230. };
  231. syscfg_sbc_reg: fvdp-lite-syscfg@9600000 {
  232. compatible = "st,stih407-sbc-reg-syscfg", "syscon";
  233. reg = <0x9600000 0x1000>;
  234. };
  235. syscfg_core: core-syscfg@92b0000 {
  236. compatible = "st,stih407-core-syscfg", "syscon";
  237. reg = <0x92b0000 0x1000>;
  238. sti_sasg_codec: sti-sasg-codec {
  239. compatible = "st,stih407-sas-codec";
  240. #sound-dai-cells = <1>;
  241. status = "disabled";
  242. st,syscfg = <&syscfg_core>;
  243. };
  244. };
  245. syscfg_lpm: lpm-syscfg@94b5100 {
  246. compatible = "st,stih407-lpm-syscfg", "syscon";
  247. reg = <0x94b5100 0x1000>;
  248. };
  249. /* Display */
  250. vtg_main: sti-vtg-main@8d02800 {
  251. compatible = "st,vtg";
  252. reg = <0x8d02800 0x200>;
  253. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  254. };
  255. vtg_aux: sti-vtg-aux@8d00200 {
  256. compatible = "st,vtg";
  257. reg = <0x8d00200 0x100>;
  258. interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
  259. };
  260. serial@9830000 {
  261. compatible = "st,asc";
  262. reg = <0x9830000 0x2c>;
  263. interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
  264. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  265. /* Pinctrl moved out to a per-board configuration */
  266. status = "disabled";
  267. };
  268. serial@9831000 {
  269. compatible = "st,asc";
  270. reg = <0x9831000 0x2c>;
  271. interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
  272. pinctrl-names = "default";
  273. pinctrl-0 = <&pinctrl_serial1>;
  274. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  275. status = "disabled";
  276. };
  277. serial@9832000 {
  278. compatible = "st,asc";
  279. reg = <0x9832000 0x2c>;
  280. interrupts = <GIC_SPI 124 IRQ_TYPE_LEVEL_HIGH>;
  281. pinctrl-names = "default";
  282. pinctrl-0 = <&pinctrl_serial2>;
  283. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  284. status = "disabled";
  285. };
  286. /* SBC_ASC0 - UART10 */
  287. sbc_serial0: serial@9530000 {
  288. compatible = "st,asc";
  289. reg = <0x9530000 0x2c>;
  290. interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>;
  291. pinctrl-names = "default";
  292. pinctrl-0 = <&pinctrl_sbc_serial0>;
  293. clocks = <&clk_sysin>;
  294. status = "disabled";
  295. };
  296. serial@9531000 {
  297. compatible = "st,asc";
  298. reg = <0x9531000 0x2c>;
  299. interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
  300. pinctrl-names = "default";
  301. pinctrl-0 = <&pinctrl_sbc_serial1>;
  302. clocks = <&clk_sysin>;
  303. status = "disabled";
  304. };
  305. i2c@9840000 {
  306. compatible = "st,comms-ssc4-i2c";
  307. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
  308. reg = <0x9840000 0x110>;
  309. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  310. clock-names = "ssc";
  311. clock-frequency = <400000>;
  312. pinctrl-names = "default";
  313. pinctrl-0 = <&pinctrl_i2c0_default>;
  314. #address-cells = <1>;
  315. #size-cells = <0>;
  316. status = "disabled";
  317. };
  318. i2c@9841000 {
  319. compatible = "st,comms-ssc4-i2c";
  320. reg = <0x9841000 0x110>;
  321. interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
  322. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  323. clock-names = "ssc";
  324. clock-frequency = <400000>;
  325. pinctrl-names = "default";
  326. pinctrl-0 = <&pinctrl_i2c1_default>;
  327. #address-cells = <1>;
  328. #size-cells = <0>;
  329. status = "disabled";
  330. };
  331. i2c@9842000 {
  332. compatible = "st,comms-ssc4-i2c";
  333. reg = <0x9842000 0x110>;
  334. interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
  335. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  336. clock-names = "ssc";
  337. clock-frequency = <400000>;
  338. pinctrl-names = "default";
  339. pinctrl-0 = <&pinctrl_i2c2_default>;
  340. #address-cells = <1>;
  341. #size-cells = <0>;
  342. status = "disabled";
  343. };
  344. i2c@9843000 {
  345. compatible = "st,comms-ssc4-i2c";
  346. reg = <0x9843000 0x110>;
  347. interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
  348. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  349. clock-names = "ssc";
  350. clock-frequency = <400000>;
  351. pinctrl-names = "default";
  352. pinctrl-0 = <&pinctrl_i2c3_default>;
  353. #address-cells = <1>;
  354. #size-cells = <0>;
  355. status = "disabled";
  356. };
  357. i2c@9844000 {
  358. compatible = "st,comms-ssc4-i2c";
  359. reg = <0x9844000 0x110>;
  360. interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
  361. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  362. clock-names = "ssc";
  363. clock-frequency = <400000>;
  364. pinctrl-names = "default";
  365. pinctrl-0 = <&pinctrl_i2c4_default>;
  366. #address-cells = <1>;
  367. #size-cells = <0>;
  368. status = "disabled";
  369. };
  370. i2c@9845000 {
  371. compatible = "st,comms-ssc4-i2c";
  372. reg = <0x9845000 0x110>;
  373. interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
  374. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  375. clock-names = "ssc";
  376. clock-frequency = <400000>;
  377. pinctrl-names = "default";
  378. pinctrl-0 = <&pinctrl_i2c5_default>;
  379. #address-cells = <1>;
  380. #size-cells = <0>;
  381. status = "disabled";
  382. };
  383. /* SSCs on SBC */
  384. i2c@9540000 {
  385. compatible = "st,comms-ssc4-i2c";
  386. reg = <0x9540000 0x110>;
  387. interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
  388. clocks = <&clk_sysin>;
  389. clock-names = "ssc";
  390. clock-frequency = <400000>;
  391. pinctrl-names = "default";
  392. pinctrl-0 = <&pinctrl_i2c10_default>;
  393. #address-cells = <1>;
  394. #size-cells = <0>;
  395. status = "disabled";
  396. };
  397. i2c@9541000 {
  398. compatible = "st,comms-ssc4-i2c";
  399. reg = <0x9541000 0x110>;
  400. interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
  401. clocks = <&clk_sysin>;
  402. clock-names = "ssc";
  403. clock-frequency = <400000>;
  404. pinctrl-names = "default";
  405. pinctrl-0 = <&pinctrl_i2c11_default>;
  406. #address-cells = <1>;
  407. #size-cells = <0>;
  408. status = "disabled";
  409. };
  410. spi@9840000 {
  411. compatible = "st,comms-ssc4-spi";
  412. reg = <0x9840000 0x110>;
  413. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
  414. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  415. clock-names = "ssc";
  416. pinctrl-0 = <&pinctrl_spi0_default>;
  417. pinctrl-names = "default";
  418. #address-cells = <1>;
  419. #size-cells = <0>;
  420. status = "disabled";
  421. };
  422. spi@9841000 {
  423. compatible = "st,comms-ssc4-spi";
  424. reg = <0x9841000 0x110>;
  425. interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
  426. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  427. clock-names = "ssc";
  428. pinctrl-names = "default";
  429. pinctrl-0 = <&pinctrl_spi1_default>;
  430. #address-cells = <1>;
  431. #size-cells = <0>;
  432. status = "disabled";
  433. };
  434. spi@9842000 {
  435. compatible = "st,comms-ssc4-spi";
  436. reg = <0x9842000 0x110>;
  437. interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
  438. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  439. clock-names = "ssc";
  440. pinctrl-names = "default";
  441. pinctrl-0 = <&pinctrl_spi2_default>;
  442. #address-cells = <1>;
  443. #size-cells = <0>;
  444. status = "disabled";
  445. };
  446. spi@9843000 {
  447. compatible = "st,comms-ssc4-spi";
  448. reg = <0x9843000 0x110>;
  449. interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
  450. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  451. clock-names = "ssc";
  452. pinctrl-names = "default";
  453. pinctrl-0 = <&pinctrl_spi3_default>;
  454. #address-cells = <1>;
  455. #size-cells = <0>;
  456. status = "disabled";
  457. };
  458. spi@9844000 {
  459. compatible = "st,comms-ssc4-spi";
  460. reg = <0x9844000 0x110>;
  461. interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
  462. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  463. clock-names = "ssc";
  464. pinctrl-names = "default";
  465. pinctrl-0 = <&pinctrl_spi4_default>;
  466. #address-cells = <1>;
  467. #size-cells = <0>;
  468. status = "disabled";
  469. };
  470. /* SBC SSC */
  471. spi@9540000 {
  472. compatible = "st,comms-ssc4-spi";
  473. reg = <0x9540000 0x110>;
  474. interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>;
  475. clocks = <&clk_sysin>;
  476. clock-names = "ssc";
  477. pinctrl-names = "default";
  478. pinctrl-0 = <&pinctrl_spi10_default>;
  479. #address-cells = <1>;
  480. #size-cells = <0>;
  481. status = "disabled";
  482. };
  483. spi@9541000 {
  484. compatible = "st,comms-ssc4-spi";
  485. reg = <0x9541000 0x110>;
  486. interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>;
  487. clocks = <&clk_sysin>;
  488. clock-names = "ssc";
  489. pinctrl-names = "default";
  490. pinctrl-0 = <&pinctrl_spi11_default>;
  491. #address-cells = <1>;
  492. #size-cells = <0>;
  493. status = "disabled";
  494. };
  495. spi@9542000 {
  496. compatible = "st,comms-ssc4-spi";
  497. reg = <0x9542000 0x110>;
  498. interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
  499. clocks = <&clk_sysin>;
  500. clock-names = "ssc";
  501. pinctrl-names = "default";
  502. pinctrl-0 = <&pinctrl_spi12_default>;
  503. #address-cells = <1>;
  504. #size-cells = <0>;
  505. status = "disabled";
  506. };
  507. mmc0: sdhci@9060000 {
  508. compatible = "st,sdhci-stih407", "st,sdhci";
  509. status = "disabled";
  510. reg = <0x09060000 0x7ff>, <0x9061008 0x20>;
  511. reg-names = "mmc", "top-mmc-delay";
  512. interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
  513. interrupt-names = "mmcirq";
  514. pinctrl-names = "default";
  515. pinctrl-0 = <&pinctrl_mmc0>;
  516. clock-names = "mmc", "icn";
  517. clocks = <&clk_s_c0_flexgen CLK_MMC_0>,
  518. <&clk_s_c0_flexgen CLK_RX_ICN_HVA>;
  519. bus-width = <8>;
  520. };
  521. mmc1: sdhci@9080000 {
  522. compatible = "st,sdhci-stih407", "st,sdhci";
  523. status = "disabled";
  524. reg = <0x09080000 0x7ff>;
  525. reg-names = "mmc";
  526. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  527. interrupt-names = "mmcirq";
  528. pinctrl-names = "default";
  529. pinctrl-0 = <&pinctrl_sd1>;
  530. clock-names = "mmc", "icn";
  531. clocks = <&clk_s_c0_flexgen CLK_MMC_1>,
  532. <&clk_s_c0_flexgen CLK_RX_ICN_HVA>;
  533. resets = <&softreset STIH407_MMC1_SOFTRESET>;
  534. bus-width = <4>;
  535. };
  536. /* Watchdog and Real-Time Clock */
  537. lpc@8787000 {
  538. compatible = "st,stih407-lpc";
  539. reg = <0x8787000 0x1000>;
  540. interrupts = <GIC_SPI 129 IRQ_TYPE_EDGE_RISING>;
  541. clocks = <&clk_s_d3_flexgen CLK_LPC_0>;
  542. timeout-sec = <120>;
  543. st,syscfg = <&syscfg_core>;
  544. st,lpc-mode = <ST_LPC_MODE_WDT>;
  545. };
  546. lpc@8788000 {
  547. compatible = "st,stih407-lpc";
  548. reg = <0x8788000 0x1000>;
  549. interrupts = <GIC_SPI 130 IRQ_TYPE_EDGE_RISING>;
  550. clocks = <&clk_s_d3_flexgen CLK_LPC_1>;
  551. st,lpc-mode = <ST_LPC_MODE_CLKSRC>;
  552. };
  553. spifsm: spifsm@9022000{
  554. compatible = "st,spi-fsm";
  555. reg = <0x9022000 0x1000>;
  556. reg-names = "spi-fsm";
  557. clocks = <&clk_s_c0_flexgen CLK_FLASH_PROMIP>;
  558. clock-names = "emi_clk";
  559. pinctrl-names = "default";
  560. pinctrl-0 = <&pinctrl_fsm>;
  561. st,syscfg = <&syscfg_core>;
  562. st,boot-device-reg = <0x8c4>;
  563. st,boot-device-spi = <0x68>;
  564. status = "disabled";
  565. };
  566. sata0: sata@9b20000 {
  567. compatible = "st,ahci";
  568. reg = <0x9b20000 0x1000>;
  569. interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
  570. interrupt-names = "hostc";
  571. phys = <&phy_port0 PHY_TYPE_SATA>;
  572. phy-names = "ahci_phy";
  573. resets = <&powerdown STIH407_SATA0_POWERDOWN>,
  574. <&softreset STIH407_SATA0_SOFTRESET>,
  575. <&softreset STIH407_SATA0_PWR_SOFTRESET>;
  576. reset-names = "pwr-dwn", "sw-rst", "pwr-rst";
  577. clock-names = "ahci_clk";
  578. clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
  579. ports-implemented = <0x1>;
  580. status = "disabled";
  581. };
  582. sata1: sata@9b28000 {
  583. compatible = "st,ahci";
  584. reg = <0x9b28000 0x1000>;
  585. interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
  586. interrupt-names = "hostc";
  587. phys = <&phy_port1 PHY_TYPE_SATA>;
  588. phy-names = "ahci_phy";
  589. resets = <&powerdown STIH407_SATA1_POWERDOWN>,
  590. <&softreset STIH407_SATA1_SOFTRESET>,
  591. <&softreset STIH407_SATA1_PWR_SOFTRESET>;
  592. reset-names = "pwr-dwn",
  593. "sw-rst",
  594. "pwr-rst";
  595. clock-names = "ahci_clk";
  596. clocks = <&clk_s_c0_flexgen CLK_ICN_REG>;
  597. ports-implemented = <0x1>;
  598. status = "disabled";
  599. };
  600. st_dwc3: dwc3@8f94000 {
  601. compatible = "st,stih407-dwc3";
  602. reg = <0x08f94000 0x1000>, <0x110 0x4>;
  603. reg-names = "reg-glue", "syscfg-reg";
  604. st,syscfg = <&syscfg_core>;
  605. resets = <&powerdown STIH407_USB3_POWERDOWN>,
  606. <&softreset STIH407_MIPHY2_SOFTRESET>;
  607. reset-names = "powerdown", "softreset";
  608. #address-cells = <1>;
  609. #size-cells = <1>;
  610. pinctrl-names = "default";
  611. pinctrl-0 = <&pinctrl_usb3>;
  612. ranges;
  613. status = "disabled";
  614. dwc3: usb@9900000 {
  615. compatible = "snps,dwc3";
  616. reg = <0x09900000 0x100000>;
  617. interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
  618. dr_mode = "host";
  619. phy-names = "usb2-phy", "usb3-phy";
  620. phys = <&usb2_picophy0>,
  621. <&phy_port2 PHY_TYPE_USB3>;
  622. snps,dis_u3_susphy_quirk;
  623. };
  624. };
  625. /* COMMS PWM Module */
  626. pwm0: pwm@9810000 {
  627. compatible = "st,sti-pwm";
  628. #pwm-cells = <2>;
  629. reg = <0x9810000 0x68>;
  630. interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
  631. pinctrl-names = "default";
  632. pinctrl-0 = <&pinctrl_pwm0_chan0_default>;
  633. clock-names = "pwm";
  634. clocks = <&clk_sysin>;
  635. st,pwm-num-chan = <1>;
  636. status = "disabled";
  637. };
  638. /* SBC PWM Module */
  639. pwm1: pwm@9510000 {
  640. compatible = "st,sti-pwm";
  641. #pwm-cells = <2>;
  642. reg = <0x9510000 0x68>;
  643. interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>;
  644. pinctrl-names = "default";
  645. pinctrl-0 = <&pinctrl_pwm1_chan0_default
  646. &pinctrl_pwm1_chan1_default
  647. &pinctrl_pwm1_chan2_default
  648. &pinctrl_pwm1_chan3_default>;
  649. clock-names = "pwm";
  650. clocks = <&clk_sysin>;
  651. st,pwm-num-chan = <4>;
  652. status = "disabled";
  653. };
  654. rng10: rng@8a89000 {
  655. compatible = "st,rng";
  656. reg = <0x08a89000 0x1000>;
  657. clocks = <&clk_sysin>;
  658. status = "okay";
  659. };
  660. rng11: rng@8a8a000 {
  661. compatible = "st,rng";
  662. reg = <0x08a8a000 0x1000>;
  663. clocks = <&clk_sysin>;
  664. status = "okay";
  665. };
  666. ethernet0: dwmac@9630000 {
  667. device_type = "network";
  668. status = "disabled";
  669. compatible = "st,stih407-dwmac", "snps,dwmac", "snps,dwmac-3.710";
  670. reg = <0x9630000 0x8000>, <0x80 0x4>;
  671. reg-names = "stmmaceth", "sti-ethconf";
  672. st,syscon = <&syscfg_sbc_reg 0x80>;
  673. st,gmac_en;
  674. resets = <&softreset STIH407_ETH1_SOFTRESET>;
  675. reset-names = "stmmaceth";
  676. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
  677. <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
  678. interrupt-names = "macirq", "eth_wake_irq";
  679. /* DMA Bus Mode */
  680. snps,pbl = <8>;
  681. pinctrl-names = "default";
  682. pinctrl-0 = <&pinctrl_rgmii1>;
  683. clock-names = "stmmaceth", "sti-ethclk";
  684. clocks = <&clk_s_c0_flexgen CLK_EXT2F_A9>,
  685. <&clk_s_c0_flexgen CLK_ETH_PHY>;
  686. };
  687. mailbox0: mailbox@8f00000 {
  688. compatible = "st,stih407-mailbox";
  689. reg = <0x8f00000 0x1000>;
  690. interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
  691. #mbox-cells = <2>;
  692. mbox-name = "a9";
  693. status = "okay";
  694. };
  695. mailbox1: mailbox@8f01000 {
  696. compatible = "st,stih407-mailbox";
  697. reg = <0x8f01000 0x1000>;
  698. #mbox-cells = <2>;
  699. mbox-name = "st231_gp_1";
  700. status = "okay";
  701. };
  702. mailbox2: mailbox@8f02000 {
  703. compatible = "st,stih407-mailbox";
  704. reg = <0x8f02000 0x1000>;
  705. #mbox-cells = <2>;
  706. mbox-name = "st231_gp_0";
  707. status = "okay";
  708. };
  709. mailbox3: mailbox@8f03000 {
  710. compatible = "st,stih407-mailbox";
  711. reg = <0x8f03000 0x1000>;
  712. #mbox-cells = <2>;
  713. mbox-name = "st231_audio_video";
  714. status = "okay";
  715. };
  716. /* fdma audio */
  717. fdma0: dma-controller@8e20000 {
  718. compatible = "st,stih407-fdma-mpe31-11", "st,slim-rproc";
  719. reg = <0x8e20000 0x8000>,
  720. <0x8e30000 0x3000>,
  721. <0x8e37000 0x1000>,
  722. <0x8e38000 0x8000>;
  723. reg-names = "slimcore", "dmem", "peripherals", "imem";
  724. clocks = <&clk_s_c0_flexgen CLK_FDMA>,
  725. <&clk_s_c0_flexgen CLK_EXT2F_A9>,
  726. <&clk_s_c0_flexgen CLK_EXT2F_A9>,
  727. <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  728. interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
  729. dma-channels = <16>;
  730. #dma-cells = <3>;
  731. };
  732. /* fdma app */
  733. fdma1: dma-controller@8e40000 {
  734. compatible = "st,stih407-fdma-mpe31-12", "st,slim-rproc";
  735. reg = <0x8e40000 0x8000>,
  736. <0x8e50000 0x3000>,
  737. <0x8e57000 0x1000>,
  738. <0x8e58000 0x8000>;
  739. reg-names = "slimcore", "dmem", "peripherals", "imem";
  740. clocks = <&clk_s_c0_flexgen CLK_FDMA>,
  741. <&clk_s_c0_flexgen CLK_TX_ICN_DMU>,
  742. <&clk_s_c0_flexgen CLK_TX_ICN_DMU>,
  743. <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  744. interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  745. dma-channels = <16>;
  746. #dma-cells = <3>;
  747. status = "disabled";
  748. };
  749. /* fdma free running */
  750. fdma2: dma-controller@8e60000 {
  751. compatible = "st,stih407-fdma-mpe31-13", "st,slim-rproc";
  752. reg = <0x8e60000 0x8000>,
  753. <0x8e70000 0x3000>,
  754. <0x8e77000 0x1000>,
  755. <0x8e78000 0x8000>;
  756. reg-names = "slimcore", "dmem", "peripherals", "imem";
  757. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  758. dma-channels = <16>;
  759. #dma-cells = <3>;
  760. clocks = <&clk_s_c0_flexgen CLK_FDMA>,
  761. <&clk_s_c0_flexgen CLK_EXT2F_A9>,
  762. <&clk_s_c0_flexgen CLK_TX_ICN_DISP_0>,
  763. <&clk_s_c0_flexgen CLK_EXT2F_A9>;
  764. status = "disabled";
  765. };
  766. sti_uni_player0: sti-uni-player@8d80000 {
  767. compatible = "st,stih407-uni-player-hdmi";
  768. #sound-dai-cells = <0>;
  769. st,syscfg = <&syscfg_core>;
  770. clocks = <&clk_s_d0_flexgen CLK_PCM_0>;
  771. assigned-clocks = <&clk_s_d0_quadfs 0>, <&clk_s_d0_flexgen CLK_PCM_0>;
  772. assigned-clock-parents = <0>, <&clk_s_d0_quadfs 0>;
  773. assigned-clock-rates = <50000000>;
  774. reg = <0x8d80000 0x158>;
  775. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  776. dmas = <&fdma0 2 0 1>;
  777. dma-names = "tx";
  778. status = "disabled";
  779. };
  780. sti_uni_player1: sti-uni-player@8d81000 {
  781. compatible = "st,stih407-uni-player-pcm-out";
  782. #sound-dai-cells = <0>;
  783. st,syscfg = <&syscfg_core>;
  784. clocks = <&clk_s_d0_flexgen CLK_PCM_1>;
  785. assigned-clocks = <&clk_s_d0_quadfs 1>, <&clk_s_d0_flexgen CLK_PCM_1>;
  786. assigned-clock-parents = <0>, <&clk_s_d0_quadfs 1>;
  787. assigned-clock-rates = <50000000>;
  788. reg = <0x8d81000 0x158>;
  789. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  790. dmas = <&fdma0 3 0 1>;
  791. dma-names = "tx";
  792. status = "disabled";
  793. };
  794. sti_uni_player2: sti-uni-player@8d82000 {
  795. compatible = "st,stih407-uni-player-dac";
  796. #sound-dai-cells = <0>;
  797. st,syscfg = <&syscfg_core>;
  798. clocks = <&clk_s_d0_flexgen CLK_PCM_2>;
  799. assigned-clocks = <&clk_s_d0_quadfs 2>, <&clk_s_d0_flexgen CLK_PCM_2>;
  800. assigned-clock-parents = <0>, <&clk_s_d0_quadfs 2>;
  801. assigned-clock-rates = <50000000>;
  802. reg = <0x8d82000 0x158>;
  803. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
  804. dmas = <&fdma0 4 0 1>;
  805. dma-names = "tx";
  806. status = "disabled";
  807. };
  808. sti_uni_player3: sti-uni-player@8d85000 {
  809. compatible = "st,stih407-uni-player-spdif";
  810. #sound-dai-cells = <0>;
  811. st,syscfg = <&syscfg_core>;
  812. clocks = <&clk_s_d0_flexgen CLK_SPDIFF>;
  813. assigned-clocks = <&clk_s_d0_quadfs 3>, <&clk_s_d0_flexgen CLK_SPDIFF>;
  814. assigned-clock-parents = <0>, <&clk_s_d0_quadfs 3>;
  815. assigned-clock-rates = <50000000>;
  816. reg = <0x8d85000 0x158>;
  817. interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
  818. dmas = <&fdma0 7 0 1>;
  819. dma-names = "tx";
  820. status = "disabled";
  821. };
  822. sti_uni_reader0: sti-uni-reader@8d83000 {
  823. compatible = "st,stih407-uni-reader-pcm_in";
  824. #sound-dai-cells = <0>;
  825. st,syscfg = <&syscfg_core>;
  826. reg = <0x8d83000 0x158>;
  827. interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
  828. dmas = <&fdma0 5 0 1>;
  829. dma-names = "rx";
  830. status = "disabled";
  831. };
  832. sti_uni_reader1: sti-uni-reader@8d84000 {
  833. compatible = "st,stih407-uni-reader-hdmi";
  834. #sound-dai-cells = <0>;
  835. st,syscfg = <&syscfg_core>;
  836. reg = <0x8d84000 0x158>;
  837. interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
  838. dmas = <&fdma0 6 0 1>;
  839. dma-names = "rx";
  840. status = "disabled";
  841. };
  842. };
  843. };