Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
0002 /*
0003  * Device Tree Include file for Marvell Armada 1500 (Berlin BG2) SoC
0004  *
0005  * Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
0006  *
0007  * based on GPL'ed 2.6 kernel sources
0008  *  (c) Marvell International Ltd.
0009  */
0010 
0011 #include <dt-bindings/clock/berlin2.h>
0012 #include <dt-bindings/interrupt-controller/arm-gic.h>
0013 
0014 / {
0015         model = "Marvell Armada 1500 (BG2) SoC";
0016         compatible = "marvell,berlin2", "marvell,berlin";
0017         #address-cells = <1>;
0018         #size-cells = <1>;
0019 
0020         aliases {
0021                 serial0 = &uart0;
0022                 serial1 = &uart1;
0023                 serial2 = &uart2;
0024         };
0025 
0026         cpus {
0027                 #address-cells = <1>;
0028                 #size-cells = <0>;
0029                 enable-method = "marvell,berlin-smp";
0030 
0031                 cpu@0 {
0032                         compatible = "marvell,pj4b";
0033                         device_type = "cpu";
0034                         next-level-cache = <&l2>;
0035                         reg = <0>;
0036 
0037                         clocks = <&chip_clk CLKID_CPU>;
0038                         clock-latency = <100000>;
0039                         operating-points = <
0040                                 /* kHz    uV */
0041                                 1200000 1200000
0042                                 1000000 1200000
0043                                 800000  1200000
0044                                 600000  1200000
0045                         >;
0046                 };
0047 
0048                 cpu@1 {
0049                         compatible = "marvell,pj4b";
0050                         device_type = "cpu";
0051                         next-level-cache = <&l2>;
0052                         reg = <1>;
0053 
0054                         clocks = <&chip_clk CLKID_CPU>;
0055                         clock-latency = <100000>;
0056                         operating-points = <
0057                                 /* kHz    uV */
0058                                 1200000 1200000
0059                                 1000000 1200000
0060                                 800000  1200000
0061                                 600000  1200000
0062                         >;
0063                 };
0064         };
0065 
0066         refclk: oscillator {
0067                 compatible = "fixed-clock";
0068                 #clock-cells = <0>;
0069                 clock-frequency = <25000000>;
0070         };
0071 
0072         soc@f7000000 {
0073                 compatible = "simple-bus";
0074                 #address-cells = <1>;
0075                 #size-cells = <1>;
0076                 interrupt-parent = <&gic>;
0077 
0078                 ranges = <0 0xf7000000 0x1000000>;
0079 
0080                 sdhci0: mmc@ab0000 {
0081                         compatible = "mrvl,pxav3-mmc";
0082                         reg = <0xab0000 0x200>;
0083                         clocks = <&chip_clk CLKID_SDIO0XIN>, <&chip_clk CLKID_SDIO0>;
0084                         clock-names = "io", "core";
0085                         interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
0086                         status = "disabled";
0087                 };
0088 
0089                 sdhci1: mmc@ab0800 {
0090                         compatible = "mrvl,pxav3-mmc";
0091                         reg = <0xab0800 0x200>;
0092                         clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO1>;
0093                         clock-names = "io", "core";
0094                         interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
0095                         status = "disabled";
0096                 };
0097 
0098                 sdhci2: mmc@ab1000 {
0099                         compatible = "mrvl,pxav3-mmc";
0100                         reg = <0xab1000 0x200>;
0101                         interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
0102                         clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_NFC>;
0103                         clock-names = "io", "core";
0104                         pinctrl-0 = <&emmc_pmux>;
0105                         pinctrl-names = "default";
0106                         status = "disabled";
0107                 };
0108 
0109                 l2: cache-controller@ac0000 {
0110                         compatible = "marvell,tauros3-cache", "arm,pl310-cache";
0111                         reg = <0xac0000 0x1000>;
0112                         cache-unified;
0113                         cache-level = <2>;
0114                 };
0115 
0116                 scu: snoop-control-unit@ad0000 {
0117                         compatible = "arm,cortex-a9-scu";
0118                         reg = <0xad0000 0x58>;
0119                 };
0120 
0121                 gic: interrupt-controller@ad1000 {
0122                         compatible = "arm,cortex-a9-gic";
0123                         reg = <0xad1000 0x1000>, <0xad0100 0x0100>;
0124                         interrupt-controller;
0125                         #interrupt-cells = <3>;
0126                 };
0127 
0128                 local-timer@ad0600 {
0129                         compatible = "arm,cortex-a9-twd-timer";
0130                         reg = <0xad0600 0x20>;
0131                         interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>;
0132                         clocks = <&chip_clk CLKID_TWD>;
0133                 };
0134 
0135                 eth1: ethernet@b90000 {
0136                         compatible = "marvell,pxa168-eth";
0137                         reg = <0xb90000 0x10000>;
0138                         clocks = <&chip_clk CLKID_GETH1>;
0139                         interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
0140                         /* set by bootloader */
0141                         local-mac-address = [00 00 00 00 00 00];
0142                         #address-cells = <1>;
0143                         #size-cells = <0>;
0144                         phy-connection-type = "mii";
0145                         phy-handle = <&ethphy1>;
0146                         status = "disabled";
0147 
0148                         ethphy1: ethernet-phy@0 {
0149                                 reg = <0>;
0150                         };
0151                 };
0152 
0153                 cpu-ctrl@dd0000 {
0154                         compatible = "marvell,berlin-cpu-ctrl";
0155                         reg = <0xdd0000 0x10000>;
0156                 };
0157 
0158                 eth0: ethernet@e50000 {
0159                         compatible = "marvell,pxa168-eth";
0160                         reg = <0xe50000 0x10000>;
0161                         clocks = <&chip_clk CLKID_GETH0>;
0162                         interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
0163                         /* set by bootloader */
0164                         local-mac-address = [00 00 00 00 00 00];
0165                         #address-cells = <1>;
0166                         #size-cells = <0>;
0167                         phy-connection-type = "mii";
0168                         phy-handle = <&ethphy0>;
0169                         status = "disabled";
0170 
0171                         ethphy0: ethernet-phy@0 {
0172                                 reg = <0>;
0173                         };
0174                 };
0175 
0176                 apb@e80000 {
0177                         compatible = "simple-bus";
0178                         #address-cells = <1>;
0179                         #size-cells = <1>;
0180 
0181                         ranges = <0 0xe80000 0x10000>;
0182                         interrupt-parent = <&aic>;
0183 
0184                         gpio0: gpio@400 {
0185                                 compatible = "snps,dw-apb-gpio";
0186                                 reg = <0x0400 0x400>;
0187                                 #address-cells = <1>;
0188                                 #size-cells = <0>;
0189 
0190                                 porta: gpio-port@0 {
0191                                         compatible = "snps,dw-apb-gpio-port";
0192                                         gpio-controller;
0193                                         #gpio-cells = <2>;
0194                                         ngpios = <8>;
0195                                         reg = <0>;
0196                                         interrupt-controller;
0197                                         #interrupt-cells = <2>;
0198                                         interrupts = <0>;
0199                                 };
0200                         };
0201 
0202                         gpio1: gpio@800 {
0203                                 compatible = "snps,dw-apb-gpio";
0204                                 reg = <0x0800 0x400>;
0205                                 #address-cells = <1>;
0206                                 #size-cells = <0>;
0207 
0208                                 portb: gpio-port@1 {
0209                                         compatible = "snps,dw-apb-gpio-port";
0210                                         gpio-controller;
0211                                         #gpio-cells = <2>;
0212                                         ngpios = <8>;
0213                                         reg = <0>;
0214                                         interrupt-controller;
0215                                         #interrupt-cells = <2>;
0216                                         interrupts = <1>;
0217                                 };
0218                         };
0219 
0220                         gpio2: gpio@c00 {
0221                                 compatible = "snps,dw-apb-gpio";
0222                                 reg = <0x0c00 0x400>;
0223                                 #address-cells = <1>;
0224                                 #size-cells = <0>;
0225 
0226                                 portc: gpio-port@2 {
0227                                         compatible = "snps,dw-apb-gpio-port";
0228                                         gpio-controller;
0229                                         #gpio-cells = <2>;
0230                                         ngpios = <8>;
0231                                         reg = <0>;
0232                                         interrupt-controller;
0233                                         #interrupt-cells = <2>;
0234                                         interrupts = <2>;
0235                                 };
0236                         };
0237 
0238                         gpio3: gpio@1000 {
0239                                 compatible = "snps,dw-apb-gpio";
0240                                 reg = <0x1000 0x400>;
0241                                 #address-cells = <1>;
0242                                 #size-cells = <0>;
0243 
0244                                 portd: gpio-port@3 {
0245                                         compatible = "snps,dw-apb-gpio-port";
0246                                         gpio-controller;
0247                                         #gpio-cells = <2>;
0248                                         ngpios = <8>;
0249                                         reg = <0>;
0250                                         interrupt-controller;
0251                                         #interrupt-cells = <2>;
0252                                         interrupts = <3>;
0253                                 };
0254                         };
0255 
0256                         timer0: timer@2c00 {
0257                                 compatible = "snps,dw-apb-timer";
0258                                 reg = <0x2c00 0x14>;
0259                                 interrupts = <8>;
0260                                 clocks = <&chip_clk CLKID_CFG>;
0261                                 clock-names = "timer";
0262                                 status = "okay";
0263                         };
0264 
0265                         timer1: timer@2c14 {
0266                                 compatible = "snps,dw-apb-timer";
0267                                 reg = <0x2c14 0x14>;
0268                                 interrupts = <9>;
0269                                 clocks = <&chip_clk CLKID_CFG>;
0270                                 clock-names = "timer";
0271                                 status = "okay";
0272                         };
0273 
0274                         timer2: timer@2c28 {
0275                                 compatible = "snps,dw-apb-timer";
0276                                 reg = <0x2c28 0x14>;
0277                                 interrupts = <10>;
0278                                 clocks = <&chip_clk CLKID_CFG>;
0279                                 clock-names = "timer";
0280                                 status = "disabled";
0281                         };
0282 
0283                         timer3: timer@2c3c {
0284                                 compatible = "snps,dw-apb-timer";
0285                                 reg = <0x2c3c 0x14>;
0286                                 interrupts = <11>;
0287                                 clocks = <&chip_clk CLKID_CFG>;
0288                                 clock-names = "timer";
0289                                 status = "disabled";
0290                         };
0291 
0292                         timer4: timer@2c50 {
0293                                 compatible = "snps,dw-apb-timer";
0294                                 reg = <0x2c50 0x14>;
0295                                 interrupts = <12>;
0296                                 clocks = <&chip_clk CLKID_CFG>;
0297                                 clock-names = "timer";
0298                                 status = "disabled";
0299                         };
0300 
0301                         timer5: timer@2c64 {
0302                                 compatible = "snps,dw-apb-timer";
0303                                 reg = <0x2c64 0x14>;
0304                                 interrupts = <13>;
0305                                 clocks = <&chip_clk CLKID_CFG>;
0306                                 clock-names = "timer";
0307                                 status = "disabled";
0308                         };
0309 
0310                         timer6: timer@2c78 {
0311                                 compatible = "snps,dw-apb-timer";
0312                                 reg = <0x2c78 0x14>;
0313                                 interrupts = <14>;
0314                                 clocks = <&chip_clk CLKID_CFG>;
0315                                 clock-names = "timer";
0316                                 status = "disabled";
0317                         };
0318 
0319                         timer7: timer@2c8c {
0320                                 compatible = "snps,dw-apb-timer";
0321                                 reg = <0x2c8c 0x14>;
0322                                 interrupts = <15>;
0323                                 clocks = <&chip_clk CLKID_CFG>;
0324                                 clock-names = "timer";
0325                                 status = "disabled";
0326                         };
0327 
0328                         aic: interrupt-controller@3000 {
0329                                 compatible = "snps,dw-apb-ictl";
0330                                 reg = <0x3000 0xc00>;
0331                                 interrupt-controller;
0332                                 #interrupt-cells = <1>;
0333                                 interrupt-parent = <&gic>;
0334                                 interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
0335                         };
0336                 };
0337 
0338                 ahci: sata@e90000 {
0339                         compatible = "marvell,berlin2-ahci", "generic-ahci";
0340                         reg = <0xe90000 0x1000>;
0341                         interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
0342                         clocks = <&chip_clk CLKID_SATA>;
0343                         #address-cells = <1>;
0344                         #size-cells = <0>;
0345 
0346                         sata0: sata-port@0 {
0347                                 reg = <0>;
0348                                 phys = <&sata_phy 0>;
0349                                 status = "disabled";
0350                         };
0351 
0352                         sata1: sata-port@1 {
0353                                 reg = <1>;
0354                                 phys = <&sata_phy 1>;
0355                                 status = "disabled";
0356                         };
0357                 };
0358 
0359                 sata_phy: phy@e900a0 {
0360                         compatible = "marvell,berlin2-sata-phy";
0361                         reg = <0xe900a0 0x200>;
0362                         clocks = <&chip_clk CLKID_SATA>;
0363                         #address-cells = <1>;
0364                         #size-cells = <0>;
0365                         #phy-cells = <1>;
0366                         status = "disabled";
0367 
0368                         sata-phy@0 {
0369                                 reg = <0>;
0370                         };
0371 
0372                         sata-phy@1 {
0373                                 reg = <1>;
0374                         };
0375                 };
0376 
0377                 chip: chip-control@ea0000 {
0378                         compatible = "simple-mfd", "syscon";
0379                         reg = <0xea0000 0x400>;
0380 
0381                         chip_clk: clock {
0382                                 compatible = "marvell,berlin2-clk";
0383                                 #clock-cells = <1>;
0384                                 clocks = <&refclk>;
0385                                 clock-names = "refclk";
0386                         };
0387 
0388                         soc_pinctrl: pin-controller {
0389                                 compatible = "marvell,berlin2-soc-pinctrl";
0390 
0391                                 emmc_pmux: emmc-pmux {
0392                                         groups = "G26";
0393                                         function = "emmc";
0394                                 };
0395                         };
0396 
0397                         chip_rst: reset {
0398                                 compatible = "marvell,berlin2-reset";
0399                                 #reset-cells = <2>;
0400                         };
0401                 };
0402 
0403                 pwm: pwm@f20000 {
0404                         compatible = "marvell,berlin-pwm";
0405                         reg = <0xf20000 0x40>;
0406                         clocks = <&chip_clk CLKID_CFG>;
0407                         #pwm-cells = <3>;
0408                 };
0409 
0410                 apb@fc0000 {
0411                         compatible = "simple-bus";
0412                         #address-cells = <1>;
0413                         #size-cells = <1>;
0414 
0415                         ranges = <0 0xfc0000 0x10000>;
0416                         interrupt-parent = <&sic>;
0417 
0418                         wdt0: watchdog@1000 {
0419                                 compatible = "snps,dw-wdt";
0420                                 reg = <0x1000 0x100>;
0421                                 clocks = <&refclk>;
0422                                 interrupts = <0>;
0423                         };
0424 
0425                         wdt1: watchdog@2000 {
0426                                 compatible = "snps,dw-wdt";
0427                                 reg = <0x2000 0x100>;
0428                                 clocks = <&refclk>;
0429                                 interrupts = <1>;
0430                         };
0431 
0432                         wdt2: watchdog@3000 {
0433                                 compatible = "snps,dw-wdt";
0434                                 reg = <0x3000 0x100>;
0435                                 clocks = <&refclk>;
0436                                 interrupts = <2>;
0437                         };
0438 
0439                         sm_gpio1: gpio@5000 {
0440                                 compatible = "snps,dw-apb-gpio";
0441                                 reg = <0x5000 0x400>;
0442                                 #address-cells = <1>;
0443                                 #size-cells = <0>;
0444 
0445                                 portf: gpio-port@5 {
0446                                         compatible = "snps,dw-apb-gpio-port";
0447                                         gpio-controller;
0448                                         #gpio-cells = <2>;
0449                                         ngpios = <8>;
0450                                         reg = <0>;
0451                                 };
0452                         };
0453 
0454                         sm_gpio0: gpio@c000 {
0455                                 compatible = "snps,dw-apb-gpio";
0456                                 reg = <0xc000 0x400>;
0457                                 #address-cells = <1>;
0458                                 #size-cells = <0>;
0459 
0460                                 porte: gpio-port@4 {
0461                                         compatible = "snps,dw-apb-gpio-port";
0462                                         gpio-controller;
0463                                         #gpio-cells = <2>;
0464                                         ngpios = <8>;
0465                                         reg = <0>;
0466                                         interrupt-controller;
0467                                         #interrupt-cells = <2>;
0468                                         interrupts = <11>;
0469                                 };
0470                         };
0471 
0472                         uart0: serial@9000 {
0473                                 compatible = "snps,dw-apb-uart";
0474                                 reg = <0x9000 0x100>;
0475                                 reg-shift = <2>;
0476                                 reg-io-width = <1>;
0477                                 interrupts = <8>;
0478                                 clocks = <&refclk>;
0479                                 pinctrl-0 = <&uart0_pmux>;
0480                                 pinctrl-names = "default";
0481                                 status = "disabled";
0482                         };
0483 
0484                         uart1: serial@a000 {
0485                                 compatible = "snps,dw-apb-uart";
0486                                 reg = <0xa000 0x100>;
0487                                 reg-shift = <2>;
0488                                 reg-io-width = <1>;
0489                                 interrupts = <9>;
0490                                 clocks = <&refclk>;
0491                                 pinctrl-0 = <&uart1_pmux>;
0492                                 pinctrl-names = "default";
0493                                 status = "disabled";
0494                         };
0495 
0496                         uart2: serial@b000 {
0497                                 compatible = "snps,dw-apb-uart";
0498                                 reg = <0xb000 0x100>;
0499                                 reg-shift = <2>;
0500                                 reg-io-width = <1>;
0501                                 interrupts = <10>;
0502                                 clocks = <&refclk>;
0503                                 pinctrl-0 = <&uart2_pmux>;
0504                                 pinctrl-names = "default";
0505                                 status = "disabled";
0506                         };
0507 
0508                         sysctrl: system-controller@d000 {
0509                                 compatible = "simple-mfd", "syscon";
0510                                 reg = <0xd000 0x100>;
0511 
0512                                 sys_pinctrl: pin-controller {
0513                                         compatible = "marvell,berlin2-system-pinctrl";
0514                                         uart0_pmux: uart0-pmux {
0515                                                 groups = "GSM4";
0516                                                 function = "uart0";
0517                                         };
0518 
0519                                         uart1_pmux: uart1-pmux {
0520                                                 groups = "GSM5";
0521                                                 function = "uart1";
0522                                         };
0523                                         uart2_pmux: uart2-pmux {
0524                                                 groups = "GSM3";
0525                                                 function = "uart2";
0526                                         };
0527                                 };
0528                         };
0529 
0530                         sic: interrupt-controller@e000 {
0531                                 compatible = "snps,dw-apb-ictl";
0532                                 reg = <0xe000 0x400>;
0533                                 interrupt-controller;
0534                                 #interrupt-cells = <1>;
0535                                 interrupt-parent = <&gic>;
0536                                 interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
0537                         };
0538                 };
0539         };
0540 };