sun4i-a10.dtsi 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793
  1. /*
  2. * Copyright 2012 Stefan Roese
  3. * Stefan Roese <sr@denx.de>
  4. *
  5. * The code contained herein is licensed under the GNU General Public
  6. * License. You may obtain a copy of the GNU General Public License
  7. * Version 2 or later at the following locations:
  8. *
  9. * http://www.opensource.org/licenses/gpl-license.html
  10. * http://www.gnu.org/copyleft/gpl.html
  11. */
  12. /include/ "skeleton.dtsi"
  13. / {
  14. interrupt-parent = <&intc>;
  15. aliases {
  16. ethernet0 = &emac;
  17. serial0 = &uart0;
  18. serial1 = &uart1;
  19. serial2 = &uart2;
  20. serial3 = &uart3;
  21. serial4 = &uart4;
  22. serial5 = &uart5;
  23. serial6 = &uart6;
  24. serial7 = &uart7;
  25. };
  26. cpus {
  27. #address-cells = <1>;
  28. #size-cells = <0>;
  29. cpu@0 {
  30. device_type = "cpu";
  31. compatible = "arm,cortex-a8";
  32. reg = <0x0>;
  33. };
  34. };
  35. memory {
  36. reg = <0x40000000 0x80000000>;
  37. };
  38. clocks {
  39. #address-cells = <1>;
  40. #size-cells = <1>;
  41. ranges;
  42. /*
  43. * This is a dummy clock, to be used as placeholder on
  44. * other mux clocks when a specific parent clock is not
  45. * yet implemented. It should be dropped when the driver
  46. * is complete.
  47. */
  48. dummy: dummy {
  49. #clock-cells = <0>;
  50. compatible = "fixed-clock";
  51. clock-frequency = <0>;
  52. };
  53. osc24M: clk@01c20050 {
  54. #clock-cells = <0>;
  55. compatible = "allwinner,sun4i-a10-osc-clk";
  56. reg = <0x01c20050 0x4>;
  57. clock-frequency = <24000000>;
  58. clock-output-names = "osc24M";
  59. };
  60. osc32k: clk@0 {
  61. #clock-cells = <0>;
  62. compatible = "fixed-clock";
  63. clock-frequency = <32768>;
  64. clock-output-names = "osc32k";
  65. };
  66. pll1: clk@01c20000 {
  67. #clock-cells = <0>;
  68. compatible = "allwinner,sun4i-a10-pll1-clk";
  69. reg = <0x01c20000 0x4>;
  70. clocks = <&osc24M>;
  71. clock-output-names = "pll1";
  72. };
  73. pll4: clk@01c20018 {
  74. #clock-cells = <0>;
  75. compatible = "allwinner,sun4i-a10-pll1-clk";
  76. reg = <0x01c20018 0x4>;
  77. clocks = <&osc24M>;
  78. clock-output-names = "pll4";
  79. };
  80. pll5: clk@01c20020 {
  81. #clock-cells = <1>;
  82. compatible = "allwinner,sun4i-a10-pll5-clk";
  83. reg = <0x01c20020 0x4>;
  84. clocks = <&osc24M>;
  85. clock-output-names = "pll5_ddr", "pll5_other";
  86. };
  87. pll6: clk@01c20028 {
  88. #clock-cells = <1>;
  89. compatible = "allwinner,sun4i-a10-pll6-clk";
  90. reg = <0x01c20028 0x4>;
  91. clocks = <&osc24M>;
  92. clock-output-names = "pll6_sata", "pll6_other", "pll6";
  93. };
  94. /* dummy is 200M */
  95. cpu: cpu@01c20054 {
  96. #clock-cells = <0>;
  97. compatible = "allwinner,sun4i-a10-cpu-clk";
  98. reg = <0x01c20054 0x4>;
  99. clocks = <&osc32k>, <&osc24M>, <&pll1>, <&dummy>;
  100. clock-output-names = "cpu";
  101. };
  102. axi: axi@01c20054 {
  103. #clock-cells = <0>;
  104. compatible = "allwinner,sun4i-a10-axi-clk";
  105. reg = <0x01c20054 0x4>;
  106. clocks = <&cpu>;
  107. clock-output-names = "axi";
  108. };
  109. axi_gates: clk@01c2005c {
  110. #clock-cells = <1>;
  111. compatible = "allwinner,sun4i-a10-axi-gates-clk";
  112. reg = <0x01c2005c 0x4>;
  113. clocks = <&axi>;
  114. clock-output-names = "axi_dram";
  115. };
  116. ahb: ahb@01c20054 {
  117. #clock-cells = <0>;
  118. compatible = "allwinner,sun4i-a10-ahb-clk";
  119. reg = <0x01c20054 0x4>;
  120. clocks = <&axi>;
  121. clock-output-names = "ahb";
  122. };
  123. ahb_gates: clk@01c20060 {
  124. #clock-cells = <1>;
  125. compatible = "allwinner,sun4i-a10-ahb-gates-clk";
  126. reg = <0x01c20060 0x8>;
  127. clocks = <&ahb>;
  128. clock-output-names = "ahb_usb0", "ahb_ehci0",
  129. "ahb_ohci0", "ahb_ehci1", "ahb_ohci1", "ahb_ss",
  130. "ahb_dma", "ahb_bist", "ahb_mmc0", "ahb_mmc1",
  131. "ahb_mmc2", "ahb_mmc3", "ahb_ms", "ahb_nand",
  132. "ahb_sdram", "ahb_ace", "ahb_emac", "ahb_ts",
  133. "ahb_spi0", "ahb_spi1", "ahb_spi2", "ahb_spi3",
  134. "ahb_pata", "ahb_sata", "ahb_gps", "ahb_ve",
  135. "ahb_tvd", "ahb_tve0", "ahb_tve1", "ahb_lcd0",
  136. "ahb_lcd1", "ahb_csi0", "ahb_csi1", "ahb_hdmi",
  137. "ahb_de_be0", "ahb_de_be1", "ahb_de_fe0",
  138. "ahb_de_fe1", "ahb_mp", "ahb_mali400";
  139. };
  140. apb0: apb0@01c20054 {
  141. #clock-cells = <0>;
  142. compatible = "allwinner,sun4i-a10-apb0-clk";
  143. reg = <0x01c20054 0x4>;
  144. clocks = <&ahb>;
  145. clock-output-names = "apb0";
  146. };
  147. apb0_gates: clk@01c20068 {
  148. #clock-cells = <1>;
  149. compatible = "allwinner,sun4i-a10-apb0-gates-clk";
  150. reg = <0x01c20068 0x4>;
  151. clocks = <&apb0>;
  152. clock-output-names = "apb0_codec", "apb0_spdif",
  153. "apb0_ac97", "apb0_iis", "apb0_pio", "apb0_ir0",
  154. "apb0_ir1", "apb0_keypad";
  155. };
  156. apb1_mux: apb1_mux@01c20058 {
  157. #clock-cells = <0>;
  158. compatible = "allwinner,sun4i-a10-apb1-mux-clk";
  159. reg = <0x01c20058 0x4>;
  160. clocks = <&osc24M>, <&pll6 1>, <&osc32k>;
  161. clock-output-names = "apb1_mux";
  162. };
  163. apb1: apb1@01c20058 {
  164. #clock-cells = <0>;
  165. compatible = "allwinner,sun4i-a10-apb1-clk";
  166. reg = <0x01c20058 0x4>;
  167. clocks = <&apb1_mux>;
  168. clock-output-names = "apb1";
  169. };
  170. apb1_gates: clk@01c2006c {
  171. #clock-cells = <1>;
  172. compatible = "allwinner,sun4i-a10-apb1-gates-clk";
  173. reg = <0x01c2006c 0x4>;
  174. clocks = <&apb1>;
  175. clock-output-names = "apb1_i2c0", "apb1_i2c1",
  176. "apb1_i2c2", "apb1_can", "apb1_scr",
  177. "apb1_ps20", "apb1_ps21", "apb1_uart0",
  178. "apb1_uart1", "apb1_uart2", "apb1_uart3",
  179. "apb1_uart4", "apb1_uart5", "apb1_uart6",
  180. "apb1_uart7";
  181. };
  182. nand_clk: clk@01c20080 {
  183. #clock-cells = <0>;
  184. compatible = "allwinner,sun4i-a10-mod0-clk";
  185. reg = <0x01c20080 0x4>;
  186. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  187. clock-output-names = "nand";
  188. };
  189. ms_clk: clk@01c20084 {
  190. #clock-cells = <0>;
  191. compatible = "allwinner,sun4i-a10-mod0-clk";
  192. reg = <0x01c20084 0x4>;
  193. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  194. clock-output-names = "ms";
  195. };
  196. mmc0_clk: clk@01c20088 {
  197. #clock-cells = <0>;
  198. compatible = "allwinner,sun4i-a10-mod0-clk";
  199. reg = <0x01c20088 0x4>;
  200. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  201. clock-output-names = "mmc0";
  202. };
  203. mmc1_clk: clk@01c2008c {
  204. #clock-cells = <0>;
  205. compatible = "allwinner,sun4i-a10-mod0-clk";
  206. reg = <0x01c2008c 0x4>;
  207. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  208. clock-output-names = "mmc1";
  209. };
  210. mmc2_clk: clk@01c20090 {
  211. #clock-cells = <0>;
  212. compatible = "allwinner,sun4i-a10-mod0-clk";
  213. reg = <0x01c20090 0x4>;
  214. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  215. clock-output-names = "mmc2";
  216. };
  217. mmc3_clk: clk@01c20094 {
  218. #clock-cells = <0>;
  219. compatible = "allwinner,sun4i-a10-mod0-clk";
  220. reg = <0x01c20094 0x4>;
  221. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  222. clock-output-names = "mmc3";
  223. };
  224. ts_clk: clk@01c20098 {
  225. #clock-cells = <0>;
  226. compatible = "allwinner,sun4i-a10-mod0-clk";
  227. reg = <0x01c20098 0x4>;
  228. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  229. clock-output-names = "ts";
  230. };
  231. ss_clk: clk@01c2009c {
  232. #clock-cells = <0>;
  233. compatible = "allwinner,sun4i-a10-mod0-clk";
  234. reg = <0x01c2009c 0x4>;
  235. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  236. clock-output-names = "ss";
  237. };
  238. spi0_clk: clk@01c200a0 {
  239. #clock-cells = <0>;
  240. compatible = "allwinner,sun4i-a10-mod0-clk";
  241. reg = <0x01c200a0 0x4>;
  242. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  243. clock-output-names = "spi0";
  244. };
  245. spi1_clk: clk@01c200a4 {
  246. #clock-cells = <0>;
  247. compatible = "allwinner,sun4i-a10-mod0-clk";
  248. reg = <0x01c200a4 0x4>;
  249. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  250. clock-output-names = "spi1";
  251. };
  252. spi2_clk: clk@01c200a8 {
  253. #clock-cells = <0>;
  254. compatible = "allwinner,sun4i-a10-mod0-clk";
  255. reg = <0x01c200a8 0x4>;
  256. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  257. clock-output-names = "spi2";
  258. };
  259. pata_clk: clk@01c200ac {
  260. #clock-cells = <0>;
  261. compatible = "allwinner,sun4i-a10-mod0-clk";
  262. reg = <0x01c200ac 0x4>;
  263. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  264. clock-output-names = "pata";
  265. };
  266. ir0_clk: clk@01c200b0 {
  267. #clock-cells = <0>;
  268. compatible = "allwinner,sun4i-a10-mod0-clk";
  269. reg = <0x01c200b0 0x4>;
  270. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  271. clock-output-names = "ir0";
  272. };
  273. ir1_clk: clk@01c200b4 {
  274. #clock-cells = <0>;
  275. compatible = "allwinner,sun4i-a10-mod0-clk";
  276. reg = <0x01c200b4 0x4>;
  277. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  278. clock-output-names = "ir1";
  279. };
  280. usb_clk: clk@01c200cc {
  281. #clock-cells = <1>;
  282. #reset-cells = <1>;
  283. compatible = "allwinner,sun4i-a10-usb-clk";
  284. reg = <0x01c200cc 0x4>;
  285. clocks = <&pll6 1>;
  286. clock-output-names = "usb_ohci0", "usb_ohci1", "usb_phy";
  287. };
  288. spi3_clk: clk@01c200d4 {
  289. #clock-cells = <0>;
  290. compatible = "allwinner,sun4i-a10-mod0-clk";
  291. reg = <0x01c200d4 0x4>;
  292. clocks = <&osc24M>, <&pll6 1>, <&pll5 1>;
  293. clock-output-names = "spi3";
  294. };
  295. };
  296. soc@01c00000 {
  297. compatible = "simple-bus";
  298. #address-cells = <1>;
  299. #size-cells = <1>;
  300. ranges;
  301. dma: dma-controller@01c02000 {
  302. compatible = "allwinner,sun4i-a10-dma";
  303. reg = <0x01c02000 0x1000>;
  304. interrupts = <27>;
  305. clocks = <&ahb_gates 6>;
  306. #dma-cells = <2>;
  307. };
  308. spi0: spi@01c05000 {
  309. compatible = "allwinner,sun4i-a10-spi";
  310. reg = <0x01c05000 0x1000>;
  311. interrupts = <10>;
  312. clocks = <&ahb_gates 20>, <&spi0_clk>;
  313. clock-names = "ahb", "mod";
  314. dmas = <&dma 1 27>, <&dma 1 26>;
  315. dma-names = "rx", "tx";
  316. status = "disabled";
  317. #address-cells = <1>;
  318. #size-cells = <0>;
  319. };
  320. spi1: spi@01c06000 {
  321. compatible = "allwinner,sun4i-a10-spi";
  322. reg = <0x01c06000 0x1000>;
  323. interrupts = <11>;
  324. clocks = <&ahb_gates 21>, <&spi1_clk>;
  325. clock-names = "ahb", "mod";
  326. dmas = <&dma 1 9>, <&dma 1 8>;
  327. dma-names = "rx", "tx";
  328. status = "disabled";
  329. #address-cells = <1>;
  330. #size-cells = <0>;
  331. };
  332. emac: ethernet@01c0b000 {
  333. compatible = "allwinner,sun4i-a10-emac";
  334. reg = <0x01c0b000 0x1000>;
  335. interrupts = <55>;
  336. clocks = <&ahb_gates 17>;
  337. status = "disabled";
  338. };
  339. mdio@01c0b080 {
  340. compatible = "allwinner,sun4i-a10-mdio";
  341. reg = <0x01c0b080 0x14>;
  342. status = "disabled";
  343. #address-cells = <1>;
  344. #size-cells = <0>;
  345. };
  346. mmc0: mmc@01c0f000 {
  347. compatible = "allwinner,sun4i-a10-mmc";
  348. reg = <0x01c0f000 0x1000>;
  349. clocks = <&ahb_gates 8>, <&mmc0_clk>;
  350. clock-names = "ahb", "mmc";
  351. interrupts = <32>;
  352. status = "disabled";
  353. };
  354. mmc1: mmc@01c10000 {
  355. compatible = "allwinner,sun4i-a10-mmc";
  356. reg = <0x01c10000 0x1000>;
  357. clocks = <&ahb_gates 9>, <&mmc1_clk>;
  358. clock-names = "ahb", "mmc";
  359. interrupts = <33>;
  360. status = "disabled";
  361. };
  362. mmc2: mmc@01c11000 {
  363. compatible = "allwinner,sun4i-a10-mmc";
  364. reg = <0x01c11000 0x1000>;
  365. clocks = <&ahb_gates 10>, <&mmc2_clk>;
  366. clock-names = "ahb", "mmc";
  367. interrupts = <34>;
  368. status = "disabled";
  369. };
  370. mmc3: mmc@01c12000 {
  371. compatible = "allwinner,sun4i-a10-mmc";
  372. reg = <0x01c12000 0x1000>;
  373. clocks = <&ahb_gates 11>, <&mmc3_clk>;
  374. clock-names = "ahb", "mmc";
  375. interrupts = <35>;
  376. status = "disabled";
  377. };
  378. usbphy: phy@01c13400 {
  379. #phy-cells = <1>;
  380. compatible = "allwinner,sun4i-a10-usb-phy";
  381. reg = <0x01c13400 0x10 0x01c14800 0x4 0x01c1c800 0x4>;
  382. reg-names = "phy_ctrl", "pmu1", "pmu2";
  383. clocks = <&usb_clk 8>;
  384. clock-names = "usb_phy";
  385. resets = <&usb_clk 1>, <&usb_clk 2>;
  386. reset-names = "usb1_reset", "usb2_reset";
  387. status = "disabled";
  388. };
  389. ehci0: usb@01c14000 {
  390. compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
  391. reg = <0x01c14000 0x100>;
  392. interrupts = <39>;
  393. clocks = <&ahb_gates 1>;
  394. phys = <&usbphy 1>;
  395. phy-names = "usb";
  396. status = "disabled";
  397. };
  398. ohci0: usb@01c14400 {
  399. compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
  400. reg = <0x01c14400 0x100>;
  401. interrupts = <64>;
  402. clocks = <&usb_clk 6>, <&ahb_gates 2>;
  403. phys = <&usbphy 1>;
  404. phy-names = "usb";
  405. status = "disabled";
  406. };
  407. spi2: spi@01c17000 {
  408. compatible = "allwinner,sun4i-a10-spi";
  409. reg = <0x01c17000 0x1000>;
  410. interrupts = <12>;
  411. clocks = <&ahb_gates 22>, <&spi2_clk>;
  412. clock-names = "ahb", "mod";
  413. dmas = <&dma 1 29>, <&dma 1 28>;
  414. dma-names = "rx", "tx";
  415. status = "disabled";
  416. #address-cells = <1>;
  417. #size-cells = <0>;
  418. };
  419. ahci: sata@01c18000 {
  420. compatible = "allwinner,sun4i-a10-ahci";
  421. reg = <0x01c18000 0x1000>;
  422. interrupts = <56>;
  423. clocks = <&pll6 0>, <&ahb_gates 25>;
  424. status = "disabled";
  425. };
  426. ehci1: usb@01c1c000 {
  427. compatible = "allwinner,sun4i-a10-ehci", "generic-ehci";
  428. reg = <0x01c1c000 0x100>;
  429. interrupts = <40>;
  430. clocks = <&ahb_gates 3>;
  431. phys = <&usbphy 2>;
  432. phy-names = "usb";
  433. status = "disabled";
  434. };
  435. ohci1: usb@01c1c400 {
  436. compatible = "allwinner,sun4i-a10-ohci", "generic-ohci";
  437. reg = <0x01c1c400 0x100>;
  438. interrupts = <65>;
  439. clocks = <&usb_clk 7>, <&ahb_gates 4>;
  440. phys = <&usbphy 2>;
  441. phy-names = "usb";
  442. status = "disabled";
  443. };
  444. spi3: spi@01c1f000 {
  445. compatible = "allwinner,sun4i-a10-spi";
  446. reg = <0x01c1f000 0x1000>;
  447. interrupts = <50>;
  448. clocks = <&ahb_gates 23>, <&spi3_clk>;
  449. clock-names = "ahb", "mod";
  450. dmas = <&dma 1 31>, <&dma 1 30>;
  451. dma-names = "rx", "tx";
  452. status = "disabled";
  453. #address-cells = <1>;
  454. #size-cells = <0>;
  455. };
  456. intc: interrupt-controller@01c20400 {
  457. compatible = "allwinner,sun4i-a10-ic";
  458. reg = <0x01c20400 0x400>;
  459. interrupt-controller;
  460. #interrupt-cells = <1>;
  461. };
  462. pio: pinctrl@01c20800 {
  463. compatible = "allwinner,sun4i-a10-pinctrl";
  464. reg = <0x01c20800 0x400>;
  465. interrupts = <28>;
  466. clocks = <&apb0_gates 5>;
  467. gpio-controller;
  468. interrupt-controller;
  469. #interrupt-cells = <2>;
  470. #size-cells = <0>;
  471. #gpio-cells = <3>;
  472. pwm0_pins_a: pwm0@0 {
  473. allwinner,pins = "PB2";
  474. allwinner,function = "pwm";
  475. allwinner,drive = <0>;
  476. allwinner,pull = <0>;
  477. };
  478. pwm1_pins_a: pwm1@0 {
  479. allwinner,pins = "PI3";
  480. allwinner,function = "pwm";
  481. allwinner,drive = <0>;
  482. allwinner,pull = <0>;
  483. };
  484. uart0_pins_a: uart0@0 {
  485. allwinner,pins = "PB22", "PB23";
  486. allwinner,function = "uart0";
  487. allwinner,drive = <0>;
  488. allwinner,pull = <0>;
  489. };
  490. uart0_pins_b: uart0@1 {
  491. allwinner,pins = "PF2", "PF4";
  492. allwinner,function = "uart0";
  493. allwinner,drive = <0>;
  494. allwinner,pull = <0>;
  495. };
  496. uart1_pins_a: uart1@0 {
  497. allwinner,pins = "PA10", "PA11";
  498. allwinner,function = "uart1";
  499. allwinner,drive = <0>;
  500. allwinner,pull = <0>;
  501. };
  502. i2c0_pins_a: i2c0@0 {
  503. allwinner,pins = "PB0", "PB1";
  504. allwinner,function = "i2c0";
  505. allwinner,drive = <0>;
  506. allwinner,pull = <0>;
  507. };
  508. i2c1_pins_a: i2c1@0 {
  509. allwinner,pins = "PB18", "PB19";
  510. allwinner,function = "i2c1";
  511. allwinner,drive = <0>;
  512. allwinner,pull = <0>;
  513. };
  514. i2c2_pins_a: i2c2@0 {
  515. allwinner,pins = "PB20", "PB21";
  516. allwinner,function = "i2c2";
  517. allwinner,drive = <0>;
  518. allwinner,pull = <0>;
  519. };
  520. emac_pins_a: emac0@0 {
  521. allwinner,pins = "PA0", "PA1", "PA2",
  522. "PA3", "PA4", "PA5", "PA6",
  523. "PA7", "PA8", "PA9", "PA10",
  524. "PA11", "PA12", "PA13", "PA14",
  525. "PA15", "PA16";
  526. allwinner,function = "emac";
  527. allwinner,drive = <0>;
  528. allwinner,pull = <0>;
  529. };
  530. mmc0_pins_a: mmc0@0 {
  531. allwinner,pins = "PF0","PF1","PF2","PF3","PF4","PF5";
  532. allwinner,function = "mmc0";
  533. allwinner,drive = <2>;
  534. allwinner,pull = <0>;
  535. };
  536. mmc0_cd_pin_reference_design: mmc0_cd_pin@0 {
  537. allwinner,pins = "PH1";
  538. allwinner,function = "gpio_in";
  539. allwinner,drive = <0>;
  540. allwinner,pull = <1>;
  541. };
  542. ir0_pins_a: ir0@0 {
  543. allwinner,pins = "PB3","PB4";
  544. allwinner,function = "ir0";
  545. allwinner,drive = <0>;
  546. allwinner,pull = <0>;
  547. };
  548. ir1_pins_a: ir1@0 {
  549. allwinner,pins = "PB22","PB23";
  550. allwinner,function = "ir1";
  551. allwinner,drive = <0>;
  552. allwinner,pull = <0>;
  553. };
  554. };
  555. timer@01c20c00 {
  556. compatible = "allwinner,sun4i-a10-timer";
  557. reg = <0x01c20c00 0x90>;
  558. interrupts = <22>;
  559. clocks = <&osc24M>;
  560. };
  561. wdt: watchdog@01c20c90 {
  562. compatible = "allwinner,sun4i-a10-wdt";
  563. reg = <0x01c20c90 0x10>;
  564. };
  565. rtc: rtc@01c20d00 {
  566. compatible = "allwinner,sun4i-a10-rtc";
  567. reg = <0x01c20d00 0x20>;
  568. interrupts = <24>;
  569. };
  570. pwm: pwm@01c20e00 {
  571. compatible = "allwinner,sun4i-a10-pwm";
  572. reg = <0x01c20e00 0xc>;
  573. clocks = <&osc24M>;
  574. #pwm-cells = <3>;
  575. status = "disabled";
  576. };
  577. ir0: ir@01c21800 {
  578. compatible = "allwinner,sun4i-a10-ir";
  579. clocks = <&apb0_gates 6>, <&ir0_clk>;
  580. clock-names = "apb", "ir";
  581. interrupts = <5>;
  582. reg = <0x01c21800 0x40>;
  583. status = "disabled";
  584. };
  585. ir1: ir@01c21c00 {
  586. compatible = "allwinner,sun4i-a10-ir";
  587. clocks = <&apb0_gates 7>, <&ir1_clk>;
  588. clock-names = "apb", "ir";
  589. interrupts = <6>;
  590. reg = <0x01c21c00 0x40>;
  591. status = "disabled";
  592. };
  593. sid: eeprom@01c23800 {
  594. compatible = "allwinner,sun4i-a10-sid";
  595. reg = <0x01c23800 0x10>;
  596. };
  597. rtp: rtp@01c25000 {
  598. compatible = "allwinner,sun4i-a10-ts";
  599. reg = <0x01c25000 0x100>;
  600. interrupts = <29>;
  601. };
  602. uart0: serial@01c28000 {
  603. compatible = "snps,dw-apb-uart";
  604. reg = <0x01c28000 0x400>;
  605. interrupts = <1>;
  606. reg-shift = <2>;
  607. reg-io-width = <4>;
  608. clocks = <&apb1_gates 16>;
  609. status = "disabled";
  610. };
  611. uart1: serial@01c28400 {
  612. compatible = "snps,dw-apb-uart";
  613. reg = <0x01c28400 0x400>;
  614. interrupts = <2>;
  615. reg-shift = <2>;
  616. reg-io-width = <4>;
  617. clocks = <&apb1_gates 17>;
  618. status = "disabled";
  619. };
  620. uart2: serial@01c28800 {
  621. compatible = "snps,dw-apb-uart";
  622. reg = <0x01c28800 0x400>;
  623. interrupts = <3>;
  624. reg-shift = <2>;
  625. reg-io-width = <4>;
  626. clocks = <&apb1_gates 18>;
  627. status = "disabled";
  628. };
  629. uart3: serial@01c28c00 {
  630. compatible = "snps,dw-apb-uart";
  631. reg = <0x01c28c00 0x400>;
  632. interrupts = <4>;
  633. reg-shift = <2>;
  634. reg-io-width = <4>;
  635. clocks = <&apb1_gates 19>;
  636. status = "disabled";
  637. };
  638. uart4: serial@01c29000 {
  639. compatible = "snps,dw-apb-uart";
  640. reg = <0x01c29000 0x400>;
  641. interrupts = <17>;
  642. reg-shift = <2>;
  643. reg-io-width = <4>;
  644. clocks = <&apb1_gates 20>;
  645. status = "disabled";
  646. };
  647. uart5: serial@01c29400 {
  648. compatible = "snps,dw-apb-uart";
  649. reg = <0x01c29400 0x400>;
  650. interrupts = <18>;
  651. reg-shift = <2>;
  652. reg-io-width = <4>;
  653. clocks = <&apb1_gates 21>;
  654. status = "disabled";
  655. };
  656. uart6: serial@01c29800 {
  657. compatible = "snps,dw-apb-uart";
  658. reg = <0x01c29800 0x400>;
  659. interrupts = <19>;
  660. reg-shift = <2>;
  661. reg-io-width = <4>;
  662. clocks = <&apb1_gates 22>;
  663. status = "disabled";
  664. };
  665. uart7: serial@01c29c00 {
  666. compatible = "snps,dw-apb-uart";
  667. reg = <0x01c29c00 0x400>;
  668. interrupts = <20>;
  669. reg-shift = <2>;
  670. reg-io-width = <4>;
  671. clocks = <&apb1_gates 23>;
  672. status = "disabled";
  673. };
  674. i2c0: i2c@01c2ac00 {
  675. compatible = "allwinner,sun4i-a10-i2c";
  676. reg = <0x01c2ac00 0x400>;
  677. interrupts = <7>;
  678. clocks = <&apb1_gates 0>;
  679. status = "disabled";
  680. #address-cells = <1>;
  681. #size-cells = <0>;
  682. };
  683. i2c1: i2c@01c2b000 {
  684. compatible = "allwinner,sun4i-a10-i2c";
  685. reg = <0x01c2b000 0x400>;
  686. interrupts = <8>;
  687. clocks = <&apb1_gates 1>;
  688. status = "disabled";
  689. #address-cells = <1>;
  690. #size-cells = <0>;
  691. };
  692. i2c2: i2c@01c2b400 {
  693. compatible = "allwinner,sun4i-a10-i2c";
  694. reg = <0x01c2b400 0x400>;
  695. interrupts = <9>;
  696. clocks = <&apb1_gates 2>;
  697. status = "disabled";
  698. #address-cells = <1>;
  699. #size-cells = <0>;
  700. };
  701. };
  702. };