rk3066a.dtsi 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368
  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. };
  162. uart0_cts: uart0-cts {
  163. rockchip,pins = <RK_GPIO1 2 RK_FUNC_1 &pcfg_pull_default>;
  164. };
  165. uart0_rts: uart0-rts {
  166. rockchip,pins = <RK_GPIO1 3 RK_FUNC_1 &pcfg_pull_default>;
  167. };
  168. };
  169. uart1 {
  170. uart1_xfer: uart1-xfer {
  171. rockchip,pins = <RK_GPIO1 4 RK_FUNC_1 &pcfg_pull_default>,
  172. <RK_GPIO1 5 RK_FUNC_1 &pcfg_pull_default>;
  173. };
  174. uart1_cts: uart1-cts {
  175. rockchip,pins = <RK_GPIO1 6 RK_FUNC_1 &pcfg_pull_default>;
  176. };
  177. uart1_rts: uart1-rts {
  178. rockchip,pins = <RK_GPIO1 7 RK_FUNC_1 &pcfg_pull_default>;
  179. };
  180. };
  181. uart2 {
  182. uart2_xfer: uart2-xfer {
  183. rockchip,pins = <RK_GPIO1 8 RK_FUNC_1 &pcfg_pull_default>,
  184. <RK_GPIO1 9 RK_FUNC_1 &pcfg_pull_default>;
  185. };
  186. /* no rts / cts for uart2 */
  187. };
  188. uart3 {
  189. uart3_xfer: uart3-xfer {
  190. rockchip,pins = <RK_GPIO3 27 RK_FUNC_1 &pcfg_pull_default>,
  191. <RK_GPIO3 28 RK_FUNC_1 &pcfg_pull_default>;
  192. };
  193. uart3_cts: uart3-cts {
  194. rockchip,pins = <RK_GPIO3 29 RK_FUNC_1 &pcfg_pull_default>;
  195. };
  196. uart3_rts: uart3-rts {
  197. rockchip,pins = <RK_GPIO3 30 RK_FUNC_1 &pcfg_pull_default>;
  198. };
  199. };
  200. sd0 {
  201. sd0_clk: sd0-clk {
  202. rockchip,pins = <RK_GPIO3 8 RK_FUNC_1 &pcfg_pull_default>;
  203. };
  204. sd0_cmd: sd0-cmd {
  205. rockchip,pins = <RK_GPIO3 9 RK_FUNC_1 &pcfg_pull_default>;
  206. };
  207. sd0_cd: sd0-cd {
  208. rockchip,pins = <RK_GPIO3 14 RK_FUNC_1 &pcfg_pull_default>;
  209. };
  210. sd0_wp: sd0-wp {
  211. rockchip,pins = <RK_GPIO3 15 RK_FUNC_1 &pcfg_pull_default>;
  212. };
  213. sd0_bus1: sd0-bus-width1 {
  214. rockchip,pins = <RK_GPIO3 10 RK_FUNC_1 &pcfg_pull_default>;
  215. };
  216. sd0_bus4: sd0-bus-width4 {
  217. rockchip,pins = <RK_GPIO3 10 RK_FUNC_1 &pcfg_pull_default>,
  218. <RK_GPIO3 11 RK_FUNC_1 &pcfg_pull_default>,
  219. <RK_GPIO3 12 RK_FUNC_1 &pcfg_pull_default>,
  220. <RK_GPIO3 13 RK_FUNC_1 &pcfg_pull_default>;
  221. };
  222. };
  223. sd1 {
  224. sd1_clk: sd1-clk {
  225. rockchip,pins = <RK_GPIO3 21 RK_FUNC_1 &pcfg_pull_default>;
  226. };
  227. sd1_cmd: sd1-cmd {
  228. rockchip,pins = <RK_GPIO3 16 RK_FUNC_1 &pcfg_pull_default>;
  229. };
  230. sd1_cd: sd1-cd {
  231. rockchip,pins = <RK_GPIO3 22 RK_FUNC_1 &pcfg_pull_default>;
  232. };
  233. sd1_wp: sd1-wp {
  234. rockchip,pins = <RK_GPIO3 23 RK_FUNC_1 &pcfg_pull_default>;
  235. };
  236. sd1_bus1: sd1-bus-width1 {
  237. rockchip,pins = <RK_GPIO3 17 RK_FUNC_1 &pcfg_pull_default>;
  238. };
  239. sd1_bus4: sd1-bus-width4 {
  240. rockchip,pins = <RK_GPIO3 17 RK_FUNC_1 &pcfg_pull_default>,
  241. <RK_GPIO3 18 RK_FUNC_1 &pcfg_pull_default>,
  242. <RK_GPIO3 19 RK_FUNC_1 &pcfg_pull_default>,
  243. <RK_GPIO3 20 RK_FUNC_1 &pcfg_pull_default>;
  244. };
  245. };
  246. };
  247. uart0: serial@10124000 {
  248. compatible = "snps,dw-apb-uart";
  249. reg = <0x10124000 0x400>;
  250. interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
  251. reg-shift = <2>;
  252. reg-io-width = <1>;
  253. clocks = <&clk_gates1 8>;
  254. status = "disabled";
  255. };
  256. uart1: serial@10126000 {
  257. compatible = "snps,dw-apb-uart";
  258. reg = <0x10126000 0x400>;
  259. interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
  260. reg-shift = <2>;
  261. reg-io-width = <1>;
  262. clocks = <&clk_gates1 10>;
  263. status = "disabled";
  264. };
  265. uart2: serial@20064000 {
  266. compatible = "snps,dw-apb-uart";
  267. reg = <0x20064000 0x400>;
  268. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  269. reg-shift = <2>;
  270. reg-io-width = <1>;
  271. clocks = <&clk_gates1 12>;
  272. status = "disabled";
  273. };
  274. uart3: serial@20068000 {
  275. compatible = "snps,dw-apb-uart";
  276. reg = <0x20068000 0x400>;
  277. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  278. reg-shift = <2>;
  279. reg-io-width = <1>;
  280. clocks = <&clk_gates1 14>;
  281. status = "disabled";
  282. };
  283. dwmmc@10214000 {
  284. compatible = "rockchip,rk2928-dw-mshc";
  285. reg = <0x10214000 0x1000>;
  286. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  287. #address-cells = <1>;
  288. #size-cells = <0>;
  289. clocks = <&clk_gates5 10>, <&clk_gates2 11>;
  290. clock-names = "biu", "ciu";
  291. status = "disabled";
  292. };
  293. dwmmc@10218000 {
  294. compatible = "rockchip,rk2928-dw-mshc";
  295. reg = <0x10218000 0x1000>;
  296. interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
  297. #address-cells = <1>;
  298. #size-cells = <0>;
  299. clocks = <&clk_gates5 11>, <&clk_gates2 13>;
  300. clock-names = "biu", "ciu";
  301. status = "disabled";
  302. };
  303. };
  304. };