rk3066a.dtsi 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390
  1. /*
  2. * Copyright (c) 2013 MundoReader S.L.
  3. * Author: Heiko Stuebner <heiko@sntech.de>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License as published by
  7. * the Free Software Foundation; either version 2 of the License, or
  8. * (at your option) any later version.
  9. *
  10. * This program is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. * GNU General Public License for more details.
  14. */
  15. #include <dt-bindings/gpio/gpio.h>
  16. #include <dt-bindings/interrupt-controller/irq.h>
  17. #include <dt-bindings/interrupt-controller/arm-gic.h>
  18. #include <dt-bindings/pinctrl/rockchip.h>
  19. #include "skeleton.dtsi"
  20. #include "rk3066a-clocks.dtsi"
  21. / {
  22. compatible = "rockchip,rk3066a";
  23. interrupt-parent = <&gic>;
  24. cpus {
  25. #address-cells = <1>;
  26. #size-cells = <0>;
  27. cpu@0 {
  28. device_type = "cpu";
  29. compatible = "arm,cortex-a9";
  30. next-level-cache = <&L2>;
  31. reg = <0x0>;
  32. };
  33. cpu@1 {
  34. device_type = "cpu";
  35. compatible = "arm,cortex-a9";
  36. next-level-cache = <&L2>;
  37. reg = <0x1>;
  38. };
  39. };
  40. soc {
  41. #address-cells = <1>;
  42. #size-cells = <1>;
  43. compatible = "simple-bus";
  44. ranges;
  45. gic: interrupt-controller@1013d000 {
  46. compatible = "arm,cortex-a9-gic";
  47. interrupt-controller;
  48. #interrupt-cells = <3>;
  49. reg = <0x1013d000 0x1000>,
  50. <0x1013c100 0x0100>;
  51. };
  52. L2: l2-cache-controller@10138000 {
  53. compatible = "arm,pl310-cache";
  54. reg = <0x10138000 0x1000>;
  55. cache-unified;
  56. cache-level = <2>;
  57. };
  58. local-timer@1013c600 {
  59. compatible = "arm,cortex-a9-twd-timer";
  60. reg = <0x1013c600 0x20>;
  61. interrupts = <GIC_PPI 13 0x304>;
  62. clocks = <&dummy150m>;
  63. };
  64. timer@20038000 {
  65. compatible = "snps,dw-apb-timer-osc";
  66. reg = <0x20038000 0x100>;
  67. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  68. clocks = <&clk_gates1 0>, <&clk_gates7 7>;
  69. clock-names = "timer", "pclk";
  70. };
  71. timer@2003a000 {
  72. compatible = "snps,dw-apb-timer-osc";
  73. reg = <0x2003a000 0x100>;
  74. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
  75. clocks = <&clk_gates1 1>, <&clk_gates7 8>;
  76. clock-names = "timer", "pclk";
  77. };
  78. timer@2000e000 {
  79. compatible = "snps,dw-apb-timer-osc";
  80. reg = <0x2000e000 0x100>;
  81. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  82. clocks = <&clk_gates1 2>, <&clk_gates7 9>;
  83. clock-names = "timer", "pclk";
  84. };
  85. pinctrl@20008000 {
  86. compatible = "rockchip,rk3066a-pinctrl";
  87. reg = <0x20008000 0x150>;
  88. #address-cells = <1>;
  89. #size-cells = <1>;
  90. ranges;
  91. gpio0: gpio0@20034000 {
  92. compatible = "rockchip,gpio-bank";
  93. reg = <0x20034000 0x100>;
  94. interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
  95. clocks = <&clk_gates8 9>;
  96. gpio-controller;
  97. #gpio-cells = <2>;
  98. interrupt-controller;
  99. #interrupt-cells = <2>;
  100. };
  101. gpio1: gpio1@2003c000 {
  102. compatible = "rockchip,gpio-bank";
  103. reg = <0x2003c000 0x100>;
  104. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
  105. clocks = <&clk_gates8 10>;
  106. gpio-controller;
  107. #gpio-cells = <2>;
  108. interrupt-controller;
  109. #interrupt-cells = <2>;
  110. };
  111. gpio2: gpio2@2003e000 {
  112. compatible = "rockchip,gpio-bank";
  113. reg = <0x2003e000 0x100>;
  114. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
  115. clocks = <&clk_gates8 11>;
  116. gpio-controller;
  117. #gpio-cells = <2>;
  118. interrupt-controller;
  119. #interrupt-cells = <2>;
  120. };
  121. gpio3: gpio3@20080000 {
  122. compatible = "rockchip,gpio-bank";
  123. reg = <0x20080000 0x100>;
  124. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  125. clocks = <&clk_gates8 12>;
  126. gpio-controller;
  127. #gpio-cells = <2>;
  128. interrupt-controller;
  129. #interrupt-cells = <2>;
  130. };
  131. gpio4: gpio4@20084000 {
  132. compatible = "rockchip,gpio-bank";
  133. reg = <0x20084000 0x100>;
  134. interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
  135. clocks = <&clk_gates8 13>;
  136. gpio-controller;
  137. #gpio-cells = <2>;
  138. interrupt-controller;
  139. #interrupt-cells = <2>;
  140. };
  141. gpio6: gpio6@2000a000 {
  142. compatible = "rockchip,gpio-bank";
  143. reg = <0x2000a000 0x100>;
  144. interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
  145. clocks = <&clk_gates8 15>;
  146. gpio-controller;
  147. #gpio-cells = <2>;
  148. interrupt-controller;
  149. #interrupt-cells = <2>;
  150. };
  151. pcfg_pull_default: pcfg_pull_default {
  152. bias-pull-pin-default;
  153. };
  154. pcfg_pull_none: pcfg_pull_none {
  155. bias-disable;
  156. };
  157. uart0 {
  158. uart0_xfer: uart0-xfer {
  159. rockchip,pins = <RK_GPIO1 0 RK_FUNC_1 &pcfg_pull_default>,
  160. <RK_GPIO1 1 RK_FUNC_1 &pcfg_pull_default>;
  161. rockchip,config = <&pcfg_pull_default>;
  162. };
  163. uart0_cts: uart0-cts {
  164. rockchip,pins = <RK_GPIO1 2 RK_FUNC_1 &pcfg_pull_default>;
  165. rockchip,config = <&pcfg_pull_default>;
  166. };
  167. uart0_rts: uart0-rts {
  168. rockchip,pins = <RK_GPIO1 3 RK_FUNC_1 &pcfg_pull_default>;
  169. rockchip,config = <&pcfg_pull_default>;
  170. };
  171. };
  172. uart1 {
  173. uart1_xfer: uart1-xfer {
  174. rockchip,pins = <RK_GPIO1 4 RK_FUNC_1 &pcfg_pull_default>,
  175. <RK_GPIO1 5 RK_FUNC_1 &pcfg_pull_default>;
  176. rockchip,config = <&pcfg_pull_default>;
  177. };
  178. uart1_cts: uart1-cts {
  179. rockchip,pins = <RK_GPIO1 6 RK_FUNC_1 &pcfg_pull_default>;
  180. rockchip,config = <&pcfg_pull_default>;
  181. };
  182. uart1_rts: uart1-rts {
  183. rockchip,pins = <RK_GPIO1 7 RK_FUNC_1 &pcfg_pull_default>;
  184. rockchip,config = <&pcfg_pull_default>;
  185. };
  186. };
  187. uart2 {
  188. uart2_xfer: uart2-xfer {
  189. rockchip,pins = <RK_GPIO1 8 RK_FUNC_1 &pcfg_pull_default>,
  190. <RK_GPIO1 9 RK_FUNC_1 &pcfg_pull_default>;
  191. rockchip,config = <&pcfg_pull_default>;
  192. };
  193. /* no rts / cts for uart2 */
  194. };
  195. uart3 {
  196. uart3_xfer: uart3-xfer {
  197. rockchip,pins = <RK_GPIO3 27 RK_FUNC_1 &pcfg_pull_default>,
  198. <RK_GPIO3 28 RK_FUNC_1 &pcfg_pull_default>;
  199. rockchip,config = <&pcfg_pull_default>;
  200. };
  201. uart3_cts: uart3-cts {
  202. rockchip,pins = <RK_GPIO3 29 RK_FUNC_1 &pcfg_pull_default>;
  203. rockchip,config = <&pcfg_pull_default>;
  204. };
  205. uart3_rts: uart3-rts {
  206. rockchip,pins = <RK_GPIO3 30 RK_FUNC_1 &pcfg_pull_default>;
  207. rockchip,config = <&pcfg_pull_default>;
  208. };
  209. };
  210. sd0 {
  211. sd0_clk: sd0-clk {
  212. rockchip,pins = <RK_GPIO3 8 RK_FUNC_1 &pcfg_pull_default>;
  213. rockchip,config = <&pcfg_pull_default>;
  214. };
  215. sd0_cmd: sd0-cmd {
  216. rockchip,pins = <RK_GPIO3 9 RK_FUNC_1 &pcfg_pull_default>;
  217. rockchip,config = <&pcfg_pull_default>;
  218. };
  219. sd0_cd: sd0-cd {
  220. rockchip,pins = <RK_GPIO3 14 RK_FUNC_1 &pcfg_pull_default>;
  221. rockchip,config = <&pcfg_pull_default>;
  222. };
  223. sd0_wp: sd0-wp {
  224. rockchip,pins = <RK_GPIO3 15 RK_FUNC_1 &pcfg_pull_default>;
  225. rockchip,config = <&pcfg_pull_default>;
  226. };
  227. sd0_bus1: sd0-bus-width1 {
  228. rockchip,pins = <RK_GPIO3 10 RK_FUNC_1 &pcfg_pull_default>;
  229. rockchip,config = <&pcfg_pull_default>;
  230. };
  231. sd0_bus4: sd0-bus-width4 {
  232. rockchip,pins = <RK_GPIO3 10 RK_FUNC_1 &pcfg_pull_default>,
  233. <RK_GPIO3 11 RK_FUNC_1 &pcfg_pull_default>,
  234. <RK_GPIO3 12 RK_FUNC_1 &pcfg_pull_default>,
  235. <RK_GPIO3 13 RK_FUNC_1 &pcfg_pull_default>;
  236. rockchip,config = <&pcfg_pull_default>;
  237. };
  238. };
  239. sd1 {
  240. sd1_clk: sd1-clk {
  241. rockchip,pins = <RK_GPIO3 21 RK_FUNC_1 &pcfg_pull_default>;
  242. rockchip,config = <&pcfg_pull_default>;
  243. };
  244. sd1_cmd: sd1-cmd {
  245. rockchip,pins = <RK_GPIO3 16 RK_FUNC_1 &pcfg_pull_default>;
  246. rockchip,config = <&pcfg_pull_default>;
  247. };
  248. sd1_cd: sd1-cd {
  249. rockchip,pins = <RK_GPIO3 22 RK_FUNC_1 &pcfg_pull_default>;
  250. rockchip,config = <&pcfg_pull_default>;
  251. };
  252. sd1_wp: sd1-wp {
  253. rockchip,pins = <RK_GPIO3 23 RK_FUNC_1 &pcfg_pull_default>;
  254. rockchip,config = <&pcfg_pull_default>;
  255. };
  256. sd1_bus1: sd1-bus-width1 {
  257. rockchip,pins = <RK_GPIO3 17 RK_FUNC_1 &pcfg_pull_default>;
  258. rockchip,config = <&pcfg_pull_default>;
  259. };
  260. sd1_bus4: sd1-bus-width4 {
  261. rockchip,pins = <RK_GPIO3 17 RK_FUNC_1 &pcfg_pull_default>,
  262. <RK_GPIO3 18 RK_FUNC_1 &pcfg_pull_default>,
  263. <RK_GPIO3 19 RK_FUNC_1 &pcfg_pull_default>,
  264. <RK_GPIO3 20 RK_FUNC_1 &pcfg_pull_default>;
  265. rockchip,config = <&pcfg_pull_default>;
  266. };
  267. };
  268. };
  269. uart0: serial@10124000 {
  270. compatible = "snps,dw-apb-uart";
  271. reg = <0x10124000 0x400>;
  272. interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
  273. reg-shift = <2>;
  274. reg-io-width = <1>;
  275. clocks = <&clk_gates1 8>;
  276. status = "disabled";
  277. };
  278. uart1: serial@10126000 {
  279. compatible = "snps,dw-apb-uart";
  280. reg = <0x10126000 0x400>;
  281. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  282. reg-shift = <2>;
  283. reg-io-width = <1>;
  284. clocks = <&clk_gates1 10>;
  285. status = "disabled";
  286. };
  287. uart2: serial@20064000 {
  288. compatible = "snps,dw-apb-uart";
  289. reg = <0x20064000 0x400>;
  290. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  291. reg-shift = <2>;
  292. reg-io-width = <1>;
  293. clocks = <&clk_gates1 12>;
  294. status = "disabled";
  295. };
  296. uart3: serial@20068000 {
  297. compatible = "snps,dw-apb-uart";
  298. reg = <0x20068000 0x400>;
  299. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  300. reg-shift = <2>;
  301. reg-io-width = <1>;
  302. clocks = <&clk_gates1 14>;
  303. status = "disabled";
  304. };
  305. dwmmc@10214000 {
  306. compatible = "rockchip,rk2928-dw-mshc";
  307. reg = <0x10214000 0x1000>;
  308. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  309. #address-cells = <1>;
  310. #size-cells = <0>;
  311. clocks = <&clk_gates5 10>, <&clk_gates2 11>;
  312. clock-names = "biu", "ciu";
  313. status = "disabled";
  314. };
  315. dwmmc@10218000 {
  316. compatible = "rockchip,rk2928-dw-mshc";
  317. reg = <0x10218000 0x1000>;
  318. interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
  319. #address-cells = <1>;
  320. #size-cells = <0>;
  321. clocks = <&clk_gates5 11>, <&clk_gates2 13>;
  322. clock-names = "biu", "ciu";
  323. status = "disabled";
  324. };
  325. };
  326. };