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