pic32mzda.dtsi 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. /*
  2. * Copyright (C) 2015 Microchip Technology Inc. All rights reserved.
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. *
  8. */
  9. #include <dt-bindings/clock/microchip,pic32-clock.h>
  10. #include <dt-bindings/interrupt-controller/irq.h>
  11. / {
  12. #address-cells = <1>;
  13. #size-cells = <1>;
  14. interrupt-parent = <&evic>;
  15. aliases {
  16. gpio0 = &gpio0;
  17. gpio1 = &gpio1;
  18. gpio2 = &gpio2;
  19. gpio3 = &gpio3;
  20. gpio4 = &gpio4;
  21. gpio5 = &gpio5;
  22. gpio6 = &gpio6;
  23. gpio7 = &gpio7;
  24. gpio8 = &gpio8;
  25. gpio9 = &gpio9;
  26. serial0 = &uart1;
  27. serial1 = &uart2;
  28. serial2 = &uart3;
  29. serial3 = &uart4;
  30. serial4 = &uart5;
  31. serial5 = &uart6;
  32. };
  33. cpus {
  34. #address-cells = <1>;
  35. #size-cells = <0>;
  36. cpu@0 {
  37. compatible = "mti,mips14KEc";
  38. device_type = "cpu";
  39. };
  40. };
  41. soc {
  42. compatible = "microchip,pic32mzda-infra";
  43. interrupts = <0 IRQ_TYPE_EDGE_RISING>;
  44. };
  45. /* external clock input on TxCLKI pin */
  46. txcki: txcki_clk {
  47. #clock-cells = <0>;
  48. compatible = "fixed-clock";
  49. clock-frequency = <4000000>;
  50. status = "disabled";
  51. };
  52. /* external input on REFCLKIx pin */
  53. refix: refix_clk {
  54. #clock-cells = <0>;
  55. compatible = "fixed-clock";
  56. clock-frequency = <24000000>;
  57. status = "disabled";
  58. };
  59. rootclk: clock-controller@1f801200 {
  60. compatible = "microchip,pic32mzda-clk";
  61. reg = <0x1f801200 0x200>;
  62. #clock-cells = <1>;
  63. microchip,pic32mzda-sosc;
  64. };
  65. evic: interrupt-controller@1f810000 {
  66. compatible = "microchip,pic32mzda-evic";
  67. interrupt-controller;
  68. #interrupt-cells = <2>;
  69. reg = <0x1f810000 0x1000>;
  70. microchip,external-irqs = <3 8 13 18 23>;
  71. };
  72. pic32_pinctrl: pinctrl@1f801400{
  73. #address-cells = <1>;
  74. #size-cells = <1>;
  75. compatible = "microchip,pic32mzda-pinctrl";
  76. reg = <0x1f801400 0x400>;
  77. clocks = <&rootclk PB1CLK>;
  78. };
  79. /* PORTA */
  80. gpio0: gpio0@1f860000 {
  81. compatible = "microchip,pic32mzda-gpio";
  82. reg = <0x1f860000 0x100>;
  83. interrupts = <118 IRQ_TYPE_LEVEL_HIGH>;
  84. #gpio-cells = <2>;
  85. gpio-controller;
  86. interrupt-controller;
  87. #interrupt-cells = <2>;
  88. clocks = <&rootclk PB4CLK>;
  89. microchip,gpio-bank = <0>;
  90. gpio-ranges = <&pic32_pinctrl 0 0 16>;
  91. };
  92. /* PORTB */
  93. gpio1: gpio1@1f860100 {
  94. compatible = "microchip,pic32mzda-gpio";
  95. reg = <0x1f860100 0x100>;
  96. interrupts = <119 IRQ_TYPE_LEVEL_HIGH>;
  97. #gpio-cells = <2>;
  98. gpio-controller;
  99. interrupt-controller;
  100. #interrupt-cells = <2>;
  101. clocks = <&rootclk PB4CLK>;
  102. microchip,gpio-bank = <1>;
  103. gpio-ranges = <&pic32_pinctrl 0 16 16>;
  104. };
  105. /* PORTC */
  106. gpio2: gpio2@1f860200 {
  107. compatible = "microchip,pic32mzda-gpio";
  108. reg = <0x1f860200 0x100>;
  109. interrupts = <120 IRQ_TYPE_LEVEL_HIGH>;
  110. #gpio-cells = <2>;
  111. gpio-controller;
  112. interrupt-controller;
  113. #interrupt-cells = <2>;
  114. clocks = <&rootclk PB4CLK>;
  115. microchip,gpio-bank = <2>;
  116. gpio-ranges = <&pic32_pinctrl 0 32 16>;
  117. };
  118. /* PORTD */
  119. gpio3: gpio3@1f860300 {
  120. compatible = "microchip,pic32mzda-gpio";
  121. reg = <0x1f860300 0x100>;
  122. interrupts = <121 IRQ_TYPE_LEVEL_HIGH>;
  123. #gpio-cells = <2>;
  124. gpio-controller;
  125. interrupt-controller;
  126. #interrupt-cells = <2>;
  127. clocks = <&rootclk PB4CLK>;
  128. microchip,gpio-bank = <3>;
  129. gpio-ranges = <&pic32_pinctrl 0 48 16>;
  130. };
  131. /* PORTE */
  132. gpio4: gpio4@1f860400 {
  133. compatible = "microchip,pic32mzda-gpio";
  134. reg = <0x1f860400 0x100>;
  135. interrupts = <122 IRQ_TYPE_LEVEL_HIGH>;
  136. #gpio-cells = <2>;
  137. gpio-controller;
  138. interrupt-controller;
  139. #interrupt-cells = <2>;
  140. clocks = <&rootclk PB4CLK>;
  141. microchip,gpio-bank = <4>;
  142. gpio-ranges = <&pic32_pinctrl 0 64 16>;
  143. };
  144. /* PORTF */
  145. gpio5: gpio5@1f860500 {
  146. compatible = "microchip,pic32mzda-gpio";
  147. reg = <0x1f860500 0x100>;
  148. interrupts = <123 IRQ_TYPE_LEVEL_HIGH>;
  149. #gpio-cells = <2>;
  150. gpio-controller;
  151. interrupt-controller;
  152. #interrupt-cells = <2>;
  153. clocks = <&rootclk PB4CLK>;
  154. microchip,gpio-bank = <5>;
  155. gpio-ranges = <&pic32_pinctrl 0 80 16>;
  156. };
  157. /* PORTG */
  158. gpio6: gpio6@1f860600 {
  159. compatible = "microchip,pic32mzda-gpio";
  160. reg = <0x1f860600 0x100>;
  161. interrupts = <124 IRQ_TYPE_LEVEL_HIGH>;
  162. #gpio-cells = <2>;
  163. gpio-controller;
  164. interrupt-controller;
  165. #interrupt-cells = <2>;
  166. clocks = <&rootclk PB4CLK>;
  167. microchip,gpio-bank = <6>;
  168. gpio-ranges = <&pic32_pinctrl 0 96 16>;
  169. };
  170. /* PORTH */
  171. gpio7: gpio7@1f860700 {
  172. compatible = "microchip,pic32mzda-gpio";
  173. reg = <0x1f860700 0x100>;
  174. interrupts = <125 IRQ_TYPE_LEVEL_HIGH>;
  175. #gpio-cells = <2>;
  176. gpio-controller;
  177. interrupt-controller;
  178. #interrupt-cells = <2>;
  179. clocks = <&rootclk PB4CLK>;
  180. microchip,gpio-bank = <7>;
  181. gpio-ranges = <&pic32_pinctrl 0 112 16>;
  182. };
  183. /* PORTI does not exist */
  184. /* PORTJ */
  185. gpio8: gpio8@1f860800 {
  186. compatible = "microchip,pic32mzda-gpio";
  187. reg = <0x1f860800 0x100>;
  188. interrupts = <126 IRQ_TYPE_LEVEL_HIGH>;
  189. #gpio-cells = <2>;
  190. gpio-controller;
  191. interrupt-controller;
  192. #interrupt-cells = <2>;
  193. clocks = <&rootclk PB4CLK>;
  194. microchip,gpio-bank = <8>;
  195. gpio-ranges = <&pic32_pinctrl 0 128 16>;
  196. };
  197. /* PORTK */
  198. gpio9: gpio9@1f860900 {
  199. compatible = "microchip,pic32mzda-gpio";
  200. reg = <0x1f860900 0x100>;
  201. interrupts = <127 IRQ_TYPE_LEVEL_HIGH>;
  202. #gpio-cells = <2>;
  203. gpio-controller;
  204. interrupt-controller;
  205. #interrupt-cells = <2>;
  206. clocks = <&rootclk PB4CLK>;
  207. microchip,gpio-bank = <9>;
  208. gpio-ranges = <&pic32_pinctrl 0 144 16>;
  209. };
  210. sdhci: sdhci@1f8ec000 {
  211. compatible = "microchip,pic32mzda-sdhci";
  212. reg = <0x1f8ec000 0x100>;
  213. interrupts = <191 IRQ_TYPE_LEVEL_HIGH>;
  214. clocks = <&rootclk REF4CLK>, <&rootclk PB5CLK>;
  215. clock-names = "base_clk", "sys_clk";
  216. bus-width = <4>;
  217. cap-sd-highspeed;
  218. status = "disabled";
  219. };
  220. uart1: serial@1f822000 {
  221. compatible = "microchip,pic32mzda-uart";
  222. reg = <0x1f822000 0x50>;
  223. interrupts = <112 IRQ_TYPE_LEVEL_HIGH>,
  224. <113 IRQ_TYPE_LEVEL_HIGH>,
  225. <114 IRQ_TYPE_LEVEL_HIGH>;
  226. clocks = <&rootclk PB2CLK>;
  227. status = "disabled";
  228. };
  229. uart2: serial@1f822200 {
  230. compatible = "microchip,pic32mzda-uart";
  231. reg = <0x1f822200 0x50>;
  232. interrupts = <145 IRQ_TYPE_LEVEL_HIGH>,
  233. <146 IRQ_TYPE_LEVEL_HIGH>,
  234. <147 IRQ_TYPE_LEVEL_HIGH>;
  235. clocks = <&rootclk PB2CLK>;
  236. status = "disabled";
  237. };
  238. uart3: serial@1f822400 {
  239. compatible = "microchip,pic32mzda-uart";
  240. reg = <0x1f822400 0x50>;
  241. interrupts = <157 IRQ_TYPE_LEVEL_HIGH>,
  242. <158 IRQ_TYPE_LEVEL_HIGH>,
  243. <159 IRQ_TYPE_LEVEL_HIGH>;
  244. clocks = <&rootclk PB2CLK>;
  245. status = "disabled";
  246. };
  247. uart4: serial@1f822600 {
  248. compatible = "microchip,pic32mzda-uart";
  249. reg = <0x1f822600 0x50>;
  250. interrupts = <170 IRQ_TYPE_LEVEL_HIGH>,
  251. <171 IRQ_TYPE_LEVEL_HIGH>,
  252. <172 IRQ_TYPE_LEVEL_HIGH>;
  253. clocks = <&rootclk PB2CLK>;
  254. status = "disabled";
  255. };
  256. uart5: serial@1f822800 {
  257. compatible = "microchip,pic32mzda-uart";
  258. reg = <0x1f822800 0x50>;
  259. interrupts = <179 IRQ_TYPE_LEVEL_HIGH>,
  260. <180 IRQ_TYPE_LEVEL_HIGH>,
  261. <181 IRQ_TYPE_LEVEL_HIGH>;
  262. clocks = <&rootclk PB2CLK>;
  263. status = "disabled";
  264. };
  265. uart6: serial@1f822A00 {
  266. compatible = "microchip,pic32mzda-uart";
  267. reg = <0x1f822A00 0x50>;
  268. interrupts = <188 IRQ_TYPE_LEVEL_HIGH>,
  269. <189 IRQ_TYPE_LEVEL_HIGH>,
  270. <190 IRQ_TYPE_LEVEL_HIGH>;
  271. clocks = <&rootclk PB2CLK>;
  272. status = "disabled";
  273. };
  274. };