whale2.dtsi 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314
  1. /*
  2. * Spreadtrum Whale2 platform peripherals
  3. *
  4. * Copyright (C) 2016, Spreadtrum Communications Inc.
  5. *
  6. * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  7. */
  8. #include <dt-bindings/clock/sprd,sc9860-clk.h>
  9. / {
  10. interrupt-parent = <&gic>;
  11. #address-cells = <2>;
  12. #size-cells = <2>;
  13. soc: soc {
  14. compatible = "simple-bus";
  15. #address-cells = <2>;
  16. #size-cells = <2>;
  17. ranges;
  18. ap_ahb_regs: syscon@20210000 {
  19. compatible = "syscon";
  20. reg = <0 0x20210000 0 0x10000>;
  21. };
  22. pmu_regs: syscon@402b0000 {
  23. compatible = "syscon";
  24. reg = <0 0x402b0000 0 0x10000>;
  25. };
  26. aon_regs: syscon@402e0000 {
  27. compatible = "syscon";
  28. reg = <0 0x402e0000 0 0x10000>;
  29. };
  30. ana_regs: syscon@40400000 {
  31. compatible = "syscon";
  32. reg = <0 0x40400000 0 0x10000>;
  33. };
  34. agcp_regs: syscon@415e0000 {
  35. compatible = "syscon";
  36. reg = <0 0x415e0000 0 0x1000000>;
  37. };
  38. vsp_regs: syscon@61100000 {
  39. compatible = "syscon";
  40. reg = <0 0x61100000 0 0x10000>;
  41. };
  42. cam_regs: syscon@62100000 {
  43. compatible = "syscon";
  44. reg = <0 0x62100000 0 0x10000>;
  45. };
  46. disp_regs: syscon@63100000 {
  47. compatible = "syscon";
  48. reg = <0 0x63100000 0 0x10000>;
  49. };
  50. ap_apb_regs: syscon@70b00000 {
  51. compatible = "syscon";
  52. reg = <0 0x70b00000 0 0x40000>;
  53. };
  54. ap-apb {
  55. compatible = "simple-bus";
  56. #address-cells = <1>;
  57. #size-cells = <1>;
  58. ranges = <0 0x0 0x70000000 0x10000000>;
  59. uart0: serial@0 {
  60. compatible = "sprd,sc9860-uart",
  61. "sprd,sc9836-uart";
  62. reg = <0x0 0x100>;
  63. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
  64. clock-names = "enable", "uart", "source";
  65. clocks = <&apapb_gate CLK_UART0_EB>,
  66. <&ap_clk CLK_UART0>, <&ext_26m>;
  67. status = "disabled";
  68. };
  69. uart1: serial@100000 {
  70. compatible = "sprd,sc9860-uart",
  71. "sprd,sc9836-uart";
  72. reg = <0x100000 0x100>;
  73. interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
  74. clock-names = "enable", "uart", "source";
  75. clocks = <&apapb_gate CLK_UART1_EB>,
  76. <&ap_clk CLK_UART1>, <&ext_26m>;
  77. status = "disabled";
  78. };
  79. uart2: serial@200000 {
  80. compatible = "sprd,sc9860-uart",
  81. "sprd,sc9836-uart";
  82. reg = <0x200000 0x100>;
  83. interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
  84. clock-names = "enable", "uart", "source";
  85. clocks = <&apapb_gate CLK_UART2_EB>,
  86. <&ap_clk CLK_UART2>, <&ext_26m>;
  87. status = "disabled";
  88. };
  89. uart3: serial@300000 {
  90. compatible = "sprd,sc9860-uart",
  91. "sprd,sc9836-uart";
  92. reg = <0x300000 0x100>;
  93. interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
  94. clock-names = "enable", "uart", "source";
  95. clocks = <&apapb_gate CLK_UART3_EB>,
  96. <&ap_clk CLK_UART3>, <&ext_26m>;
  97. status = "disabled";
  98. };
  99. };
  100. ap-ahb {
  101. compatible = "simple-bus";
  102. #address-cells = <2>;
  103. #size-cells = <2>;
  104. ranges;
  105. ap_dma: dma-controller@20100000 {
  106. compatible = "sprd,sc9860-dma";
  107. reg = <0 0x20100000 0 0x4000>;
  108. interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
  109. #dma-cells = <1>;
  110. /* For backwards compatibility: */
  111. #dma-channels = <32>;
  112. dma-channels = <32>;
  113. clock-names = "enable";
  114. clocks = <&apahb_gate CLK_DMA_EB>;
  115. };
  116. sdio3: sdio@50430000 {
  117. compatible = "sprd,sdhci-r11";
  118. reg = <0 0x50430000 0 0x1000>;
  119. interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
  120. clock-names = "sdio", "enable", "2x_enable";
  121. clocks = <&aon_prediv CLK_EMMC_2X>,
  122. <&apahb_gate CLK_EMMC_EB>,
  123. <&aon_gate CLK_EMMC_2X_EN>;
  124. assigned-clocks = <&aon_prediv CLK_EMMC_2X>;
  125. assigned-clock-parents = <&clk_l0_409m6>;
  126. sprd,phy-delay-mmc-hs400 = <0x44 0x7f 0x2e 0x2e>;
  127. sprd,phy-delay-mmc-hs200 = <0x0 0x8c 0x8c 0x8c>;
  128. sprd,phy-delay-mmc-ddr52 = <0x3f 0x75 0x14 0x14>;
  129. sprd,phy-delay-mmc-hs400es = <0x3f 0x3f 0x2e 0x2e>;
  130. vmmc-supply = <&vddemmccore>;
  131. bus-width = <8>;
  132. non-removable;
  133. no-sdio;
  134. no-sd;
  135. cap-mmc-hw-reset;
  136. mmc-hs400-enhanced-strobe;
  137. mmc-hs400-1_8v;
  138. mmc-hs200-1_8v;
  139. mmc-ddr-1_8v;
  140. };
  141. };
  142. aon {
  143. compatible = "simple-bus";
  144. #address-cells = <2>;
  145. #size-cells = <2>;
  146. ranges;
  147. adi_bus: spi@40030000 {
  148. compatible = "sprd,sc9860-adi";
  149. reg = <0 0x40030000 0 0x10000>;
  150. hwlocks = <&hwlock 0>;
  151. hwlock-names = "adi";
  152. #address-cells = <1>;
  153. #size-cells = <0>;
  154. };
  155. timer@40050000 {
  156. compatible = "sprd,sc9860-timer";
  157. reg = <0 0x40050000 0 0x20>;
  158. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  159. clocks = <&ext_32k>;
  160. };
  161. timer@40050020 {
  162. compatible = "sprd,sc9860-suspend-timer";
  163. reg = <0 0x40050020 0 0x20>;
  164. clocks = <&ext_32k>;
  165. };
  166. hwlock: hwspinlock@40500000 {
  167. compatible = "sprd,hwspinlock-r3p0";
  168. reg = <0 0x40500000 0 0x1000>;
  169. #hwlock-cells = <1>;
  170. clock-names = "enable";
  171. clocks = <&aon_gate CLK_SPLK_EB>;
  172. };
  173. eic_debounce: gpio@40210000 {
  174. compatible = "sprd,sc9860-eic-debounce";
  175. reg = <0 0x40210000 0 0x80>;
  176. gpio-controller;
  177. #gpio-cells = <2>;
  178. interrupt-controller;
  179. #interrupt-cells = <2>;
  180. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  181. };
  182. eic_latch: gpio@40210080 {
  183. compatible = "sprd,sc9860-eic-latch";
  184. reg = <0 0x40210080 0 0x20>;
  185. gpio-controller;
  186. #gpio-cells = <2>;
  187. interrupt-controller;
  188. #interrupt-cells = <2>;
  189. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  190. };
  191. eic_async: gpio@402100a0 {
  192. compatible = "sprd,sc9860-eic-async";
  193. reg = <0 0x402100a0 0 0x20>;
  194. gpio-controller;
  195. #gpio-cells = <2>;
  196. interrupt-controller;
  197. #interrupt-cells = <2>;
  198. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  199. };
  200. eic_sync: gpio@402100c0 {
  201. compatible = "sprd,sc9860-eic-sync";
  202. reg = <0 0x402100c0 0 0x20>;
  203. gpio-controller;
  204. #gpio-cells = <2>;
  205. interrupt-controller;
  206. #interrupt-cells = <2>;
  207. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  208. };
  209. ap_gpio: gpio@40280000 {
  210. compatible = "sprd,sc9860-gpio";
  211. reg = <0 0x40280000 0 0x1000>;
  212. gpio-controller;
  213. #gpio-cells = <2>;
  214. interrupt-controller;
  215. #interrupt-cells = <2>;
  216. interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
  217. };
  218. pin_controller: pinctrl@402a0000 {
  219. compatible = "sprd,sc9860-pinctrl";
  220. reg = <0 0x402a0000 0 0x10000>;
  221. };
  222. watchdog@40310000 {
  223. compatible = "sprd,sp9860-wdt";
  224. reg = <0 0x40310000 0 0x1000>;
  225. interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
  226. timeout-sec = <12>;
  227. clock-names = "enable", "rtc_enable";
  228. clocks = <&aon_gate CLK_APCPU_WDG_EB>,
  229. <&aon_gate CLK_AP_WDG_RTC_EB>;
  230. };
  231. };
  232. agcp {
  233. compatible = "simple-bus";
  234. #address-cells = <2>;
  235. #size-cells = <2>;
  236. ranges;
  237. agcp_dma: dma-controller@41580000 {
  238. compatible = "sprd,sc9860-dma";
  239. reg = <0 0x41580000 0 0x4000>;
  240. #dma-cells = <1>;
  241. /* For backwards compatibility: */
  242. #dma-channels = <32>;
  243. dma-channels = <32>;
  244. clock-names = "enable", "ashb_eb";
  245. clocks = <&agcp_gate CLK_AGCP_DMAAP_EB>,
  246. <&agcp_gate CLK_AGCP_AP_ASHB_EB>;
  247. };
  248. };
  249. };
  250. ext_32k: ext_32k {
  251. compatible = "fixed-clock";
  252. #clock-cells = <0>;
  253. clock-frequency = <32768>;
  254. clock-output-names = "ext-32k";
  255. };
  256. ext_26m: ext_26m {
  257. compatible = "fixed-clock";
  258. #clock-cells = <0>;
  259. clock-frequency = <26000000>;
  260. clock-output-names = "ext-26m";
  261. };
  262. ext_rco_100m: ext_rco_100m {
  263. compatible = "fixed-clock";
  264. #clock-cells = <0>;
  265. clock-frequency = <100000000>;
  266. clock-output-names = "ext-rco-100m";
  267. };
  268. clk_l0_409m6: clk_l0_409m6 {
  269. compatible = "fixed-clock";
  270. #clock-cells = <0>;
  271. clock-frequency = <409600000>;
  272. clock-output-names = "ext-409m6";
  273. };
  274. };