ste-nomadik-stn8815.dtsi 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  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,nmk-pinctrl-stn8815";
  87. };
  88. src: src@101e0000 {
  89. compatible = "stericsson,nomadik-src";
  90. reg = <0x101e0000 0x1000>;
  91. clocks {
  92. /*
  93. * Dummy clock for primecells
  94. */
  95. pclk: pclk@0 {
  96. #clock-cells = <0>;
  97. compatible = "fixed-clock";
  98. clock-frequency = <0>;
  99. };
  100. /*
  101. * The 2.4 MHz TIMCLK reference clock is active at
  102. * boot time, this is actually the MXTALCLK @19.2 MHz
  103. * divided by 8. This clock is used by the timers and
  104. * watchdog. See page 105 ff.
  105. */
  106. timclk: timclk@2.4M {
  107. #clock-cells = <0>;
  108. compatible = "fixed-clock";
  109. clock-frequency = <2400000>;
  110. };
  111. /*
  112. * At boot time, PLL2 is set to generate a set of
  113. * fixed clocks, one of them is CLK48, the 48 MHz
  114. * clock, routed to the UART, MMC/SD, I2C, IrDA,
  115. * USB and SSP blocks.
  116. */
  117. clk48: clk48@48M {
  118. #clock-cells = <0>;
  119. compatible = "fixed-clock";
  120. clock-frequency = <48000000>;
  121. };
  122. };
  123. };
  124. /* A NAND flash of 128 MiB */
  125. fsmc: flash@40000000 {
  126. compatible = "stericsson,fsmc-nand";
  127. #address-cells = <1>;
  128. #size-cells = <1>;
  129. reg = <0x10100000 0x1000>, /* FSMC Register*/
  130. <0x40000000 0x2000>, /* NAND Base DATA */
  131. <0x41000000 0x2000>, /* NAND Base ADDR */
  132. <0x40800000 0x2000>; /* NAND Base CMD */
  133. reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
  134. clocks = <&pclk>;
  135. status = "okay";
  136. partition@0 {
  137. label = "X-Loader(NAND)";
  138. reg = <0x0 0x40000>;
  139. };
  140. partition@40000 {
  141. label = "MemInit(NAND)";
  142. reg = <0x40000 0x40000>;
  143. };
  144. partition@80000 {
  145. label = "BootLoader(NAND)";
  146. reg = <0x80000 0x200000>;
  147. };
  148. partition@280000 {
  149. label = "Kernel zImage(NAND)";
  150. reg = <0x280000 0x300000>;
  151. };
  152. partition@580000 {
  153. label = "Root Filesystem(NAND)";
  154. reg = <0x580000 0x1600000>;
  155. };
  156. partition@1b80000 {
  157. label = "User Filesystem(NAND)";
  158. reg = <0x1b80000 0x6480000>;
  159. };
  160. };
  161. external-bus@34000000 {
  162. compatible = "simple-bus";
  163. reg = <0x34000000 0x1000000>;
  164. #address-cells = <1>;
  165. #size-cells = <1>;
  166. ranges = <0 0x34000000 0x1000000>;
  167. ethernet@300 {
  168. compatible = "smsc,lan91c111";
  169. reg = <0x300 0x0fd00>;
  170. };
  171. };
  172. /* I2C0 connected to the STw4811 power management chip */
  173. i2c0 {
  174. compatible = "i2c-gpio";
  175. gpios = <&gpio1 31 0>, /* sda */
  176. <&gpio1 30 0>; /* scl */
  177. #address-cells = <1>;
  178. #size-cells = <0>;
  179. stw4811@2d {
  180. compatible = "st,stw4811";
  181. reg = <0x2d>;
  182. };
  183. };
  184. /* I2C1 connected to various sensors */
  185. i2c1 {
  186. compatible = "i2c-gpio";
  187. gpios = <&gpio1 22 0>, /* sda */
  188. <&gpio1 21 0>; /* scl */
  189. #address-cells = <1>;
  190. #size-cells = <0>;
  191. camera@2d {
  192. compatible = "st,camera";
  193. reg = <0x10>;
  194. };
  195. stw5095@1a {
  196. compatible = "st,stw5095";
  197. reg = <0x1a>;
  198. };
  199. lis3lv02dl@1d {
  200. compatible = "st,lis3lv02dl";
  201. reg = <0x1d>;
  202. };
  203. };
  204. /* I2C2 connected to the USB portions of the STw4811 only */
  205. i2c2 {
  206. compatible = "i2c-gpio";
  207. gpios = <&gpio2 10 0>, /* sda */
  208. <&gpio2 9 0>; /* scl */
  209. #address-cells = <1>;
  210. #size-cells = <0>;
  211. stw4811@2d {
  212. compatible = "st,stw4811-usb";
  213. reg = <0x2d>;
  214. };
  215. };
  216. amba {
  217. compatible = "arm,amba-bus";
  218. #address-cells = <1>;
  219. #size-cells = <1>;
  220. ranges;
  221. vica: intc@0x10140000 {
  222. compatible = "arm,versatile-vic";
  223. interrupt-controller;
  224. #interrupt-cells = <1>;
  225. reg = <0x10140000 0x20>;
  226. };
  227. vicb: intc@0x10140020 {
  228. compatible = "arm,versatile-vic";
  229. interrupt-controller;
  230. #interrupt-cells = <1>;
  231. reg = <0x10140020 0x20>;
  232. };
  233. uart0: uart@101fd000 {
  234. compatible = "arm,pl011", "arm,primecell";
  235. reg = <0x101fd000 0x1000>;
  236. interrupt-parent = <&vica>;
  237. interrupts = <12>;
  238. clocks = <&clk48>, <&pclk>;
  239. clock-names = "uartclk", "apb_pclk";
  240. };
  241. uart1: uart@101fb000 {
  242. compatible = "arm,pl011", "arm,primecell";
  243. reg = <0x101fb000 0x1000>;
  244. interrupt-parent = <&vica>;
  245. interrupts = <17>;
  246. clocks = <&clk48>, <&pclk>;
  247. clock-names = "uartclk", "apb_pclk";
  248. };
  249. uart2: uart@101f2000 {
  250. compatible = "arm,pl011", "arm,primecell";
  251. reg = <0x101f2000 0x1000>;
  252. interrupt-parent = <&vica>;
  253. interrupts = <28>;
  254. clocks = <&clk48>, <&pclk>;
  255. clock-names = "uartclk", "apb_pclk";
  256. status = "disabled";
  257. };
  258. rng: rng@101b0000 {
  259. compatible = "arm,primecell";
  260. reg = <0x101b0000 0x1000>;
  261. clocks = <&clk48>, <&pclk>;
  262. clock-names = "rng", "apb_pclk";
  263. };
  264. rtc: rtc@101e8000 {
  265. compatible = "arm,pl031", "arm,primecell";
  266. reg = <0x101e8000 0x1000>;
  267. clocks = <&pclk>;
  268. clock-names = "apb_pclk";
  269. interrupt-parent = <&vica>;
  270. interrupts = <10>;
  271. };
  272. mmcsd: sdi@101f6000 {
  273. compatible = "arm,pl18x", "arm,primecell";
  274. reg = <0x101f6000 0x1000>;
  275. clocks = <&clk48>, <&pclk>;
  276. clock-names = "mclk", "apb_pclk";
  277. interrupt-parent = <&vica>;
  278. interrupts = <22>;
  279. max-frequency = <48000000>;
  280. bus-width = <4>;
  281. mmc-cap-mmc-highspeed;
  282. mmc-cap-sd-highspeed;
  283. cd-gpios = <&gpio3 15 0x1>;
  284. cd-inverted;
  285. };
  286. };
  287. };