lan966x.dtsi 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * lan966x.dtsi - Device Tree Include file for Microchip LAN966 family SoC
  4. *
  5. * Copyright (C) 2021 Microchip Technology, Inc. and its subsidiaries
  6. *
  7. * Author: Kavyasree Kotagiri <[email protected]>
  8. *
  9. */
  10. #include <dt-bindings/interrupt-controller/irq.h>
  11. #include <dt-bindings/interrupt-controller/arm-gic.h>
  12. #include <dt-bindings/mfd/atmel-flexcom.h>
  13. #include <dt-bindings/dma/at91.h>
  14. #include <dt-bindings/gpio/gpio.h>
  15. #include <dt-bindings/clock/microchip,lan966x.h>
  16. / {
  17. model = "Microchip LAN966 family SoC";
  18. compatible = "microchip,lan966";
  19. interrupt-parent = <&gic>;
  20. #address-cells = <1>;
  21. #size-cells = <1>;
  22. cpus {
  23. #address-cells = <1>;
  24. #size-cells = <0>;
  25. cpu@0 {
  26. device_type = "cpu";
  27. compatible = "arm,cortex-a7";
  28. clock-frequency = <600000000>;
  29. reg = <0x0>;
  30. };
  31. };
  32. clocks {
  33. sys_clk: sys_clk {
  34. compatible = "fixed-clock";
  35. #clock-cells = <0>;
  36. clock-frequency = <165625000>;
  37. };
  38. cpu_clk: cpu_clk {
  39. compatible = "fixed-clock";
  40. #clock-cells = <0>;
  41. clock-frequency = <600000000>;
  42. };
  43. ddr_clk: ddr_clk {
  44. compatible = "fixed-clock";
  45. #clock-cells = <0>;
  46. clock-frequency = <300000000>;
  47. };
  48. nic_clk: nic_clk {
  49. compatible = "fixed-clock";
  50. #clock-cells = <0>;
  51. clock-frequency = <200000000>;
  52. };
  53. };
  54. clks: clock-controller@e00c00a8 {
  55. compatible = "microchip,lan966x-gck";
  56. #clock-cells = <1>;
  57. clocks = <&cpu_clk>, <&ddr_clk>, <&sys_clk>;
  58. clock-names = "cpu", "ddr", "sys";
  59. reg = <0xe00c00a8 0x38>, <0xe00c02cc 0x4>;
  60. };
  61. timer {
  62. compatible = "arm,armv7-timer";
  63. interrupt-parent = <&gic>;
  64. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
  65. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
  66. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>,
  67. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(1) | IRQ_TYPE_LEVEL_LOW)>;
  68. clock-frequency = <37500000>;
  69. };
  70. soc {
  71. compatible = "simple-bus";
  72. #address-cells = <1>;
  73. #size-cells = <1>;
  74. ranges;
  75. udc: usb@200000 {
  76. compatible = "microchip,lan9662-udc",
  77. "atmel,sama5d3-udc";
  78. reg = <0x00200000 0x80000>,
  79. <0xe0808000 0x400>;
  80. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
  81. clocks = <&clks GCK_GATE_UDPHS>, <&nic_clk>;
  82. clock-names = "pclk", "hclk";
  83. status = "disabled";
  84. };
  85. switch: switch@e0000000 {
  86. compatible = "microchip,lan966x-switch";
  87. reg = <0xe0000000 0x0100000>,
  88. <0xe2000000 0x0800000>;
  89. reg-names = "cpu", "gcb";
  90. interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
  91. <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
  92. <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
  93. <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
  94. <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
  95. interrupt-names = "xtr", "fdma", "ana", "ptp",
  96. "ptp-ext";
  97. resets = <&reset 0>;
  98. reset-names = "switch";
  99. status = "disabled";
  100. ethernet-ports {
  101. #address-cells = <1>;
  102. #size-cells = <0>;
  103. port0: port@0 {
  104. reg = <0>;
  105. status = "disabled";
  106. };
  107. port1: port@1 {
  108. reg = <1>;
  109. status = "disabled";
  110. };
  111. port2: port@2 {
  112. reg = <2>;
  113. status = "disabled";
  114. };
  115. port3: port@3 {
  116. reg = <3>;
  117. status = "disabled";
  118. };
  119. port4: port@4 {
  120. reg = <4>;
  121. status = "disabled";
  122. };
  123. port5: port@5 {
  124. reg = <5>;
  125. status = "disabled";
  126. };
  127. port6: port@6 {
  128. reg = <6>;
  129. status = "disabled";
  130. };
  131. port7: port@7 {
  132. reg = <7>;
  133. status = "disabled";
  134. };
  135. };
  136. };
  137. flx0: flexcom@e0040000 {
  138. compatible = "atmel,sama5d2-flexcom";
  139. reg = <0xe0040000 0x100>;
  140. clocks = <&clks GCK_ID_FLEXCOM0>;
  141. #address-cells = <1>;
  142. #size-cells = <1>;
  143. ranges = <0x0 0xe0040000 0x800>;
  144. status = "disabled";
  145. usart0: serial@200 {
  146. compatible = "atmel,at91sam9260-usart";
  147. reg = <0x200 0x200>;
  148. interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
  149. dmas = <&dma0 AT91_XDMAC_DT_PERID(3)>,
  150. <&dma0 AT91_XDMAC_DT_PERID(2)>;
  151. dma-names = "tx", "rx";
  152. clocks = <&nic_clk>;
  153. clock-names = "usart";
  154. atmel,fifo-size = <32>;
  155. status = "disabled";
  156. };
  157. spi0: spi@400 {
  158. compatible = "atmel,at91rm9200-spi";
  159. reg = <0x400 0x200>;
  160. interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
  161. dmas = <&dma0 AT91_XDMAC_DT_PERID(3)>,
  162. <&dma0 AT91_XDMAC_DT_PERID(2)>;
  163. dma-names = "tx", "rx";
  164. clocks = <&nic_clk>;
  165. clock-names = "spi_clk";
  166. atmel,fifo-size = <32>;
  167. #address-cells = <1>;
  168. #size-cells = <0>;
  169. status = "disabled";
  170. };
  171. i2c0: i2c@600 {
  172. compatible = "microchip,sam9x60-i2c";
  173. reg = <0x600 0x200>;
  174. interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
  175. dmas = <&dma0 AT91_XDMAC_DT_PERID(3)>,
  176. <&dma0 AT91_XDMAC_DT_PERID(2)>;
  177. dma-names = "tx", "rx";
  178. clocks = <&nic_clk>;
  179. #address-cells = <1>;
  180. #size-cells = <0>;
  181. status = "disabled";
  182. };
  183. };
  184. flx1: flexcom@e0044000 {
  185. compatible = "atmel,sama5d2-flexcom";
  186. reg = <0xe0044000 0x100>;
  187. clocks = <&clks GCK_ID_FLEXCOM1>;
  188. #address-cells = <1>;
  189. #size-cells = <1>;
  190. ranges = <0x0 0xe0044000 0x800>;
  191. status = "disabled";
  192. usart1: serial@200 {
  193. compatible = "atmel,at91sam9260-usart";
  194. reg = <0x200 0x200>;
  195. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
  196. dmas = <&dma0 AT91_XDMAC_DT_PERID(5)>,
  197. <&dma0 AT91_XDMAC_DT_PERID(4)>;
  198. dma-names = "tx", "rx";
  199. clocks = <&nic_clk>;
  200. clock-names = "usart";
  201. atmel,fifo-size = <32>;
  202. status = "disabled";
  203. };
  204. spi1: spi@400 {
  205. compatible = "atmel,at91rm9200-spi";
  206. reg = <0x400 0x200>;
  207. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
  208. dmas = <&dma0 AT91_XDMAC_DT_PERID(5)>,
  209. <&dma0 AT91_XDMAC_DT_PERID(4)>;
  210. dma-names = "tx", "rx";
  211. clocks = <&nic_clk>;
  212. clock-names = "spi_clk";
  213. atmel,fifo-size = <32>;
  214. #address-cells = <1>;
  215. #size-cells = <0>;
  216. status = "disabled";
  217. };
  218. i2c1: i2c@600 {
  219. compatible = "microchip,sam9x60-i2c";
  220. reg = <0x600 0x200>;
  221. interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
  222. dmas = <&dma0 AT91_XDMAC_DT_PERID(5)>,
  223. <&dma0 AT91_XDMAC_DT_PERID(4)>;
  224. dma-names = "tx", "rx";
  225. clocks = <&nic_clk>;
  226. #address-cells = <1>;
  227. #size-cells = <0>;
  228. status = "disabled";
  229. };
  230. };
  231. trng: rng@e0048000 {
  232. compatible = "atmel,at91sam9g45-trng";
  233. reg = <0xe0048000 0x100>;
  234. clocks = <&nic_clk>;
  235. };
  236. aes: crypto@e004c000 {
  237. compatible = "atmel,at91sam9g46-aes";
  238. reg = <0xe004c000 0x100>;
  239. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  240. dmas = <&dma0 AT91_XDMAC_DT_PERID(12)>,
  241. <&dma0 AT91_XDMAC_DT_PERID(13)>;
  242. dma-names = "tx", "rx";
  243. clocks = <&nic_clk>;
  244. clock-names = "aes_clk";
  245. };
  246. flx2: flexcom@e0060000 {
  247. compatible = "atmel,sama5d2-flexcom";
  248. reg = <0xe0060000 0x100>;
  249. clocks = <&clks GCK_ID_FLEXCOM2>;
  250. #address-cells = <1>;
  251. #size-cells = <1>;
  252. ranges = <0x0 0xe0060000 0x800>;
  253. status = "disabled";
  254. usart2: serial@200 {
  255. compatible = "atmel,at91sam9260-usart";
  256. reg = <0x200 0x200>;
  257. interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
  258. dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
  259. <&dma0 AT91_XDMAC_DT_PERID(6)>;
  260. dma-names = "tx", "rx";
  261. clocks = <&nic_clk>;
  262. clock-names = "usart";
  263. atmel,fifo-size = <32>;
  264. status = "disabled";
  265. };
  266. spi2: spi@400 {
  267. compatible = "atmel,at91rm9200-spi";
  268. reg = <0x400 0x200>;
  269. interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
  270. dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
  271. <&dma0 AT91_XDMAC_DT_PERID(6)>;
  272. dma-names = "tx", "rx";
  273. clocks = <&nic_clk>;
  274. clock-names = "spi_clk";
  275. atmel,fifo-size = <32>;
  276. #address-cells = <1>;
  277. #size-cells = <0>;
  278. status = "disabled";
  279. };
  280. i2c2: i2c@600 {
  281. compatible = "microchip,sam9x60-i2c";
  282. reg = <0x600 0x200>;
  283. interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
  284. dmas = <&dma0 AT91_XDMAC_DT_PERID(7)>,
  285. <&dma0 AT91_XDMAC_DT_PERID(6)>;
  286. dma-names = "tx", "rx";
  287. clocks = <&nic_clk>;
  288. #address-cells = <1>;
  289. #size-cells = <0>;
  290. status = "disabled";
  291. };
  292. };
  293. flx3: flexcom@e0064000 {
  294. compatible = "atmel,sama5d2-flexcom";
  295. reg = <0xe0064000 0x100>;
  296. clocks = <&clks GCK_ID_FLEXCOM3>;
  297. #address-cells = <1>;
  298. #size-cells = <1>;
  299. ranges = <0x0 0xe0064000 0x800>;
  300. status = "disabled";
  301. usart3: serial@200 {
  302. compatible = "atmel,at91sam9260-usart";
  303. reg = <0x200 0x200>;
  304. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
  305. dmas = <&dma0 AT91_XDMAC_DT_PERID(9)>,
  306. <&dma0 AT91_XDMAC_DT_PERID(8)>;
  307. dma-names = "tx", "rx";
  308. clocks = <&nic_clk>;
  309. clock-names = "usart";
  310. atmel,fifo-size = <32>;
  311. status = "disabled";
  312. };
  313. spi3: spi@400 {
  314. compatible = "atmel,at91rm9200-spi";
  315. reg = <0x400 0x200>;
  316. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
  317. dmas = <&dma0 AT91_XDMAC_DT_PERID(9)>,
  318. <&dma0 AT91_XDMAC_DT_PERID(8)>;
  319. dma-names = "tx", "rx";
  320. clocks = <&nic_clk>;
  321. clock-names = "spi_clk";
  322. atmel,fifo-size = <32>;
  323. #address-cells = <1>;
  324. #size-cells = <0>;
  325. status = "disabled";
  326. };
  327. i2c3: i2c@600 {
  328. compatible = "microchip,sam9x60-i2c";
  329. reg = <0x600 0x200>;
  330. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
  331. dmas = <&dma0 AT91_XDMAC_DT_PERID(9)>,
  332. <&dma0 AT91_XDMAC_DT_PERID(8)>;
  333. dma-names = "tx", "rx";
  334. clocks = <&nic_clk>;
  335. #address-cells = <1>;
  336. #size-cells = <0>;
  337. status = "disabled";
  338. };
  339. };
  340. dma0: dma-controller@e0068000 {
  341. compatible = "microchip,sama7g5-dma";
  342. reg = <0xe0068000 0x1000>;
  343. interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
  344. #dma-cells = <1>;
  345. clocks = <&nic_clk>;
  346. clock-names = "dma_clk";
  347. };
  348. sha: crypto@e006c000 {
  349. compatible = "atmel,at91sam9g46-sha";
  350. reg = <0xe006c000 0xec>;
  351. interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>;
  352. dmas = <&dma0 AT91_XDMAC_DT_PERID(14)>;
  353. dma-names = "tx";
  354. clocks = <&nic_clk>;
  355. clock-names = "sha_clk";
  356. };
  357. flx4: flexcom@e0070000 {
  358. compatible = "atmel,sama5d2-flexcom";
  359. reg = <0xe0070000 0x100>;
  360. clocks = <&clks GCK_ID_FLEXCOM4>;
  361. #address-cells = <1>;
  362. #size-cells = <1>;
  363. ranges = <0x0 0xe0070000 0x800>;
  364. status = "disabled";
  365. usart4: serial@200 {
  366. compatible = "atmel,at91sam9260-usart";
  367. reg = <0x200 0x200>;
  368. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  369. dmas = <&dma0 AT91_XDMAC_DT_PERID(11)>,
  370. <&dma0 AT91_XDMAC_DT_PERID(10)>;
  371. dma-names = "tx", "rx";
  372. clocks = <&nic_clk>;
  373. clock-names = "usart";
  374. atmel,fifo-size = <32>;
  375. status = "disabled";
  376. };
  377. spi4: spi@400 {
  378. compatible = "atmel,at91rm9200-spi";
  379. reg = <0x400 0x200>;
  380. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  381. dmas = <&dma0 AT91_XDMAC_DT_PERID(11)>,
  382. <&dma0 AT91_XDMAC_DT_PERID(10)>;
  383. dma-names = "tx", "rx";
  384. clocks = <&nic_clk>;
  385. clock-names = "spi_clk";
  386. atmel,fifo-size = <32>;
  387. #address-cells = <1>;
  388. #size-cells = <0>;
  389. status = "disabled";
  390. };
  391. i2c4: i2c@600 {
  392. compatible = "microchip,sam9x60-i2c";
  393. reg = <0x600 0x200>;
  394. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>;
  395. dmas = <&dma0 AT91_XDMAC_DT_PERID(11)>,
  396. <&dma0 AT91_XDMAC_DT_PERID(10)>;
  397. dma-names = "tx", "rx";
  398. clocks = <&nic_clk>;
  399. #address-cells = <1>;
  400. #size-cells = <0>;
  401. status = "disabled";
  402. };
  403. };
  404. timer0: timer@e008c000 {
  405. compatible = "snps,dw-apb-timer";
  406. reg = <0xe008c000 0x400>;
  407. clocks = <&nic_clk>;
  408. clock-names = "timer";
  409. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
  410. };
  411. watchdog: watchdog@e0090000 {
  412. compatible = "snps,dw-wdt";
  413. reg = <0xe0090000 0x1000>;
  414. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  415. clocks = <&nic_clk>;
  416. status = "disabled";
  417. };
  418. cpu_ctrl: syscon@e00c0000 {
  419. compatible = "microchip,lan966x-cpu-syscon", "syscon";
  420. reg = <0xe00c0000 0x350>;
  421. };
  422. can0: can@e081c000 {
  423. compatible = "bosch,m_can";
  424. reg = <0xe081c000 0xfc>, <0x00100000 0x4000>;
  425. reg-names = "m_can", "message_ram";
  426. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
  427. <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
  428. interrupt-names = "int0", "int1";
  429. clocks = <&clks GCK_ID_MCAN0>, <&clks GCK_ID_MCAN0>;
  430. clock-names = "hclk", "cclk";
  431. assigned-clocks = <&clks GCK_ID_MCAN0>;
  432. assigned-clock-rates = <40000000>;
  433. bosch,mram-cfg = <0x0 0 0 64 0 0 32 32>;
  434. status = "disabled";
  435. };
  436. can1: can@e0820000 {
  437. compatible = "bosch,m_can";
  438. reg = <0xe0820000 0xfc>, <0x00100000 0x8000>;
  439. reg-names = "m_can", "message_ram";
  440. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>,
  441. <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
  442. interrupt-names = "int0", "int1";
  443. clocks = <&clks GCK_ID_MCAN1>, <&clks GCK_ID_MCAN1>;
  444. clock-names = "hclk", "cclk";
  445. assigned-clocks = <&clks GCK_ID_MCAN1>;
  446. assigned-clock-rates = <40000000>;
  447. bosch,mram-cfg = <0x4000 0 0 64 0 0 32 32>;
  448. status = "disabled";
  449. };
  450. reset: reset-controller@e200400c {
  451. compatible = "microchip,lan966x-switch-reset";
  452. reg = <0xe200400c 0x4>;
  453. reg-names = "gcb";
  454. #reset-cells = <1>;
  455. cpu-syscon = <&cpu_ctrl>;
  456. };
  457. gpio: pinctrl@e2004064 {
  458. compatible = "microchip,lan966x-pinctrl";
  459. reg = <0xe2004064 0xb4>,
  460. <0xe2010024 0x138>;
  461. resets = <&reset 0>;
  462. reset-names = "switch";
  463. gpio-controller;
  464. #gpio-cells = <2>;
  465. gpio-ranges = <&gpio 0 0 78>;
  466. interrupt-controller;
  467. interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
  468. #interrupt-cells = <2>;
  469. };
  470. mdio0: mdio@e2004118 {
  471. compatible = "microchip,lan966x-miim";
  472. #address-cells = <1>;
  473. #size-cells = <0>;
  474. reg = <0xe2004118 0x24>;
  475. clocks = <&sys_clk>;
  476. status = "disabled";
  477. };
  478. mdio1: mdio@e200413c {
  479. compatible = "microchip,lan966x-miim";
  480. #address-cells = <1>;
  481. #size-cells = <0>;
  482. reg = <0xe200413c 0x24>,
  483. <0xe2010020 0x4>;
  484. clocks = <&sys_clk>;
  485. status = "disabled";
  486. phy0: ethernet-phy@1 {
  487. reg = <1>;
  488. interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
  489. status = "disabled";
  490. };
  491. phy1: ethernet-phy@2 {
  492. reg = <2>;
  493. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  494. status = "disabled";
  495. };
  496. };
  497. sgpio: gpio@e2004190 {
  498. compatible = "microchip,sparx5-sgpio";
  499. reg = <0xe2004190 0x118>;
  500. clocks = <&sys_clk>;
  501. resets = <&reset 0>;
  502. reset-names = "switch";
  503. #address-cells = <1>;
  504. #size-cells = <0>;
  505. status = "disabled";
  506. sgpio_in: gpio@0 {
  507. compatible = "microchip,sparx5-sgpio-bank";
  508. reg = <0>;
  509. gpio-controller;
  510. #gpio-cells = <3>;
  511. interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>;
  512. interrupt-controller;
  513. #interrupt-cells = <3>;
  514. };
  515. sgpio_out: gpio@1 {
  516. compatible = "microchip,sparx5-sgpio-bank";
  517. reg = <1>;
  518. gpio-controller;
  519. #gpio-cells = <3>;
  520. };
  521. };
  522. hwmon: hwmon@e2010180 {
  523. compatible = "microchip,lan9668-hwmon";
  524. reg = <0xe2010180 0xc>,
  525. <0xe20042a8 0xc>;
  526. reg-names = "pvt", "fan";
  527. clocks = <&sys_clk>;
  528. };
  529. serdes: serdes@e202c000 {
  530. compatible = "microchip,lan966x-serdes";
  531. reg = <0xe202c000 0x9c>,
  532. <0xe2004010 0x4>;
  533. #phy-cells = <2>;
  534. status = "disabled";
  535. };
  536. gic: interrupt-controller@e8c11000 {
  537. compatible = "arm,gic-400", "arm,cortex-a7-gic";
  538. #interrupt-cells = <3>;
  539. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
  540. interrupt-controller;
  541. reg = <0xe8c11000 0x1000>,
  542. <0xe8c12000 0x2000>,
  543. <0xe8c14000 0x2000>,
  544. <0xe8c16000 0x2000>;
  545. };
  546. };
  547. };