ste-nomadik-stn8815.dtsi 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. /*
  2. * Device Tree for the ST-Ericsson Nomadik 8815 STn8815 SoC
  3. */
  4. /include/ "skeleton.dtsi"
  5. / {
  6. #address-cells = <1>;
  7. #size-cells = <1>;
  8. memory {
  9. reg = <0x00000000 0x04000000>,
  10. <0x08000000 0x04000000>;
  11. };
  12. L2: l2-cache {
  13. compatible = "arm,l210-cache";
  14. reg = <0x10210000 0x1000>;
  15. interrupt-parent = <&vica>;
  16. interrupts = <30>;
  17. cache-unified;
  18. cache-level = <2>;
  19. };
  20. mtu0: mtu@101e2000 {
  21. /* Nomadik system timer */
  22. compatible = "st,nomadik-mtu";
  23. reg = <0x101e2000 0x1000>;
  24. interrupt-parent = <&vica>;
  25. interrupts = <4>;
  26. clocks = <&timclk>, <&pclk>;
  27. clock-names = "timclk", "apb_pclk";
  28. };
  29. mtu1: mtu@101e3000 {
  30. /* Secondary timer */
  31. reg = <0x101e3000 0x1000>;
  32. interrupt-parent = <&vica>;
  33. interrupts = <5>;
  34. clocks = <&timclk>, <&pclk>;
  35. clock-names = "timclk", "apb_pclk";
  36. };
  37. gpio0: gpio@101e4000 {
  38. compatible = "st,nomadik-gpio";
  39. reg = <0x101e4000 0x80>;
  40. interrupt-parent = <&vica>;
  41. interrupts = <6>;
  42. interrupt-controller;
  43. #interrupt-cells = <2>;
  44. gpio-controller;
  45. #gpio-cells = <2>;
  46. gpio-bank = <0>;
  47. clocks = <&pclk>;
  48. };
  49. gpio1: gpio@101e5000 {
  50. compatible = "st,nomadik-gpio";
  51. reg = <0x101e5000 0x80>;
  52. interrupt-parent = <&vica>;
  53. interrupts = <7>;
  54. interrupt-controller;
  55. #interrupt-cells = <2>;
  56. gpio-controller;
  57. #gpio-cells = <2>;
  58. gpio-bank = <1>;
  59. clocks = <&pclk>;
  60. };
  61. gpio2: gpio@101e6000 {
  62. compatible = "st,nomadik-gpio";
  63. reg = <0x101e6000 0x80>;
  64. interrupt-parent = <&vica>;
  65. interrupts = <8>;
  66. interrupt-controller;
  67. #interrupt-cells = <2>;
  68. gpio-controller;
  69. #gpio-cells = <2>;
  70. gpio-bank = <2>;
  71. clocks = <&pclk>;
  72. };
  73. gpio3: gpio@101e7000 {
  74. compatible = "st,nomadik-gpio";
  75. reg = <0x101e7000 0x80>;
  76. interrupt-parent = <&vica>;
  77. interrupts = <9>;
  78. interrupt-controller;
  79. #interrupt-cells = <2>;
  80. gpio-controller;
  81. #gpio-cells = <2>;
  82. gpio-bank = <3>;
  83. clocks = <&pclk>;
  84. };
  85. pinctrl {
  86. compatible = "stericsson,stn8815-pinctrl";
  87. /* Pin configurations */
  88. uart0 {
  89. uart0_default_mux: uart0_mux {
  90. u0_default_mux {
  91. ste,function = "u0";
  92. ste,pins = "u0_a_1";
  93. };
  94. };
  95. };
  96. uart1 {
  97. uart1_default_mux: uart1_mux {
  98. u1_default_mux {
  99. ste,function = "u1";
  100. ste,pins = "u1_a_1";
  101. };
  102. };
  103. };
  104. mmcsd {
  105. mmcsd_default_mux: mmcsd_mux {
  106. mmcsd_default_mux {
  107. ste,function = "mmcsd";
  108. ste,pins = "mmcsd_a_1";
  109. };
  110. };
  111. mmcsd_default_mode: mmcsd_default {
  112. mmcsd_default_cfg1 {
  113. /* MCCLK */
  114. ste,pins = "GPIO8_B10";
  115. ste,output = <0>;
  116. };
  117. mmcsd_default_cfg2 {
  118. /* MCCMDDIR, MCDAT0DIR, MCDAT31DIR */
  119. ste,pins = "GPIO10_C11", "GPIO15_A12",
  120. "GPIO16_C13";
  121. ste,output = <1>;
  122. };
  123. mmcsd_default_cfg3 {
  124. /* MCCMD, MCDAT3-0, MCMSFBCLK */
  125. ste,pins = "GPIO9_A10", "GPIO11_B11",
  126. "GPIO12_A11", "GPIO13_C12",
  127. "GPIO14_B12", "GPIO24_C15";
  128. ste,input = <1>;
  129. };
  130. };
  131. };
  132. i2c0 {
  133. i2c0_default_mode: i2c0_default {
  134. i2c0_default_cfg {
  135. ste,pins = "GPIO62_D3", "GPIO63_D2";
  136. ste,input = <1>;
  137. };
  138. };
  139. };
  140. i2c1 {
  141. i2c1_default_mode: i2c1_default {
  142. i2c1_default_cfg {
  143. ste,pins = "GPIO53_L4", "GPIO54_L3";
  144. ste,input = <1>;
  145. };
  146. };
  147. };
  148. i2c2 {
  149. i2c2_default_mode: i2c2_default {
  150. i2c2_default_cfg {
  151. ste,pins = "GPIO73_C21", "GPIO74_C20";
  152. ste,input = <1>;
  153. };
  154. };
  155. };
  156. };
  157. src: src@101e0000 {
  158. compatible = "stericsson,nomadik-src";
  159. reg = <0x101e0000 0x1000>;
  160. clocks {
  161. /*
  162. * Dummy clock for primecells
  163. */
  164. pclk: pclk@0 {
  165. #clock-cells = <0>;
  166. compatible = "fixed-clock";
  167. clock-frequency = <0>;
  168. };
  169. /*
  170. * The 2.4 MHz TIMCLK reference clock is active at
  171. * boot time, this is actually the MXTALCLK @19.2 MHz
  172. * divided by 8. This clock is used by the timers and
  173. * watchdog. See page 105 ff.
  174. */
  175. timclk: timclk@2.4M {
  176. #clock-cells = <0>;
  177. compatible = "fixed-clock";
  178. clock-frequency = <2400000>;
  179. };
  180. /*
  181. * At boot time, PLL2 is set to generate a set of
  182. * fixed clocks, one of them is CLK48, the 48 MHz
  183. * clock, routed to the UART, MMC/SD, I2C, IrDA,
  184. * USB and SSP blocks.
  185. */
  186. clk48: clk48@48M {
  187. #clock-cells = <0>;
  188. compatible = "fixed-clock";
  189. clock-frequency = <48000000>;
  190. };
  191. };
  192. };
  193. /* A NAND flash of 128 MiB */
  194. fsmc: flash@40000000 {
  195. compatible = "stericsson,fsmc-nand";
  196. #address-cells = <1>;
  197. #size-cells = <1>;
  198. reg = <0x10100000 0x1000>, /* FSMC Register*/
  199. <0x40000000 0x2000>, /* NAND Base DATA */
  200. <0x41000000 0x2000>, /* NAND Base ADDR */
  201. <0x40800000 0x2000>; /* NAND Base CMD */
  202. reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
  203. clocks = <&pclk>;
  204. status = "okay";
  205. partition@0 {
  206. label = "X-Loader(NAND)";
  207. reg = <0x0 0x40000>;
  208. };
  209. partition@40000 {
  210. label = "MemInit(NAND)";
  211. reg = <0x40000 0x40000>;
  212. };
  213. partition@80000 {
  214. label = "BootLoader(NAND)";
  215. reg = <0x80000 0x200000>;
  216. };
  217. partition@280000 {
  218. label = "Kernel zImage(NAND)";
  219. reg = <0x280000 0x300000>;
  220. };
  221. partition@580000 {
  222. label = "Root Filesystem(NAND)";
  223. reg = <0x580000 0x1600000>;
  224. };
  225. partition@1b80000 {
  226. label = "User Filesystem(NAND)";
  227. reg = <0x1b80000 0x6480000>;
  228. };
  229. };
  230. external-bus@34000000 {
  231. compatible = "simple-bus";
  232. reg = <0x34000000 0x1000000>;
  233. #address-cells = <1>;
  234. #size-cells = <1>;
  235. ranges = <0 0x34000000 0x1000000>;
  236. ethernet@300 {
  237. compatible = "smsc,lan91c111";
  238. reg = <0x300 0x0fd00>;
  239. };
  240. };
  241. /* I2C0 connected to the STw4811 power management chip */
  242. i2c0 {
  243. compatible = "i2c-gpio";
  244. gpios = <&gpio1 31 0>, /* sda */
  245. <&gpio1 30 0>; /* scl */
  246. #address-cells = <1>;
  247. #size-cells = <0>;
  248. pinctrl-names = "default";
  249. pinctrl-0 = <&i2c0_default_mode>;
  250. stw4811@2d {
  251. compatible = "st,stw4811";
  252. reg = <0x2d>;
  253. };
  254. };
  255. /* I2C1 connected to various sensors */
  256. i2c1 {
  257. compatible = "i2c-gpio";
  258. gpios = <&gpio1 22 0>, /* sda */
  259. <&gpio1 21 0>; /* scl */
  260. #address-cells = <1>;
  261. #size-cells = <0>;
  262. pinctrl-names = "default";
  263. pinctrl-0 = <&i2c1_default_mode>;
  264. camera@2d {
  265. compatible = "st,camera";
  266. reg = <0x10>;
  267. };
  268. stw5095@1a {
  269. compatible = "st,stw5095";
  270. reg = <0x1a>;
  271. };
  272. lis3lv02dl@1d {
  273. compatible = "st,lis3lv02dl";
  274. reg = <0x1d>;
  275. };
  276. };
  277. /* I2C2 connected to the USB portions of the STw4811 only */
  278. i2c2 {
  279. compatible = "i2c-gpio";
  280. gpios = <&gpio2 10 0>, /* sda */
  281. <&gpio2 9 0>; /* scl */
  282. #address-cells = <1>;
  283. #size-cells = <0>;
  284. pinctrl-names = "default";
  285. pinctrl-0 = <&i2c2_default_mode>;
  286. stw4811@2d {
  287. compatible = "st,stw4811-usb";
  288. reg = <0x2d>;
  289. };
  290. };
  291. amba {
  292. compatible = "arm,amba-bus";
  293. #address-cells = <1>;
  294. #size-cells = <1>;
  295. ranges;
  296. vica: intc@0x10140000 {
  297. compatible = "arm,versatile-vic";
  298. interrupt-controller;
  299. #interrupt-cells = <1>;
  300. reg = <0x10140000 0x20>;
  301. };
  302. vicb: intc@0x10140020 {
  303. compatible = "arm,versatile-vic";
  304. interrupt-controller;
  305. #interrupt-cells = <1>;
  306. reg = <0x10140020 0x20>;
  307. };
  308. uart0: uart@101fd000 {
  309. compatible = "arm,pl011", "arm,primecell";
  310. reg = <0x101fd000 0x1000>;
  311. interrupt-parent = <&vica>;
  312. interrupts = <12>;
  313. clocks = <&clk48>, <&pclk>;
  314. clock-names = "uartclk", "apb_pclk";
  315. pinctrl-names = "default";
  316. pinctrl-0 = <&uart0_default_mux>;
  317. };
  318. uart1: uart@101fb000 {
  319. compatible = "arm,pl011", "arm,primecell";
  320. reg = <0x101fb000 0x1000>;
  321. interrupt-parent = <&vica>;
  322. interrupts = <17>;
  323. clocks = <&clk48>, <&pclk>;
  324. clock-names = "uartclk", "apb_pclk";
  325. pinctrl-names = "default";
  326. pinctrl-0 = <&uart1_default_mux>;
  327. };
  328. uart2: uart@101f2000 {
  329. compatible = "arm,pl011", "arm,primecell";
  330. reg = <0x101f2000 0x1000>;
  331. interrupt-parent = <&vica>;
  332. interrupts = <28>;
  333. clocks = <&clk48>, <&pclk>;
  334. clock-names = "uartclk", "apb_pclk";
  335. status = "disabled";
  336. };
  337. rng: rng@101b0000 {
  338. compatible = "arm,primecell";
  339. reg = <0x101b0000 0x1000>;
  340. clocks = <&clk48>, <&pclk>;
  341. clock-names = "rng", "apb_pclk";
  342. };
  343. rtc: rtc@101e8000 {
  344. compatible = "arm,pl031", "arm,primecell";
  345. reg = <0x101e8000 0x1000>;
  346. clocks = <&pclk>;
  347. clock-names = "apb_pclk";
  348. interrupt-parent = <&vica>;
  349. interrupts = <10>;
  350. };
  351. mmcsd: sdi@101f6000 {
  352. compatible = "arm,pl18x", "arm,primecell";
  353. reg = <0x101f6000 0x1000>;
  354. clocks = <&clk48>, <&pclk>;
  355. clock-names = "mclk", "apb_pclk";
  356. interrupt-parent = <&vica>;
  357. interrupts = <22>;
  358. max-frequency = <48000000>;
  359. bus-width = <4>;
  360. mmc-cap-mmc-highspeed;
  361. mmc-cap-sd-highspeed;
  362. cd-gpios = <&gpio3 15 0x1>;
  363. cd-inverted;
  364. pinctrl-names = "default";
  365. pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
  366. };
  367. };
  368. };