ste-nomadik-stn8815.dtsi 19 KB

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