Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  * Copyright (C) 2015 Microchip Technology Inc.  All rights reserved.
0004  */
0005 #include <dt-bindings/clock/microchip,pic32-clock.h>
0006 #include <dt-bindings/interrupt-controller/irq.h>
0007 
0008 / {
0009         #address-cells = <1>;
0010         #size-cells = <1>;
0011         interrupt-parent = <&evic>;
0012 
0013         aliases {
0014                 gpio0 = &gpio0;
0015                 gpio1 = &gpio1;
0016                 gpio2 = &gpio2;
0017                 gpio3 = &gpio3;
0018                 gpio4 = &gpio4;
0019                 gpio5 = &gpio5;
0020                 gpio6 = &gpio6;
0021                 gpio7 = &gpio7;
0022                 gpio8 = &gpio8;
0023                 gpio9 = &gpio9;
0024                 serial0 = &uart1;
0025                 serial1 = &uart2;
0026                 serial2 = &uart3;
0027                 serial3 = &uart4;
0028                 serial4 = &uart5;
0029                 serial5 = &uart6;
0030         };
0031 
0032         cpus {
0033                 #address-cells = <1>;
0034                 #size-cells = <0>;
0035 
0036                 cpu@0 {
0037                         compatible = "mti,mips14KEc";
0038                         device_type = "cpu";
0039                 };
0040         };
0041 
0042         soc {
0043                 compatible = "microchip,pic32mzda-infra";
0044                 interrupts = <0 IRQ_TYPE_EDGE_RISING>;
0045         };
0046 
0047         /* external clock input on TxCLKI pin */
0048         txcki: txcki_clk {
0049                 #clock-cells = <0>;
0050                 compatible = "fixed-clock";
0051                 clock-frequency = <4000000>;
0052                 status = "disabled";
0053         };
0054 
0055         /* external input on REFCLKIx pin */
0056         refix: refix_clk {
0057                 #clock-cells = <0>;
0058                 compatible = "fixed-clock";
0059                 clock-frequency = <24000000>;
0060                 status = "disabled";
0061         };
0062 
0063         rootclk: clock-controller@1f801200 {
0064                 compatible = "microchip,pic32mzda-clk";
0065                 reg = <0x1f801200 0x200>;
0066                 #clock-cells = <1>;
0067                 microchip,pic32mzda-sosc;
0068         };
0069 
0070         evic: interrupt-controller@1f810000 {
0071                 compatible = "microchip,pic32mzda-evic";
0072                 interrupt-controller;
0073                 #interrupt-cells = <2>;
0074                 reg = <0x1f810000 0x1000>;
0075                 microchip,external-irqs = <3 8 13 18 23>;
0076         };
0077 
0078         pic32_pinctrl: pinctrl@1f801400{
0079                 #address-cells = <1>;
0080                 #size-cells = <1>;
0081                 compatible = "microchip,pic32mzda-pinctrl";
0082                 reg = <0x1f801400 0x400>;
0083                 clocks = <&rootclk PB1CLK>;
0084         };
0085 
0086         /* PORTA */
0087         gpio0: gpio0@1f860000 {
0088                 compatible = "microchip,pic32mzda-gpio";
0089                 reg = <0x1f860000 0x100>;
0090                 interrupts = <118 IRQ_TYPE_LEVEL_HIGH>;
0091                 #gpio-cells = <2>;
0092                 gpio-controller;
0093                 interrupt-controller;
0094                 #interrupt-cells = <2>;
0095                 clocks = <&rootclk PB4CLK>;
0096                 microchip,gpio-bank = <0>;
0097                 gpio-ranges = <&pic32_pinctrl 0 0 16>;
0098         };
0099 
0100         /* PORTB */
0101         gpio1: gpio1@1f860100 {
0102                 compatible = "microchip,pic32mzda-gpio";
0103                 reg = <0x1f860100 0x100>;
0104                 interrupts = <119 IRQ_TYPE_LEVEL_HIGH>;
0105                 #gpio-cells = <2>;
0106                 gpio-controller;
0107                 interrupt-controller;
0108                 #interrupt-cells = <2>;
0109                 clocks = <&rootclk PB4CLK>;
0110                 microchip,gpio-bank = <1>;
0111                 gpio-ranges = <&pic32_pinctrl 0 16 16>;
0112         };
0113 
0114         /* PORTC */
0115         gpio2: gpio2@1f860200 {
0116                 compatible = "microchip,pic32mzda-gpio";
0117                 reg = <0x1f860200 0x100>;
0118                 interrupts = <120 IRQ_TYPE_LEVEL_HIGH>;
0119                 #gpio-cells = <2>;
0120                 gpio-controller;
0121                 interrupt-controller;
0122                 #interrupt-cells = <2>;
0123                 clocks = <&rootclk PB4CLK>;
0124                 microchip,gpio-bank = <2>;
0125                 gpio-ranges = <&pic32_pinctrl 0 32 16>;
0126         };
0127 
0128         /* PORTD */
0129         gpio3: gpio3@1f860300 {
0130                 compatible = "microchip,pic32mzda-gpio";
0131                 reg = <0x1f860300 0x100>;
0132                 interrupts = <121 IRQ_TYPE_LEVEL_HIGH>;
0133                 #gpio-cells = <2>;
0134                 gpio-controller;
0135                 interrupt-controller;
0136                 #interrupt-cells = <2>;
0137                 clocks = <&rootclk PB4CLK>;
0138                 microchip,gpio-bank = <3>;
0139                 gpio-ranges = <&pic32_pinctrl 0 48 16>;
0140         };
0141 
0142         /* PORTE */
0143         gpio4: gpio4@1f860400 {
0144                 compatible = "microchip,pic32mzda-gpio";
0145                 reg = <0x1f860400 0x100>;
0146                 interrupts = <122 IRQ_TYPE_LEVEL_HIGH>;
0147                 #gpio-cells = <2>;
0148                 gpio-controller;
0149                 interrupt-controller;
0150                 #interrupt-cells = <2>;
0151                 clocks = <&rootclk PB4CLK>;
0152                 microchip,gpio-bank = <4>;
0153                 gpio-ranges = <&pic32_pinctrl 0 64 16>;
0154         };
0155 
0156         /* PORTF */
0157         gpio5: gpio5@1f860500 {
0158                 compatible = "microchip,pic32mzda-gpio";
0159                 reg = <0x1f860500 0x100>;
0160                 interrupts = <123 IRQ_TYPE_LEVEL_HIGH>;
0161                 #gpio-cells = <2>;
0162                 gpio-controller;
0163                 interrupt-controller;
0164                 #interrupt-cells = <2>;
0165                 clocks = <&rootclk PB4CLK>;
0166                 microchip,gpio-bank = <5>;
0167                 gpio-ranges = <&pic32_pinctrl 0 80 16>;
0168         };
0169 
0170         /* PORTG */
0171         gpio6: gpio6@1f860600 {
0172                 compatible = "microchip,pic32mzda-gpio";
0173                 reg = <0x1f860600 0x100>;
0174                 interrupts = <124 IRQ_TYPE_LEVEL_HIGH>;
0175                 #gpio-cells = <2>;
0176                 gpio-controller;
0177                 interrupt-controller;
0178                 #interrupt-cells = <2>;
0179                 clocks = <&rootclk PB4CLK>;
0180                 microchip,gpio-bank = <6>;
0181                 gpio-ranges = <&pic32_pinctrl 0 96 16>;
0182         };
0183 
0184         /* PORTH */
0185         gpio7: gpio7@1f860700 {
0186                 compatible = "microchip,pic32mzda-gpio";
0187                 reg = <0x1f860700 0x100>;
0188                 interrupts = <125 IRQ_TYPE_LEVEL_HIGH>;
0189                 #gpio-cells = <2>;
0190                 gpio-controller;
0191                 interrupt-controller;
0192                 #interrupt-cells = <2>;
0193                 clocks = <&rootclk PB4CLK>;
0194                 microchip,gpio-bank = <7>;
0195                 gpio-ranges = <&pic32_pinctrl 0 112 16>;
0196         };
0197 
0198         /* PORTI does not exist */
0199 
0200         /* PORTJ */
0201         gpio8: gpio8@1f860800 {
0202                 compatible = "microchip,pic32mzda-gpio";
0203                 reg = <0x1f860800 0x100>;
0204                 interrupts = <126 IRQ_TYPE_LEVEL_HIGH>;
0205                 #gpio-cells = <2>;
0206                 gpio-controller;
0207                 interrupt-controller;
0208                 #interrupt-cells = <2>;
0209                 clocks = <&rootclk PB4CLK>;
0210                 microchip,gpio-bank = <8>;
0211                 gpio-ranges = <&pic32_pinctrl 0 128 16>;
0212         };
0213 
0214         /* PORTK */
0215         gpio9: gpio9@1f860900 {
0216                 compatible = "microchip,pic32mzda-gpio";
0217                 reg = <0x1f860900 0x100>;
0218                 interrupts = <127 IRQ_TYPE_LEVEL_HIGH>;
0219                 #gpio-cells = <2>;
0220                 gpio-controller;
0221                 interrupt-controller;
0222                 #interrupt-cells = <2>;
0223                 clocks = <&rootclk PB4CLK>;
0224                 microchip,gpio-bank = <9>;
0225                 gpio-ranges = <&pic32_pinctrl 0 144 16>;
0226         };
0227 
0228         sdhci: sdhci@1f8ec000 {
0229                 compatible = "microchip,pic32mzda-sdhci";
0230                 reg = <0x1f8ec000 0x100>;
0231                 interrupts = <191 IRQ_TYPE_LEVEL_HIGH>;
0232                 clocks = <&rootclk REF4CLK>, <&rootclk PB5CLK>;
0233                 clock-names = "base_clk", "sys_clk";
0234                 bus-width = <4>;
0235                 cap-sd-highspeed;
0236                 status = "disabled";
0237         };
0238 
0239         uart1: serial@1f822000 {
0240                 compatible = "microchip,pic32mzda-uart";
0241                 reg = <0x1f822000 0x50>;
0242                 interrupts = <112 IRQ_TYPE_LEVEL_HIGH>,
0243                         <113 IRQ_TYPE_LEVEL_HIGH>,
0244                         <114 IRQ_TYPE_LEVEL_HIGH>;
0245                 clocks = <&rootclk PB2CLK>;
0246                 status = "disabled";
0247         };
0248 
0249         uart2: serial@1f822200 {
0250                 compatible = "microchip,pic32mzda-uart";
0251                 reg = <0x1f822200 0x50>;
0252                 interrupts = <145 IRQ_TYPE_LEVEL_HIGH>,
0253                         <146 IRQ_TYPE_LEVEL_HIGH>,
0254                         <147 IRQ_TYPE_LEVEL_HIGH>;
0255                 clocks = <&rootclk PB2CLK>;
0256                 status = "disabled";
0257         };
0258 
0259         uart3: serial@1f822400 {
0260                 compatible = "microchip,pic32mzda-uart";
0261                 reg = <0x1f822400 0x50>;
0262                 interrupts = <157 IRQ_TYPE_LEVEL_HIGH>,
0263                         <158 IRQ_TYPE_LEVEL_HIGH>,
0264                         <159 IRQ_TYPE_LEVEL_HIGH>;
0265                 clocks = <&rootclk PB2CLK>;
0266                 status = "disabled";
0267         };
0268 
0269         uart4: serial@1f822600 {
0270                 compatible = "microchip,pic32mzda-uart";
0271                 reg = <0x1f822600 0x50>;
0272                 interrupts = <170 IRQ_TYPE_LEVEL_HIGH>,
0273                         <171 IRQ_TYPE_LEVEL_HIGH>,
0274                         <172 IRQ_TYPE_LEVEL_HIGH>;
0275                 clocks = <&rootclk PB2CLK>;
0276                 status = "disabled";
0277         };
0278 
0279         uart5: serial@1f822800 {
0280                 compatible = "microchip,pic32mzda-uart";
0281                 reg = <0x1f822800 0x50>;
0282                 interrupts = <179 IRQ_TYPE_LEVEL_HIGH>,
0283                         <180 IRQ_TYPE_LEVEL_HIGH>,
0284                         <181 IRQ_TYPE_LEVEL_HIGH>;
0285                 clocks = <&rootclk PB2CLK>;
0286                 status = "disabled";
0287         };
0288 
0289         uart6: serial@1f822A00 {
0290                 compatible = "microchip,pic32mzda-uart";
0291                 reg = <0x1f822A00 0x50>;
0292                 interrupts = <188 IRQ_TYPE_LEVEL_HIGH>,
0293                         <189 IRQ_TYPE_LEVEL_HIGH>,
0294                         <190 IRQ_TYPE_LEVEL_HIGH>;
0295                 clocks = <&rootclk PB2CLK>;
0296                 status = "disabled";
0297         };
0298 };