ste-u300.dts 11 KB

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