// SPDX-License-Identifier: GPL-2.0-only /* * Copyright (C) 2015 Microchip Technology Inc. All rights reserved. */ #include <dt-bindings/clock/microchip,pic32-clock.h> #include <dt-bindings/interrupt-controller/irq.h> / { #address-cells = <1>; #size-cells = <1>; interrupt-parent = <&evic>; aliases { gpio0 = &gpio0; gpio1 = &gpio1; gpio2 = &gpio2; gpio3 = &gpio3; gpio4 = &gpio4; gpio5 = &gpio5; gpio6 = &gpio6; gpio7 = &gpio7; gpio8 = &gpio8; gpio9 = &gpio9; serial0 = &uart1; serial1 = &uart2; serial2 = &uart3; serial3 = &uart4; serial4 = &uart5; serial5 = &uart6; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu@0 { compatible = "mti,mips14KEc"; device_type = "cpu"; }; }; soc { compatible = "microchip,pic32mzda-infra"; interrupts = <0 IRQ_TYPE_EDGE_RISING>; }; /* external clock input on TxCLKI pin */ txcki: txcki_clk { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <4000000>; status = "disabled"; }; /* external input on REFCLKIx pin */ refix: refix_clk { #clock-cells = <0>; compatible = "fixed-clock"; clock-frequency = <24000000>; status = "disabled"; }; rootclk: clock-controller@1f801200 { compatible = "microchip,pic32mzda-clk"; reg = <0x1f801200 0x200>; #clock-cells = <1>; microchip,pic32mzda-sosc; }; evic: interrupt-controller@1f810000 { compatible = "microchip,pic32mzda-evic"; interrupt-controller; #interrupt-cells = <2>; reg = <0x1f810000 0x1000>; microchip,external-irqs = <3 8 13 18 23>; }; pic32_pinctrl: pinctrl@1f801400 { #address-cells = <1>; #size-cells = <1>; compatible = "microchip,pic32mzda-pinctrl"; reg = <0x1f801400 0x400>; clocks = <&rootclk PB1CLK>; }; /* PORTA */ gpio0: gpio0@1f860000 { compatible = "microchip,pic32mzda-gpio"; reg = <0x1f860000 0x100>; interrupts = <118 IRQ_TYPE_LEVEL_HIGH>; #gpio-cells = <2>; gpio-controller; interrupt-controller; #interrupt-cells = <2>; clocks = <&rootclk PB4CLK>; microchip,gpio-bank = <0>; gpio-ranges = <&pic32_pinctrl 0 0 16>; }; /* PORTB */ gpio1: gpio1@1f860100 { compatible = "microchip,pic32mzda-gpio"; reg = <0x1f860100 0x100>; interrupts = <119 IRQ_TYPE_LEVEL_HIGH>; #gpio-cells = <2>; gpio-controller; interrupt-controller; #interrupt-cells = <2>; clocks = <&rootclk PB4CLK>; microchip,gpio-bank = <1>; gpio-ranges = <&pic32_pinctrl 0 16 16>; }; /* PORTC */ gpio2: gpio2@1f860200 { compatible = "microchip,pic32mzda-gpio"; reg = <0x1f860200 0x100>; interrupts = <120 IRQ_TYPE_LEVEL_HIGH>; #gpio-cells = <2>; gpio-controller; interrupt-controller; #interrupt-cells = <2>; clocks = <&rootclk PB4CLK>; microchip,gpio-bank = <2>; gpio-ranges = <&pic32_pinctrl 0 32 16>; }; /* PORTD */ gpio3: gpio3@1f860300 { compatible = "microchip,pic32mzda-gpio"; reg = <0x1f860300 0x100>; interrupts = <121 IRQ_TYPE_LEVEL_HIGH>; #gpio-cells = <2>; gpio-controller; interrupt-controller; #interrupt-cells = <2>; clocks = <&rootclk PB4CLK>; microchip,gpio-bank = <3>; gpio-ranges = <&pic32_pinctrl 0 48 16>; }; /* PORTE */ gpio4: gpio4@1f860400 { compatible = "microchip,pic32mzda-gpio"; reg = <0x1f860400 0x100>; interrupts = <122 IRQ_TYPE_LEVEL_HIGH>; #gpio-cells = <2>; gpio-controller; interrupt-controller; #interrupt-cells = <2>; clocks = <&rootclk PB4CLK>; microchip,gpio-bank = <4>; gpio-ranges = <&pic32_pinctrl 0 64 16>; }; /* PORTF */ gpio5: gpio5@1f860500 { compatible = "microchip,pic32mzda-gpio"; reg = <0x1f860500 0x100>; interrupts = <123 IRQ_TYPE_LEVEL_HIGH>; #gpio-cells = <2>; gpio-controller; interrupt-controller; #interrupt-cells = <2>; clocks = <&rootclk PB4CLK>; microchip,gpio-bank = <5>; gpio-ranges = <&pic32_pinctrl 0 80 16>; }; /* PORTG */ gpio6: gpio6@1f860600 { compatible = "microchip,pic32mzda-gpio"; reg = <0x1f860600 0x100>; interrupts = <124 IRQ_TYPE_LEVEL_HIGH>; #gpio-cells = <2>; gpio-controller; interrupt-controller; #interrupt-cells = <2>; clocks = <&rootclk PB4CLK>; microchip,gpio-bank = <6>; gpio-ranges = <&pic32_pinctrl 0 96 16>; }; /* PORTH */ gpio7: gpio7@1f860700 { compatible = "microchip,pic32mzda-gpio"; reg = <0x1f860700 0x100>; interrupts = <125 IRQ_TYPE_LEVEL_HIGH>; #gpio-cells = <2>; gpio-controller; interrupt-controller; #interrupt-cells = <2>; clocks = <&rootclk PB4CLK>; microchip,gpio-bank = <7>; gpio-ranges = <&pic32_pinctrl 0 112 16>; }; /* PORTI does not exist */ /* PORTJ */ gpio8: gpio8@1f860800 { compatible = "microchip,pic32mzda-gpio"; reg = <0x1f860800 0x100>; interrupts = <126 IRQ_TYPE_LEVEL_HIGH>; #gpio-cells = <2>; gpio-controller; interrupt-controller; #interrupt-cells = <2>; clocks = <&rootclk PB4CLK>; microchip,gpio-bank = <8>; gpio-ranges = <&pic32_pinctrl 0 128 16>; }; /* PORTK */ gpio9: gpio9@1f860900 { compatible = "microchip,pic32mzda-gpio"; reg = <0x1f860900 0x100>; interrupts = <127 IRQ_TYPE_LEVEL_HIGH>; #gpio-cells = <2>; gpio-controller; interrupt-controller; #interrupt-cells = <2>; clocks = <&rootclk PB4CLK>; microchip,gpio-bank = <9>; gpio-ranges = <&pic32_pinctrl 0 144 16>; }; sdhci: sdhci@1f8ec000 { compatible = "microchip,pic32mzda-sdhci"; reg = <0x1f8ec000 0x100>; interrupts = <191 IRQ_TYPE_LEVEL_HIGH>; clocks = <&rootclk REF4CLK>, <&rootclk PB5CLK>; clock-names = "base_clk", "sys_clk"; bus-width = <4>; cap-sd-highspeed; status = "disabled"; }; uart1: serial@1f822000 { compatible = "microchip,pic32mzda-uart"; reg = <0x1f822000 0x50>; interrupts = <112 IRQ_TYPE_LEVEL_HIGH>, <113 IRQ_TYPE_LEVEL_HIGH>, <114 IRQ_TYPE_LEVEL_HIGH>; clocks = <&rootclk PB2CLK>; status = "disabled"; }; uart2: serial@1f822200 { compatible = "microchip,pic32mzda-uart"; reg = <0x1f822200 0x50>; interrupts = <145 IRQ_TYPE_LEVEL_HIGH>, <146 IRQ_TYPE_LEVEL_HIGH>, <147 IRQ_TYPE_LEVEL_HIGH>; clocks = <&rootclk PB2CLK>; status = "disabled"; }; uart3: serial@1f822400 { compatible = "microchip,pic32mzda-uart"; reg = <0x1f822400 0x50>; interrupts = <157 IRQ_TYPE_LEVEL_HIGH>, <158 IRQ_TYPE_LEVEL_HIGH>, <159 IRQ_TYPE_LEVEL_HIGH>; clocks = <&rootclk PB2CLK>; status = "disabled"; }; uart4: serial@1f822600 { compatible = "microchip,pic32mzda-uart"; reg = <0x1f822600 0x50>; interrupts = <170 IRQ_TYPE_LEVEL_HIGH>, <171 IRQ_TYPE_LEVEL_HIGH>, <172 IRQ_TYPE_LEVEL_HIGH>; clocks = <&rootclk PB2CLK>; status = "disabled"; }; uart5: serial@1f822800 { compatible = "microchip,pic32mzda-uart"; reg = <0x1f822800 0x50>; interrupts = <179 IRQ_TYPE_LEVEL_HIGH>, <180 IRQ_TYPE_LEVEL_HIGH>, <181 IRQ_TYPE_LEVEL_HIGH>; clocks = <&rootclk PB2CLK>; status = "disabled"; }; uart6: serial@1f822A00 { compatible = "microchip,pic32mzda-uart"; reg = <0x1f822A00 0x50>; interrupts = <188 IRQ_TYPE_LEVEL_HIGH>, <189 IRQ_TYPE_LEVEL_HIGH>, <190 IRQ_TYPE_LEVEL_HIGH>; clocks = <&rootclk PB2CLK>; status = "disabled"; }; };