| // SPDX-License-Identifier: GPL-2.0 | 
| /* | 
|  * Device Tree common file for the Seagate NAS 2 and 4-bay (Armada 370 SoC). | 
|  * | 
|  * Copyright (C) 2015 Seagate | 
|  * | 
|  * Author: Vincent Donnefort <vdonnefort@gmail.com> | 
|  */ | 
|   | 
| /* | 
|  * TODO: add support for the white SATA LEDs associated with HDD 0 and 1. | 
|  */ | 
|   | 
| #include "armada-370.dtsi" | 
| #include <dt-bindings/gpio/gpio.h> | 
| #include <dt-bindings/input/input.h> | 
|   | 
| / { | 
|     chosen { | 
|         stdout-path = "serial0:115200n8"; | 
|     }; | 
|   | 
|     memory@0 { | 
|         device_type = "memory"; | 
|         reg = <0x00000000 0x20000000>; /* 512 MB */ | 
|     }; | 
|   | 
|     soc { | 
|         ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 | 
|               MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000>; | 
|   | 
|         internal-regs { | 
|             serial@12000 { | 
|                 status = "okay"; | 
|             }; | 
|   | 
|             sata@a0000 { | 
|                 nr-ports = <2>; | 
|                 status = "okay"; | 
|             }; | 
|   | 
|             ethernet@70000 { | 
|                 status = "okay"; | 
|                 pinctrl-0 = <&ge0_rgmii_pins>; | 
|                 pinctrl-names = "default"; | 
|                 phy = <&phy0>; | 
|                 phy-mode = "rgmii-id"; | 
|             }; | 
|   | 
|             i2c@11000 { | 
|                 status = "okay"; | 
|                 pinctrl-0 = <&i2c0_pins>; | 
|                 pinctrl-names = "default"; | 
|                 clock-frequency = <100000>; | 
|   | 
|                 /* RTC - NXP 8563T (second source) */ | 
|                 rtc@51 { | 
|                     compatible = "nxp,pcf8563"; | 
|                     reg = <0x51>; | 
|                     interrupts = <110>; | 
|                 }; | 
|                 /* RTC - MCP7940NT */ | 
|                 rtc@6f { | 
|                     compatible = "microchip,mcp7941x"; | 
|                     reg = <0x6f>; | 
|                     interrupts = <110>; | 
|                 }; | 
|             }; | 
|         }; | 
|   | 
|     }; | 
|   | 
|     regulators { | 
|         compatible = "simple-bus"; | 
|         #address-cells = <1>; | 
|         #size-cells = <0>; | 
|         pinctrl-names = "default"; | 
|   | 
|         regulator@1 { | 
|             compatible = "regulator-fixed"; | 
|             reg = <1>; | 
|             regulator-name = "SATA0 power"; | 
|             regulator-min-microvolt = <5000000>; | 
|             regulator-max-microvolt = <5000000>; | 
|             enable-active-high; | 
|             regulator-always-on; | 
|             regulator-boot-on; | 
|             gpio = <&gpio1 18 GPIO_ACTIVE_HIGH>; | 
|         }; | 
|         regulator@2 { | 
|             compatible = "regulator-fixed"; | 
|             reg = <2>; | 
|             regulator-name = "SATA1 power"; | 
|             regulator-min-microvolt = <5000000>; | 
|             regulator-max-microvolt = <5000000>; | 
|             enable-active-high; | 
|             regulator-always-on; | 
|             regulator-boot-on; | 
|             gpio = <&gpio1 22 GPIO_ACTIVE_HIGH>; | 
|         }; | 
|     }; | 
|   | 
|     gpio-fan { | 
|         compatible = "gpio-fan"; | 
|         gpios = <&gpio2 0 GPIO_ACTIVE_HIGH | 
|              &gpio2 1 GPIO_ACTIVE_HIGH>; | 
|     }; | 
|   | 
|     gpio-keys { | 
|         compatible = "gpio-keys"; | 
|         #address-cells = <1>; | 
|         #size-cells = <0>; | 
|   | 
|         power { | 
|             label = "Power button"; | 
|             linux,code = <KEY_POWER>; | 
|             gpios = <&gpio1 19 GPIO_ACTIVE_LOW>; | 
|             debounce-interval = <100>; | 
|         }; | 
|         backup { | 
|             label = "Backup button"; | 
|             linux,code = <KEY_OPTION>; | 
|             gpios = <&gpio0 31 GPIO_ACTIVE_LOW>; | 
|             debounce-interval = <100>; | 
|         }; | 
|         reset { | 
|             label = "Reset Button"; | 
|             linux,code = <KEY_RESTART>; | 
|             gpios = <&gpio1 23 GPIO_ACTIVE_LOW>; | 
|             debounce-interval = <100>; | 
|         }; | 
|     }; | 
|   | 
|     gpio-leds { | 
|         compatible = "gpio-leds"; | 
|   | 
|         white-power { | 
|             label = "dart:white:power"; | 
|             gpios = <&gpio1 28 GPIO_ACTIVE_HIGH>; | 
|             linux,default-trigger = "timer"; | 
|   | 
|         }; | 
|         red-power { | 
|             label = "dart:red:power"; | 
|             gpios = <&gpio1 31 GPIO_ACTIVE_HIGH>; | 
|         }; | 
|         red-sata0 { | 
|             label = "dart:red:sata0"; | 
|             gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; | 
|         }; | 
|         red-sata1 { | 
|             label = "dart:red:sata1"; | 
|             gpios = <&gpio1 21 GPIO_ACTIVE_LOW>; | 
|         }; | 
|     }; | 
|   | 
|     gpio_poweroff { | 
|         compatible = "gpio-poweroff"; | 
|         gpios = <&gpio1 30 GPIO_ACTIVE_LOW>; | 
|     }; | 
| }; | 
|   | 
| &pciec { | 
|     status = "okay"; | 
|   | 
|     /* USB 3.0 bridge ASM1042A */ | 
|     pcie@2,0 { | 
|         status = "okay"; | 
|     }; | 
| }; | 
|   | 
|   | 
| &mdio { | 
|     pinctrl-0 = <&mdio_pins>; | 
|     pinctrl-names = "default"; | 
|   | 
|     phy0: ethernet-phy@0 { | 
|         reg = <0>; | 
|     }; | 
| }; | 
|   | 
| &pinctrl { | 
|     pinctrl-0 = <&hdd0_led_sata_pin>, <&hdd1_led_sata_pin>; | 
|     pinctrl-names = "default"; | 
|   | 
|     hdd0_led_sata_pin: hdd0-led-sata-pin { | 
|         marvell,pins = "mpp48"; | 
|         marvell,function = "sata1"; | 
|     }; | 
|     hdd0_led_gpio_pin: hdd0-led-gpio-pin { | 
|         marvell,pins = "mpp48"; | 
|         marvell,function = "gpio"; | 
|     }; | 
|     hdd1_led_sata_pin: hdd1-led-sata-pin { | 
|         marvell,pins = "mpp57"; | 
|         marvell,function = "sata0"; | 
|     }; | 
|     hdd1_led_gpio_pin: hdd1-led-gpio-pin { | 
|         marvell,pins = "mpp57"; | 
|         marvell,function = "gpio"; | 
|     }; | 
| }; | 
|   | 
| &nand_controller { | 
|     status = "okay"; | 
|   | 
|     nand@0 { | 
|         reg = <0>; | 
|         label = "pxa3xx_nand-0"; | 
|         nand-rb = <0>; | 
|         marvell,nand-keep-config; | 
|         nand-on-flash-bbt; | 
|         nand-ecc-strength = <4>; | 
|         nand-ecc-step-size = <512>; | 
|   | 
|         partitions { | 
|             compatible = "fixed-partitions"; | 
|             #address-cells = <1>; | 
|             #size-cells = <1>; | 
|   | 
|             partition@0 { | 
|                 label = "u-boot"; | 
|                 reg = <0x0 0x300000>; | 
|             }; | 
|             partition@300000 { | 
|                 label = "device-tree"; | 
|                 reg = <0x300000 0x20000>; | 
|             }; | 
|             partition@320000 { | 
|                 label = "linux"; | 
|                 reg = <0x320000 0x2000000>; | 
|             }; | 
|             partition@2320000 { | 
|                 label = "rootfs"; | 
|                 reg = <0x2320000 0xdce0000>; | 
|             }; | 
|         }; | 
|     }; | 
| }; |