Here you can see a device tree of Linux MIPS32 running on Microchip PIC32MZ-DA Starter Kit board:
(debian) ~ # dtc -I fs -O dts /proc/device-tree
Warning (unit_address_vs_reg): Node /oc1 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /oc2 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /oc3 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /oc4 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /oc5 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /oc6 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /oc7 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /oc8 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /oc9 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /cpus/cpu@0 has a unit name, but no reg property
Warning (unit_address_vs_reg): Node /usb@1f8e3000/usb_overcurrent@0 has a unit name, but no reg property
Warning (unit_address_vs_reg): Node /keys0/button@sw1 has a unit name, but no reg property
Warning (unit_address_vs_reg): Node /keys0/button@sw2 has a unit name, but no reg property
Warning (unit_address_vs_reg): Node /keys0/button@sw3 has a unit name, but no reg property
Warning (unit_address_vs_reg): Node /leds0/led@1 has a unit name, but no reg property
Warning (unit_address_vs_reg): Node /leds0/led@2 has a unit name, but no reg property
Warning (unit_address_vs_reg): Node /leds0/led@3 has a unit name, but no reg property
Warning (unit_address_vs_reg): Node /pbtimer1 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pbtimer4 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pbtimer5 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /memory has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/sosc_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/spll_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/sys_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/CLK_MPLL has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/pb1_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/pb2_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/pb3_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/pb4_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/pb5_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/pb6_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/pb7_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/refo1_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/refo2_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/refo3_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/refo4_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pic32_clktree/refo5_clk has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pbtimer23 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pbtimer67 has a reg or ranges property, but no unit name
Warning (unit_address_vs_reg): Node /pbtimer89 has a reg or ranges property, but no unit name
/dts-v1/;
/ {
model = "Microchip PIC32MZDA Starter Kit";
compatible = "microchip,pic32mzda-sk", "microchip,pic32mzda";
#address-cells = <0x1>;
#size-cells = <0x1>;
interrupt-parent = <0x1>;
oc1 {
reg = <0x1f844000 0x30>;
interrupts = <0x0>;
#oc-cells = <0x0>;
oc-id = <0x1>;
compatible = "microchip,pic32-ocmp";
microchip,oc-adc;
microchip,oc-32bit;
};
oc2 {
reg = <0x1f844200 0x30>;
interrupts = <0x0>;
#oc-cells = <0x0>;
oc-id = <0x2>;
compatible = "microchip,pic32-ocmp";
microchip,oc-adc;
microchip,oc-32bit;
};
oc3 {
reg = <0x1f844400 0x30>;
interrupts = <0x0>;
#oc-cells = <0x0>;
oc-id = <0x3>;
compatible = "microchip,pic32-ocmp";
microchip,oc-adc;
microchip,oc-32bit;
};
oc4 {
reg = <0x1f844600 0x30>;
interrupts = <0x0>;
#oc-cells = <0x0>;
oc-id = <0x4>;
compatible = "microchip,pic32-ocmp";
microchip,oc-adc;
microchip,oc-32bit;
};
oc5 {
reg = <0x1f844800 0x30>;
interrupts = <0x0>;
#oc-cells = <0x0>;
oc-id = <0x5>;
compatible = "microchip,pic32-ocmp";
microchip,oc-adc;
microchip,oc-32bit;
};
oc6 {
reg = <0x1f844a00 0x30>;
interrupts = <0x0>;
#oc-cells = <0x0>;
oc-id = <0x2>;
compatible = "microchip,pic32-ocmp";
microchip,oc-adc;
microchip,oc-32bit;
};
oc7 {
reg = <0x1f844c00 0x30>;
interrupts = <0x0>;
#oc-cells = <0x0>;
oc-id = <0x7>;
compatible = "microchip,pic32-ocmp";
microchip,oc-adc;
microchip,oc-32bit;
};
oc8 {
reg = <0x1f844e00 0x30>;
interrupts = <0x0>;
#oc-cells = <0x0>;
oc-id = <0x8>;
compatible = "microchip,pic32-ocmp";
microchip,oc-adc;
phandle = <0x29>;
microchip,oc-32bit;
linux,phandle = <0x29>;
};
oc9 {
reg = <0x1f845000 0x30>;
interrupts = <0x0>;
#oc-cells = <0x0>;
oc-id = <0x9>;
compatible = "microchip,pic32-ocmp";
microchip,oc-adc;
microchip,oc-32bit;
};
cpus {
#address-cells = <0x1>;
#size-cells = <0x0>;
cpu@0 {
compatible = "mti,mips14KEc";
device_type = "cpu";
};
};
pwm8 {
pinctrl-0 = <0x2a>;
compatible = "microchip,pic32-pwm";
microchip,ocmp = <0x29>;
microchip,timer = <0x28>;
pinctrl-names = "default";
};
lprc_clk {
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x7d00>;
phandle = <0x7>;
linux,phandle = <0x7>;
};
usb@1f8e3000 {
reg = <0x1f8e3000 0x1000 0x1f884000 0x1000>;
phys = <0x18>;
interrupts = <0x84 0x8 0x1 0x85 0x8 0x4>;
pinctrl-0 = <0x19>;
reg-names = "mc", "control";
compatible = "microchip,pic32-usb";
mentor,multipoint = <0x1>;
clock-names = "usb_clk";
dr_mode = "host";
mentor,ram-bits = <0xb>;
mentor,power = <0x1f4>;
interrupt-names = "mc", "dma", "over_current";
clocks = <0x10>;
mentor,num-eps = <0x8>;
status = "okay";
pinctrl-names = "default";
usb_overcurrent@0 {
interrupts = <0xb 0x2>;
interrupt-parent = <0x1a>;
};
};
i2c@1f820000 {
reg = <0x1f820000 0x200>;
interrupts = <0x75 0x8 0x4>;
compatible = "microchip,pic32-i2c";
clock-frequency = <0x186a0>;
clocks = <0x1d>;
status = "disabled";
};
i2c@1f820200 {
reg = <0x1f820200 0x200>;
interrupts = <0x96 0x8 0x4>;
compatible = "microchip,pic32-i2c";
clock-frequency = <0x186a0>;
clocks = <0x1d>;
status = "disabled";
};
i2c@1f820400 {
reg = <0x1f820400 0x200>;
interrupts = <0xa2 0x8 0x4>;
pinctrl-0 = <0x24>;
compatible = "microchip,pic32-i2c";
clock-frequency = <0x186a0>;
clocks = <0x1d>;
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
pinctrl-names = "default";
};
i2c@1f820600 {
reg = <0x1f820600 0x200>;
interrupts = <0xaf 0x8 0x4>;
compatible = "microchip,pic32-i2c";
clock-frequency = <0x186a0>;
clocks = <0x1d>;
status = "disabled";
};
i2c@1f820800 {
reg = <0x1f820800 0x200>;
interrupts = <0xb8 0x8 0x4>;
compatible = "microchip,pic32-i2c";
clock-frequency = <0x186a0>;
clocks = <0x1d>;
status = "disabled";
};
keys0 {
pinctrl-0 = <0x27>;
compatible = "gpio-keys-polled";
poll-interval = <0x12c>;
#address-cells = <0x1>;
#size-cells = <0x0>;
pinctrl-names = "default";
button@sw1 {
gpios = <0x1a 0xc 0x0>;
label = "ESC";
linux,code = <0x1>;
};
button@sw2 {
gpios = <0x1a 0xd 0x0>;
label = "Home";
linux,code = <0x66>;
};
button@sw3 {
gpios = <0x1a 0xe 0x0>;
label = "Menu";
linux,code = <0x8b>;
};
};
interrupt-controller@1f810000 {
reg = <0x1f810000 0x1000>;
compatible = "microchip,evic-v2";
device_type = "evic-v2";
#interrupt-cells = <0x3>;
phandle = <0x1>;
interrupt-controller;
linux,phandle = <0x1>;
};
leds0 {
pinctrl-0 = <0x25>;
compatible = "gpio-leds";
pinctrl-names = "default";
led@1 {
gpios = <0x26 0x0 0x0>;
label = "pic32mzda_sk:red:led1";
linux,default-trigger = "heartbeat";
};
led@2 {
gpios = <0x26 0x1 0x0>;
label = "pic32mzda_sk:yellow:led2";
linux,default-trigger = "mmc0";
};
led@3 {
gpios = <0x26 0x2 0x0>;
label = "pic32mzda_sk:green:led3";
default-state = "on";
};
};
i2s@1f821000 {
reg = <0x1f821000 0x200>;
dmas = <0x1c 0x86 0x1c 0x87>;
interrupts = <0x6e 0x8 0x4 0x6f 0x8 0x4>;
compatible = "microchip,pic32-i2s";
clock-names = "mck0", "mck1";
clocks = <0x1d 0x1e>;
status = "disabled";
dma-names = "rx", "tx";
};
i2s@1f821200 {
reg = <0x1f821200 0x200>;
dmas = <0x1c 0x88 0x1c 0x89>;
interrupts = <0x8f 0x8 0x4 0x90 0x8 0x4>;
compatible = "microchip,pic32-i2s";
clock-names = "mck0", "mck1";
clocks = <0x1d 0x1e>;
status = "disabled";
dma-names = "rx", "tx";
};
i2s@1f821400 {
reg = <0x1f821400 0x200>;
dmas = <0x1c 0x8a 0x1c 0x8b>;
interrupts = <0x9b 0x8 0x4 0x9c 0x8 0x4>;
compatible = "microchip,pic32-i2s";
clock-names = "mck0", "mck1";
clocks = <0x1d 0x1e>;
status = "disabled";
dma-names = "rx", "tx";
};
i2s@1f821600 {
reg = <0x1f821600 0x200>;
dmas = <0x1c 0x8c 0x1c 0x8d>;
interrupts = <0xa4 0x8 0x4 0xa5 0x8 0x4>;
compatible = "microchip,pic32-i2s";
clock-names = "mck0", "mck1";
clocks = <0x1d 0x1e>;
status = "disabled";
dma-names = "rx", "tx";
};
i2s@1f821800 {
reg = <0x1f821800 0x200>;
dmas = <0x1c 0x86 0x1c 0x87>;
interrupts = <0xb1 0x8 0x4 0xb2 0x8 0x4>;
compatible = "microchip,pic32-i2s";
clock-names = "mck0", "mck1";
clocks = <0x1d 0x1e>;
status = "disabled";
dma-names = "rx", "tx";
};
i2s@1f821A00 {
reg = <0x1f821a00 0x200>;
dmas = <0x1c 0x88 0x1c 0x89>;
interrupts = <0xba 0x8 0x4 0xbb 0x8 0x4>;
compatible = "microchip,pic32-i2s";
clock-names = "mck0", "mck1";
clocks = <0x1d 0x1e>;
status = "disabled";
dma-names = "rx", "tx";
};
fb@1f8ea000 {
reg = <0x1f8ea000 0x1000>;
interrupts = <0xc0 0x8 0x4>;
compatible = "microchip,pic32-lcd";
clock-names = "lcd_clk", "sys_clk";
clocks = <0x17 0x8>;
status = "disabled";
};
posc_clk {
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x16e3600>;
phandle = <0x3>;
linux,phandle = <0x3>;
};
can@1f880000 {
reg = <0x1f880000 0x200>;
interrupts = <0x97 0x8 0x4>;
compatible = "microchip,pic32mzda-can";
clock-names = "can_clk";
clocks = <0x10>;
status = "disabled";
};
can@1f881000 {
reg = <0x1f881000 0x200>;
interrupts = <0x98 0x8 0x4>;
compatible = "microchip,pic32mzda-can";
clock-names = "can_clk";
clocks = <0x10>;
status = "disabled";
};
sdhci@1f8ec000 {
reg = <0x1f8ec000 0x100>;
interrupts = <0xbf 0x8 0x4>;
pinctrl-0 = <0x16>;
compatible = "microchip,pic32-sdhci";
clock-names = "base_clk", "sys_clk";
bus-width = <0x4>;
clocks = <0x15 0x10>;
cap-sd-highspeed;
status = "okay";
pinctrl-names = "default";
};
chosen {
bootargs = "console=ttyS1,115200n8 root=/dev/mmcblk0p1 rootwait";
};
rng@1f8e6000 {
reg = <0x1f8e6000 0x1000>;
compatible = "microchip,pic32-rng";
clocks = <0x10>;
};
frc_clk {
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x7a1200>;
phandle = <0x2>;
linux,phandle = <0x2>;
};
spi@0x1f821000 {
reg = <0x1f821000 0x200>;
dmas = <0x1c 0x86 0x1c 0x87>;
interrupts = <0x6d 0x8 0x4 0x6e 0x8 0x4 0x6f 0x8 0x4>;
compatible = "microchip,pic32-spi";
clock-names = "mck0", "mck1";
interrupt-names = "fault", "rx", "tx";
clocks = <0x1d 0x1e>;
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
dma-names = "spi-rx", "spi-tx";
interrupt-parent = <0x1>;
};
spi@0x1f821200 {
reg = <0x1f821200 0x200>;
dmas = <0x1c 0x88 0x1c 0x89>;
interrupts = <0x8e 0x8 0x4 0x8f 0x8 0x4 0x90 0x8 0x4>;
pinctrl-0 = <0x1f>;
compatible = "microchip,pic32-spi";
cs-gpios = <0x20 0x0 0x1 0x20 0xe 0x1>;
clock-names = "mck0", "mck1";
interrupt-names = "fault", "rx", "tx";
clocks = <0x1d 0x1e>;
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
dma-names = "spi-rx", "spi-tx";
pinctrl-names = "default";
interrupt-parent = <0x1>;
};
spi@0x1f821400 {
reg = <0x1f821400 0x200>;
dmas = <0x1c 0x8a 0x1c 0x8b>;
interrupts = <0x9a 0x8 0x4 0x9b 0x8 0x4 0x9c 0x8 0x4>;
compatible = "microchip,pic32-spi";
clock-names = "mck0", "mck1";
interrupt-names = "fault", "rx", "tx";
clocks = <0x1d 0x1e>;
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
dma-names = "spi-rx", "spi-tx";
interrupt-parent = <0x1>;
};
spi@0x1f821600 {
reg = <0x1f821600 0x200>;
dmas = <0x1c 0x8c 0x1c 0x8d>;
interrupts = <0xa3 0x8 0x4 0xa4 0x8 0x4 0xa5 0x8 0x4>;
compatible = "microchip,pic32-spi";
clock-names = "mck0", "mck1";
interrupt-names = "fault", "rx", "tx";
clocks = <0x1d 0x1e>;
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
dma-names = "spi-rx", "spi-tx";
interrupt-parent = <0x1>;
};
spi@0x1f821800 {
reg = <0x1f821800 0x200>;
dmas = <0x1c 0x86 0x1c 0x87>;
interrupts = <0xb0 0x8 0x4 0xb1 0x8 0x4 0xb2 0x8 0x4>;
compatible = "microchip,pic32-spi";
clock-names = "mck0", "mck1";
interrupt-names = "fault", "rx", "tx";
clocks = <0x1d 0x1e>;
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
dma-names = "spi-rx", "spi-tx";
interrupt-parent = <0x1>;
};
spi@0x1f821A00 {
reg = <0x1f821a00 0x200>;
dmas = <0x1c 0x88 0x1c 0x89>;
interrupts = <0xb9 0x8 0x4 0xba 0x8 0x4 0xbb 0x8 0x4>;
compatible = "microchip,pic32-spi";
clock-names = "mck0", "mck1";
interrupt-names = "fault", "rx", "tx";
clocks = <0x1d 0x1e>;
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
dma-names = "spi-rx", "spi-tx";
interrupt-parent = <0x1>;
};
pbtimer1 {
reg = <0x1f840000 0x30>;
interrupts = <0x4 0x8 0x1>;
compatible = "microchip,pic32-timerA";
clocks = <0xc 0x6 0x7>;
microchip,timer-version = <0x2>;
#timer-cells = <0x0>;
microchip,timer-class-A;
microchip,clock-indices = <0x0 0x1 0x5>;
timer-id = <0x1>;
};
pbtimer4 {
reg = <0x1f840600 0x200>;
interrupts = <0x13 0x8 0x1>;
compatible = "microchip,pic32-timer";
clocks = <0xc 0xd>;
#timer-cells = <0x0>;
timer-id = <0x4>;
};
pbtimer5 {
reg = <0x1f840800 0x200>;
interrupts = <0x18 0x8 0x1>;
compatible = "microchip,pic32-timer";
clocks = <0xc 0xd>;
microchip,timer-adc;
#timer-cells = <0x0>;
timer-id = <0x5>;
};
pinctrl@1f800000 {
reg = <0x1f801400 0x100 0x1f801500 0x200>;
#gpio-cells = <0x2>;
compatible = "microchip,pic32-pinctrl", "simple-bus";
clocks = <0x9>;
ranges;
#address-cells = <0x1>;
phandle = <0xe>;
gpio-ranges = <0xe 0x0 0x0 0x20 0xe 0x0 0x20 0x20 0xe 0x0 0x40 0x20 0xe 0x0 0x60 0x20 0xe 0x0 0x80 0x20 0xe 0x0 0xa0 0x20 0xe 0x0 0xc0 0x20 0xe 0x0 0xe0 0x20 0xe 0x0 0x100 0x20 0xe 0x0 0x120 0x20>;
#gpio-range-cells = <0x3>;
#size-cells = <0x1>;
gpio-controller;
linux,phandle = <0xe>;
i2c3 {
i2c3_0 {
pic32,single-pins = <0x5 0x8 0x3e 0x5 0x2 0x3e>;
phandle = <0x24>;
linux,phandle = <0x24>;
};
};
eth0 {
eth0_0 {
pic32,single-pins = <0x3 0xb 0x3e 0x3 0x6 0x3e 0x7 0xd 0x3e 0x7 0x8 0x3e 0x7 0x8 0x26 0x7 0x5 0x3e 0x7 0x5 0x26 0x5 0x3 0x3e 0x8 0xb 0x3e 0x8 0x9 0x3e 0x8 0x8 0x3e 0x8 0x1 0x3e 0x8 0xf 0x45>;
phandle = <0x11>;
linux,phandle = <0x11>;
};
};
leds {
user_leds_s0 {
pic32,single-pins = <0x7 0x0 0x45 0x7 0x1 0x45 0x7 0x2 0x45>;
phandle = <0x25>;
linux,phandle = <0x25>;
};
};
spi2 {
spi2_0 {
pic32,single-pins = <0x6 0x6 0x45 0x3 0x0 0x45 0x3 0xe 0x45>;
pic32,pins = <0xe08e3 0x826 0x40 0x8506 0x68c45 0x45>;
phandle = <0x1f>;
linux,phandle = <0x1f>;
};
};
usb1 {
usb1_oc-0 {
pic32,single-pins = <0x1 0xb 0x40>;
phandle = <0x19>;
linux,phandle = <0x19>;
};
};
sdhc1 {
sdhc1_pins0 {
pic32,single-pins = <0x0 0x6 0x3e 0x3 0x4 0x3e 0x6 0xd 0x3e 0x6 0xc 0x3e 0x6 0xe 0x3e 0x0 0x7 0x3e 0x0 0x0 0x3e>;
phandle = <0x16>;
linux,phandle = <0x16>;
};
};
uart2 {
uart2-0 {
pic32,pins = <0xa126 0x2a03c 0x45 0x51001 0x101a 0x40>;
phandle = <0x22>;
linux,phandle = <0x22>;
};
};
uart4 {
uart4-0 {
pic32,pins = <0x9062 0x2903e 0x45 0xd2104 0x201e 0x40>;
phandle = <0x23>;
linux,phandle = <0x23>;
};
};
gpio@1f860000 {
reg = <0x1f860000 0x24>;
interrupts = <0x76 0x8 0x4>;
#gpio-cells = <0x2>;
compatible = "microchip,pic32-gpio";
clocks = <0xf>;
#interrupt-cells = <0x2>;
interrupt-controller;
gpio-controller;
};
gpio@1f860100 {
reg = <0x1f860100 0x24>;
interrupts = <0x77 0x8 0x4>;
#gpio-cells = <0x2>;
compatible = "microchip,pic32-gpio";
clocks = <0xf>;
#interrupt-cells = <0x2>;
phandle = <0x1a>;
interrupt-controller;
gpio-controller;
linux,phandle = <0x1a>;
};
gpio@1f860200 {
reg = <0x1f860200 0x24>;
interrupts = <0x78 0x8 0x4>;
#gpio-cells = <0x2>;
compatible = "microchip,pic32-gpio";
clocks = <0xf>;
#interrupt-cells = <0x2>;
interrupt-controller;
gpio-controller;
};
gpio@1f860300 {
reg = <0x1f860300 0x24>;
interrupts = <0x79 0x8 0x4>;
#gpio-cells = <0x2>;
compatible = "microchip,pic32-gpio";
clocks = <0xf>;
#interrupt-cells = <0x2>;
phandle = <0x20>;
interrupt-controller;
gpio-controller;
linux,phandle = <0x20>;
};
gpio@1f860400 {
reg = <0x1f860400 0x24>;
interrupts = <0x7a 0x8 0x4>;
#gpio-cells = <0x2>;
compatible = "microchip,pic32-gpio";
clocks = <0xf>;
#interrupt-cells = <0x2>;
interrupt-controller;
gpio-controller;
};
gpio@1f860500 {
reg = <0x1f860500 0x24>;
interrupts = <0x7b 0x8 0x4>;
#gpio-cells = <0x2>;
compatible = "microchip,pic32-gpio";
clocks = <0xf>;
#interrupt-cells = <0x2>;
interrupt-controller;
gpio-controller;
};
gpio@1f860600 {
reg = <0x1f860600 0x24>;
interrupts = <0x7c 0x8 0x4>;
#gpio-cells = <0x2>;
compatible = "microchip,pic32-gpio";
clocks = <0xf>;
#interrupt-cells = <0x2>;
interrupt-controller;
gpio-controller;
};
gpio@1f860700 {
reg = <0x1f860700 0x24>;
interrupts = <0x7d 0x8 0x4>;
#gpio-cells = <0x2>;
compatible = "microchip,pic32-gpio";
clocks = <0xf>;
#interrupt-cells = <0x2>;
phandle = <0x26>;
interrupt-controller;
gpio-controller;
linux,phandle = <0x26>;
};
gpio@1f860800 {
reg = <0x1f860800 0x24>;
interrupts = <0x7e 0x8 0x4>;
#gpio-cells = <0x2>;
compatible = "microchip,pic32-gpio";
clocks = <0xf>;
#interrupt-cells = <0x2>;
phandle = <0x12>;
interrupt-controller;
gpio-controller;
linux,phandle = <0x12>;
};
gpio@1f860900 {
reg = <0x1f860900 0x24>;
interrupts = <0x7f 0x8 0x4>;
#gpio-cells = <0x2>;
compatible = "microchip,pic32-gpio";
clocks = <0xf>;
#interrupt-cells = <0x2>;
interrupt-controller;
gpio-controller;
};
oc_pins8 {
ocmp8_pins {
pic32,pins = <0x9101 0xc9051 0x45>;
phandle = <0x2a>;
linux,phandle = <0x2a>;
};
};
buttons0 {
user_buttons_s0 {
pic32,single-pins = <0x1 0xc 0x1c 0x1 0xd 0x1c 0x1 0xe 0x1c>;
phandle = <0x27>;
linux,phandle = <0x27>;
};
};
};
memory {
reg = <0x8000000 0x2000000>;
device_type = "memory";
};
bfrc_clk {
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x7a1200>;
phandle = <0xb>;
linux,phandle = <0xb>;
};
serial@1f822000 {
reg = <0x1f822000 0x50>;
interrupts = <0x70 0x8 0x4 0x71 0x8 0x4 0x72 0x8 0x4>;
compatible = "microchip,pic32-usart";
clocks = <0x1d>;
status = "disabled";
};
serial@1f822200 {
reg = <0x1f822200 0x50>;
interrupts = <0x91 0x8 0x4 0x92 0x8 0x4 0x93 0x8 0x4>;
pinctrl-0 = <0x22>;
compatible = "microchip,pic32-usart";
clocks = <0x1d>;
status = "okay";
pinctrl-names = "default";
};
serial@1f822400 {
reg = <0x1f822400 0x50>;
interrupts = <0x9d 0x8 0x4 0x9e 0x8 0x4 0x9f 0x8 0x4>;
compatible = "microchip,pic32-usart";
clocks = <0x1d>;
status = "disabled";
};
serial@1f822600 {
reg = <0x1f822600 0x50>;
interrupts = <0xaa 0x8 0x4 0xab 0x8 0x4 0xac 0x8 0x4>;
pinctrl-0 = <0x23>;
compatible = "microchip,pic32-usart";
clocks = <0x1d>;
status = "okay";
pinctrl-names = "default";
};
serial@1f822800 {
reg = <0x1f822800 0x50>;
interrupts = <0xb3 0x8 0x4 0xb4 0x8 0x4 0xb5 0x8 0x4>;
compatible = "microchip,pic32-usart";
clocks = <0x1d>;
status = "disabled";
};
serial@1f822A00 {
reg = <0x1f822a00 0x50>;
interrupts = <0xbc 0x8 0x4 0xbd 0x8 0x4 0xbe 0x8 0x4>;
compatible = "microchip,pic32-usart";
clocks = <0x1d>;
status = "disabled";
};
hsusb1_phy@0 {
reg = <0x1f8e4000 0x1000>;
compatible = "usb-nop-xceiv";
clock-names = "main_clk";
clock-frequency = <0x16e3600>;
clocks = <0x1b>;
status = "okay";
phandle = <0x18>;
linux,phandle = <0x18>;
};
adc@1f84b000 {
reg = <0x1f84b000 0x300>;
interrupts = <0x2c 0x8 0x4>;
compatible = "microchip,pic32-adc";
status = "disabled";
};
aliases {
i2s1 = "/i2s@1f821000";
i2s2 = "/i2s@1f821200";
i2s3 = "/i2s@1f821400";
i2s4 = "/i2s@1f821600";
i2s5 = "/i2s@1f821800";
i2s6 = "/i2s@1f821A00";
spi1 = "/spi@0x1f821000";
spi2 = "/spi@0x1f821200";
spi3 = "/spi@0x1f821400";
spi4 = "/spi@0x1f821600";
spi5 = "/spi@0x1f821800";
spi6 = "/spi@0x1f821A00";
spi7 = "/sqi@0x1f8e2000";
usb1 = "/usb@1f8e3000";
gpio0 = "/pinctrl@1f800000/gpio@1f860000";
gpio1 = "/pinctrl@1f800000/gpio@1f860100";
gpio2 = "/pinctrl@1f800000/gpio@1f860200";
gpio3 = "/pinctrl@1f800000/gpio@1f860300";
gpio4 = "/pinctrl@1f800000/gpio@1f860400";
gpio5 = "/pinctrl@1f800000/gpio@1f860500";
gpio6 = "/pinctrl@1f800000/gpio@1f860600";
gpio7 = "/pinctrl@1f800000/gpio@1f860700";
gpio8 = "/pinctrl@1f800000/gpio@1f860800";
gpio9 = "/pinctrl@1f800000/gpio@1f860900";
serial1 = "/serial@1f822200";
serial3 = "/serial@1f822600";
serial5 = "/serial@1f822A00";
usb1_phy = "/hsusb1_phy@0";
};
dma-controller@1f811000 {
reg = <0x1f811000 0x2000>;
interrupts = <0x86 0x8 0x1 0x87 0x8 0x1 0x88 0x8 0x1 0x89 0x8 0x1 0x8a 0x8 0x1 0x8b 0x8 0x1 0x8c 0x8 0x1 0x8d 0x8 0x1>;
compatible = "microchip,pic32-dma";
#dma-cells = <0x1>;
phandle = <0x1c>;
linux,phandle = <0x1c>;
};
refix_clk {
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x16e3600>;
status = "disabled";
phandle = <0xa>;
linux,phandle = <0xa>;
};
pic32_clktree {
reg = <0x1f801200 0x200>;
interrupts = <0xc>;
compatible = "microchip,pic32-clk";
ranges;
#address-cells = <0x1>;
#size-cells = <0x1>;
frcdiv_clk {
#clock-cells = <0x0>;
compatible = "microchip,pic32-frcdivclk";
clocks = <0x2>;
clock-output-names = "frcdiv_clk";
phandle = <0x4>;
linux,phandle = <0x4>;
};
sosc_clk {
reg = <0x1f801200 0x10 0x1f8013d0 0x10>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-sosc";
clock-frequency = <0x8000>;
phandle = <0x6>;
microchip,status-bit-mask = <0x10>;
linux,phandle = <0x6>;
microchip,bit-mask = <0x2>;
};
spll_clk {
reg = <0x1f801220 0x10 0x1f8013d0 0x10>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-syspll";
clocks = <0x3 0x2>;
clock-output-names = "sys_pll";
phandle = <0x5>;
microchip,status-bit-mask = <0x80>;
linux,phandle = <0x5>;
};
sys_clk {
reg = <0x1f8013c0 0x4>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-sysclk-v2";
clocks = <0x4 0x5 0x3 0x6 0x7 0x4>;
clock-output-names = "sys_clk";
phandle = <0x8>;
microchip,clock-indices = <0x0 0x1 0x2 0x4 0x5 0x7>;
linux,phandle = <0x8>;
};
CLK_MPLL {
reg = <0x1f800100 0x4>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-mpll";
clocks = <0x3>;
clock-output-names = "pic32-mpll";
status = "disabled";
};
pb1_clk {
reg = <0x1f801340 0x10>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-pbclk";
microchip,ignore-unused;
clocks = <0x8>;
clock-output-names = "pb1_clk";
phandle = <0x9>;
linux,phandle = <0x9>;
};
pb2_clk {
reg = <0x1f801350 0x10>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-pbclk";
microchip,ignore-unused;
clocks = <0x8>;
clock-output-names = "pb2_clk";
phandle = <0x1d>;
linux,phandle = <0x1d>;
};
pb3_clk {
reg = <0x1f801360 0x10>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-pbclk";
clocks = <0x8>;
clock-output-names = "pb3_clk";
phandle = <0xc>;
linux,phandle = <0xc>;
};
pb4_clk {
reg = <0x1f801370 0x10>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-pbclk";
clocks = <0x8>;
clock-output-names = "pb4_clk";
phandle = <0xf>;
linux,phandle = <0xf>;
};
pb5_clk {
reg = <0x1f801380 0x10>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-pbclk";
clocks = <0x8>;
clock-output-names = "pb5_clk";
phandle = <0x10>;
linux,phandle = <0x10>;
};
pb6_clk {
reg = <0x1f801390 0x10>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-pbclk";
clocks = <0x8>;
phandle = <0x13>;
linux,phandle = <0x13>;
};
pb7_clk {
reg = <0x1f8013a0 0x10>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-pbclk";
clocks = <0x8>;
clock-output-names = "cpu_clk";
phandle = <0x14>;
linux,phandle = <0x14>;
};
refo1_clk {
reg = <0x1f801280 0x20>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-refoclk";
clock-frequency = <0x989680>;
clocks = <0x8 0x9 0x3 0x2 0x7 0x6 0x5 0xa 0xb>;
clock-output-names = "refo1_clk";
phandle = <0x1e>;
microchip,clock-indices = <0x0 0x1 0x2 0x3 0x4 0x5 0x7 0x8 0x9>;
linux,phandle = <0x1e>;
};
refo2_clk {
reg = <0x1f8012a0 0x20>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-refoclk";
clock-frequency = <0x2faf080>;
clocks = <0x8 0x9 0x3 0x2 0x7 0x6 0x5 0xa 0xb>;
clock-output-names = "refo2_clk";
phandle = <0x21>;
microchip,clock-indices = <0x0 0x1 0x2 0x3 0x4 0x5 0x7 0x8 0x9>;
linux,phandle = <0x21>;
};
refo3_clk {
reg = <0x1f8012c0 0x20>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-refoclk";
clock-frequency = <0x989680>;
clocks = <0x8 0x9 0x3 0x2 0x7 0x6 0x5 0xa 0xb>;
clock-output-names = "refo3_clk";
microchip,clock-indices = <0x0 0x1 0x2 0x3 0x4 0x5 0x7 0x8 0x9>;
};
refo4_clk {
reg = <0x1f8012e0 0x20>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-refoclk";
clock-frequency = <0x17d7840>;
clocks = <0x8 0x9 0x3 0x2 0x7 0x6 0x5 0xa 0xb>;
clock-output-names = "refo4_clk";
phandle = <0x15>;
microchip,clock-indices = <0x0 0x1 0x2 0x3 0x4 0x5 0x7 0x8 0x9>;
linux,phandle = <0x15>;
};
refo5_clk {
reg = <0x1f801300 0x20>;
#clock-cells = <0x0>;
compatible = "microchip,pic32-refoclk";
clock-frequency = <0x2625a00>;
clocks = <0x8 0x9 0x3 0x2 0x7 0x6 0x5 0xa 0xb>;
clock-output-names = "refo5_clk";
phandle = <0x17>;
microchip,clock-indices = <0x0 0x1 0x2 0x3 0x4 0x5 0x7 0x8 0x9>;
linux,phandle = <0x17>;
};
};
rtc@1f8c0000 {
reg = <0x1f8c0000 0x60>;
interrupts = <0xa6 0x8 0x1>;
compatible = "microchip,pic32-rtc";
clocks = <0x13>;
};
usb_phy_clk {
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x16e3600>;
clock-output-names = "usbphy_clk";
phandle = <0x1b>;
linux,phandle = <0x1b>;
};
sqi@0x1f8e2000 {
reg = <0x1f8e2000 0x200>;
interrupts = <0xa9 0x8 0x4>;
compatible = "microchip,pic32-sqi";
clock-names = "spi_ck", "reg_ck";
clocks = <0x21 0x10>;
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
interrupt-parent = <0x1>;
};
pbtimer23 {
reg = <0x1f840200 0x400>;
interrupts = <0xe 0x8 0x1>;
microchip,timer-32bit;
compatible = "microchip,pic32-timer";
clocks = <0xc 0xd>;
#timer-cells = <0x0>;
phandle = <0x28>;
timer-id = <0x2>;
linux,phandle = <0x28>;
};
pbtimer67 {
reg = <0x1f840a00 0x400>;
interrupts = <0x20 0x8 0x1>;
microchip,timer-32bit;
compatible = "microchip,pic32-timer";
clocks = <0xc 0xd>;
#timer-cells = <0x0>;
timer-id = <0x6>;
};
pbtimer89 {
reg = <0x1f840e00 0x400>;
interrupts = <0x28 0x8 0x1>;
microchip,timer-32bit;
compatible = "microchip,pic32-timer";
clocks = <0xc 0xd>;
#timer-cells = <0x0>;
timer-id = <0x8>;
};
ethernet@1f882000 {
reg = <0x1f882000 0x1000 0x1000 0x7f000>;
interrupts = <0x99 0x8 0x4>;
pinctrl-0 = <0x11>;
reg-names = "regs", "mem";
compatible = "microchip,pic32-ec";
clock-names = "eth_clk";
phy-mode = "rmii";
clocks = <0x10>;
reset-gpio = <0x12 0xf 0x0>;
mac-address = [00 00 00 00 00 00];
status = "okay";
pinctrl-names = "default";
};
txcki_clk {
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x3d0900>;
status = "disabled";
phandle = <0xd>;
linux,phandle = <0xd>;
};
wdt@1f800800 {
reg = <0x1f800800 0x200>;
compatible = "microchip,pic32-wdt-v2";
clocks = <0x7>;
};
dmt@1f800a00 {
reg = <0x1f800a00 0x80>;
compatible = "microchip,pic32-dmt";
clocks = <0x14>;
};
};