ste-nomadik-stn8815.dtsi 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824
  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. disable-sxtalo;
  161. disable-mxtalo;
  162. /*
  163. * MXTAL "Main Chrystal" is a chrystal oscillator @19.2 MHz
  164. * that is parent of TIMCLK, PLL1 and PLL2
  165. */
  166. mxtal: mxtal@19.2M {
  167. #clock-cells = <0>;
  168. compatible = "fixed-clock";
  169. clock-frequency = <19200000>;
  170. };
  171. /*
  172. * The 2.4 MHz TIMCLK reference clock is active at
  173. * boot time, this is actually the MXTALCLK @19.2 MHz
  174. * divided by 8. This clock is used by the timers and
  175. * watchdog. See page 105 ff.
  176. */
  177. timclk: timclk@2.4M {
  178. #clock-cells = <0>;
  179. compatible = "fixed-factor-clock";
  180. clock-div = <8>;
  181. clock-mult = <1>;
  182. clocks = <&mxtal>;
  183. };
  184. /* PLL1 is locked to MXTALI and variable from 20.4 to 334 MHz */
  185. pll1: pll1@0 {
  186. #clock-cells = <0>;
  187. compatible = "st,nomadik-pll-clock";
  188. pll-id = <1>;
  189. clocks = <&mxtal>;
  190. };
  191. /* HCLK divides the PLL1 with 1,2,3 or 4 */
  192. hclk: hclk@0 {
  193. #clock-cells = <0>;
  194. compatible = "st,nomadik-hclk-clock";
  195. clocks = <&pll1>;
  196. };
  197. /* The PCLK domain uses HCLK right off */
  198. pclk: pclk@0 {
  199. #clock-cells = <0>;
  200. compatible = "fixed-factor-clock";
  201. clock-div = <1>;
  202. clock-mult = <1>;
  203. clocks = <&hclk>;
  204. };
  205. /* PLL2 is usually 864 MHz and divided into a few fixed rates */
  206. pll2: pll2@0 {
  207. #clock-cells = <0>;
  208. compatible = "st,nomadik-pll-clock";
  209. pll-id = <2>;
  210. clocks = <&mxtal>;
  211. };
  212. clk216: clk216@216M {
  213. #clock-cells = <0>;
  214. compatible = "fixed-factor-clock";
  215. clock-div = <4>;
  216. clock-mult = <1>;
  217. clocks = <&pll2>;
  218. };
  219. clk108: clk108@108M {
  220. #clock-cells = <0>;
  221. compatible = "fixed-factor-clock";
  222. clock-div = <2>;
  223. clock-mult = <1>;
  224. clocks = <&clk216>;
  225. };
  226. clk72: clk72@72M {
  227. #clock-cells = <0>;
  228. compatible = "fixed-factor-clock";
  229. /* The data sheet does not say how this is derived */
  230. clock-div = <12>;
  231. clock-mult = <1>;
  232. clocks = <&pll2>;
  233. };
  234. clk48: clk48@48M {
  235. #clock-cells = <0>;
  236. compatible = "fixed-factor-clock";
  237. /* The data sheet does not say how this is derived */
  238. clock-div = <18>;
  239. clock-mult = <1>;
  240. clocks = <&pll2>;
  241. };
  242. clk27: clk27@27M {
  243. #clock-cells = <0>;
  244. compatible = "fixed-factor-clock";
  245. clock-div = <4>;
  246. clock-mult = <1>;
  247. clocks = <&clk108>;
  248. };
  249. /* This apparently exists as well */
  250. ulpiclk: ulpiclk@60M {
  251. #clock-cells = <0>;
  252. compatible = "fixed-clock";
  253. clock-frequency = <60000000>;
  254. };
  255. /*
  256. * IP AMBA bus clocks, driving the bus side of the
  257. * peripheral clocking, clock gates.
  258. */
  259. hclkdma0: hclkdma0@48M {
  260. #clock-cells = <0>;
  261. compatible = "st,nomadik-src-clock";
  262. clock-id = <0>;
  263. clocks = <&hclk>;
  264. };
  265. hclksmc: hclksmc@48M {
  266. #clock-cells = <0>;
  267. compatible = "st,nomadik-src-clock";
  268. clock-id = <1>;
  269. clocks = <&hclk>;
  270. };
  271. hclksdram: hclksdram@48M {
  272. #clock-cells = <0>;
  273. compatible = "st,nomadik-src-clock";
  274. clock-id = <2>;
  275. clocks = <&hclk>;
  276. };
  277. hclkdma1: hclkdma1@48M {
  278. #clock-cells = <0>;
  279. compatible = "st,nomadik-src-clock";
  280. clock-id = <3>;
  281. clocks = <&hclk>;
  282. };
  283. hclkclcd: hclkclcd@48M {
  284. #clock-cells = <0>;
  285. compatible = "st,nomadik-src-clock";
  286. clock-id = <4>;
  287. clocks = <&hclk>;
  288. };
  289. pclkirda: pclkirda@48M {
  290. #clock-cells = <0>;
  291. compatible = "st,nomadik-src-clock";
  292. clock-id = <5>;
  293. clocks = <&pclk>;
  294. };
  295. pclkssp: pclkssp@48M {
  296. #clock-cells = <0>;
  297. compatible = "st,nomadik-src-clock";
  298. clock-id = <6>;
  299. clocks = <&pclk>;
  300. };
  301. pclkuart0: pclkuart0@48M {
  302. #clock-cells = <0>;
  303. compatible = "st,nomadik-src-clock";
  304. clock-id = <7>;
  305. clocks = <&pclk>;
  306. };
  307. pclksdi: pclksdi@48M {
  308. #clock-cells = <0>;
  309. compatible = "st,nomadik-src-clock";
  310. clock-id = <8>;
  311. clocks = <&pclk>;
  312. };
  313. pclki2c0: pclki2c0@48M {
  314. #clock-cells = <0>;
  315. compatible = "st,nomadik-src-clock";
  316. clock-id = <9>;
  317. clocks = <&pclk>;
  318. };
  319. pclki2c1: pclki2c1@48M {
  320. #clock-cells = <0>;
  321. compatible = "st,nomadik-src-clock";
  322. clock-id = <10>;
  323. clocks = <&pclk>;
  324. };
  325. pclkuart1: pclkuart1@48M {
  326. #clock-cells = <0>;
  327. compatible = "st,nomadik-src-clock";
  328. clock-id = <11>;
  329. clocks = <&pclk>;
  330. };
  331. pclkmsp0: pclkmsp0@48M {
  332. #clock-cells = <0>;
  333. compatible = "st,nomadik-src-clock";
  334. clock-id = <12>;
  335. clocks = <&pclk>;
  336. };
  337. hclkusb: hclkusb@48M {
  338. #clock-cells = <0>;
  339. compatible = "st,nomadik-src-clock";
  340. clock-id = <13>;
  341. clocks = <&hclk>;
  342. };
  343. hclkdif: hclkdif@48M {
  344. #clock-cells = <0>;
  345. compatible = "st,nomadik-src-clock";
  346. clock-id = <14>;
  347. clocks = <&hclk>;
  348. };
  349. hclksaa: hclksaa@48M {
  350. #clock-cells = <0>;
  351. compatible = "st,nomadik-src-clock";
  352. clock-id = <15>;
  353. clocks = <&hclk>;
  354. };
  355. hclksva: hclksva@48M {
  356. #clock-cells = <0>;
  357. compatible = "st,nomadik-src-clock";
  358. clock-id = <16>;
  359. clocks = <&hclk>;
  360. };
  361. pclkhsi: pclkhsi@48M {
  362. #clock-cells = <0>;
  363. compatible = "st,nomadik-src-clock";
  364. clock-id = <17>;
  365. clocks = <&pclk>;
  366. };
  367. pclkxti: pclkxti@48M {
  368. #clock-cells = <0>;
  369. compatible = "st,nomadik-src-clock";
  370. clock-id = <18>;
  371. clocks = <&pclk>;
  372. };
  373. pclkuart2: pclkuart2@48M {
  374. #clock-cells = <0>;
  375. compatible = "st,nomadik-src-clock";
  376. clock-id = <19>;
  377. clocks = <&pclk>;
  378. };
  379. pclkmsp1: pclkmsp1@48M {
  380. #clock-cells = <0>;
  381. compatible = "st,nomadik-src-clock";
  382. clock-id = <20>;
  383. clocks = <&pclk>;
  384. };
  385. pclkmsp2: pclkmsp2@48M {
  386. #clock-cells = <0>;
  387. compatible = "st,nomadik-src-clock";
  388. clock-id = <21>;
  389. clocks = <&pclk>;
  390. };
  391. pclkowm: pclkowm@48M {
  392. #clock-cells = <0>;
  393. compatible = "st,nomadik-src-clock";
  394. clock-id = <22>;
  395. clocks = <&pclk>;
  396. };
  397. hclkhpi: hclkhpi@48M {
  398. #clock-cells = <0>;
  399. compatible = "st,nomadik-src-clock";
  400. clock-id = <23>;
  401. clocks = <&hclk>;
  402. };
  403. pclkske: pclkske@48M {
  404. #clock-cells = <0>;
  405. compatible = "st,nomadik-src-clock";
  406. clock-id = <24>;
  407. clocks = <&pclk>;
  408. };
  409. pclkhsem: pclkhsem@48M {
  410. #clock-cells = <0>;
  411. compatible = "st,nomadik-src-clock";
  412. clock-id = <25>;
  413. clocks = <&pclk>;
  414. };
  415. hclk3d: hclk3d@48M {
  416. #clock-cells = <0>;
  417. compatible = "st,nomadik-src-clock";
  418. clock-id = <26>;
  419. clocks = <&hclk>;
  420. };
  421. hclkhash: hclkhash@48M {
  422. #clock-cells = <0>;
  423. compatible = "st,nomadik-src-clock";
  424. clock-id = <27>;
  425. clocks = <&hclk>;
  426. };
  427. hclkcryp: hclkcryp@48M {
  428. #clock-cells = <0>;
  429. compatible = "st,nomadik-src-clock";
  430. clock-id = <28>;
  431. clocks = <&hclk>;
  432. };
  433. pclkmshc: pclkmshc@48M {
  434. #clock-cells = <0>;
  435. compatible = "st,nomadik-src-clock";
  436. clock-id = <29>;
  437. clocks = <&pclk>;
  438. };
  439. hclkusbm: hclkusbm@48M {
  440. #clock-cells = <0>;
  441. compatible = "st,nomadik-src-clock";
  442. clock-id = <30>;
  443. clocks = <&hclk>;
  444. };
  445. hclkrng: hclkrng@48M {
  446. #clock-cells = <0>;
  447. compatible = "st,nomadik-src-clock";
  448. clock-id = <31>;
  449. clocks = <&hclk>;
  450. };
  451. /* IP kernel clocks */
  452. clcdclk: clcdclk@0 {
  453. #clock-cells = <0>;
  454. compatible = "st,nomadik-src-clock";
  455. clock-id = <36>;
  456. clocks = <&clk72 &clk48>;
  457. };
  458. irdaclk: irdaclk@48M {
  459. #clock-cells = <0>;
  460. compatible = "st,nomadik-src-clock";
  461. clock-id = <37>;
  462. clocks = <&clk48>;
  463. };
  464. sspiclk: sspiclk@48M {
  465. #clock-cells = <0>;
  466. compatible = "st,nomadik-src-clock";
  467. clock-id = <38>;
  468. clocks = <&clk48>;
  469. };
  470. uart0clk: uart0clk@48M {
  471. #clock-cells = <0>;
  472. compatible = "st,nomadik-src-clock";
  473. clock-id = <39>;
  474. clocks = <&clk48>;
  475. };
  476. sdiclk: sdiclk@48M {
  477. /* Also called MCCLK in some documents */
  478. #clock-cells = <0>;
  479. compatible = "st,nomadik-src-clock";
  480. clock-id = <40>;
  481. clocks = <&clk48>;
  482. };
  483. i2c0clk: i2c0clk@48M {
  484. #clock-cells = <0>;
  485. compatible = "st,nomadik-src-clock";
  486. clock-id = <41>;
  487. clocks = <&clk48>;
  488. };
  489. i2c1clk: i2c1clk@48M {
  490. #clock-cells = <0>;
  491. compatible = "st,nomadik-src-clock";
  492. clock-id = <42>;
  493. clocks = <&clk48>;
  494. };
  495. uart1clk: uart1clk@48M {
  496. #clock-cells = <0>;
  497. compatible = "st,nomadik-src-clock";
  498. clock-id = <43>;
  499. clocks = <&clk48>;
  500. };
  501. mspclk0: mspclk0@48M {
  502. #clock-cells = <0>;
  503. compatible = "st,nomadik-src-clock";
  504. clock-id = <44>;
  505. clocks = <&clk48>;
  506. };
  507. usbclk: usbclk@48M {
  508. #clock-cells = <0>;
  509. compatible = "st,nomadik-src-clock";
  510. clock-id = <45>;
  511. clocks = <&clk48>; /* 48 MHz not ULPI */
  512. };
  513. difclk: difclk@72M {
  514. #clock-cells = <0>;
  515. compatible = "st,nomadik-src-clock";
  516. clock-id = <46>;
  517. clocks = <&clk72>;
  518. };
  519. ipi2cclk: ipi2cclk@48M {
  520. #clock-cells = <0>;
  521. compatible = "st,nomadik-src-clock";
  522. clock-id = <47>;
  523. clocks = <&clk48>; /* Guess */
  524. };
  525. ipbmcclk: ipbmcclk@48M {
  526. #clock-cells = <0>;
  527. compatible = "st,nomadik-src-clock";
  528. clock-id = <48>;
  529. clocks = <&clk48>; /* Guess */
  530. };
  531. hsiclkrx: hsiclkrx@216M {
  532. #clock-cells = <0>;
  533. compatible = "st,nomadik-src-clock";
  534. clock-id = <49>;
  535. clocks = <&clk216>;
  536. };
  537. hsiclktx: hsiclktx@108M {
  538. #clock-cells = <0>;
  539. compatible = "st,nomadik-src-clock";
  540. clock-id = <50>;
  541. clocks = <&clk108>;
  542. };
  543. uart2clk: uart2clk@48M {
  544. #clock-cells = <0>;
  545. compatible = "st,nomadik-src-clock";
  546. clock-id = <51>;
  547. clocks = <&clk48>;
  548. };
  549. mspclk1: mspclk1@48M {
  550. #clock-cells = <0>;
  551. compatible = "st,nomadik-src-clock";
  552. clock-id = <52>;
  553. clocks = <&clk48>;
  554. };
  555. mspclk2: mspclk2@48M {
  556. #clock-cells = <0>;
  557. compatible = "st,nomadik-src-clock";
  558. clock-id = <53>;
  559. clocks = <&clk48>;
  560. };
  561. owmclk: owmclk@48M {
  562. #clock-cells = <0>;
  563. compatible = "st,nomadik-src-clock";
  564. clock-id = <54>;
  565. clocks = <&clk48>; /* Guess */
  566. };
  567. skeclk: skeclk@48M {
  568. #clock-cells = <0>;
  569. compatible = "st,nomadik-src-clock";
  570. clock-id = <56>;
  571. clocks = <&clk48>; /* Guess */
  572. };
  573. x3dclk: x3dclk@48M {
  574. #clock-cells = <0>;
  575. compatible = "st,nomadik-src-clock";
  576. clock-id = <58>;
  577. clocks = <&clk48>; /* Guess */
  578. };
  579. pclkmsp3: pclkmsp3@48M {
  580. #clock-cells = <0>;
  581. compatible = "st,nomadik-src-clock";
  582. clock-id = <59>;
  583. clocks = <&pclk>;
  584. };
  585. mspclk3: mspclk3@48M {
  586. #clock-cells = <0>;
  587. compatible = "st,nomadik-src-clock";
  588. clock-id = <60>;
  589. clocks = <&clk48>;
  590. };
  591. mshcclk: mshcclk@48M {
  592. #clock-cells = <0>;
  593. compatible = "st,nomadik-src-clock";
  594. clock-id = <61>;
  595. clocks = <&clk48>; /* Guess */
  596. };
  597. usbmclk: usbmclk@48M {
  598. #clock-cells = <0>;
  599. compatible = "st,nomadik-src-clock";
  600. clock-id = <62>;
  601. /* Stated as "48 MHz not ULPI clock" */
  602. clocks = <&clk48>;
  603. };
  604. rngcclk: rngcclk@48M {
  605. #clock-cells = <0>;
  606. compatible = "st,nomadik-src-clock";
  607. clock-id = <63>;
  608. clocks = <&clk48>; /* Guess */
  609. };
  610. };
  611. /* A NAND flash of 128 MiB */
  612. fsmc: flash@40000000 {
  613. compatible = "stericsson,fsmc-nand";
  614. #address-cells = <1>;
  615. #size-cells = <1>;
  616. reg = <0x10100000 0x1000>, /* FSMC Register*/
  617. <0x40000000 0x2000>, /* NAND Base DATA */
  618. <0x41000000 0x2000>, /* NAND Base ADDR */
  619. <0x40800000 0x2000>; /* NAND Base CMD */
  620. reg-names = "fsmc_regs", "nand_data", "nand_addr", "nand_cmd";
  621. clocks = <&hclksmc>;
  622. status = "okay";
  623. partition@0 {
  624. label = "X-Loader(NAND)";
  625. reg = <0x0 0x40000>;
  626. };
  627. partition@40000 {
  628. label = "MemInit(NAND)";
  629. reg = <0x40000 0x40000>;
  630. };
  631. partition@80000 {
  632. label = "BootLoader(NAND)";
  633. reg = <0x80000 0x200000>;
  634. };
  635. partition@280000 {
  636. label = "Kernel zImage(NAND)";
  637. reg = <0x280000 0x300000>;
  638. };
  639. partition@580000 {
  640. label = "Root Filesystem(NAND)";
  641. reg = <0x580000 0x1600000>;
  642. };
  643. partition@1b80000 {
  644. label = "User Filesystem(NAND)";
  645. reg = <0x1b80000 0x6480000>;
  646. };
  647. };
  648. external-bus@34000000 {
  649. compatible = "simple-bus";
  650. reg = <0x34000000 0x1000000>;
  651. #address-cells = <1>;
  652. #size-cells = <1>;
  653. ranges = <0 0x34000000 0x1000000>;
  654. ethernet@300 {
  655. compatible = "smsc,lan91c111";
  656. reg = <0x300 0x0fd00>;
  657. };
  658. };
  659. /* I2C0 connected to the STw4811 power management chip */
  660. i2c0 {
  661. compatible = "i2c-gpio";
  662. gpios = <&gpio1 31 0>, /* sda */
  663. <&gpio1 30 0>; /* scl */
  664. #address-cells = <1>;
  665. #size-cells = <0>;
  666. pinctrl-names = "default";
  667. pinctrl-0 = <&i2c0_default_mode>;
  668. stw4811@2d {
  669. compatible = "st,stw4811";
  670. reg = <0x2d>;
  671. };
  672. };
  673. /* I2C1 connected to various sensors */
  674. i2c1 {
  675. compatible = "i2c-gpio";
  676. gpios = <&gpio1 22 0>, /* sda */
  677. <&gpio1 21 0>; /* scl */
  678. #address-cells = <1>;
  679. #size-cells = <0>;
  680. pinctrl-names = "default";
  681. pinctrl-0 = <&i2c1_default_mode>;
  682. camera@2d {
  683. compatible = "st,camera";
  684. reg = <0x10>;
  685. };
  686. stw5095@1a {
  687. compatible = "st,stw5095";
  688. reg = <0x1a>;
  689. };
  690. lis3lv02dl@1d {
  691. compatible = "st,lis3lv02dl";
  692. reg = <0x1d>;
  693. };
  694. };
  695. /* I2C2 connected to the USB portions of the STw4811 only */
  696. i2c2 {
  697. compatible = "i2c-gpio";
  698. gpios = <&gpio2 10 0>, /* sda */
  699. <&gpio2 9 0>; /* scl */
  700. #address-cells = <1>;
  701. #size-cells = <0>;
  702. pinctrl-names = "default";
  703. pinctrl-0 = <&i2c2_default_mode>;
  704. stw4811@2d {
  705. compatible = "st,stw4811-usb";
  706. reg = <0x2d>;
  707. };
  708. };
  709. amba {
  710. compatible = "arm,amba-bus";
  711. #address-cells = <1>;
  712. #size-cells = <1>;
  713. ranges;
  714. vica: intc@0x10140000 {
  715. compatible = "arm,versatile-vic";
  716. interrupt-controller;
  717. #interrupt-cells = <1>;
  718. reg = <0x10140000 0x20>;
  719. };
  720. vicb: intc@0x10140020 {
  721. compatible = "arm,versatile-vic";
  722. interrupt-controller;
  723. #interrupt-cells = <1>;
  724. reg = <0x10140020 0x20>;
  725. };
  726. uart0: uart@101fd000 {
  727. compatible = "arm,pl011", "arm,primecell";
  728. reg = <0x101fd000 0x1000>;
  729. interrupt-parent = <&vica>;
  730. interrupts = <12>;
  731. clocks = <&uart0clk>, <&pclkuart0>;
  732. clock-names = "uartclk", "apb_pclk";
  733. pinctrl-names = "default";
  734. pinctrl-0 = <&uart0_default_mux>;
  735. };
  736. uart1: uart@101fb000 {
  737. compatible = "arm,pl011", "arm,primecell";
  738. reg = <0x101fb000 0x1000>;
  739. interrupt-parent = <&vica>;
  740. interrupts = <17>;
  741. clocks = <&uart1clk>, <&pclkuart1>;
  742. clock-names = "uartclk", "apb_pclk";
  743. pinctrl-names = "default";
  744. pinctrl-0 = <&uart1_default_mux>;
  745. };
  746. uart2: uart@101f2000 {
  747. compatible = "arm,pl011", "arm,primecell";
  748. reg = <0x101f2000 0x1000>;
  749. interrupt-parent = <&vica>;
  750. interrupts = <28>;
  751. clocks = <&uart2clk>, <&pclkuart2>;
  752. clock-names = "uartclk", "apb_pclk";
  753. status = "disabled";
  754. };
  755. rng: rng@101b0000 {
  756. compatible = "arm,primecell";
  757. reg = <0x101b0000 0x1000>;
  758. clocks = <&rngcclk>, <&hclkrng>;
  759. clock-names = "rng", "apb_pclk";
  760. };
  761. rtc: rtc@101e8000 {
  762. compatible = "arm,pl031", "arm,primecell";
  763. reg = <0x101e8000 0x1000>;
  764. clocks = <&pclk>;
  765. clock-names = "apb_pclk";
  766. interrupt-parent = <&vica>;
  767. interrupts = <10>;
  768. };
  769. mmcsd: sdi@101f6000 {
  770. compatible = "arm,pl18x", "arm,primecell";
  771. reg = <0x101f6000 0x1000>;
  772. clocks = <&sdiclk>, <&pclksdi>;
  773. clock-names = "mclk", "apb_pclk";
  774. interrupt-parent = <&vica>;
  775. interrupts = <22>;
  776. max-frequency = <48000000>;
  777. bus-width = <4>;
  778. mmc-cap-mmc-highspeed;
  779. mmc-cap-sd-highspeed;
  780. cd-gpios = <&gpio3 15 0x1>;
  781. cd-inverted;
  782. pinctrl-names = "default";
  783. pinctrl-0 = <&mmcsd_default_mux>, <&mmcsd_default_mode>;
  784. };
  785. };
  786. };