1*1effec98SRobert Marko// SPDX-License-Identifier: (GPL-2.0-or-later OR MIT) 2*1effec98SRobert Marko/* 3*1effec98SRobert Marko * Copyright (c) 2025 Microchip Technology Inc. and its subsidiaries. 4*1effec98SRobert Marko */ 5*1effec98SRobert Marko 6*1effec98SRobert Marko#include <dt-bindings/dma/at91.h> 7*1effec98SRobert Marko#include <dt-bindings/interrupt-controller/arm-gic.h> 8*1effec98SRobert Marko#include <dt-bindings/mfd/at91-usart.h> 9*1effec98SRobert Marko#include <dt-bindings/mfd/atmel-flexcom.h> 10*1effec98SRobert Marko 11*1effec98SRobert Marko#include "clk-lan9691.h" 12*1effec98SRobert Marko 13*1effec98SRobert Marko/ { 14*1effec98SRobert Marko #address-cells = <1>; 15*1effec98SRobert Marko #size-cells = <1>; 16*1effec98SRobert Marko 17*1effec98SRobert Marko model = "Microchip LAN969x"; 18*1effec98SRobert Marko compatible = "microchip,lan9691"; 19*1effec98SRobert Marko interrupt-parent = <&gic>; 20*1effec98SRobert Marko 21*1effec98SRobert Marko clocks { 22*1effec98SRobert Marko fx100_clk: fx100-clk { 23*1effec98SRobert Marko compatible = "fixed-clock"; 24*1effec98SRobert Marko #clock-cells = <0>; 25*1effec98SRobert Marko clock-frequency = <320000000>; 26*1effec98SRobert Marko }; 27*1effec98SRobert Marko 28*1effec98SRobert Marko cpu_clk: cpu-clk { 29*1effec98SRobert Marko compatible = "fixed-clock"; 30*1effec98SRobert Marko #clock-cells = <0>; 31*1effec98SRobert Marko clock-frequency = <1000000000>; 32*1effec98SRobert Marko }; 33*1effec98SRobert Marko 34*1effec98SRobert Marko ddr_clk: ddr-clk { 35*1effec98SRobert Marko compatible = "fixed-clock"; 36*1effec98SRobert Marko #clock-cells = <0>; 37*1effec98SRobert Marko clock-frequency = <600000000>; 38*1effec98SRobert Marko }; 39*1effec98SRobert Marko 40*1effec98SRobert Marko fabric_clk: fabric-clk { 41*1effec98SRobert Marko compatible = "fixed-clock"; 42*1effec98SRobert Marko #clock-cells = <0>; 43*1effec98SRobert Marko clock-frequency = <250000000>; 44*1effec98SRobert Marko }; 45*1effec98SRobert Marko }; 46*1effec98SRobert Marko 47*1effec98SRobert Marko cpus { 48*1effec98SRobert Marko #address-cells = <2>; 49*1effec98SRobert Marko #size-cells = <0>; 50*1effec98SRobert Marko 51*1effec98SRobert Marko cpu0: cpu@0 { 52*1effec98SRobert Marko compatible = "arm,cortex-a53"; 53*1effec98SRobert Marko device_type = "cpu"; 54*1effec98SRobert Marko reg = <0x0 0x0>; 55*1effec98SRobert Marko next-level-cache = <&l2_0>; 56*1effec98SRobert Marko }; 57*1effec98SRobert Marko 58*1effec98SRobert Marko l2_0: l2-cache { 59*1effec98SRobert Marko compatible = "cache"; 60*1effec98SRobert Marko cache-level = <2>; 61*1effec98SRobert Marko cache-unified; 62*1effec98SRobert Marko }; 63*1effec98SRobert Marko }; 64*1effec98SRobert Marko 65*1effec98SRobert Marko psci { 66*1effec98SRobert Marko compatible = "arm,psci-1.0"; 67*1effec98SRobert Marko method = "smc"; 68*1effec98SRobert Marko }; 69*1effec98SRobert Marko 70*1effec98SRobert Marko pmu { 71*1effec98SRobert Marko compatible = "arm,cortex-a53-pmu"; 72*1effec98SRobert Marko interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>; 73*1effec98SRobert Marko }; 74*1effec98SRobert Marko 75*1effec98SRobert Marko timer { 76*1effec98SRobert Marko compatible = "arm,armv8-timer"; 77*1effec98SRobert Marko interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>, /* Secure Phys IRQ */ 78*1effec98SRobert Marko <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>, /* Non-secure Phys IRQ */ 79*1effec98SRobert Marko <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, /* Virt IRQ */ 80*1effec98SRobert Marko <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; /* Hyp IRQ */ 81*1effec98SRobert Marko }; 82*1effec98SRobert Marko 83*1effec98SRobert Marko axi: axi { 84*1effec98SRobert Marko compatible = "simple-bus"; 85*1effec98SRobert Marko #address-cells = <1>; 86*1effec98SRobert Marko #size-cells = <1>; 87*1effec98SRobert Marko ranges; 88*1effec98SRobert Marko 89*1effec98SRobert Marko usb: usb@300000 { 90*1effec98SRobert Marko compatible = "microchip,lan9691-dwc3", "snps,dwc3"; 91*1effec98SRobert Marko reg = <0x300000 0x80000>; 92*1effec98SRobert Marko interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; 93*1effec98SRobert Marko clocks = <&clks GCK_GATE_USB_DRD>, 94*1effec98SRobert Marko <&clks GCK_ID_USB_REFCLK>; 95*1effec98SRobert Marko clock-names = "bus_early", "ref"; 96*1effec98SRobert Marko assigned-clocks = <&clks GCK_ID_USB_REFCLK>; 97*1effec98SRobert Marko assigned-clock-rates = <60000000>; 98*1effec98SRobert Marko maximum-speed = "high-speed"; 99*1effec98SRobert Marko dr_mode = "host"; 100*1effec98SRobert Marko status = "disabled"; 101*1effec98SRobert Marko }; 102*1effec98SRobert Marko 103*1effec98SRobert Marko flx0: flexcom@e0040000 { 104*1effec98SRobert Marko compatible = "microchip,lan9691-flexcom", "atmel,sama5d2-flexcom"; 105*1effec98SRobert Marko reg = <0xe0040000 0x100>; 106*1effec98SRobert Marko ranges = <0x0 0xe0040000 0x800>; 107*1effec98SRobert Marko clocks = <&clks GCK_ID_FLEXCOM0>; 108*1effec98SRobert Marko #address-cells = <1>; 109*1effec98SRobert Marko #size-cells = <1>; 110*1effec98SRobert Marko status = "disabled"; 111*1effec98SRobert Marko 112*1effec98SRobert Marko usart0: serial@200 { 113*1effec98SRobert Marko compatible = "microchip,lan9691-usart", "atmel,at91sam9260-usart"; 114*1effec98SRobert Marko reg = <0x200 0x200>; 115*1effec98SRobert Marko interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 116*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(3)>, 117*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(2)>; 118*1effec98SRobert Marko dma-names = "tx", "rx"; 119*1effec98SRobert Marko clocks = <&fabric_clk>; 120*1effec98SRobert Marko clock-names = "usart"; 121*1effec98SRobert Marko atmel,fifo-size = <32>; 122*1effec98SRobert Marko atmel,usart-mode = <AT91_USART_MODE_SERIAL>; 123*1effec98SRobert Marko status = "disabled"; 124*1effec98SRobert Marko }; 125*1effec98SRobert Marko 126*1effec98SRobert Marko spi0: spi@400 { 127*1effec98SRobert Marko compatible = "microchip,lan9691-spi", "atmel,at91rm9200-spi"; 128*1effec98SRobert Marko reg = <0x400 0x200>; 129*1effec98SRobert Marko interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 130*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(3)>, 131*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(2)>; 132*1effec98SRobert Marko dma-names = "tx", "rx"; 133*1effec98SRobert Marko clocks = <&fabric_clk>; 134*1effec98SRobert Marko clock-names = "spi_clk"; 135*1effec98SRobert Marko #address-cells = <1>; 136*1effec98SRobert Marko #size-cells = <0>; 137*1effec98SRobert Marko atmel,fifo-size = <32>; 138*1effec98SRobert Marko status = "disabled"; 139*1effec98SRobert Marko }; 140*1effec98SRobert Marko 141*1effec98SRobert Marko i2c0: i2c@600 { 142*1effec98SRobert Marko compatible = "microchip,lan9691-i2c", "microchip,sam9x60-i2c"; 143*1effec98SRobert Marko reg = <0x600 0x200>; 144*1effec98SRobert Marko interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>; 145*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(3)>, 146*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(2)>; 147*1effec98SRobert Marko dma-names = "tx", "rx"; 148*1effec98SRobert Marko clocks = <&fabric_clk>; 149*1effec98SRobert Marko #address-cells = <1>; 150*1effec98SRobert Marko #size-cells = <0>; 151*1effec98SRobert Marko status = "disabled"; 152*1effec98SRobert Marko }; 153*1effec98SRobert Marko }; 154*1effec98SRobert Marko 155*1effec98SRobert Marko flx1: flexcom@e0044000 { 156*1effec98SRobert Marko compatible = "microchip,lan9691-flexcom", "atmel,sama5d2-flexcom"; 157*1effec98SRobert Marko reg = <0xe0044000 0x100>; 158*1effec98SRobert Marko ranges = <0x0 0xe0044000 0x800>; 159*1effec98SRobert Marko clocks = <&clks GCK_ID_FLEXCOM1>; 160*1effec98SRobert Marko #address-cells = <1>; 161*1effec98SRobert Marko #size-cells = <1>; 162*1effec98SRobert Marko status = "disabled"; 163*1effec98SRobert Marko 164*1effec98SRobert Marko usart1: serial@200 { 165*1effec98SRobert Marko compatible = "microchip,lan9691-usart", "atmel,at91sam9260-usart"; 166*1effec98SRobert Marko reg = <0x200 0x200>; 167*1effec98SRobert Marko interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 168*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(3)>, 169*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(2)>; 170*1effec98SRobert Marko dma-names = "tx", "rx"; 171*1effec98SRobert Marko clocks = <&fabric_clk>; 172*1effec98SRobert Marko clock-names = "usart"; 173*1effec98SRobert Marko atmel,fifo-size = <32>; 174*1effec98SRobert Marko atmel,usart-mode = <AT91_USART_MODE_SERIAL>; 175*1effec98SRobert Marko status = "disabled"; 176*1effec98SRobert Marko }; 177*1effec98SRobert Marko 178*1effec98SRobert Marko spi1: spi@400 { 179*1effec98SRobert Marko compatible = "microchip,lan9691-spi", "atmel,at91rm9200-spi"; 180*1effec98SRobert Marko reg = <0x400 0x200>; 181*1effec98SRobert Marko interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 182*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(3)>, 183*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(2)>; 184*1effec98SRobert Marko dma-names = "tx", "rx"; 185*1effec98SRobert Marko clocks = <&fabric_clk>; 186*1effec98SRobert Marko clock-names = "spi_clk"; 187*1effec98SRobert Marko #address-cells = <1>; 188*1effec98SRobert Marko #size-cells = <0>; 189*1effec98SRobert Marko atmel,fifo-size = <32>; 190*1effec98SRobert Marko status = "disabled"; 191*1effec98SRobert Marko }; 192*1effec98SRobert Marko 193*1effec98SRobert Marko i2c1: i2c@600 { 194*1effec98SRobert Marko compatible = "microchip,lan9691-i2c", "microchip,sam9x60-i2c"; 195*1effec98SRobert Marko reg = <0x600 0x200>; 196*1effec98SRobert Marko interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; 197*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(3)>, 198*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(2)>; 199*1effec98SRobert Marko dma-names = "tx", "rx"; 200*1effec98SRobert Marko clocks = <&fabric_clk>; 201*1effec98SRobert Marko #address-cells = <1>; 202*1effec98SRobert Marko #size-cells = <0>; 203*1effec98SRobert Marko status = "disabled"; 204*1effec98SRobert Marko }; 205*1effec98SRobert Marko }; 206*1effec98SRobert Marko 207*1effec98SRobert Marko trng: rng@e0048000 { 208*1effec98SRobert Marko compatible = "microchip,lan9691-trng", "atmel,at91sam9g45-trng"; 209*1effec98SRobert Marko reg = <0xe0048000 0x100>; 210*1effec98SRobert Marko clocks = <&fabric_clk>; 211*1effec98SRobert Marko status = "disabled"; 212*1effec98SRobert Marko }; 213*1effec98SRobert Marko 214*1effec98SRobert Marko aes: crypto@e004c000 { 215*1effec98SRobert Marko compatible = "microchip,lan9691-aes", "atmel,at91sam9g46-aes"; 216*1effec98SRobert Marko reg = <0xe004c000 0x100>; 217*1effec98SRobert Marko interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 218*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(12)>, 219*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(13)>; 220*1effec98SRobert Marko dma-names = "tx", "rx"; 221*1effec98SRobert Marko clocks = <&fabric_clk>; 222*1effec98SRobert Marko clock-names = "aes_clk"; 223*1effec98SRobert Marko status = "disabled"; 224*1effec98SRobert Marko }; 225*1effec98SRobert Marko 226*1effec98SRobert Marko flx2: flexcom@e0060000 { 227*1effec98SRobert Marko compatible = "microchip,lan9691-flexcom", "atmel,sama5d2-flexcom"; 228*1effec98SRobert Marko reg = <0xe0060000 0x100>; 229*1effec98SRobert Marko ranges = <0x0 0xe0060000 0x800>; 230*1effec98SRobert Marko clocks = <&clks GCK_ID_FLEXCOM2>; 231*1effec98SRobert Marko #address-cells = <1>; 232*1effec98SRobert Marko #size-cells = <1>; 233*1effec98SRobert Marko status = "disabled"; 234*1effec98SRobert Marko 235*1effec98SRobert Marko usart2: serial@200 { 236*1effec98SRobert Marko compatible = "microchip,lan9691-usart", "atmel,at91sam9260-usart"; 237*1effec98SRobert Marko reg = <0x200 0x200>; 238*1effec98SRobert Marko interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 239*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(7)>, 240*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(6)>; 241*1effec98SRobert Marko dma-names = "tx", "rx"; 242*1effec98SRobert Marko clocks = <&fabric_clk>; 243*1effec98SRobert Marko clock-names = "usart"; 244*1effec98SRobert Marko atmel,fifo-size = <32>; 245*1effec98SRobert Marko atmel,usart-mode = <AT91_USART_MODE_SERIAL>; 246*1effec98SRobert Marko status = "disabled"; 247*1effec98SRobert Marko }; 248*1effec98SRobert Marko 249*1effec98SRobert Marko spi2: spi@400 { 250*1effec98SRobert Marko compatible = "microchip,lan9691-spi", "atmel,at91rm9200-spi"; 251*1effec98SRobert Marko reg = <0x400 0x200>; 252*1effec98SRobert Marko interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 253*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(7)>, 254*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(6)>; 255*1effec98SRobert Marko dma-names = "tx", "rx"; 256*1effec98SRobert Marko clocks = <&fabric_clk>; 257*1effec98SRobert Marko clock-names = "spi_clk"; 258*1effec98SRobert Marko #address-cells = <1>; 259*1effec98SRobert Marko #size-cells = <0>; 260*1effec98SRobert Marko atmel,fifo-size = <32>; 261*1effec98SRobert Marko status = "disabled"; 262*1effec98SRobert Marko }; 263*1effec98SRobert Marko 264*1effec98SRobert Marko i2c2: i2c@600 { 265*1effec98SRobert Marko compatible = "microchip,lan9691-i2c", "microchip,sam9x60-i2c"; 266*1effec98SRobert Marko reg = <0x600 0x200>; 267*1effec98SRobert Marko interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; 268*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(7)>, 269*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(6)>; 270*1effec98SRobert Marko dma-names = "tx", "rx"; 271*1effec98SRobert Marko clocks = <&fabric_clk>; 272*1effec98SRobert Marko #address-cells = <1>; 273*1effec98SRobert Marko #size-cells = <0>; 274*1effec98SRobert Marko status = "disabled"; 275*1effec98SRobert Marko }; 276*1effec98SRobert Marko }; 277*1effec98SRobert Marko 278*1effec98SRobert Marko flx3: flexcom@e0064000 { 279*1effec98SRobert Marko compatible = "microchip,lan9691-flexcom", "atmel,sama5d2-flexcom"; 280*1effec98SRobert Marko reg = <0xe0064000 0x100>; 281*1effec98SRobert Marko ranges = <0x0 0xe0064000 0x800>; 282*1effec98SRobert Marko clocks = <&clks GCK_ID_FLEXCOM3>; 283*1effec98SRobert Marko #address-cells = <1>; 284*1effec98SRobert Marko #size-cells = <1>; 285*1effec98SRobert Marko status = "disabled"; 286*1effec98SRobert Marko 287*1effec98SRobert Marko usart3: serial@200 { 288*1effec98SRobert Marko compatible = "microchip,lan9691-usart", "atmel,at91sam9260-usart"; 289*1effec98SRobert Marko reg = <0x200 0x200>; 290*1effec98SRobert Marko interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 291*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(9)>, 292*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(8)>; 293*1effec98SRobert Marko dma-names = "tx", "rx"; 294*1effec98SRobert Marko clocks = <&fabric_clk>; 295*1effec98SRobert Marko clock-names = "usart"; 296*1effec98SRobert Marko atmel,fifo-size = <32>; 297*1effec98SRobert Marko atmel,usart-mode = <AT91_USART_MODE_SERIAL>; 298*1effec98SRobert Marko status = "disabled"; 299*1effec98SRobert Marko }; 300*1effec98SRobert Marko 301*1effec98SRobert Marko spi3: spi@400 { 302*1effec98SRobert Marko compatible = "microchip,lan9691-spi", "atmel,at91rm9200-spi"; 303*1effec98SRobert Marko reg = <0x400 0x200>; 304*1effec98SRobert Marko interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 305*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(9)>, 306*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(8)>; 307*1effec98SRobert Marko dma-names = "tx", "rx"; 308*1effec98SRobert Marko clocks = <&fabric_clk>; 309*1effec98SRobert Marko clock-names = "spi_clk"; 310*1effec98SRobert Marko #address-cells = <1>; 311*1effec98SRobert Marko #size-cells = <0>; 312*1effec98SRobert Marko atmel,fifo-size = <32>; 313*1effec98SRobert Marko status = "disabled"; 314*1effec98SRobert Marko }; 315*1effec98SRobert Marko 316*1effec98SRobert Marko i2c3: i2c@600 { 317*1effec98SRobert Marko compatible = "microchip,lan9691-i2c", "microchip,sam9x60-i2c"; 318*1effec98SRobert Marko reg = <0x600 0x200>; 319*1effec98SRobert Marko interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; 320*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(9)>, 321*1effec98SRobert Marko <&dma AT91_XDMAC_DT_PERID(8)>; 322*1effec98SRobert Marko dma-names = "tx", "rx"; 323*1effec98SRobert Marko clocks = <&fabric_clk>; 324*1effec98SRobert Marko #address-cells = <1>; 325*1effec98SRobert Marko #size-cells = <0>; 326*1effec98SRobert Marko status = "disabled"; 327*1effec98SRobert Marko }; 328*1effec98SRobert Marko }; 329*1effec98SRobert Marko 330*1effec98SRobert Marko dma: dma-controller@e0068000 { 331*1effec98SRobert Marko compatible = "microchip,lan9691-dma", "microchip,sama7g5-dma"; 332*1effec98SRobert Marko reg = <0xe0068000 0x1000>; 333*1effec98SRobert Marko interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>; 334*1effec98SRobert Marko dma-channels = <16>; 335*1effec98SRobert Marko #dma-cells = <1>; 336*1effec98SRobert Marko clocks = <&fabric_clk>; 337*1effec98SRobert Marko clock-names = "dma_clk"; 338*1effec98SRobert Marko }; 339*1effec98SRobert Marko 340*1effec98SRobert Marko sha: crypto@e006c000 { 341*1effec98SRobert Marko compatible = "microchip,lan9691-sha", "atmel,at91sam9g46-sha"; 342*1effec98SRobert Marko reg = <0xe006c000 0xec>; 343*1effec98SRobert Marko interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; 344*1effec98SRobert Marko dmas = <&dma AT91_XDMAC_DT_PERID(14)>; 345*1effec98SRobert Marko dma-names = "tx"; 346*1effec98SRobert Marko clocks = <&fabric_clk>; 347*1effec98SRobert Marko clock-names = "sha_clk"; 348*1effec98SRobert Marko status = "disabled"; 349*1effec98SRobert Marko }; 350*1effec98SRobert Marko 351*1effec98SRobert Marko timer: timer@e008c000 { 352*1effec98SRobert Marko compatible = "snps,dw-apb-timer"; 353*1effec98SRobert Marko reg = <0xe008c000 0x400>; 354*1effec98SRobert Marko clocks = <&fabric_clk>; 355*1effec98SRobert Marko clock-names = "timer"; 356*1effec98SRobert Marko interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>; 357*1effec98SRobert Marko status = "disabled"; 358*1effec98SRobert Marko }; 359*1effec98SRobert Marko 360*1effec98SRobert Marko watchdog: watchdog@e0090000 { 361*1effec98SRobert Marko compatible = "snps,dw-wdt"; 362*1effec98SRobert Marko reg = <0xe0090000 0x1000>; 363*1effec98SRobert Marko interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>; 364*1effec98SRobert Marko clocks = <&fabric_clk>; 365*1effec98SRobert Marko }; 366*1effec98SRobert Marko 367*1effec98SRobert Marko cpu_ctrl: syscon@e00c0000 { 368*1effec98SRobert Marko compatible = "microchip,lan966x-cpu-syscon", "syscon"; 369*1effec98SRobert Marko reg = <0xe00c0000 0x350>; 370*1effec98SRobert Marko }; 371*1effec98SRobert Marko 372*1effec98SRobert Marko switch: switch@e00c0000 { 373*1effec98SRobert Marko compatible = "microchip,lan9691-switch"; 374*1effec98SRobert Marko reg = <0xe00c0000 0x0010000>, 375*1effec98SRobert Marko <0xe2010000 0x1410000>; 376*1effec98SRobert Marko reg-names = "cpu", "devices"; 377*1effec98SRobert Marko interrupt-names = "xtr", "fdma", "ptp"; 378*1effec98SRobert Marko interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, 379*1effec98SRobert Marko <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>, 380*1effec98SRobert Marko <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; 381*1effec98SRobert Marko resets = <&reset 0>; 382*1effec98SRobert Marko reset-names = "switch"; 383*1effec98SRobert Marko status = "disabled"; 384*1effec98SRobert Marko }; 385*1effec98SRobert Marko 386*1effec98SRobert Marko clks: clock-controller@e00c00b4 { 387*1effec98SRobert Marko compatible = "microchip,lan9691-gck"; 388*1effec98SRobert Marko reg = <0xe00c00b4 0x30>, <0xe00c0308 0x4>; 389*1effec98SRobert Marko #clock-cells = <1>; 390*1effec98SRobert Marko clocks = <&cpu_clk>, <&ddr_clk>, <&fx100_clk>; 391*1effec98SRobert Marko clock-names = "cpu", "ddr", "sys"; 392*1effec98SRobert Marko }; 393*1effec98SRobert Marko 394*1effec98SRobert Marko reset: reset-controller@e201000c { 395*1effec98SRobert Marko compatible = "microchip,lan9691-switch-reset", 396*1effec98SRobert Marko "microchip,lan966x-switch-reset"; 397*1effec98SRobert Marko reg = <0xe201000c 0x4>; 398*1effec98SRobert Marko reg-names = "gcb"; 399*1effec98SRobert Marko #reset-cells = <1>; 400*1effec98SRobert Marko cpu-syscon = <&cpu_ctrl>; 401*1effec98SRobert Marko }; 402*1effec98SRobert Marko 403*1effec98SRobert Marko gpio: pinctrl@e20100d4 { 404*1effec98SRobert Marko compatible = "microchip,lan9691-pinctrl"; 405*1effec98SRobert Marko reg = <0xe20100d4 0xd4>, 406*1effec98SRobert Marko <0xe2010370 0xa8>; 407*1effec98SRobert Marko gpio-controller; 408*1effec98SRobert Marko #gpio-cells = <2>; 409*1effec98SRobert Marko gpio-ranges = <&gpio 0 0 66>; 410*1effec98SRobert Marko interrupt-controller; 411*1effec98SRobert Marko interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; 412*1effec98SRobert Marko #interrupt-cells = <2>; 413*1effec98SRobert Marko }; 414*1effec98SRobert Marko 415*1effec98SRobert Marko mdio0: mdio@e20101a8 { 416*1effec98SRobert Marko compatible = "microchip,lan9691-miim", "mscc,ocelot-miim"; 417*1effec98SRobert Marko reg = <0xe20101a8 0x24>; 418*1effec98SRobert Marko #address-cells = <1>; 419*1effec98SRobert Marko #size-cells = <0>; 420*1effec98SRobert Marko clocks = <&fx100_clk>; 421*1effec98SRobert Marko status = "disabled"; 422*1effec98SRobert Marko }; 423*1effec98SRobert Marko 424*1effec98SRobert Marko mdio1: mdio@e20101cc { 425*1effec98SRobert Marko compatible = "microchip,lan9691-miim", "mscc,ocelot-miim"; 426*1effec98SRobert Marko reg = <0xe20101cc 0x24>; 427*1effec98SRobert Marko #address-cells = <1>; 428*1effec98SRobert Marko #size-cells = <0>; 429*1effec98SRobert Marko clocks = <&fx100_clk>; 430*1effec98SRobert Marko status = "disabled"; 431*1effec98SRobert Marko }; 432*1effec98SRobert Marko 433*1effec98SRobert Marko sgpio: gpio@e2010230 { 434*1effec98SRobert Marko compatible = "microchip,lan9691-sgpio", "microchip,sparx5-sgpio"; 435*1effec98SRobert Marko reg = <0xe2010230 0x118>; 436*1effec98SRobert Marko clocks = <&fx100_clk>; 437*1effec98SRobert Marko resets = <&reset 0>; 438*1effec98SRobert Marko reset-names = "switch"; 439*1effec98SRobert Marko #address-cells = <1>; 440*1effec98SRobert Marko #size-cells = <0>; 441*1effec98SRobert Marko status = "disabled"; 442*1effec98SRobert Marko 443*1effec98SRobert Marko sgpio_in: gpio@0 { 444*1effec98SRobert Marko compatible = "microchip,lan9691-sgpio-bank", 445*1effec98SRobert Marko "microchip,sparx5-sgpio-bank"; 446*1effec98SRobert Marko reg = <0>; 447*1effec98SRobert Marko gpio-controller; 448*1effec98SRobert Marko #gpio-cells = <3>; 449*1effec98SRobert Marko interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 450*1effec98SRobert Marko interrupt-controller; 451*1effec98SRobert Marko #interrupt-cells = <3>; 452*1effec98SRobert Marko }; 453*1effec98SRobert Marko 454*1effec98SRobert Marko sgpio_out: gpio@1 { 455*1effec98SRobert Marko compatible = "microchip,lan9691-sgpio-bank", 456*1effec98SRobert Marko "microchip,sparx5-sgpio-bank"; 457*1effec98SRobert Marko reg = <1>; 458*1effec98SRobert Marko gpio-controller; 459*1effec98SRobert Marko #gpio-cells = <3>; 460*1effec98SRobert Marko }; 461*1effec98SRobert Marko }; 462*1effec98SRobert Marko 463*1effec98SRobert Marko tmon: hwmon@e2020100 { 464*1effec98SRobert Marko compatible = "microchip,lan9691-temp", "microchip,sparx5-temp"; 465*1effec98SRobert Marko reg = <0xe2020100 0xc>; 466*1effec98SRobert Marko clocks = <&fx100_clk>; 467*1effec98SRobert Marko #thermal-sensor-cells = <0>; 468*1effec98SRobert Marko }; 469*1effec98SRobert Marko 470*1effec98SRobert Marko serdes: serdes@e3410000 { 471*1effec98SRobert Marko compatible = "microchip,lan9691-serdes"; 472*1effec98SRobert Marko reg = <0xe3410000 0x150000>; 473*1effec98SRobert Marko #phy-cells = <1>; 474*1effec98SRobert Marko clocks = <&fabric_clk>; 475*1effec98SRobert Marko }; 476*1effec98SRobert Marko 477*1effec98SRobert Marko gic: interrupt-controller@e8c11000 { 478*1effec98SRobert Marko compatible = "arm,gic-400"; 479*1effec98SRobert Marko reg = <0xe8c11000 0x1000>, /* Distributor GICD_ */ 480*1effec98SRobert Marko <0xe8c12000 0x2000>, /* CPU interface GICC_ */ 481*1effec98SRobert Marko <0xe8c14000 0x2000>, /* Virt interface control */ 482*1effec98SRobert Marko <0xe8c16000 0x2000>; /* Virt CPU interface */ 483*1effec98SRobert Marko #interrupt-cells = <3>; 484*1effec98SRobert Marko interrupt-controller; 485*1effec98SRobert Marko interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>; 486*1effec98SRobert Marko }; 487*1effec98SRobert Marko }; 488*1effec98SRobert Marko}; 489