Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 #include <dt-bindings/input/input.h>
0003 #include <dt-bindings/gpio/gpio.h>
0004 
0005 #define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
0006 
0007 / {
0008         #address-cells = <1>;
0009         #size-cells = <1>;
0010         compatible = "marvell,kirkwood";
0011         interrupt-parent = <&intc>;
0012 
0013         cpus {
0014                 #address-cells = <1>;
0015                 #size-cells = <0>;
0016 
0017                 cpu@0 {
0018                         device_type = "cpu";
0019                         compatible = "marvell,feroceon";
0020                         reg = <0>;
0021                         clocks = <&core_clk 1>, <&core_clk 3>, <&gate_clk 11>;
0022                         clock-names = "cpu_clk", "ddrclk", "powersave";
0023                 };
0024         };
0025 
0026         aliases {
0027                gpio0 = &gpio0;
0028                gpio1 = &gpio1;
0029                i2c0 = &i2c0;
0030         };
0031 
0032         mbus@f1000000 {
0033                 compatible = "marvell,kirkwood-mbus", "simple-bus";
0034                 #address-cells = <2>;
0035                 #size-cells = <1>;
0036                 /* If a board file needs to change this ranges it must replace it completely */
0037                 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000     /* internal-regs */
0038                           MBUS_ID(0x01, 0x2f) 0 0xf4000000 0x10000      /* nand flash */
0039                           MBUS_ID(0x03, 0x01) 0 0xf5000000 0x10000      /* crypto sram */
0040                           >;
0041                 controller = <&mbusc>;
0042                 pcie-mem-aperture = <0xe0000000 0x10000000>; /* 256 MiB memory space */
0043                 pcie-io-aperture  = <0xf2000000 0x100000>;   /*   1 MiB    I/O space */
0044 
0045                 nand: nand@12f {
0046                         #address-cells = <1>;
0047                         #size-cells = <1>;
0048                         cle = <0>;
0049                         ale = <1>;
0050                         bank-width = <1>;
0051                         compatible = "marvell,orion-nand";
0052                         reg = <MBUS_ID(0x01, 0x2f) 0 0x400>;
0053                         chip-delay = <25>;
0054                         /* set partition map and/or chip-delay in board dts */
0055                         clocks = <&gate_clk 7>;
0056                         pinctrl-0 = <&pmx_nand>;
0057                         pinctrl-names = "default";
0058                         status = "disabled";
0059                 };
0060 
0061                 crypto_sram: sa-sram@301 {
0062                         compatible = "mmio-sram";
0063                         reg = <MBUS_ID(0x03, 0x01) 0x0 0x800>;
0064                         clocks = <&gate_clk 17>;
0065                         #address-cells = <1>;
0066                         #size-cells = <1>;
0067                 };
0068         };
0069 
0070         ocp@f1000000 {
0071                 compatible = "simple-bus";
0072                 ranges = <0x00000000 0xf1000000 0x0100000>;
0073                 #address-cells = <1>;
0074                 #size-cells = <1>;
0075 
0076                 pinctrl: pin-controller@10000 {
0077                         /* set compatible property in SoC file */
0078                         reg = <0x10000 0x20>;
0079 
0080                         pmx_ge1: pmx-ge1 {
0081                                 marvell,pins = "mpp20", "mpp21", "mpp22", "mpp23",
0082                                                "mpp24", "mpp25", "mpp26", "mpp27",
0083                                                "mpp30", "mpp31", "mpp32", "mpp33";
0084                                 marvell,function = "ge1";
0085                         };
0086 
0087                         pmx_nand: pmx-nand {
0088                                 marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3",
0089                                                "mpp4", "mpp5", "mpp18", "mpp19";
0090                                 marvell,function = "nand";
0091                         };
0092 
0093                         /*
0094                          * Default SPI0 pinctrl setting with CSn on mpp0,
0095                          * overwrite marvell,pins on board level if required.
0096                          */
0097                         pmx_spi: pmx-spi {
0098                                 marvell,pins = "mpp0", "mpp1", "mpp2", "mpp3";
0099                                 marvell,function = "spi";
0100                         };
0101 
0102                         pmx_twsi0: pmx-twsi0 {
0103                                 marvell,pins = "mpp8", "mpp9";
0104                                 marvell,function = "twsi0";
0105                         };
0106 
0107                         /*
0108                          * Default UART pinctrl setting without RTS/CTS,
0109                          * overwrite marvell,pins on board level if required.
0110                          */
0111                         pmx_uart0: pmx-uart0 {
0112                                 marvell,pins = "mpp10", "mpp11";
0113                                 marvell,function = "uart0";
0114                         };
0115 
0116                         pmx_uart1: pmx-uart1 {
0117                                 marvell,pins = "mpp13", "mpp14";
0118                                 marvell,function = "uart1";
0119                         };
0120                 };
0121 
0122                 core_clk: core-clocks@10030 {
0123                         compatible = "marvell,kirkwood-core-clock";
0124                         reg = <0x10030 0x4>;
0125                         #clock-cells = <1>;
0126                 };
0127 
0128                 spi0: spi@10600 {
0129                         compatible = "marvell,orion-spi";
0130                         #address-cells = <1>;
0131                         #size-cells = <0>;
0132                         cell-index = <0>;
0133                         interrupts = <23>;
0134                         reg = <0x10600 0x28>;
0135                         clocks = <&gate_clk 7>;
0136                         pinctrl-0 = <&pmx_spi>;
0137                         pinctrl-names = "default";
0138                         status = "disabled";
0139                 };
0140 
0141                 gpio0: gpio@10100 {
0142                         compatible = "marvell,orion-gpio";
0143                         #gpio-cells = <2>;
0144                         gpio-controller;
0145                         reg = <0x10100 0x40>;
0146                         ngpios = <32>;
0147                         interrupt-controller;
0148                         #interrupt-cells = <2>;
0149                         interrupts = <35>, <36>, <37>, <38>;
0150                         clocks = <&gate_clk 7>;
0151                 };
0152 
0153                 gpio1: gpio@10140 {
0154                         compatible = "marvell,orion-gpio";
0155                         #gpio-cells = <2>;
0156                         gpio-controller;
0157                         reg = <0x10140 0x40>;
0158                         ngpios = <18>;
0159                         interrupt-controller;
0160                         #interrupt-cells = <2>;
0161                         interrupts = <39>, <40>, <41>;
0162                         clocks = <&gate_clk 7>;
0163                 };
0164 
0165                 i2c0: i2c@11000 {
0166                         compatible = "marvell,mv64xxx-i2c";
0167                         reg = <0x11000 0x20>;
0168                         #address-cells = <1>;
0169                         #size-cells = <0>;
0170                         interrupts = <29>;
0171                         clock-frequency = <100000>;
0172                         clocks = <&gate_clk 7>;
0173                         pinctrl-0 = <&pmx_twsi0>;
0174                         pinctrl-names = "default";
0175                         status = "disabled";
0176                 };
0177 
0178                 uart0: serial@12000 {
0179                         compatible = "ns16550a";
0180                         reg = <0x12000 0x100>;
0181                         reg-shift = <2>;
0182                         interrupts = <33>;
0183                         clocks = <&gate_clk 7>;
0184                         pinctrl-0 = <&pmx_uart0>;
0185                         pinctrl-names = "default";
0186                         status = "disabled";
0187                 };
0188 
0189                 uart1: serial@12100 {
0190                         compatible = "ns16550a";
0191                         reg = <0x12100 0x100>;
0192                         reg-shift = <2>;
0193                         interrupts = <34>;
0194                         clocks = <&gate_clk 7>;
0195                         pinctrl-0 = <&pmx_uart1>;
0196                         pinctrl-names = "default";
0197                         status = "disabled";
0198                 };
0199 
0200                 mbusc: mbus-controller@20000 {
0201                         compatible = "marvell,mbus-controller";
0202                         reg = <0x20000 0x80>, <0x1500 0x20>;
0203                 };
0204 
0205                 sysc: system-controller@20000 {
0206                         compatible = "marvell,orion-system-controller";
0207                         reg = <0x20000 0x120>;
0208                 };
0209 
0210                 bridge_intc: bridge-interrupt-ctrl@20110 {
0211                         compatible = "marvell,orion-bridge-intc";
0212                         interrupt-controller;
0213                         #interrupt-cells = <1>;
0214                         reg = <0x20110 0x8>;
0215                         interrupts = <1>;
0216                         marvell,#interrupts = <6>;
0217                 };
0218 
0219                 gate_clk: clock-gating-control@2011c {
0220                         compatible = "marvell,kirkwood-gating-clock";
0221                         reg = <0x2011c 0x4>;
0222                         clocks = <&core_clk 0>;
0223                         #clock-cells = <1>;
0224                 };
0225 
0226                 l2: l2-cache@20128 {
0227                         compatible = "marvell,kirkwood-cache";
0228                         reg = <0x20128 0x4>;
0229                 };
0230 
0231                 intc: interrupt-controller@20200 {
0232                         compatible = "marvell,orion-intc";
0233                         interrupt-controller;
0234                         #interrupt-cells = <1>;
0235                         reg = <0x20200 0x10>, <0x20210 0x10>;
0236                 };
0237 
0238                 timer: timer@20300 {
0239                         compatible = "marvell,orion-timer";
0240                         reg = <0x20300 0x20>;
0241                         interrupt-parent = <&bridge_intc>;
0242                         interrupts = <1>, <2>;
0243                         clocks = <&core_clk 0>;
0244                 };
0245 
0246                 wdt: watchdog-timer@20300 {
0247                         compatible = "marvell,orion-wdt";
0248                         reg = <0x20300 0x28>, <0x20108 0x4>;
0249                         interrupt-parent = <&bridge_intc>;
0250                         interrupts = <3>;
0251                         clocks = <&gate_clk 7>;
0252                         status = "okay";
0253                 };
0254 
0255                 cesa: crypto@30000 {
0256                         compatible = "marvell,kirkwood-crypto";
0257                         reg = <0x30000 0x10000>;
0258                         reg-names = "regs";
0259                         interrupts = <22>;
0260                         clocks = <&gate_clk 17>;
0261                         marvell,crypto-srams = <&crypto_sram>;
0262                         marvell,crypto-sram-size = <0x800>;
0263                         status = "okay";
0264                 };
0265 
0266                 usb0: ehci@50000 {
0267                         compatible = "marvell,orion-ehci";
0268                         reg = <0x50000 0x1000>;
0269                         interrupts = <19>;
0270                         clocks = <&gate_clk 3>;
0271                         status = "okay";
0272                 };
0273 
0274                 dma0: xor@60800 {
0275                         compatible = "marvell,orion-xor";
0276                         reg = <0x60800 0x100
0277                                0x60A00 0x100>;
0278                         status = "okay";
0279                         clocks = <&gate_clk 8>;
0280 
0281                         xor00 {
0282                               interrupts = <5>;
0283                               dmacap,memcpy;
0284                               dmacap,xor;
0285                         };
0286                         xor01 {
0287                               interrupts = <6>;
0288                               dmacap,memcpy;
0289                               dmacap,xor;
0290                               dmacap,memset;
0291                         };
0292                 };
0293 
0294                 dma1: xor@60900 {
0295                         compatible = "marvell,orion-xor";
0296                         reg = <0x60900 0x100
0297                                0x60B00 0x100>;
0298                         status = "okay";
0299                         clocks = <&gate_clk 16>;
0300 
0301                         xor00 {
0302                               interrupts = <7>;
0303                               dmacap,memcpy;
0304                               dmacap,xor;
0305                         };
0306                         xor01 {
0307                               interrupts = <8>;
0308                               dmacap,memcpy;
0309                               dmacap,xor;
0310                               dmacap,memset;
0311                         };
0312                 };
0313 
0314                 eth0: ethernet-controller@72000 {
0315                         compatible = "marvell,kirkwood-eth";
0316                         #address-cells = <1>;
0317                         #size-cells = <0>;
0318                         reg = <0x72000 0x4000>;
0319                         clocks = <&gate_clk 0>;
0320                         marvell,tx-checksum-limit = <1600>;
0321                         status = "disabled";
0322 
0323                         eth0port: ethernet0-port@0 {
0324                                 compatible = "marvell,kirkwood-eth-port";
0325                                 reg = <0>;
0326                                 interrupts = <11>;
0327                                 /* overwrite MAC address in bootloader */
0328                                 local-mac-address = [00 00 00 00 00 00];
0329                                 /* set phy-handle property in board file */
0330                         };
0331                 };
0332 
0333                 mdio: mdio-bus@72004 {
0334                         compatible = "marvell,orion-mdio";
0335                         #address-cells = <1>;
0336                         #size-cells = <0>;
0337                         reg = <0x72004 0x84>;
0338                         interrupts = <46>;
0339                         clocks = <&gate_clk 0>;
0340                         status = "disabled";
0341 
0342                         /* add phy nodes in board file */
0343                 };
0344 
0345                 eth1: ethernet-controller@76000 {
0346                         compatible = "marvell,kirkwood-eth";
0347                         #address-cells = <1>;
0348                         #size-cells = <0>;
0349                         reg = <0x76000 0x4000>;
0350                         clocks = <&gate_clk 19>;
0351                         marvell,tx-checksum-limit = <1600>;
0352                         pinctrl-0 = <&pmx_ge1>;
0353                         pinctrl-names = "default";
0354                         status = "disabled";
0355 
0356                         eth1port: ethernet1-port@0 {
0357                                 compatible = "marvell,kirkwood-eth-port";
0358                                 reg = <0>;
0359                                 interrupts = <15>;
0360                                 /* overwrite MAC address in bootloader */
0361                                 local-mac-address = [00 00 00 00 00 00];
0362                                 /* set phy-handle property in board file */
0363                         };
0364                 };
0365 
0366                 sata_phy0: sata-phy@82000 {
0367                         compatible = "marvell,mvebu-sata-phy";
0368                         reg = <0x82000 0x0334>;
0369                         clocks = <&gate_clk 14>;
0370                         clock-names = "sata";
0371                         #phy-cells = <0>;
0372                         status = "okay";
0373                 };
0374 
0375                 sata_phy1: sata-phy@84000 {
0376                         compatible = "marvell,mvebu-sata-phy";
0377                         reg = <0x84000 0x0334>;
0378                         clocks = <&gate_clk 15>;
0379                         clock-names = "sata";
0380                         #phy-cells = <0>;
0381                         status = "okay";
0382                 };
0383 
0384                 audio0: audio-controller@a0000 {
0385                         compatible = "marvell,kirkwood-audio";
0386                         #sound-dai-cells = <0>;
0387                         reg = <0xa0000 0x2210>;
0388                         interrupts = <24>;
0389                         clocks = <&gate_clk 9>;
0390                         clock-names = "internal";
0391                         status = "disabled";
0392                 };
0393         };
0394 };