Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
0002 /*
0003  * Device Tree file for Marvell Armada 370 Reference Design board
0004  * (RD-88F6710-A1)
0005  *
0006  *  Copied from arch/arm/boot/dts/armada-370-db.dts
0007  *
0008  *  Copyright (C) 2013 Florian Fainelli <florian@openwrt.org>
0009  *
0010  * Note: this Device Tree assumes that the bootloader has remapped the
0011  * internal registers to 0xf1000000 (instead of the default
0012  * 0xd0000000). The 0xf1000000 is the default used by the recent,
0013  * DT-capable, U-Boot bootloaders provided by Marvell. Some earlier
0014  * boards were delivered with an older version of the bootloader that
0015  * left internal registers mapped at 0xd0000000. If you are in this
0016  * situation, you should either update your bootloader (preferred
0017  * solution) or the below Device Tree should be adjusted.
0018  */
0019 
0020 /dts-v1/;
0021 #include <dt-bindings/input/input.h>
0022 #include <dt-bindings/interrupt-controller/irq.h>
0023 #include <dt-bindings/gpio/gpio.h>
0024 #include "armada-370.dtsi"
0025 
0026 / {
0027         model = "Marvell Armada 370 Reference Design";
0028         compatible = "marvell,a370-rd", "marvell,armada370", "marvell,armada-370-xp";
0029 
0030         chosen {
0031                 stdout-path = "serial0:115200n8";
0032         };
0033 
0034         memory@0 {
0035                 device_type = "memory";
0036                 reg = <0x00000000 0x20000000>; /* 512 MB */
0037         };
0038 
0039         soc {
0040                 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
0041                           MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000
0042                           MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>;
0043 
0044                 internal-regs {
0045                         serial@12000 {
0046                                 status = "okay";
0047                         };
0048                         sata@a0000 {
0049                                 nr-ports = <2>;
0050                                 status = "okay";
0051                         };
0052 
0053                         ethernet@70000 {
0054                                 status = "okay";
0055                                 phy = <&phy0>;
0056                                 phy-mode = "sgmii";
0057                         };
0058                         ethernet@74000 {
0059                                 pinctrl-0 = <&ge1_rgmii_pins>;
0060                                 pinctrl-names = "default";
0061                                 status = "okay";
0062                                 phy-mode = "rgmii-id";
0063                                 fixed-link {
0064                                            speed = <1000>;
0065                                            full-duplex;
0066                                 };
0067                         };
0068 
0069                         mvsdio@d4000 {
0070                                 pinctrl-0 = <&sdio_pins1>;
0071                                 pinctrl-names = "default";
0072                                 status = "okay";
0073                                 /* No CD or WP GPIOs */
0074                                 broken-cd;
0075                         };
0076 
0077                         usb@50000 {
0078                                 status = "okay";
0079                         };
0080 
0081                         usb@51000 {
0082                                 status = "okay";
0083                         };
0084 
0085                         gpio-keys {
0086                                 compatible = "gpio-keys";
0087                                 button {
0088                                         label = "Software Button";
0089                                         linux,code = <KEY_POWER>;
0090                                         gpios = <&gpio0 6 GPIO_ACTIVE_LOW>;
0091                                 };
0092                         };
0093 
0094                         gpio-fan {
0095                                 compatible = "gpio-fan";
0096                                 gpios = <&gpio0 8 GPIO_ACTIVE_HIGH>;
0097                                 gpio-fan,speed-map = <0 0 3000 1>;
0098                                 pinctrl-0 = <&fan_pins>;
0099                                 pinctrl-names = "default";
0100                         };
0101 
0102                         gpio_leds {
0103                                 compatible = "gpio-leds";
0104                                 pinctrl-names = "default";
0105                                 pinctrl-0 = <&led_pins>;
0106 
0107                                 sw_led {
0108                                         label = "370rd:green:sw";
0109                                         gpios = <&gpio1 0 GPIO_ACTIVE_LOW>;
0110                                         default-state = "keep";
0111                                 };
0112                         };
0113                 };
0114         };
0115 };
0116 
0117 &pciec {
0118         status = "okay";
0119 
0120         /* Internal mini-PCIe connector */
0121         pcie@1,0 {
0122                 /* Port 0, Lane 0 */
0123                 status = "okay";
0124         };
0125 
0126         /* Internal mini-PCIe connector */
0127         pcie@2,0 {
0128                 /* Port 1, Lane 0 */
0129                 status = "okay";
0130         };
0131 };
0132 
0133 &mdio {
0134         pinctrl-0 = <&mdio_pins>;
0135         pinctrl-names = "default";
0136         phy0: ethernet-phy@0 {
0137                 reg = <0>;
0138         };
0139 
0140         switch: switch@10 {
0141                 compatible = "marvell,mv88e6085";
0142                 #address-cells = <1>;
0143                 #size-cells = <0>;
0144                 reg = <0x10>;
0145                 interrupt-controller;
0146                 #interrupt-cells = <2>;
0147 
0148                 ports {
0149                         #address-cells = <1>;
0150                         #size-cells = <0>;
0151 
0152                         port@0 {
0153                                 reg = <0>;
0154                                 label = "lan0";
0155                         };
0156 
0157                         port@1 {
0158                                reg = <1>;
0159                                label = "lan1";
0160                         };
0161 
0162                         port@2 {
0163                                reg = <2>;
0164                                label = "lan2";
0165                         };
0166 
0167                         port@3 {
0168                                reg = <3>;
0169                                label = "lan3";
0170                         };
0171 
0172                         port@5 {
0173                                 reg = <5>;
0174                                 label = "cpu";
0175                                 ethernet = <&eth1>;
0176                                 fixed-link {
0177                                         speed = <1000>;
0178                                         full-duplex;
0179                                 };
0180                         };
0181                 };
0182 
0183                 mdio {
0184                         #address-cells = <1>;
0185                         #size-cells = <0>;
0186 
0187                         switchphy0: switchphy@0 {
0188                                 reg = <0>;
0189                                 interrupt-parent = <&switch>;
0190                                 interrupts = <0 IRQ_TYPE_LEVEL_HIGH>;
0191                         };
0192 
0193                         switchphy1: switchphy@1 {
0194                                 reg = <1>;
0195                                 interrupt-parent = <&switch>;
0196                                 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
0197                         };
0198 
0199                         switchphy2: switchphy@2 {
0200                                 reg = <2>;
0201                                 interrupt-parent = <&switch>;
0202                                 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>;
0203                         };
0204 
0205                         switchphy3: switchphy@3 {
0206                                 reg = <3>;
0207                                 interrupt-parent = <&switch>;
0208                                 interrupts = <3 IRQ_TYPE_LEVEL_HIGH>;
0209                         };
0210                 };
0211         };
0212 };
0213 
0214 
0215 &pinctrl {
0216         fan_pins: fan-pins {
0217                 marvell,pins = "mpp8";
0218                 marvell,function = "gpio";
0219         };
0220 
0221         led_pins: led-pins {
0222                 marvell,pins = "mpp32";
0223                 marvell,function = "gpio";
0224         };
0225 };
0226 
0227 &nand_controller {
0228         status = "okay";
0229 
0230         nand@0 {
0231                 reg = <0>;
0232                 label = "pxa3xx_nand-0";
0233                 nand-rb = <0>;
0234                 marvell,nand-keep-config;
0235                 nand-on-flash-bbt;
0236 
0237                 partitions {
0238                         compatible = "fixed-partitions";
0239                         #address-cells = <1>;
0240                         #size-cells = <1>;
0241 
0242                         partition@0 {
0243                                 label = "U-Boot";
0244                                 reg = <0 0x800000>;
0245                         };
0246                         partition@800000 {
0247                                 label = "Linux";
0248                                 reg = <0x800000 0x800000>;
0249                         };
0250                         partition@1000000 {
0251                                 label = "Filesystem";
0252                                 reg = <0x1000000 0x3f000000>;
0253                         };
0254                 };
0255         };
0256 };