sun6i-a31.dtsi 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107
  1. /*
  2. * Copyright 2013 Maxime Ripard
  3. *
  4. * Maxime Ripard <maxime.ripard@free-electrons.com>
  5. *
  6. * This file is dual-licensed: you can use it either under the terms
  7. * of the GPL or the X11 license, at your option. Note that this dual
  8. * licensing only applies to this file, and not this project as a
  9. * whole.
  10. *
  11. * a) This file is free software; you can redistribute it and/or
  12. * modify it under the terms of the GNU General Public License as
  13. * published by the Free Software Foundation; either version 2 of the
  14. * License, or (at your option) any later version.
  15. *
  16. * This file is distributed in the hope that it will be useful,
  17. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. * GNU General Public License for more details.
  20. *
  21. * Or, alternatively,
  22. *
  23. * b) Permission is hereby granted, free of charge, to any person
  24. * obtaining a copy of this software and associated documentation
  25. * files (the "Software"), to deal in the Software without
  26. * restriction, including without limitation the rights to use,
  27. * copy, modify, merge, publish, distribute, sublicense, and/or
  28. * sell copies of the Software, and to permit persons to whom the
  29. * Software is furnished to do so, subject to the following
  30. * conditions:
  31. *
  32. * The above copyright notice and this permission notice shall be
  33. * included in all copies or substantial portions of the Software.
  34. *
  35. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  36. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
  37. * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  38. * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
  39. * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
  40. * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
  41. * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
  42. * OTHER DEALINGS IN THE SOFTWARE.
  43. */
  44. #include "skeleton.dtsi"
  45. #include <dt-bindings/interrupt-controller/arm-gic.h>
  46. #include <dt-bindings/thermal/thermal.h>
  47. #include <dt-bindings/clock/sun6i-a31-ccu.h>
  48. #include <dt-bindings/pinctrl/sun4i-a10.h>
  49. #include <dt-bindings/reset/sun6i-a31-ccu.h>
  50. / {
  51. interrupt-parent = <&gic>;
  52. aliases {
  53. ethernet0 = &gmac;
  54. };
  55. chosen {
  56. #address-cells = <1>;
  57. #size-cells = <1>;
  58. ranges;
  59. simplefb_hdmi: framebuffer@0 {
  60. compatible = "allwinner,simple-framebuffer",
  61. "simple-framebuffer";
  62. allwinner,pipeline = "de_be0-lcd0-hdmi";
  63. clocks = <&ccu CLK_AHB1_BE0>, <&ccu CLK_AHB1_LCD0>,
  64. <&ccu CLK_AHB1_HDMI>, <&ccu CLK_DRAM_BE0>,
  65. <&ccu CLK_IEP_DRC0>, <&ccu CLK_BE0>,
  66. <&ccu CLK_LCD0_CH1>, <&ccu CLK_HDMI>;
  67. status = "disabled";
  68. };
  69. simplefb_lcd: framebuffer@1 {
  70. compatible = "allwinner,simple-framebuffer",
  71. "simple-framebuffer";
  72. allwinner,pipeline = "de_be0-lcd0";
  73. clocks = <&ccu CLK_AHB1_BE0>, <&ccu CLK_AHB1_LCD0>,
  74. <&ccu CLK_DRAM_BE0>, <&ccu CLK_IEP_DRC0>,
  75. <&ccu CLK_BE0>, <&ccu CLK_LCD0_CH0>;
  76. status = "disabled";
  77. };
  78. };
  79. timer {
  80. compatible = "arm,armv7-timer";
  81. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  82. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  83. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  84. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  85. clock-frequency = <24000000>;
  86. arm,cpu-registers-not-fw-configured;
  87. };
  88. cpus {
  89. enable-method = "allwinner,sun6i-a31";
  90. #address-cells = <1>;
  91. #size-cells = <0>;
  92. cpu0: cpu@0 {
  93. compatible = "arm,cortex-a7";
  94. device_type = "cpu";
  95. reg = <0>;
  96. clocks = <&ccu CLK_CPU>;
  97. clock-latency = <244144>; /* 8 32k periods */
  98. operating-points = <
  99. /* kHz uV */
  100. 1008000 1200000
  101. 864000 1200000
  102. 720000 1100000
  103. 480000 1000000
  104. >;
  105. #cooling-cells = <2>;
  106. cooling-min-level = <0>;
  107. cooling-max-level = <3>;
  108. };
  109. cpu@1 {
  110. compatible = "arm,cortex-a7";
  111. device_type = "cpu";
  112. reg = <1>;
  113. };
  114. cpu@2 {
  115. compatible = "arm,cortex-a7";
  116. device_type = "cpu";
  117. reg = <2>;
  118. };
  119. cpu@3 {
  120. compatible = "arm,cortex-a7";
  121. device_type = "cpu";
  122. reg = <3>;
  123. };
  124. };
  125. thermal-zones {
  126. cpu_thermal {
  127. /* milliseconds */
  128. polling-delay-passive = <250>;
  129. polling-delay = <1000>;
  130. thermal-sensors = <&rtp>;
  131. cooling-maps {
  132. map0 {
  133. trip = <&cpu_alert0>;
  134. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  135. };
  136. };
  137. trips {
  138. cpu_alert0: cpu_alert0 {
  139. /* milliCelsius */
  140. temperature = <70000>;
  141. hysteresis = <2000>;
  142. type = "passive";
  143. };
  144. cpu_crit: cpu_crit {
  145. /* milliCelsius */
  146. temperature = <100000>;
  147. hysteresis = <2000>;
  148. type = "critical";
  149. };
  150. };
  151. };
  152. };
  153. memory {
  154. reg = <0x40000000 0x80000000>;
  155. };
  156. pmu {
  157. compatible = "arm,cortex-a7-pmu", "arm,cortex-a15-pmu";
  158. interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
  159. <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
  160. <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
  161. <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
  162. };
  163. clocks {
  164. #address-cells = <1>;
  165. #size-cells = <1>;
  166. ranges;
  167. osc24M: osc24M {
  168. #clock-cells = <0>;
  169. compatible = "fixed-clock";
  170. clock-frequency = <24000000>;
  171. };
  172. osc32k: clk@0 {
  173. #clock-cells = <0>;
  174. compatible = "fixed-clock";
  175. clock-frequency = <32768>;
  176. clock-output-names = "osc32k";
  177. };
  178. /*
  179. * The following two are dummy clocks, placeholders
  180. * used in the gmac_tx clock. The gmac driver will
  181. * choose one parent depending on the PHY interface
  182. * mode, using clk_set_rate auto-reparenting.
  183. *
  184. * The actual TX clock rate is not controlled by the
  185. * gmac_tx clock.
  186. */
  187. mii_phy_tx_clk: clk@1 {
  188. #clock-cells = <0>;
  189. compatible = "fixed-clock";
  190. clock-frequency = <25000000>;
  191. clock-output-names = "mii_phy_tx";
  192. };
  193. gmac_int_tx_clk: clk@2 {
  194. #clock-cells = <0>;
  195. compatible = "fixed-clock";
  196. clock-frequency = <125000000>;
  197. clock-output-names = "gmac_int_tx";
  198. };
  199. gmac_tx_clk: clk@01c200d0 {
  200. #clock-cells = <0>;
  201. compatible = "allwinner,sun7i-a20-gmac-clk";
  202. reg = <0x01c200d0 0x4>;
  203. clocks = <&mii_phy_tx_clk>, <&gmac_int_tx_clk>;
  204. clock-output-names = "gmac_tx";
  205. };
  206. };
  207. de: display-engine {
  208. compatible = "allwinner,sun6i-a31-display-engine";
  209. allwinner,pipelines = <&fe0>;
  210. status = "disabled";
  211. };
  212. soc@01c00000 {
  213. compatible = "simple-bus";
  214. #address-cells = <1>;
  215. #size-cells = <1>;
  216. ranges;
  217. dma: dma-controller@01c02000 {
  218. compatible = "allwinner,sun6i-a31-dma";
  219. reg = <0x01c02000 0x1000>;
  220. interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
  221. clocks = <&ccu CLK_AHB1_DMA>;
  222. resets = <&ccu RST_AHB1_DMA>;
  223. #dma-cells = <1>;
  224. };
  225. tcon0: lcd-controller@01c0c000 {
  226. compatible = "allwinner,sun6i-a31-tcon";
  227. reg = <0x01c0c000 0x1000>;
  228. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
  229. resets = <&ccu RST_AHB1_LCD0>;
  230. reset-names = "lcd";
  231. clocks = <&ccu CLK_AHB1_LCD0>,
  232. <&ccu CLK_LCD0_CH0>,
  233. <&ccu CLK_LCD0_CH1>;
  234. clock-names = "ahb",
  235. "tcon-ch0",
  236. "tcon-ch1";
  237. clock-output-names = "tcon0-pixel-clock";
  238. status = "disabled";
  239. ports {
  240. #address-cells = <1>;
  241. #size-cells = <0>;
  242. tcon0_in: port@0 {
  243. #address-cells = <1>;
  244. #size-cells = <0>;
  245. reg = <0>;
  246. tcon0_in_drc0: endpoint@0 {
  247. reg = <0>;
  248. remote-endpoint = <&drc0_out_tcon0>;
  249. };
  250. };
  251. tcon0_out: port@1 {
  252. #address-cells = <1>;
  253. #size-cells = <0>;
  254. reg = <1>;
  255. };
  256. };
  257. };
  258. mmc0: mmc@01c0f000 {
  259. compatible = "allwinner,sun7i-a20-mmc";
  260. reg = <0x01c0f000 0x1000>;
  261. clocks = <&ccu CLK_AHB1_MMC0>,
  262. <&ccu CLK_MMC0>,
  263. <&ccu CLK_MMC0_OUTPUT>,
  264. <&ccu CLK_MMC0_SAMPLE>;
  265. clock-names = "ahb",
  266. "mmc",
  267. "output",
  268. "sample";
  269. resets = <&ccu RST_AHB1_MMC0>;
  270. reset-names = "ahb";
  271. interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
  272. status = "disabled";
  273. #address-cells = <1>;
  274. #size-cells = <0>;
  275. };
  276. mmc1: mmc@01c10000 {
  277. compatible = "allwinner,sun7i-a20-mmc";
  278. reg = <0x01c10000 0x1000>;
  279. clocks = <&ccu CLK_AHB1_MMC1>,
  280. <&ccu CLK_MMC1>,
  281. <&ccu CLK_MMC1_OUTPUT>,
  282. <&ccu CLK_MMC1_SAMPLE>;
  283. clock-names = "ahb",
  284. "mmc",
  285. "output",
  286. "sample";
  287. resets = <&ccu RST_AHB1_MMC1>;
  288. reset-names = "ahb";
  289. interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
  290. status = "disabled";
  291. #address-cells = <1>;
  292. #size-cells = <0>;
  293. };
  294. mmc2: mmc@01c11000 {
  295. compatible = "allwinner,sun7i-a20-mmc";
  296. reg = <0x01c11000 0x1000>;
  297. clocks = <&ccu CLK_AHB1_MMC2>,
  298. <&ccu CLK_MMC2>,
  299. <&ccu CLK_MMC2_OUTPUT>,
  300. <&ccu CLK_MMC2_SAMPLE>;
  301. clock-names = "ahb",
  302. "mmc",
  303. "output",
  304. "sample";
  305. resets = <&ccu RST_AHB1_MMC2>;
  306. reset-names = "ahb";
  307. interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
  308. status = "disabled";
  309. #address-cells = <1>;
  310. #size-cells = <0>;
  311. };
  312. mmc3: mmc@01c12000 {
  313. compatible = "allwinner,sun7i-a20-mmc";
  314. reg = <0x01c12000 0x1000>;
  315. clocks = <&ccu CLK_AHB1_MMC3>,
  316. <&ccu CLK_MMC3>,
  317. <&ccu CLK_MMC3_OUTPUT>,
  318. <&ccu CLK_MMC3_SAMPLE>;
  319. clock-names = "ahb",
  320. "mmc",
  321. "output",
  322. "sample";
  323. resets = <&ccu RST_AHB1_MMC3>;
  324. reset-names = "ahb";
  325. interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
  326. status = "disabled";
  327. #address-cells = <1>;
  328. #size-cells = <0>;
  329. };
  330. usb_otg: usb@01c19000 {
  331. compatible = "allwinner,sun6i-a31-musb";
  332. reg = <0x01c19000 0x0400>;
  333. clocks = <&ccu CLK_AHB1_OTG>;
  334. resets = <&ccu RST_AHB1_OTG>;
  335. interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
  336. interrupt-names = "mc";
  337. phys = <&usbphy 0>;
  338. phy-names = "usb";
  339. extcon = <&usbphy 0>;
  340. status = "disabled";
  341. };
  342. usbphy: phy@01c19400 {
  343. compatible = "allwinner,sun6i-a31-usb-phy";
  344. reg = <0x01c19400 0x10>,
  345. <0x01c1a800 0x4>,
  346. <0x01c1b800 0x4>;
  347. reg-names = "phy_ctrl",
  348. "pmu1",
  349. "pmu2";
  350. clocks = <&ccu CLK_USB_PHY0>,
  351. <&ccu CLK_USB_PHY1>,
  352. <&ccu CLK_USB_PHY2>;
  353. clock-names = "usb0_phy",
  354. "usb1_phy",
  355. "usb2_phy";
  356. resets = <&ccu RST_USB_PHY0>,
  357. <&ccu RST_USB_PHY1>,
  358. <&ccu RST_USB_PHY2>;
  359. reset-names = "usb0_reset",
  360. "usb1_reset",
  361. "usb2_reset";
  362. status = "disabled";
  363. #phy-cells = <1>;
  364. };
  365. ehci0: usb@01c1a000 {
  366. compatible = "allwinner,sun6i-a31-ehci", "generic-ehci";
  367. reg = <0x01c1a000 0x100>;
  368. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
  369. clocks = <&ccu CLK_AHB1_EHCI0>;
  370. resets = <&ccu RST_AHB1_EHCI0>;
  371. phys = <&usbphy 1>;
  372. phy-names = "usb";
  373. status = "disabled";
  374. };
  375. ohci0: usb@01c1a400 {
  376. compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
  377. reg = <0x01c1a400 0x100>;
  378. interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
  379. clocks = <&ccu CLK_AHB1_OHCI0>, <&ccu CLK_USB_OHCI0>;
  380. resets = <&ccu RST_AHB1_OHCI0>;
  381. phys = <&usbphy 1>;
  382. phy-names = "usb";
  383. status = "disabled";
  384. };
  385. ehci1: usb@01c1b000 {
  386. compatible = "allwinner,sun6i-a31-ehci", "generic-ehci";
  387. reg = <0x01c1b000 0x100>;
  388. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
  389. clocks = <&ccu CLK_AHB1_EHCI1>;
  390. resets = <&ccu RST_AHB1_EHCI1>;
  391. phys = <&usbphy 2>;
  392. phy-names = "usb";
  393. status = "disabled";
  394. };
  395. ohci1: usb@01c1b400 {
  396. compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
  397. reg = <0x01c1b400 0x100>;
  398. interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
  399. clocks = <&ccu CLK_AHB1_OHCI1>, <&ccu CLK_USB_OHCI1>;
  400. resets = <&ccu RST_AHB1_OHCI1>;
  401. phys = <&usbphy 2>;
  402. phy-names = "usb";
  403. status = "disabled";
  404. };
  405. ohci2: usb@01c1c400 {
  406. compatible = "allwinner,sun6i-a31-ohci", "generic-ohci";
  407. reg = <0x01c1c400 0x100>;
  408. interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
  409. clocks = <&ccu CLK_AHB1_OHCI2>, <&ccu CLK_USB_OHCI2>;
  410. resets = <&ccu RST_AHB1_OHCI2>;
  411. status = "disabled";
  412. };
  413. ccu: clock@01c20000 {
  414. compatible = "allwinner,sun6i-a31-ccu";
  415. reg = <0x01c20000 0x400>;
  416. clocks = <&osc24M>, <&osc32k>;
  417. clock-names = "hosc", "losc";
  418. #clock-cells = <1>;
  419. #reset-cells = <1>;
  420. };
  421. pio: pinctrl@01c20800 {
  422. compatible = "allwinner,sun6i-a31-pinctrl";
  423. reg = <0x01c20800 0x400>;
  424. interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
  425. <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
  426. <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
  427. <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
  428. clocks = <&ccu CLK_APB1_PIO>, <&osc24M>, <&osc32k>;
  429. clock-names = "apb", "hosc", "losc";
  430. gpio-controller;
  431. interrupt-controller;
  432. #interrupt-cells = <3>;
  433. #gpio-cells = <3>;
  434. gmac_pins_gmii_a: gmac_gmii@0 {
  435. allwinner,pins = "PA0", "PA1", "PA2", "PA3",
  436. "PA4", "PA5", "PA6", "PA7",
  437. "PA8", "PA9", "PA10", "PA11",
  438. "PA12", "PA13", "PA14", "PA15",
  439. "PA16", "PA17", "PA18", "PA19",
  440. "PA20", "PA21", "PA22", "PA23",
  441. "PA24", "PA25", "PA26", "PA27";
  442. allwinner,function = "gmac";
  443. /*
  444. * data lines in GMII mode run at 125MHz and
  445. * might need a higher signal drive strength
  446. */
  447. allwinner,drive = <SUN4I_PINCTRL_30_MA>;
  448. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  449. };
  450. gmac_pins_mii_a: gmac_mii@0 {
  451. allwinner,pins = "PA0", "PA1", "PA2", "PA3",
  452. "PA8", "PA9", "PA11",
  453. "PA12", "PA13", "PA14", "PA19",
  454. "PA20", "PA21", "PA22", "PA23",
  455. "PA24", "PA26", "PA27";
  456. allwinner,function = "gmac";
  457. allwinner,drive = <SUN4I_PINCTRL_10_MA>;
  458. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  459. };
  460. gmac_pins_rgmii_a: gmac_rgmii@0 {
  461. allwinner,pins = "PA0", "PA1", "PA2", "PA3",
  462. "PA9", "PA10", "PA11",
  463. "PA12", "PA13", "PA14", "PA19",
  464. "PA20", "PA25", "PA26", "PA27";
  465. allwinner,function = "gmac";
  466. /*
  467. * data lines in RGMII mode use DDR mode
  468. * and need a higher signal drive strength
  469. */
  470. allwinner,drive = <SUN4I_PINCTRL_40_MA>;
  471. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  472. };
  473. i2c0_pins_a: i2c0@0 {
  474. allwinner,pins = "PH14", "PH15";
  475. allwinner,function = "i2c0";
  476. allwinner,drive = <SUN4I_PINCTRL_10_MA>;
  477. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  478. };
  479. i2c1_pins_a: i2c1@0 {
  480. allwinner,pins = "PH16", "PH17";
  481. allwinner,function = "i2c1";
  482. allwinner,drive = <SUN4I_PINCTRL_10_MA>;
  483. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  484. };
  485. i2c2_pins_a: i2c2@0 {
  486. allwinner,pins = "PH18", "PH19";
  487. allwinner,function = "i2c2";
  488. allwinner,drive = <SUN4I_PINCTRL_10_MA>;
  489. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  490. };
  491. lcd0_rgb888_pins: lcd0_rgb888 {
  492. allwinner,pins = "PD0", "PD1", "PD2", "PD3",
  493. "PD4", "PD5", "PD6", "PD7",
  494. "PD8", "PD9", "PD10", "PD11",
  495. "PD12", "PD13", "PD14", "PD15",
  496. "PD16", "PD17", "PD18", "PD19",
  497. "PD20", "PD21", "PD22", "PD23",
  498. "PD24", "PD25", "PD26", "PD27";
  499. allwinner,function = "lcd0";
  500. allwinner,drive = <SUN4I_PINCTRL_10_MA>;
  501. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  502. };
  503. mmc0_pins_a: mmc0@0 {
  504. allwinner,pins = "PF0", "PF1", "PF2",
  505. "PF3", "PF4", "PF5";
  506. allwinner,function = "mmc0";
  507. allwinner,drive = <SUN4I_PINCTRL_30_MA>;
  508. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  509. };
  510. mmc1_pins_a: mmc1@0 {
  511. allwinner,pins = "PG0", "PG1", "PG2", "PG3",
  512. "PG4", "PG5";
  513. allwinner,function = "mmc1";
  514. allwinner,drive = <SUN4I_PINCTRL_30_MA>;
  515. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  516. };
  517. mmc2_pins_a: mmc2@0 {
  518. allwinner,pins = "PC6", "PC7", "PC8", "PC9",
  519. "PC10", "PC11";
  520. allwinner,function = "mmc2";
  521. allwinner,drive = <SUN4I_PINCTRL_30_MA>;
  522. allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
  523. };
  524. mmc2_8bit_emmc_pins: mmc2@1 {
  525. allwinner,pins = "PC6", "PC7", "PC8", "PC9",
  526. "PC10", "PC11", "PC12",
  527. "PC13", "PC14", "PC15",
  528. "PC24";
  529. allwinner,function = "mmc2";
  530. allwinner,drive = <SUN4I_PINCTRL_30_MA>;
  531. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  532. };
  533. mmc3_8bit_emmc_pins: mmc3@1 {
  534. allwinner,pins = "PC6", "PC7", "PC8", "PC9",
  535. "PC10", "PC11", "PC12",
  536. "PC13", "PC14", "PC15",
  537. "PC24";
  538. allwinner,function = "mmc3";
  539. allwinner,drive = <SUN4I_PINCTRL_40_MA>;
  540. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  541. };
  542. uart0_pins_a: uart0@0 {
  543. allwinner,pins = "PH20", "PH21";
  544. allwinner,function = "uart0";
  545. allwinner,drive = <SUN4I_PINCTRL_10_MA>;
  546. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  547. };
  548. };
  549. timer@01c20c00 {
  550. compatible = "allwinner,sun4i-a10-timer";
  551. reg = <0x01c20c00 0xa0>;
  552. interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
  553. <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
  554. <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
  555. <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
  556. <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
  557. clocks = <&osc24M>;
  558. };
  559. wdt1: watchdog@01c20ca0 {
  560. compatible = "allwinner,sun6i-a31-wdt";
  561. reg = <0x01c20ca0 0x20>;
  562. };
  563. lradc: lradc@01c22800 {
  564. compatible = "allwinner,sun4i-a10-lradc-keys";
  565. reg = <0x01c22800 0x100>;
  566. interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
  567. status = "disabled";
  568. };
  569. rtp: rtp@01c25000 {
  570. compatible = "allwinner,sun6i-a31-ts";
  571. reg = <0x01c25000 0x100>;
  572. interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
  573. #thermal-sensor-cells = <0>;
  574. };
  575. uart0: serial@01c28000 {
  576. compatible = "snps,dw-apb-uart";
  577. reg = <0x01c28000 0x400>;
  578. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
  579. reg-shift = <2>;
  580. reg-io-width = <4>;
  581. clocks = <&ccu CLK_APB2_UART0>;
  582. resets = <&ccu RST_APB2_UART0>;
  583. dmas = <&dma 6>, <&dma 6>;
  584. dma-names = "rx", "tx";
  585. status = "disabled";
  586. };
  587. uart1: serial@01c28400 {
  588. compatible = "snps,dw-apb-uart";
  589. reg = <0x01c28400 0x400>;
  590. interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
  591. reg-shift = <2>;
  592. reg-io-width = <4>;
  593. clocks = <&ccu CLK_APB2_UART1>;
  594. resets = <&ccu RST_APB2_UART1>;
  595. dmas = <&dma 7>, <&dma 7>;
  596. dma-names = "rx", "tx";
  597. status = "disabled";
  598. };
  599. uart2: serial@01c28800 {
  600. compatible = "snps,dw-apb-uart";
  601. reg = <0x01c28800 0x400>;
  602. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
  603. reg-shift = <2>;
  604. reg-io-width = <4>;
  605. clocks = <&ccu CLK_APB2_UART2>;
  606. resets = <&ccu RST_APB2_UART2>;
  607. dmas = <&dma 8>, <&dma 8>;
  608. dma-names = "rx", "tx";
  609. status = "disabled";
  610. };
  611. uart3: serial@01c28c00 {
  612. compatible = "snps,dw-apb-uart";
  613. reg = <0x01c28c00 0x400>;
  614. interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
  615. reg-shift = <2>;
  616. reg-io-width = <4>;
  617. clocks = <&ccu CLK_APB2_UART3>;
  618. resets = <&ccu RST_APB2_UART3>;
  619. dmas = <&dma 9>, <&dma 9>;
  620. dma-names = "rx", "tx";
  621. status = "disabled";
  622. };
  623. uart4: serial@01c29000 {
  624. compatible = "snps,dw-apb-uart";
  625. reg = <0x01c29000 0x400>;
  626. interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
  627. reg-shift = <2>;
  628. reg-io-width = <4>;
  629. clocks = <&ccu CLK_APB2_UART4>;
  630. resets = <&ccu RST_APB2_UART4>;
  631. dmas = <&dma 10>, <&dma 10>;
  632. dma-names = "rx", "tx";
  633. status = "disabled";
  634. };
  635. uart5: serial@01c29400 {
  636. compatible = "snps,dw-apb-uart";
  637. reg = <0x01c29400 0x400>;
  638. interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
  639. reg-shift = <2>;
  640. reg-io-width = <4>;
  641. clocks = <&ccu CLK_APB2_UART5>;
  642. resets = <&ccu RST_APB2_UART5>;
  643. dmas = <&dma 22>, <&dma 22>;
  644. dma-names = "rx", "tx";
  645. status = "disabled";
  646. };
  647. i2c0: i2c@01c2ac00 {
  648. compatible = "allwinner,sun6i-a31-i2c";
  649. reg = <0x01c2ac00 0x400>;
  650. interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
  651. clocks = <&ccu CLK_APB2_I2C0>;
  652. resets = <&ccu RST_APB2_I2C0>;
  653. status = "disabled";
  654. #address-cells = <1>;
  655. #size-cells = <0>;
  656. };
  657. i2c1: i2c@01c2b000 {
  658. compatible = "allwinner,sun6i-a31-i2c";
  659. reg = <0x01c2b000 0x400>;
  660. interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
  661. clocks = <&ccu CLK_APB2_I2C1>;
  662. resets = <&ccu RST_APB2_I2C1>;
  663. status = "disabled";
  664. #address-cells = <1>;
  665. #size-cells = <0>;
  666. };
  667. i2c2: i2c@01c2b400 {
  668. compatible = "allwinner,sun6i-a31-i2c";
  669. reg = <0x01c2b400 0x400>;
  670. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
  671. clocks = <&ccu CLK_APB2_I2C2>;
  672. resets = <&ccu RST_APB2_I2C2>;
  673. status = "disabled";
  674. #address-cells = <1>;
  675. #size-cells = <0>;
  676. };
  677. i2c3: i2c@01c2b800 {
  678. compatible = "allwinner,sun6i-a31-i2c";
  679. reg = <0x01c2b800 0x400>;
  680. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  681. clocks = <&ccu CLK_APB2_I2C3>;
  682. resets = <&ccu RST_APB2_I2C3>;
  683. status = "disabled";
  684. #address-cells = <1>;
  685. #size-cells = <0>;
  686. };
  687. gmac: ethernet@01c30000 {
  688. compatible = "allwinner,sun7i-a20-gmac";
  689. reg = <0x01c30000 0x1054>;
  690. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
  691. interrupt-names = "macirq";
  692. clocks = <&ccu CLK_AHB1_EMAC>, <&gmac_tx_clk>;
  693. clock-names = "stmmaceth", "allwinner_gmac_tx";
  694. resets = <&ccu RST_AHB1_EMAC>;
  695. reset-names = "stmmaceth";
  696. snps,pbl = <2>;
  697. snps,fixed-burst;
  698. snps,force_sf_dma_mode;
  699. status = "disabled";
  700. #address-cells = <1>;
  701. #size-cells = <0>;
  702. };
  703. crypto: crypto-engine@01c15000 {
  704. compatible = "allwinner,sun4i-a10-crypto";
  705. reg = <0x01c15000 0x1000>;
  706. interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
  707. clocks = <&ccu CLK_AHB1_SS>, <&ccu CLK_SS>;
  708. clock-names = "ahb", "mod";
  709. resets = <&ccu RST_AHB1_SS>;
  710. reset-names = "ahb";
  711. };
  712. codec: codec@01c22c00 {
  713. #sound-dai-cells = <0>;
  714. compatible = "allwinner,sun6i-a31-codec";
  715. reg = <0x01c22c00 0x400>;
  716. interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
  717. clocks = <&ccu CLK_APB1_CODEC>, <&ccu CLK_CODEC>;
  718. clock-names = "apb", "codec";
  719. resets = <&ccu RST_APB1_CODEC>;
  720. dmas = <&dma 15>, <&dma 15>;
  721. dma-names = "rx", "tx";
  722. status = "disabled";
  723. };
  724. timer@01c60000 {
  725. compatible = "allwinner,sun6i-a31-hstimer",
  726. "allwinner,sun7i-a20-hstimer";
  727. reg = <0x01c60000 0x1000>;
  728. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>,
  729. <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
  730. <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
  731. <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
  732. clocks = <&ccu CLK_AHB1_HSTIMER>;
  733. resets = <&ccu RST_AHB1_HSTIMER>;
  734. };
  735. spi0: spi@01c68000 {
  736. compatible = "allwinner,sun6i-a31-spi";
  737. reg = <0x01c68000 0x1000>;
  738. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
  739. clocks = <&ccu CLK_AHB1_SPI0>, <&ccu CLK_SPI0>;
  740. clock-names = "ahb", "mod";
  741. dmas = <&dma 23>, <&dma 23>;
  742. dma-names = "rx", "tx";
  743. resets = <&ccu RST_AHB1_SPI0>;
  744. status = "disabled";
  745. };
  746. spi1: spi@01c69000 {
  747. compatible = "allwinner,sun6i-a31-spi";
  748. reg = <0x01c69000 0x1000>;
  749. interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
  750. clocks = <&ccu CLK_AHB1_SPI1>, <&ccu CLK_SPI1>;
  751. clock-names = "ahb", "mod";
  752. dmas = <&dma 24>, <&dma 24>;
  753. dma-names = "rx", "tx";
  754. resets = <&ccu RST_AHB1_SPI1>;
  755. status = "disabled";
  756. };
  757. spi2: spi@01c6a000 {
  758. compatible = "allwinner,sun6i-a31-spi";
  759. reg = <0x01c6a000 0x1000>;
  760. interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
  761. clocks = <&ccu CLK_AHB1_SPI2>, <&ccu CLK_SPI2>;
  762. clock-names = "ahb", "mod";
  763. dmas = <&dma 25>, <&dma 25>;
  764. dma-names = "rx", "tx";
  765. resets = <&ccu RST_AHB1_SPI2>;
  766. status = "disabled";
  767. };
  768. spi3: spi@01c6b000 {
  769. compatible = "allwinner,sun6i-a31-spi";
  770. reg = <0x01c6b000 0x1000>;
  771. interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
  772. clocks = <&ccu CLK_AHB1_SPI3>, <&ccu CLK_SPI3>;
  773. clock-names = "ahb", "mod";
  774. dmas = <&dma 26>, <&dma 26>;
  775. dma-names = "rx", "tx";
  776. resets = <&ccu RST_AHB1_SPI3>;
  777. status = "disabled";
  778. };
  779. gic: interrupt-controller@01c81000 {
  780. compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
  781. reg = <0x01c81000 0x1000>,
  782. <0x01c82000 0x1000>,
  783. <0x01c84000 0x2000>,
  784. <0x01c86000 0x2000>;
  785. interrupt-controller;
  786. #interrupt-cells = <3>;
  787. interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  788. };
  789. fe0: display-frontend@01e00000 {
  790. compatible = "allwinner,sun6i-a31-display-frontend";
  791. reg = <0x01e00000 0x20000>;
  792. interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
  793. clocks = <&ccu CLK_AHB1_FE0>, <&ccu CLK_FE0>,
  794. <&ccu CLK_DRAM_FE0>;
  795. clock-names = "ahb", "mod",
  796. "ram";
  797. resets = <&ccu RST_AHB1_FE0>;
  798. ports {
  799. #address-cells = <1>;
  800. #size-cells = <0>;
  801. fe0_out: port@1 {
  802. #address-cells = <1>;
  803. #size-cells = <0>;
  804. reg = <1>;
  805. fe0_out_be0: endpoint@0 {
  806. reg = <0>;
  807. remote-endpoint = <&be0_in_fe0>;
  808. };
  809. };
  810. };
  811. };
  812. be0: display-backend@01e60000 {
  813. compatible = "allwinner,sun6i-a31-display-backend";
  814. reg = <0x01e60000 0x10000>;
  815. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  816. clocks = <&ccu CLK_AHB1_BE0>, <&ccu CLK_BE0>,
  817. <&ccu CLK_DRAM_BE0>;
  818. clock-names = "ahb", "mod",
  819. "ram";
  820. resets = <&ccu RST_AHB1_BE0>;
  821. assigned-clocks = <&ccu CLK_BE0>;
  822. assigned-clock-rates = <300000000>;
  823. ports {
  824. #address-cells = <1>;
  825. #size-cells = <0>;
  826. be0_in: port@0 {
  827. #address-cells = <1>;
  828. #size-cells = <0>;
  829. reg = <0>;
  830. be0_in_fe0: endpoint@0 {
  831. reg = <0>;
  832. remote-endpoint = <&fe0_out_be0>;
  833. };
  834. };
  835. be0_out: port@1 {
  836. #address-cells = <1>;
  837. #size-cells = <0>;
  838. reg = <1>;
  839. be0_out_drc0: endpoint@0 {
  840. reg = <0>;
  841. remote-endpoint = <&drc0_in_be0>;
  842. };
  843. };
  844. };
  845. };
  846. drc0: drc@01e70000 {
  847. compatible = "allwinner,sun6i-a31-drc";
  848. reg = <0x01e70000 0x10000>;
  849. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
  850. clocks = <&ccu CLK_AHB1_DRC0>, <&ccu CLK_IEP_DRC0>,
  851. <&ccu CLK_DRAM_DRC0>;
  852. clock-names = "ahb", "mod",
  853. "ram";
  854. resets = <&ccu RST_AHB1_DRC0>;
  855. assigned-clocks = <&ccu CLK_IEP_DRC0>;
  856. assigned-clock-rates = <300000000>;
  857. ports {
  858. #address-cells = <1>;
  859. #size-cells = <0>;
  860. drc0_in: port@0 {
  861. #address-cells = <1>;
  862. #size-cells = <0>;
  863. reg = <0>;
  864. drc0_in_be0: endpoint@0 {
  865. reg = <0>;
  866. remote-endpoint = <&be0_out_drc0>;
  867. };
  868. };
  869. drc0_out: port@1 {
  870. #address-cells = <1>;
  871. #size-cells = <0>;
  872. reg = <1>;
  873. drc0_out_tcon0: endpoint@0 {
  874. reg = <0>;
  875. remote-endpoint = <&tcon0_in_drc0>;
  876. };
  877. };
  878. };
  879. };
  880. rtc: rtc@01f00000 {
  881. compatible = "allwinner,sun6i-a31-rtc";
  882. reg = <0x01f00000 0x54>;
  883. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>,
  884. <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
  885. };
  886. nmi_intc: interrupt-controller@01f00c0c {
  887. compatible = "allwinner,sun6i-a31-sc-nmi";
  888. interrupt-controller;
  889. #interrupt-cells = <2>;
  890. reg = <0x01f00c0c 0x38>;
  891. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  892. };
  893. prcm@01f01400 {
  894. compatible = "allwinner,sun6i-a31-prcm";
  895. reg = <0x01f01400 0x200>;
  896. ar100: ar100_clk {
  897. compatible = "allwinner,sun6i-a31-ar100-clk";
  898. #clock-cells = <0>;
  899. clocks = <&osc32k>, <&osc24M>,
  900. <&ccu CLK_PLL_PERIPH>,
  901. <&ccu CLK_PLL_PERIPH>;
  902. clock-output-names = "ar100";
  903. };
  904. ahb0: ahb0_clk {
  905. compatible = "fixed-factor-clock";
  906. #clock-cells = <0>;
  907. clock-div = <1>;
  908. clock-mult = <1>;
  909. clocks = <&ar100>;
  910. clock-output-names = "ahb0";
  911. };
  912. apb0: apb0_clk {
  913. compatible = "allwinner,sun6i-a31-apb0-clk";
  914. #clock-cells = <0>;
  915. clocks = <&ahb0>;
  916. clock-output-names = "apb0";
  917. };
  918. apb0_gates: apb0_gates_clk {
  919. compatible = "allwinner,sun6i-a31-apb0-gates-clk";
  920. #clock-cells = <1>;
  921. clocks = <&apb0>;
  922. clock-output-names = "apb0_pio", "apb0_ir",
  923. "apb0_timer", "apb0_p2wi",
  924. "apb0_uart", "apb0_1wire",
  925. "apb0_i2c";
  926. };
  927. ir_clk: ir_clk {
  928. #clock-cells = <0>;
  929. compatible = "allwinner,sun4i-a10-mod0-clk";
  930. clocks = <&osc32k>, <&osc24M>;
  931. clock-output-names = "ir";
  932. };
  933. apb0_rst: apb0_rst {
  934. compatible = "allwinner,sun6i-a31-clock-reset";
  935. #reset-cells = <1>;
  936. };
  937. };
  938. cpucfg@01f01c00 {
  939. compatible = "allwinner,sun6i-a31-cpuconfig";
  940. reg = <0x01f01c00 0x300>;
  941. };
  942. ir: ir@01f02000 {
  943. compatible = "allwinner,sun5i-a13-ir";
  944. clocks = <&apb0_gates 1>, <&ir_clk>;
  945. clock-names = "apb", "ir";
  946. resets = <&apb0_rst 1>;
  947. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  948. reg = <0x01f02000 0x40>;
  949. status = "disabled";
  950. };
  951. r_pio: pinctrl@01f02c00 {
  952. compatible = "allwinner,sun6i-a31-r-pinctrl";
  953. reg = <0x01f02c00 0x400>;
  954. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>,
  955. <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  956. clocks = <&apb0_gates 0>, <&osc24M>, <&osc32k>;
  957. clock-names = "apb", "hosc", "losc";
  958. resets = <&apb0_rst 0>;
  959. gpio-controller;
  960. interrupt-controller;
  961. #interrupt-cells = <3>;
  962. #size-cells = <0>;
  963. #gpio-cells = <3>;
  964. ir_pins_a: ir@0 {
  965. allwinner,pins = "PL4";
  966. allwinner,function = "s_ir";
  967. allwinner,drive = <SUN4I_PINCTRL_10_MA>;
  968. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  969. };
  970. p2wi_pins: p2wi {
  971. allwinner,pins = "PL0", "PL1";
  972. allwinner,function = "s_p2wi";
  973. allwinner,drive = <SUN4I_PINCTRL_10_MA>;
  974. allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
  975. };
  976. };
  977. p2wi: i2c@01f03400 {
  978. compatible = "allwinner,sun6i-a31-p2wi";
  979. reg = <0x01f03400 0x400>;
  980. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  981. clocks = <&apb0_gates 3>;
  982. clock-frequency = <100000>;
  983. resets = <&apb0_rst 3>;
  984. pinctrl-names = "default";
  985. pinctrl-0 = <&p2wi_pins>;
  986. status = "disabled";
  987. #address-cells = <1>;
  988. #size-cells = <0>;
  989. };
  990. };
  991. };