stih407-family.dtsi 25 KB

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