Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-only
0002 /*
0003  *  Copyright (C) 2012 Marvell Technology Group Ltd.
0004  *  Author: Haojian Zhuang <haojian.zhuang@marvell.com>
0005  */
0006 
0007 #include <dt-bindings/clock/marvell,mmp2.h>
0008 #include <dt-bindings/power/marvell,mmp2.h>
0009 #include <dt-bindings/clock/marvell,mmp2-audio.h>
0010 
0011 / {
0012         #address-cells = <1>;
0013         #size-cells = <1>;
0014 
0015         aliases {
0016                 serial0 = &uart1;
0017                 serial1 = &uart2;
0018                 serial2 = &uart3;
0019                 serial3 = &uart4;
0020                 i2c0 = &twsi1;
0021                 i2c1 = &twsi2;
0022         };
0023 
0024         soc {
0025                 #address-cells = <1>;
0026                 #size-cells = <1>;
0027                 compatible = "simple-bus";
0028                 interrupt-parent = <&intc>;
0029                 ranges;
0030 
0031                 L2: l2-cache {
0032                         compatible = "marvell,tauros2-cache";
0033                         marvell,tauros2-cache-features = <0x3>;
0034                 };
0035 
0036                 axi@d4200000 {  /* AXI */
0037                         compatible = "mrvl,axi-bus", "simple-bus";
0038                         #address-cells = <1>;
0039                         #size-cells = <1>;
0040                         reg = <0xd4200000 0x00200000>;
0041                         ranges;
0042 
0043                         gpu: gpu@d420d000 {
0044                                 compatible = "vivante,gc";
0045                                 reg = <0xd420d000 0x4000>;
0046                                 interrupts = <8>;
0047                                 status = "disabled";
0048                                 clocks = <&soc_clocks MMP2_CLK_GPU_3D>,
0049                                          <&soc_clocks MMP2_CLK_GPU_BUS>;
0050                                 clock-names = "core", "bus";
0051                                 power-domains = <&soc_clocks MMP2_POWER_DOMAIN_GPU>;
0052                         };
0053 
0054                         intc: interrupt-controller@d4282000 {
0055                                 compatible = "mrvl,mmp2-intc";
0056                                 interrupt-controller;
0057                                 #interrupt-cells = <1>;
0058                                 reg = <0xd4282000 0x1000>;
0059                                 mrvl,intc-nr-irqs = <64>;
0060                         };
0061 
0062                         intcmux4: interrupt-controller@d4282150 {
0063                                 compatible = "mrvl,mmp2-mux-intc";
0064                                 interrupts = <4>;
0065                                 interrupt-controller;
0066                                 #interrupt-cells = <1>;
0067                                 reg = <0x150 0x4>, <0x168 0x4>;
0068                                 reg-names = "mux status", "mux mask";
0069                                 mrvl,intc-nr-irqs = <2>;
0070                         };
0071 
0072                         intcmux5: interrupt-controller@d4282154 {
0073                                 compatible = "mrvl,mmp2-mux-intc";
0074                                 interrupts = <5>;
0075                                 interrupt-controller;
0076                                 #interrupt-cells = <1>;
0077                                 reg = <0x154 0x4>, <0x16c 0x4>;
0078                                 reg-names = "mux status", "mux mask";
0079                                 mrvl,intc-nr-irqs = <2>;
0080                                 mrvl,clr-mfp-irq = <1>;
0081                         };
0082 
0083                         intcmux9: interrupt-controller@d4282180 {
0084                                 compatible = "mrvl,mmp2-mux-intc";
0085                                 interrupts = <9>;
0086                                 interrupt-controller;
0087                                 #interrupt-cells = <1>;
0088                                 reg = <0x180 0x4>, <0x17c 0x4>;
0089                                 reg-names = "mux status", "mux mask";
0090                                 mrvl,intc-nr-irqs = <3>;
0091                         };
0092 
0093                         intcmux17: interrupt-controller@d4282158 {
0094                                 compatible = "mrvl,mmp2-mux-intc";
0095                                 interrupts = <17>;
0096                                 interrupt-controller;
0097                                 #interrupt-cells = <1>;
0098                                 reg = <0x158 0x4>, <0x170 0x4>;
0099                                 reg-names = "mux status", "mux mask";
0100                                 mrvl,intc-nr-irqs = <5>;
0101                         };
0102 
0103                         intcmux35: interrupt-controller@d428215c {
0104                                 compatible = "mrvl,mmp2-mux-intc";
0105                                 interrupts = <35>;
0106                                 interrupt-controller;
0107                                 #interrupt-cells = <1>;
0108                                 reg = <0x15c 0x4>, <0x174 0x4>;
0109                                 reg-names = "mux status", "mux mask";
0110                                 mrvl,intc-nr-irqs = <15>;
0111                         };
0112 
0113                         intcmux51: interrupt-controller@d4282160 {
0114                                 compatible = "mrvl,mmp2-mux-intc";
0115                                 interrupts = <51>;
0116                                 interrupt-controller;
0117                                 #interrupt-cells = <1>;
0118                                 reg = <0x160 0x4>, <0x178 0x4>;
0119                                 reg-names = "mux status", "mux mask";
0120                                 mrvl,intc-nr-irqs = <2>;
0121                         };
0122 
0123                         intcmux55: interrupt-controller@d4282188 {
0124                                 compatible = "mrvl,mmp2-mux-intc";
0125                                 interrupts = <55>;
0126                                 interrupt-controller;
0127                                 #interrupt-cells = <1>;
0128                                 reg = <0x188 0x4>, <0x184 0x4>;
0129                                 reg-names = "mux status", "mux mask";
0130                                 mrvl,intc-nr-irqs = <2>;
0131                         };
0132 
0133                         usb_phy0: usb-phy@d4207000 {
0134                                 compatible = "marvell,mmp2-usb-phy";
0135                                 reg = <0xd4207000 0x40>;
0136                                 #phy-cells = <0>;
0137                                 status = "disabled";
0138                         };
0139 
0140                         usb_otg0: usb-otg@d4208000 {
0141                                 compatible = "marvell,pxau2o-ehci";
0142                                 reg = <0xd4208000 0x200>;
0143                                 interrupts = <44>;
0144                                 clocks = <&soc_clocks MMP2_CLK_USB>;
0145                                 clock-names = "USBCLK";
0146                                 phys = <&usb_phy0>;
0147                                 phy-names = "usb";
0148                                 status = "disabled";
0149                         };
0150 
0151                         mmc1: mmc@d4280000 {
0152                                 compatible = "mrvl,pxav3-mmc";
0153                                 reg = <0xd4280000 0x120>;
0154                                 clocks = <&soc_clocks MMP2_CLK_SDH0>;
0155                                 clock-names = "io";
0156                                 interrupts = <39>;
0157                                 status = "disabled";
0158                         };
0159 
0160                         mmc2: mmc@d4280800 {
0161                                 compatible = "mrvl,pxav3-mmc";
0162                                 reg = <0xd4280800 0x120>;
0163                                 clocks = <&soc_clocks MMP2_CLK_SDH1>;
0164                                 clock-names = "io";
0165                                 interrupts = <52>;
0166                                 status = "disabled";
0167                         };
0168 
0169                         mmc3: mmc@d4281000 {
0170                                 compatible = "mrvl,pxav3-mmc";
0171                                 reg = <0xd4281000 0x120>;
0172                                 clocks = <&soc_clocks MMP2_CLK_SDH2>;
0173                                 clock-names = "io";
0174                                 interrupts = <53>;
0175                                 status = "disabled";
0176                         };
0177 
0178                         mmc4: mmc@d4281800 {
0179                                 compatible = "mrvl,pxav3-mmc";
0180                                 reg = <0xd4281800 0x120>;
0181                                 clocks = <&soc_clocks MMP2_CLK_SDH3>;
0182                                 clock-names = "io";
0183                                 interrupts = <54>;
0184                                 status = "disabled";
0185                         };
0186 
0187                         camera0: camera@d420a000 {
0188                                 compatible = "marvell,mmp2-ccic";
0189                                 reg = <0xd420a000 0x800>;
0190                                 interrupts = <42>;
0191                                 clocks = <&soc_clocks MMP2_CLK_CCIC0>;
0192                                 clock-names = "axi";
0193                                 #clock-cells = <0>;
0194                                 clock-output-names = "mclk";
0195                                 status = "disabled";
0196                         };
0197 
0198                         camera1: camera@d420a800 {
0199                                 compatible = "marvell,mmp2-ccic";
0200                                 reg = <0xd420a800 0x800>;
0201                                 interrupts = <30>;
0202                                 clocks = <&soc_clocks MMP2_CLK_CCIC1>;
0203                                 clock-names = "axi";
0204                                 #clock-cells = <0>;
0205                                 clock-output-names = "mclk";
0206                                 status = "disabled";
0207                         };
0208 
0209                         adma0: dma-controller@d42a0800 {
0210                                 compatible = "marvell,adma-1.0";
0211                                 reg = <0xd42a0800 0x100>;
0212                                 interrupts = <48>;
0213                                 #dma-cells = <1>;
0214                                 asram = <&asram>;
0215                                 iram = <&asram>;
0216                                 status = "disabled";
0217                         };
0218 
0219                         adma1: dma-controller@d42a0900 {
0220                                 compatible = "marvell,adma-1.0";
0221                                 reg = <0xd42a0900 0x100>;
0222                                 interrupts = <48>;
0223                                 #dma-cells = <1>;
0224                                 status = "disabled";
0225                         };
0226 
0227                         audio_clk: clocks@d42a0c30 {
0228                                 compatible = "marvell,mmp2-audio-clock";
0229                                 reg = <0xd42a0c30 0x10>;
0230                                 clock-names = "audio", "vctcxo", "i2s0", "i2s1";
0231                                 clocks = <&soc_clocks MMP2_CLK_AUDIO>,
0232                                          <&soc_clocks MMP2_CLK_VCTCXO>,
0233                                          <&soc_clocks MMP2_CLK_I2S0>,
0234                                          <&soc_clocks MMP2_CLK_I2S1>;
0235                                 power-domains = <&soc_clocks MMP2_POWER_DOMAIN_AUDIO>;
0236                                 #clock-cells = <1>;
0237                                 status = "disabled";
0238                         };
0239 
0240                         sspa0: audio-controller@d42a0c00 {
0241                                 compatible = "marvell,mmp-sspa";
0242                                 reg = <0xd42a0c00 0x30>,
0243                                       <0xd42a0c80 0x30>;
0244                                 interrupts = <2>;
0245                                 clock-names = "audio", "bitclk";
0246                                 clocks = <&soc_clocks MMP2_CLK_AUDIO>,
0247                                          <&audio_clk MMP2_CLK_AUDIO_SSPA0>;
0248                                 power-domains = <&soc_clocks MMP2_POWER_DOMAIN_AUDIO>;
0249                                 #sound-dai-cells = <0>;
0250                                 status = "disabled";
0251                         };
0252 
0253                         sspa1: audio-controller@d42a0d00 {
0254                                 compatible = "marvell,mmp-sspa";
0255                                 reg = <0xd42a0d00 0x30>,
0256                                       <0xd42a0d80 0x30>;
0257                                 interrupts = <3>;
0258                                 clock-names = "audio", "bitclk";
0259                                 clocks = <&soc_clocks MMP2_CLK_AUDIO>,
0260                                          <&audio_clk MMP2_CLK_AUDIO_SSPA1>;
0261                                 power-domains = <&soc_clocks MMP2_POWER_DOMAIN_AUDIO>;
0262                                 #sound-dai-cells = <0>;
0263                                 status = "disabled";
0264                         };
0265                 };
0266 
0267                 apb@d4000000 {  /* APB */
0268                         compatible = "mrvl,apb-bus", "simple-bus";
0269                         #address-cells = <1>;
0270                         #size-cells = <1>;
0271                         reg = <0xd4000000 0x00200000>;
0272                         ranges;
0273 
0274                         dma-controller@d4000000 {
0275                                 compatible = "marvell,pdma-1.0";
0276                                 reg = <0xd4000000 0x10000>;
0277                                 interrupts = <48>;
0278                                 /* For backwards compatibility: */
0279                                 #dma-channels = <16>;
0280                                 dma-channels = <16>;
0281                                 status = "disabled";
0282                         };
0283 
0284                         timer0: timer@d4014000 {
0285                                 compatible = "mrvl,mmp-timer";
0286                                 reg = <0xd4014000 0x100>;
0287                                 interrupts = <13>;
0288                                 clocks = <&soc_clocks MMP2_CLK_TIMER>;
0289                         };
0290 
0291                         uart1: serial@d4030000 {
0292                                 compatible = "mrvl,mmp-uart", "intel,xscale-uart";
0293                                 reg = <0xd4030000 0x1000>;
0294                                 interrupts = <27>;
0295                                 clocks = <&soc_clocks MMP2_CLK_UART0>;
0296                                 resets = <&soc_clocks MMP2_CLK_UART0>;
0297                                 reg-shift = <2>;
0298                                 status = "disabled";
0299                         };
0300 
0301                         uart2: serial@d4017000 {
0302                                 compatible = "mrvl,mmp-uart", "intel,xscale-uart";
0303                                 reg = <0xd4017000 0x1000>;
0304                                 interrupts = <28>;
0305                                 clocks = <&soc_clocks MMP2_CLK_UART1>;
0306                                 resets = <&soc_clocks MMP2_CLK_UART1>;
0307                                 reg-shift = <2>;
0308                                 status = "disabled";
0309                         };
0310 
0311                         uart3: serial@d4018000 {
0312                                 compatible = "mrvl,mmp-uart", "intel,xscale-uart";
0313                                 reg = <0xd4018000 0x1000>;
0314                                 interrupts = <24>;
0315                                 clocks = <&soc_clocks MMP2_CLK_UART2>;
0316                                 resets = <&soc_clocks MMP2_CLK_UART2>;
0317                                 reg-shift = <2>;
0318                                 status = "disabled";
0319                         };
0320 
0321                         uart4: serial@d4016000 {
0322                                 compatible = "mrvl,mmp-uart", "intel,xscale-uart";
0323                                 reg = <0xd4016000 0x1000>;
0324                                 interrupts = <46>;
0325                                 clocks = <&soc_clocks MMP2_CLK_UART3>;
0326                                 resets = <&soc_clocks MMP2_CLK_UART3>;
0327                                 reg-shift = <2>;
0328                                 status = "disabled";
0329                         };
0330 
0331                         gpio: gpio@d4019000 {
0332                                 compatible = "marvell,mmp2-gpio";
0333                                 #address-cells = <1>;
0334                                 #size-cells = <1>;
0335                                 reg = <0xd4019000 0x1000>;
0336                                 gpio-controller;
0337                                 #gpio-cells = <2>;
0338                                 interrupts = <49>;
0339                                 interrupt-names = "gpio_mux";
0340                                 clocks = <&soc_clocks MMP2_CLK_GPIO>;
0341                                 resets = <&soc_clocks MMP2_CLK_GPIO>;
0342                                 interrupt-controller;
0343                                 #interrupt-cells = <2>;
0344                                 ranges;
0345 
0346                                 gcb0: gpio@d4019000 {
0347                                         reg = <0xd4019000 0x4>;
0348                                 };
0349 
0350                                 gcb1: gpio@d4019004 {
0351                                         reg = <0xd4019004 0x4>;
0352                                 };
0353 
0354                                 gcb2: gpio@d4019008 {
0355                                         reg = <0xd4019008 0x4>;
0356                                 };
0357 
0358                                 gcb3: gpio@d4019100 {
0359                                         reg = <0xd4019100 0x4>;
0360                                 };
0361 
0362                                 gcb4: gpio@d4019104 {
0363                                         reg = <0xd4019104 0x4>;
0364                                 };
0365 
0366                                 gcb5: gpio@d4019108 {
0367                                         reg = <0xd4019108 0x4>;
0368                                 };
0369                         };
0370 
0371                         twsi1: i2c@d4011000 {
0372                                 compatible = "mrvl,mmp-twsi";
0373                                 reg = <0xd4011000 0x1000>;
0374                                 interrupts = <7>;
0375                                 clocks = <&soc_clocks MMP2_CLK_TWSI0>;
0376                                 resets = <&soc_clocks MMP2_CLK_TWSI0>;
0377                                 #address-cells = <1>;
0378                                 #size-cells = <0>;
0379                                 mrvl,i2c-fast-mode;
0380                                 status = "disabled";
0381                         };
0382 
0383                         twsi2: i2c@d4031000 {
0384                                 compatible = "mrvl,mmp-twsi";
0385                                 reg = <0xd4031000 0x1000>;
0386                                 interrupt-parent = <&intcmux17>;
0387                                 interrupts = <0>;
0388                                 clocks = <&soc_clocks MMP2_CLK_TWSI1>;
0389                                 resets = <&soc_clocks MMP2_CLK_TWSI1>;
0390                                 #address-cells = <1>;
0391                                 #size-cells = <0>;
0392                                 status = "disabled";
0393                         };
0394 
0395                         twsi3: i2c@d4032000 {
0396                                 compatible = "mrvl,mmp-twsi";
0397                                 reg = <0xd4032000 0x1000>;
0398                                 interrupt-parent = <&intcmux17>;
0399                                 interrupts = <1>;
0400                                 clocks = <&soc_clocks MMP2_CLK_TWSI2>;
0401                                 resets = <&soc_clocks MMP2_CLK_TWSI2>;
0402                                 #address-cells = <1>;
0403                                 #size-cells = <0>;
0404                                 status = "disabled";
0405                         };
0406 
0407                         twsi4: i2c@d4033000 {
0408                                 compatible = "mrvl,mmp-twsi";
0409                                 reg = <0xd4033000 0x1000>;
0410                                 interrupt-parent = <&intcmux17>;
0411                                 interrupts = <2>;
0412                                 clocks = <&soc_clocks MMP2_CLK_TWSI3>;
0413                                 resets = <&soc_clocks MMP2_CLK_TWSI3>;
0414                                 #address-cells = <1>;
0415                                 #size-cells = <0>;
0416                                 status = "disabled";
0417                         };
0418 
0419 
0420                         twsi5: i2c@d4033800 {
0421                                 compatible = "mrvl,mmp-twsi";
0422                                 reg = <0xd4033800 0x1000>;
0423                                 interrupt-parent = <&intcmux17>;
0424                                 interrupts = <3>;
0425                                 clocks = <&soc_clocks MMP2_CLK_TWSI4>;
0426                                 resets = <&soc_clocks MMP2_CLK_TWSI4>;
0427                                 #address-cells = <1>;
0428                                 #size-cells = <0>;
0429                                 status = "disabled";
0430                         };
0431 
0432                         twsi6: i2c@d4034000 {
0433                                 compatible = "mrvl,mmp-twsi";
0434                                 reg = <0xd4034000 0x1000>;
0435                                 interrupt-parent = <&intcmux17>;
0436                                 interrupts = <4>;
0437                                 clocks = <&soc_clocks MMP2_CLK_TWSI5>;
0438                                 resets = <&soc_clocks MMP2_CLK_TWSI5>;
0439                                 #address-cells = <1>;
0440                                 #size-cells = <0>;
0441                                 status = "disabled";
0442                         };
0443 
0444                         rtc: rtc@d4010000 {
0445                                 compatible = "mrvl,mmp-rtc";
0446                                 reg = <0xd4010000 0x1000>;
0447                                 interrupts = <1>, <0>;
0448                                 interrupt-names = "rtc 1Hz", "rtc alarm";
0449                                 interrupt-parent = <&intcmux5>;
0450                                 clocks = <&soc_clocks MMP2_CLK_RTC>;
0451                                 resets = <&soc_clocks MMP2_CLK_RTC>;
0452                                 status = "disabled";
0453                         };
0454 
0455                         ssp1: spi@d4035000 {
0456                                 compatible = "marvell,mmp2-ssp";
0457                                 reg = <0xd4035000 0x1000>;
0458                                 clocks = <&soc_clocks MMP2_CLK_SSP0>;
0459                                 interrupts = <0>;
0460                                 #address-cells = <1>;
0461                                 #size-cells = <0>;
0462                                 status = "disabled";
0463                         };
0464 
0465                         ssp2: spi@d4036000 {
0466                                 compatible = "marvell,mmp2-ssp";
0467                                 reg = <0xd4036000 0x1000>;
0468                                 clocks = <&soc_clocks MMP2_CLK_SSP1>;
0469                                 interrupts = <1>;
0470                                 #address-cells = <1>;
0471                                 #size-cells = <0>;
0472                                 status = "disabled";
0473                         };
0474 
0475                         ssp3: spi@d4037000 {
0476                                 compatible = "marvell,mmp2-ssp";
0477                                 reg = <0xd4037000 0x1000>;
0478                                 clocks = <&soc_clocks MMP2_CLK_SSP2>;
0479                                 interrupts = <20>;
0480                                 #address-cells = <1>;
0481                                 #size-cells = <0>;
0482                                 status = "disabled";
0483                         };
0484 
0485                         ssp4: spi@d4039000 {
0486                                 compatible = "marvell,mmp2-ssp";
0487                                 reg = <0xd4039000 0x1000>;
0488                                 clocks = <&soc_clocks MMP2_CLK_SSP3>;
0489                                 interrupts = <21>;
0490                                 #address-cells = <1>;
0491                                 #size-cells = <0>;
0492                                 status = "disabled";
0493                         };
0494                 };
0495 
0496                 asram: sram@e0000000 {
0497                         compatible = "mmio-sram";
0498                         reg = <0xe0000000 0x10000>;
0499                         ranges = <0 0xe0000000 0x10000>;
0500                         #address-cells = <1>;
0501                         #size-cells = <1>;
0502                         status = "disabled";
0503                 };
0504 
0505                 soc_clocks: clocks {
0506                         compatible = "marvell,mmp2-clock";
0507                         reg = <0xd4050000 0x2000>,
0508                               <0xd4282800 0x400>,
0509                               <0xd4015000 0x1000>;
0510                         reg-names = "mpmu", "apmu", "apbc";
0511                         #clock-cells = <1>;
0512                         #reset-cells = <1>;
0513                         #power-domain-cells = <1>;
0514                 };
0515         };
0516 };