ste-u300.dts 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473
  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", "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. mmc_mclk: mmc_mclk {
  202. #clock-cells = <0>;
  203. compatible = "stericsson,u300-syscon-mclk";
  204. clocks = <&mmc_pclk>;
  205. };
  206. spi_clk: spi_p_clk@26M {
  207. #clock-cells = <0>;
  208. compatible = "stericsson,u300-syscon-clk";
  209. clock-type = <1>; /* Fast */
  210. clock-id = <6>;
  211. clocks = <&fast_clk>;
  212. };
  213. };
  214. timer: timer@c0014000 {
  215. compatible = "stericsson,u300-apptimer";
  216. reg = <0xc0014000 0x1000>;
  217. interrupt-parent = <&vica>;
  218. interrupts = <24 25 26 27>;
  219. clocks = <&apptimer_clk>;
  220. };
  221. gpio: gpio@c0016000 {
  222. compatible = "stericsson,gpio-coh901";
  223. reg = <0xc0016000 0x1000>;
  224. interrupt-parent = <&vicb>;
  225. interrupts = <0 1 2 18 21 22 23>;
  226. clocks = <&gpio_clk>;
  227. interrupt-names = "gpio0", "gpio1", "gpio2", "gpio3",
  228. "gpio4", "gpio5", "gpio6";
  229. interrupt-controller;
  230. #interrupt-cells = <2>;
  231. gpio-controller;
  232. #gpio-cells = <2>;
  233. };
  234. pinctrl: pinctrl@c0011000 {
  235. compatible = "stericsson,pinctrl-u300";
  236. reg = <0xc0011000 0x1000>;
  237. };
  238. watchdog: watchdog@c0012000 {
  239. compatible = "stericsson,coh901327";
  240. reg = <0xc0012000 0x1000>;
  241. interrupt-parent = <&vicb>;
  242. interrupts = <3>;
  243. clocks = <&clk32>;
  244. };
  245. rtc: rtc@c0017000 {
  246. compatible = "stericsson,coh901331";
  247. reg = <0xc0017000 0x1000>;
  248. interrupt-parent = <&vicb>;
  249. interrupts = <10>;
  250. clocks = <&rtc_clk>;
  251. };
  252. dmac: dma-controller@c00020000 {
  253. compatible = "stericsson,coh901318";
  254. reg = <0xc0020000 0x1000>;
  255. interrupt-parent = <&vica>;
  256. interrupts = <2>;
  257. #dma-cells = <1>;
  258. dma-channels = <40>;
  259. clocks = <&dmac_clk>;
  260. };
  261. /* A NAND flash of 128 MiB */
  262. fsmc: flash@40000000 {
  263. compatible = "stericsson,fsmc-nand";
  264. #address-cells = <1>;
  265. #size-cells = <1>;
  266. reg = <0x9f800000 0x1000>, /* FSMC Register*/
  267. <0x80000000 0x4000>, /* NAND Base DATA */
  268. <0x80020000 0x4000>, /* NAND Base ADDR */
  269. <0x80010000 0x4000>; /* NAND Base CMD */
  270. reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
  271. nand-skip-bbtscan;
  272. clocks = <&fsmc_clk>;
  273. partition@0 {
  274. label = "boot records";
  275. reg = <0x0 0x20000>;
  276. };
  277. partition@20000 {
  278. label = "free";
  279. reg = <0x20000 0x7e0000>;
  280. };
  281. partition@800000 {
  282. label = "platform";
  283. reg = <0x800000 0xf800000>;
  284. };
  285. };
  286. i2c0: i2c@c0004000 {
  287. compatible = "st,ddci2c";
  288. reg = <0xc0004000 0x1000>;
  289. interrupt-parent = <&vicb>;
  290. interrupts = <8>;
  291. clocks = <&i2c0_clk>;
  292. #address-cells = <1>;
  293. #size-cells = <0>;
  294. ab3100: ab3100@0x48 {
  295. compatible = "stericsson,ab3100";
  296. reg = <0x48>;
  297. interrupt-parent = <&vica>;
  298. interrupts = <0>; /* EXT0 IRQ */
  299. ab3100-regulators {
  300. compatible = "stericsson,ab3100-regulators";
  301. ab3100_ldo_a_reg: ab3100_ldo_a {
  302. regulator-compatible = "ab3100_ldo_a";
  303. startup-delay-us = <200>;
  304. regulator-always-on;
  305. regulator-boot-on;
  306. };
  307. ab3100_ldo_c_reg: ab3100_ldo_c {
  308. regulator-compatible = "ab3100_ldo_c";
  309. startup-delay-us = <200>;
  310. };
  311. ab3100_ldo_d_reg: ab3100_ldo_d {
  312. regulator-compatible = "ab3100_ldo_d";
  313. startup-delay-us = <200>;
  314. };
  315. ab3100_ldo_e_reg: ab3100_ldo_e {
  316. regulator-compatible = "ab3100_ldo_e";
  317. regulator-min-microvolt = <1800000>;
  318. regulator-max-microvolt = <1800000>;
  319. startup-delay-us = <200>;
  320. regulator-always-on;
  321. regulator-boot-on;
  322. };
  323. ab3100_ldo_f_reg: ab3100_ldo_f {
  324. regulator-compatible = "ab3100_ldo_f";
  325. regulator-min-microvolt = <2500000>;
  326. regulator-max-microvolt = <2500000>;
  327. startup-delay-us = <600>;
  328. regulator-always-on;
  329. regulator-boot-on;
  330. };
  331. ab3100_ldo_g_reg: ab3100_ldo_g {
  332. regulator-compatible = "ab3100_ldo_g";
  333. regulator-min-microvolt = <1500000>;
  334. regulator-max-microvolt = <2850000>;
  335. startup-delay-us = <400>;
  336. };
  337. ab3100_ldo_h_reg: ab3100_ldo_h {
  338. regulator-compatible = "ab3100_ldo_h";
  339. regulator-min-microvolt = <1200000>;
  340. regulator-max-microvolt = <2750000>;
  341. startup-delay-us = <200>;
  342. };
  343. ab3100_ldo_k_reg: ab3100_ldo_k {
  344. regulator-compatible = "ab3100_ldo_k";
  345. regulator-min-microvolt = <1800000>;
  346. regulator-max-microvolt = <2750000>;
  347. startup-delay-us = <200>;
  348. };
  349. ab3100_ext_reg: ab3100_ext {
  350. regulator-compatible = "ab3100_ext";
  351. };
  352. ab3100_buck_reg: ab3100_buck {
  353. regulator-compatible = "ab3100_buck";
  354. regulator-min-microvolt = <1200000>;
  355. regulator-max-microvolt = <1800000>;
  356. startup-delay-us = <1000>;
  357. regulator-always-on;
  358. regulator-boot-on;
  359. };
  360. };
  361. };
  362. };
  363. i2c1: i2c@c0005000 {
  364. compatible = "st,ddci2c";
  365. reg = <0xc0005000 0x1000>;
  366. interrupt-parent = <&vicb>;
  367. interrupts = <9>;
  368. clocks = <&i2c1_clk>;
  369. #address-cells = <1>;
  370. #size-cells = <0>;
  371. fwcam0: fwcam@0x10 {
  372. reg = <0x10>;
  373. };
  374. fwcam1: fwcam@0x5d {
  375. reg = <0x5d>;
  376. };
  377. };
  378. amba {
  379. compatible = "arm,amba-bus";
  380. #address-cells = <1>;
  381. #size-cells = <1>;
  382. ranges;
  383. vica: interrupt-controller@a0001000 {
  384. compatible = "arm,versatile-vic";
  385. interrupt-controller;
  386. #interrupt-cells = <1>;
  387. reg = <0xa0001000 0x20>;
  388. };
  389. vicb: interrupt-controller@a0002000 {
  390. compatible = "arm,versatile-vic";
  391. interrupt-controller;
  392. #interrupt-cells = <1>;
  393. reg = <0xa0002000 0x20>;
  394. };
  395. uart0: serial@c0013000 {
  396. compatible = "arm,pl011", "arm,primecell";
  397. reg = <0xc0013000 0x1000>;
  398. interrupt-parent = <&vica>;
  399. interrupts = <22>;
  400. clocks = <&uart0_clk>, <&uart0_clk>;
  401. clock-names = "apb_pclk", "uart0_clk";
  402. dmas = <&dmac 17 &dmac 18>;
  403. dma-names = "tx", "rx";
  404. };
  405. uart1: serial@c0007000 {
  406. compatible = "arm,pl011", "arm,primecell";
  407. reg = <0xc0007000 0x1000>;
  408. interrupt-parent = <&vicb>;
  409. interrupts = <20>;
  410. dmas = <&dmac 38 &dmac 39>;
  411. dma-names = "tx", "rx";
  412. };
  413. mmcsd: mmcsd@c0001000 {
  414. compatible = "arm,pl18x", "arm,primecell";
  415. reg = <0xc0001000 0x1000>;
  416. interrupt-parent = <&vicb>;
  417. interrupts = <6 7>;
  418. clocks = <&mmc_pclk>, <&mmc_mclk>;
  419. clock-names = "apb_pclk", "mclk";
  420. max-frequency = <24000000>;
  421. bus-width = <4>; // SD-card slot
  422. mmc-cap-mmc-highspeed;
  423. mmc-cap-sd-highspeed;
  424. cd-gpios = <&gpio 12 0x4>;
  425. cd-inverted;
  426. vmmc-supply = <&ab3100_ldo_g_reg>;
  427. dmas = <&dmac 14>;
  428. dma-names = "rx";
  429. };
  430. spi: ssp@c0006000 {
  431. compatible = "arm,pl022", "arm,primecell";
  432. reg = <0xc0006000 0x1000>;
  433. interrupt-parent = <&vica>;
  434. interrupts = <23>;
  435. clocks = <&spi_clk>, <&spi_clk>;
  436. clock-names = "apb_pclk", "spi_clk";
  437. dmas = <&dmac 27 &dmac 28>;
  438. dma-names = "tx", "rx";
  439. num-cs = <3>;
  440. #address-cells = <1>;
  441. #size-cells = <0>;
  442. spi-dummy@1 {
  443. compatible = "arm,pl022-dummy";
  444. reg = <1>;
  445. spi-max-frequency = <20000000>;
  446. };
  447. };
  448. };
  449. };