Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003  * base MPC5121 Device Tree Source
0004  *
0005  * Copyright 2007-2008 Freescale Semiconductor Inc.
0006  */
0007 
0008 #include <dt-bindings/clock/mpc512x-clock.h>
0009 
0010 /dts-v1/;
0011 
0012 / {
0013         model = "mpc5121";
0014         compatible = "fsl,mpc5121";
0015         #address-cells = <1>;
0016         #size-cells = <1>;
0017         interrupt-parent = <&ipic>;
0018 
0019         aliases {
0020                 ethernet0 = &eth0;
0021                 pci = &pci;
0022         };
0023 
0024         cpus {
0025                 #address-cells = <1>;
0026                 #size-cells = <0>;
0027 
0028                 PowerPC,5121@0 {
0029                         device_type = "cpu";
0030                         reg = <0>;
0031                         d-cache-line-size = <0x20>;     /* 32 bytes */
0032                         i-cache-line-size = <0x20>;     /* 32 bytes */
0033                         d-cache-size = <0x8000>;        /* L1, 32K */
0034                         i-cache-size = <0x8000>;        /* L1, 32K */
0035                         timebase-frequency = <49500000>;/* 49.5 MHz (csb/4) */
0036                         bus-frequency = <198000000>;    /* 198 MHz csb bus */
0037                         clock-frequency = <396000000>;  /* 396 MHz ppc core */
0038                 };
0039         };
0040 
0041         memory {
0042                 device_type = "memory";
0043                 reg = <0x00000000 0x10000000>;  /* 256MB at 0 */
0044         };
0045 
0046         mbx@20000000 {
0047                 compatible = "fsl,mpc5121-mbx";
0048                 reg = <0x20000000 0x4000>;
0049                 interrupts = <66 0x8>;
0050                 clocks = <&clks MPC512x_CLK_MBX_BUS>,
0051                          <&clks MPC512x_CLK_MBX_3D>,
0052                          <&clks MPC512x_CLK_MBX>;
0053                 clock-names = "mbx-bus", "mbx-3d", "mbx";
0054         };
0055 
0056         sram@30000000 {
0057                 compatible = "fsl,mpc5121-sram";
0058                 reg = <0x30000000 0x20000>;     /* 128K at 0x30000000 */
0059         };
0060 
0061         nfc@40000000 {
0062                 compatible = "fsl,mpc5121-nfc";
0063                 reg = <0x40000000 0x100000>;    /* 1M at 0x40000000 */
0064                 interrupts = <6 8>;
0065                 #address-cells = <1>;
0066                 #size-cells = <1>;
0067                 clocks = <&clks MPC512x_CLK_NFC>;
0068                 clock-names = "ipg";
0069         };
0070 
0071         localbus@80000020 {
0072                 compatible = "fsl,mpc5121-localbus";
0073                 #address-cells = <2>;
0074                 #size-cells = <1>;
0075                 reg = <0x80000020 0x40>;
0076                 ranges = <0x0 0x0 0xfc000000 0x04000000>;
0077         };
0078 
0079         clocks {
0080                 #address-cells = <1>;
0081                 #size-cells = <0>;
0082 
0083                 osc: osc {
0084                         compatible = "fixed-clock";
0085                         #clock-cells = <0>;
0086                         clock-frequency = <33000000>;
0087                 };
0088         };
0089 
0090         soc@80000000 {
0091                 compatible = "fsl,mpc5121-immr";
0092                 #address-cells = <1>;
0093                 #size-cells = <1>;
0094                 ranges = <0x0 0x80000000 0x400000>;
0095                 reg = <0x80000000 0x400000>;
0096                 bus-frequency = <66000000>;     /* 66 MHz ips bus */
0097 
0098 
0099                 /*
0100                  * IPIC
0101                  * interrupts cell = <intr #, sense>
0102                  * sense values match linux IORESOURCE_IRQ_* defines:
0103                  * sense == 8: Level, low assertion
0104                  * sense == 2: Edge, high-to-low change
0105                  */
0106                 ipic: interrupt-controller@c00 {
0107                         compatible = "fsl,mpc5121-ipic", "fsl,ipic";
0108                         interrupt-controller;
0109                         #address-cells = <0>;
0110                         #interrupt-cells = <2>;
0111                         reg = <0xc00 0x100>;
0112                 };
0113 
0114                 /* Watchdog timer */
0115                 wdt@900 {
0116                         compatible = "fsl,mpc5121-wdt";
0117                         reg = <0x900 0x100>;
0118                 };
0119 
0120                 /* Real time clock */
0121                 rtc@a00 {
0122                         compatible = "fsl,mpc5121-rtc";
0123                         reg = <0xa00 0x100>;
0124                         interrupts = <79 0x8 80 0x8>;
0125                 };
0126 
0127                 /* Reset module */
0128                 reset@e00 {
0129                         compatible = "fsl,mpc5121-reset";
0130                         reg = <0xe00 0x100>;
0131                 };
0132 
0133                 /* Clock control */
0134                 clks: clock@f00 {
0135                         compatible = "fsl,mpc5121-clock";
0136                         reg = <0xf00 0x100>;
0137                         #clock-cells = <1>;
0138                         clocks = <&osc>;
0139                         clock-names = "osc";
0140                 };
0141 
0142                 /* Power Management Controller */
0143                 pmc@1000{
0144                         compatible = "fsl,mpc5121-pmc";
0145                         reg = <0x1000 0x100>;
0146                         interrupts = <83 0x8>;
0147                 };
0148 
0149                 gpio@1100 {
0150                         compatible = "fsl,mpc5121-gpio";
0151                         reg = <0x1100 0x100>;
0152                         interrupts = <78 0x8>;
0153                 };
0154 
0155                 can@1300 {
0156                         compatible = "fsl,mpc5121-mscan";
0157                         reg = <0x1300 0x80>;
0158                         interrupts = <12 0x8>;
0159                         clocks = <&clks MPC512x_CLK_BDLC>,
0160                                  <&clks MPC512x_CLK_IPS>,
0161                                  <&clks MPC512x_CLK_SYS>,
0162                                  <&clks MPC512x_CLK_REF>,
0163                                  <&clks MPC512x_CLK_MSCAN0_MCLK>;
0164                         clock-names = "ipg", "ips", "sys", "ref", "mclk";
0165                 };
0166 
0167                 can@1380 {
0168                         compatible = "fsl,mpc5121-mscan";
0169                         reg = <0x1380 0x80>;
0170                         interrupts = <13 0x8>;
0171                         clocks = <&clks MPC512x_CLK_BDLC>,
0172                                  <&clks MPC512x_CLK_IPS>,
0173                                  <&clks MPC512x_CLK_SYS>,
0174                                  <&clks MPC512x_CLK_REF>,
0175                                  <&clks MPC512x_CLK_MSCAN1_MCLK>;
0176                         clock-names = "ipg", "ips", "sys", "ref", "mclk";
0177                 };
0178 
0179                 sdhc@1500 {
0180                         compatible = "fsl,mpc5121-sdhc";
0181                         reg = <0x1500 0x100>;
0182                         interrupts = <8 0x8>;
0183                         dmas = <&dma0 30>;
0184                         dma-names = "rx-tx";
0185                         clocks = <&clks MPC512x_CLK_IPS>,
0186                                  <&clks MPC512x_CLK_SDHC>;
0187                         clock-names = "ipg", "per";
0188                 };
0189 
0190                 i2c@1700 {
0191                         #address-cells = <1>;
0192                         #size-cells = <0>;
0193                         compatible = "fsl,mpc5121-i2c", "fsl-i2c";
0194                         reg = <0x1700 0x20>;
0195                         interrupts = <9 0x8>;
0196                         clocks = <&clks MPC512x_CLK_I2C>;
0197                         clock-names = "ipg";
0198                 };
0199 
0200                 i2c@1720 {
0201                         #address-cells = <1>;
0202                         #size-cells = <0>;
0203                         compatible = "fsl,mpc5121-i2c", "fsl-i2c";
0204                         reg = <0x1720 0x20>;
0205                         interrupts = <10 0x8>;
0206                         clocks = <&clks MPC512x_CLK_I2C>;
0207                         clock-names = "ipg";
0208                 };
0209 
0210                 i2c@1740 {
0211                         #address-cells = <1>;
0212                         #size-cells = <0>;
0213                         compatible = "fsl,mpc5121-i2c", "fsl-i2c";
0214                         reg = <0x1740 0x20>;
0215                         interrupts = <11 0x8>;
0216                         clocks = <&clks MPC512x_CLK_I2C>;
0217                         clock-names = "ipg";
0218                 };
0219 
0220                 i2ccontrol@1760 {
0221                         compatible = "fsl,mpc5121-i2c-ctrl";
0222                         reg = <0x1760 0x8>;
0223                 };
0224 
0225                 axe@2000 {
0226                         compatible = "fsl,mpc5121-axe";
0227                         reg = <0x2000 0x100>;
0228                         interrupts = <42 0x8>;
0229                         clocks = <&clks MPC512x_CLK_AXE>;
0230                         clock-names = "ipg";
0231                 };
0232 
0233                 display@2100 {
0234                         compatible = "fsl,mpc5121-diu";
0235                         reg = <0x2100 0x100>;
0236                         interrupts = <64 0x8>;
0237                         clocks = <&clks MPC512x_CLK_DIU>;
0238                         clock-names = "ipg";
0239                 };
0240 
0241                 can@2300 {
0242                         compatible = "fsl,mpc5121-mscan";
0243                         reg = <0x2300 0x80>;
0244                         interrupts = <90 0x8>;
0245                         clocks = <&clks MPC512x_CLK_BDLC>,
0246                                  <&clks MPC512x_CLK_IPS>,
0247                                  <&clks MPC512x_CLK_SYS>,
0248                                  <&clks MPC512x_CLK_REF>,
0249                                  <&clks MPC512x_CLK_MSCAN2_MCLK>;
0250                         clock-names = "ipg", "ips", "sys", "ref", "mclk";
0251                 };
0252 
0253                 can@2380 {
0254                         compatible = "fsl,mpc5121-mscan";
0255                         reg = <0x2380 0x80>;
0256                         interrupts = <91 0x8>;
0257                         clocks = <&clks MPC512x_CLK_BDLC>,
0258                                  <&clks MPC512x_CLK_IPS>,
0259                                  <&clks MPC512x_CLK_SYS>,
0260                                  <&clks MPC512x_CLK_REF>,
0261                                  <&clks MPC512x_CLK_MSCAN3_MCLK>;
0262                         clock-names = "ipg", "ips", "sys", "ref", "mclk";
0263                 };
0264 
0265                 viu@2400 {
0266                         compatible = "fsl,mpc5121-viu";
0267                         reg = <0x2400 0x400>;
0268                         interrupts = <67 0x8>;
0269                         clocks = <&clks MPC512x_CLK_VIU>;
0270                         clock-names = "ipg";
0271                 };
0272 
0273                 mdio@2800 {
0274                         compatible = "fsl,mpc5121-fec-mdio";
0275                         reg = <0x2800 0x800>;
0276                         #address-cells = <1>;
0277                         #size-cells = <0>;
0278                         clocks = <&clks MPC512x_CLK_FEC>;
0279                         clock-names = "per";
0280                 };
0281 
0282                 eth0: ethernet@2800 {
0283                         device_type = "network";
0284                         compatible = "fsl,mpc5121-fec";
0285                         reg = <0x2800 0x800>;
0286                         local-mac-address = [ 00 00 00 00 00 00 ];
0287                         interrupts = <4 0x8>;
0288                         clocks = <&clks MPC512x_CLK_FEC>;
0289                         clock-names = "per";
0290                 };
0291 
0292                 /* USB1 using external ULPI PHY */
0293                 usb@3000 {
0294                         compatible = "fsl,mpc5121-usb2-dr";
0295                         reg = <0x3000 0x600>;
0296                         #address-cells = <1>;
0297                         #size-cells = <0>;
0298                         interrupts = <43 0x8>;
0299                         dr_mode = "otg";
0300                         phy_type = "ulpi";
0301                         clocks = <&clks MPC512x_CLK_USB1>;
0302                         clock-names = "ipg";
0303                 };
0304 
0305                 /* USB0 using internal UTMI PHY */
0306                 usb@4000 {
0307                         compatible = "fsl,mpc5121-usb2-dr";
0308                         reg = <0x4000 0x600>;
0309                         #address-cells = <1>;
0310                         #size-cells = <0>;
0311                         interrupts = <44 0x8>;
0312                         dr_mode = "otg";
0313                         phy_type = "utmi_wide";
0314                         clocks = <&clks MPC512x_CLK_USB2>;
0315                         clock-names = "ipg";
0316                 };
0317 
0318                 /* IO control */
0319                 ioctl@a000 {
0320                         compatible = "fsl,mpc5121-ioctl";
0321                         reg = <0xA000 0x1000>;
0322                 };
0323 
0324                 /* LocalPlus controller */
0325                 lpc@10000 {
0326                         compatible = "fsl,mpc5121-lpc";
0327                         reg = <0x10000 0x100>;
0328                 };
0329 
0330                 sclpc@10100 {
0331                         compatible = "fsl,mpc512x-lpbfifo";
0332                         reg = <0x10100 0x50>;
0333                         interrupts = <7 0x8>;
0334                         dmas = <&dma0 26>;
0335                         dma-names = "rx-tx";
0336                 };
0337 
0338                 pata@10200 {
0339                         compatible = "fsl,mpc5121-pata";
0340                         reg = <0x10200 0x100>;
0341                         interrupts = <5 0x8>;
0342                         clocks = <&clks MPC512x_CLK_PATA>;
0343                         clock-names = "ipg";
0344                 };
0345 
0346                 /* 512x PSCs are not 52xx PSC compatible */
0347 
0348                 /* PSC0 */
0349                 psc@11000 {
0350                         compatible = "fsl,mpc5121-psc";
0351                         reg = <0x11000 0x100>;
0352                         interrupts = <40 0x8>;
0353                         fsl,rx-fifo-size = <16>;
0354                         fsl,tx-fifo-size = <16>;
0355                         clocks = <&clks MPC512x_CLK_PSC0>,
0356                                  <&clks MPC512x_CLK_PSC0_MCLK>;
0357                         clock-names = "ipg", "mclk";
0358                 };
0359 
0360                 /* PSC1 */
0361                 psc@11100 {
0362                         compatible = "fsl,mpc5121-psc";
0363                         reg = <0x11100 0x100>;
0364                         interrupts = <40 0x8>;
0365                         fsl,rx-fifo-size = <16>;
0366                         fsl,tx-fifo-size = <16>;
0367                         clocks = <&clks MPC512x_CLK_PSC1>,
0368                                  <&clks MPC512x_CLK_PSC1_MCLK>;
0369                         clock-names = "ipg", "mclk";
0370                 };
0371 
0372                 /* PSC2 */
0373                 psc@11200 {
0374                         compatible = "fsl,mpc5121-psc";
0375                         reg = <0x11200 0x100>;
0376                         interrupts = <40 0x8>;
0377                         fsl,rx-fifo-size = <16>;
0378                         fsl,tx-fifo-size = <16>;
0379                         clocks = <&clks MPC512x_CLK_PSC2>,
0380                                  <&clks MPC512x_CLK_PSC2_MCLK>;
0381                         clock-names = "ipg", "mclk";
0382                 };
0383 
0384                 /* PSC3 */
0385                 psc@11300 {
0386                         compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
0387                         reg = <0x11300 0x100>;
0388                         interrupts = <40 0x8>;
0389                         fsl,rx-fifo-size = <16>;
0390                         fsl,tx-fifo-size = <16>;
0391                         clocks = <&clks MPC512x_CLK_PSC3>,
0392                                  <&clks MPC512x_CLK_PSC3_MCLK>;
0393                         clock-names = "ipg", "mclk";
0394                 };
0395 
0396                 /* PSC4 */
0397                 psc@11400 {
0398                         compatible = "fsl,mpc5121-psc-uart", "fsl,mpc5121-psc";
0399                         reg = <0x11400 0x100>;
0400                         interrupts = <40 0x8>;
0401                         fsl,rx-fifo-size = <16>;
0402                         fsl,tx-fifo-size = <16>;
0403                         clocks = <&clks MPC512x_CLK_PSC4>,
0404                                  <&clks MPC512x_CLK_PSC4_MCLK>;
0405                         clock-names = "ipg", "mclk";
0406                 };
0407 
0408                 /* PSC5 */
0409                 psc@11500 {
0410                         compatible = "fsl,mpc5121-psc";
0411                         reg = <0x11500 0x100>;
0412                         interrupts = <40 0x8>;
0413                         fsl,rx-fifo-size = <16>;
0414                         fsl,tx-fifo-size = <16>;
0415                         clocks = <&clks MPC512x_CLK_PSC5>,
0416                                  <&clks MPC512x_CLK_PSC5_MCLK>;
0417                         clock-names = "ipg", "mclk";
0418                 };
0419 
0420                 /* PSC6 */
0421                 psc@11600 {
0422                         compatible = "fsl,mpc5121-psc";
0423                         reg = <0x11600 0x100>;
0424                         interrupts = <40 0x8>;
0425                         fsl,rx-fifo-size = <16>;
0426                         fsl,tx-fifo-size = <16>;
0427                         clocks = <&clks MPC512x_CLK_PSC6>,
0428                                  <&clks MPC512x_CLK_PSC6_MCLK>;
0429                         clock-names = "ipg", "mclk";
0430                 };
0431 
0432                 /* PSC7 */
0433                 psc@11700 {
0434                         compatible = "fsl,mpc5121-psc";
0435                         reg = <0x11700 0x100>;
0436                         interrupts = <40 0x8>;
0437                         fsl,rx-fifo-size = <16>;
0438                         fsl,tx-fifo-size = <16>;
0439                         clocks = <&clks MPC512x_CLK_PSC7>,
0440                                  <&clks MPC512x_CLK_PSC7_MCLK>;
0441                         clock-names = "ipg", "mclk";
0442                 };
0443 
0444                 /* PSC8 */
0445                 psc@11800 {
0446                         compatible = "fsl,mpc5121-psc";
0447                         reg = <0x11800 0x100>;
0448                         interrupts = <40 0x8>;
0449                         fsl,rx-fifo-size = <16>;
0450                         fsl,tx-fifo-size = <16>;
0451                         clocks = <&clks MPC512x_CLK_PSC8>,
0452                                  <&clks MPC512x_CLK_PSC8_MCLK>;
0453                         clock-names = "ipg", "mclk";
0454                 };
0455 
0456                 /* PSC9 */
0457                 psc@11900 {
0458                         compatible = "fsl,mpc5121-psc";
0459                         reg = <0x11900 0x100>;
0460                         interrupts = <40 0x8>;
0461                         fsl,rx-fifo-size = <16>;
0462                         fsl,tx-fifo-size = <16>;
0463                         clocks = <&clks MPC512x_CLK_PSC9>,
0464                                  <&clks MPC512x_CLK_PSC9_MCLK>;
0465                         clock-names = "ipg", "mclk";
0466                 };
0467 
0468                 /* PSC10 */
0469                 psc@11a00 {
0470                         compatible = "fsl,mpc5121-psc";
0471                         reg = <0x11a00 0x100>;
0472                         interrupts = <40 0x8>;
0473                         fsl,rx-fifo-size = <16>;
0474                         fsl,tx-fifo-size = <16>;
0475                         clocks = <&clks MPC512x_CLK_PSC10>,
0476                                  <&clks MPC512x_CLK_PSC10_MCLK>;
0477                         clock-names = "ipg", "mclk";
0478                 };
0479 
0480                 /* PSC11 */
0481                 psc@11b00 {
0482                         compatible = "fsl,mpc5121-psc";
0483                         reg = <0x11b00 0x100>;
0484                         interrupts = <40 0x8>;
0485                         fsl,rx-fifo-size = <16>;
0486                         fsl,tx-fifo-size = <16>;
0487                         clocks = <&clks MPC512x_CLK_PSC11>,
0488                                  <&clks MPC512x_CLK_PSC11_MCLK>;
0489                         clock-names = "ipg", "mclk";
0490                 };
0491 
0492                 pscfifo@11f00 {
0493                         compatible = "fsl,mpc5121-psc-fifo";
0494                         reg = <0x11f00 0x100>;
0495                         interrupts = <40 0x8>;
0496                         clocks = <&clks MPC512x_CLK_PSC_FIFO>;
0497                         clock-names = "ipg";
0498                 };
0499 
0500                 dma0: dma@14000 {
0501                         compatible = "fsl,mpc5121-dma";
0502                         reg = <0x14000 0x1800>;
0503                         interrupts = <65 0x8>;
0504                         #dma-cells = <1>;
0505                 };
0506         };
0507 
0508         pci: pci@80008500 {
0509                 compatible = "fsl,mpc5121-pci";
0510                 device_type = "pci";
0511                 interrupts = <1 0x8>;
0512                 clock-frequency = <0>;
0513                 #address-cells = <3>;
0514                 #size-cells = <2>;
0515                 #interrupt-cells = <1>;
0516                 clocks = <&clks MPC512x_CLK_PCI>;
0517                 clock-names = "ipg";
0518 
0519                 reg = <0x80008500 0x100 /* internal registers */
0520                        0x80008300 0x8>; /* config space access registers */
0521                 bus-range = <0x0 0x0>;
0522                 ranges = <0x42000000 0x0 0xa0000000 0xa0000000 0x0 0x10000000
0523                           0x02000000 0x0 0xb0000000 0xb0000000 0x0 0x10000000
0524                           0x01000000 0x0 0x00000000 0x84000000 0x0 0x01000000>;
0525         };
0526 };