u-boot/arch/arm/dts/kirkwood-nsa310s.dts
Tony Dinh dbd2a382c1 arm: kirkwood: nsa310s: Use Marvell uclass mvgbe and PHY driver for DM Ethernet
The Zyxel NSA310s board has the network chip Marvell Alaska 88E1318S.
Use uclass mvgbe and the compatible driver M88E1310 driver to bring
up Ethernet.

- Use uclass mvgbe to bring up the network. And remove ad-hoc code.
- Remove CONFIG_RESET_PHY_R.
- Enable CONFIG_PHY_MARVELL to properly configure the network.
- Add phy mode RGMII to kirkwood-nsa310s.dts
- Miscellaneous changes: Move constants to .c file and remove header file
board/zyxel/nsa310s/nsa310s.h, add support for large USB and SATA HDDs,
use BIT macro, add/cleanup comments, and cosmetic changes.

Note that this patch is depended on the following patch:
https://patchwork.ozlabs.org/project/uboot/patch/20220412201820.10291-1-mibodhi@gmail.com/

Signed-off-by: Tony Dinh <mibodhi@gmail.com>
2022-05-02 07:47:26 +02:00

319 lines
6.2 KiB
Text

// SPDX-License-Identifier: GPL-2.0
/*
* Device tree file for the Zyxel NSA 310S NAS box.
*
* Copyright (c) 2015-2021, Tony Dinh <mibodhi@gmail.com>
*
* Based on
* Copyright (c) 2014, Adam Baker <linux@baker-net.org.uk>
* Based upon the board setup file created by Peter Schildmann
*/
/dts-v1/;
#include "kirkwood.dtsi"
#include "kirkwood-6281.dtsi"
/ {
model = "Zyxel NSA310S";
compatible = "zyxel,nsa320s", "marvell,kirkwood-88f6702", "marvell,kirkwood";
memory {
device_type = "memory";
reg = <0x00000000 0x10000000>;
};
chosen {
bootargs = "console=ttyS0,115200";
stdout-path = &uart0;
};
ocp@f1000000 {
pinctrl: pin-controller@10000 {
pinctrl-names = "default";
pmx_sata0: pmx-sata0 {
marvell,pins ;
marvell,function = "sata0";
};
pmx_sata1: pmx-sata1 {
marvell,pins ;
marvell,function = "sata1";
};
pmx_usb_power: pmx-usb-power {
marvell,pins = "mpp21";
marvell,function = "gpio";
};
pmx_pwr_off: pmx-pwr-off {
marvell,pins = "mpp27";
marvell,function = "gpio";
};
pmx_btn_reset: pmx-btn-reset {
marvell,pins = "mpp24";
marvell,function = "gpio";
};
pmx_btn_copy: pmx-btn-copy {
marvell,pins = "mpp25";
marvell,function = "gpio";
};
pmx_btn_power: pmx-btn-power {
marvell,pins = "mpp26";
marvell,function = "gpio";
};
pmx_led_hdd2_green: pmx-led-hdd2-green {
marvell,pins = "mpp34";
marvell,function = "gpio";
};
pmx_led_hdd2_red: pmx-led-hdd2-red {
marvell,pins = "mpp12";
marvell,function = "gpio";
};
pmx_led_usb_green: pmx-led-usb-green {
marvell,pins = "mpp15";
marvell,function = "gpio";
};
pmx_led_copy_green: pmx-led-copy-green {
marvell,pins = "mpp22";
marvell,function = "gpio";
};
pmx_led_copy_red: pmx-led-copy-red {
marvell,pins = "mpp23";
marvell,function = "gpio";
};
pmx_led_sys_green: pmx-led-sys-green {
marvell,pins = "mpp28";
marvell,function = "gpio";
};
pmx_led_sys_orange: pmx-led-sys-orange {
marvell,pins = "mpp29";
marvell,function = "gpio";
};
pmx_led_hdd1_green: pmx-led-hdd1-green {
marvell,pins = "mpp16";
marvell,function = "gpio";
};
pmx_led_hdd1_red: pmx-led-hdd1-red {
marvell,pins = "mpp13";
marvell,function = "gpio";
};
pmx_pwr_sata1: pmx-pwr-sata1 {
marvell,pins = "mpp33";
marvell,function = "gpio";
};
};
serial@12000 {
status = "ok";
};
sata@80000 {
status = "okay";
nr-ports = <1>;
};
rtc@10300 {
status = "disabled";
};
i2c@11000 {
status = "okay";
ht1382: rtc@68 {
compatible = "htk,ht1382";
reg = <0x68>;
};
};
};
regulators {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pmx_usb_power &pmx_pwr_sata1>;
usb0_power: regulator@1 {
compatible = "regulator-fixed";
reg = <1>;
regulator-name = "USB Power";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
regulator-boot-on;
enable-active-high;
gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>;
};
sata1_power: regulator@2 {
compatible = "regulator-fixed";
reg = <2>;
regulator-name = "SATA1 Power";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
regulator-always-on;
regulator-boot-on;
enable-active-high;
gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>;
};
};
gpio_poweroff {
compatible = "gpio-poweroff";
pinctrl-0 = <&pmx_pwr_off>;
pinctrl-names = "default";
gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>;
};
gpio_keys {
compatible = "gpio-keys";
#address-cells = <1>;
#size-cells = <0>;
pinctrl-0 = <&pmx_btn_reset &pmx_btn_copy &pmx_btn_power>;
pinctrl-names = "default";
button@1 {
label = "Power Button";
linux,code = <KEY_POWER>;
gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>;
};
button@2 {
label = "Copy Button";
linux,code = <KEY_COPY>;
gpios = <&gpio0 25 GPIO_ACTIVE_LOW>;
};
button@3 {
label = "Reset Button";
linux,code = <KEY_RESTART>;
gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
};
};
gpio-leds {
compatible = "gpio-leds";
pinctrl-0 = <&pmx_led_hdd2_green &pmx_led_hdd2_red
&pmx_led_usb_green
&pmx_led_sys_green &pmx_led_sys_orange
&pmx_led_copy_green &pmx_led_copy_red
&pmx_led_hdd1_green &pmx_led_hdd1_red>;
pinctrl-names = "default";
green-sys {
label = "nsa310s:green:sys";
gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "default-on";
};
orange-sys {
label = "nsa310s:orange:sys";
gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>;
};
green-hdd1 {
label = "nsa310s:green:hdd1";
gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
};
red-hdd1 {
label = "nsa310s:red:hdd1";
gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
};
green-hdd2 {
label = "nsa310s:green:hdd2";
gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
};
red-hdd2 {
label = "nsa310s:red:hdd2";
gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
};
green-usb {
label = "nsa310s:green:usb";
gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
};
green-copy {
label = "nsa310s:green:copy";
gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "ide-disk";
};
red-copy {
label = "nsa310s:red:copy";
gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>;
};
};
};
&nand {
status = "okay";
chip-delay = <35>;
partition@0 {
label = "uboot";
reg = <0x0000000 0x0100000>;
};
partition@100000 {
label = "stock_uboot_env";
reg = <0x0100000 0x0080000>;
};
partition@180000 {
label = "key_store";
reg = <0x0180000 0x0080000>;
};
partition@200000 {
label = "info";
reg = <0x0200000 0x0080000>;
};
partition@280000 {
label = "etc";
reg = <0x0280000 0x0a00000>;
};
partition@c80000 {
label = "kernel_1";
reg = <0x0c80000 0x0a00000>;
};
partition@1680000 {
label = "rootfs1";
reg = <0x1680000 0x2fc0000>;
};
partition@4640000 {
label = "kernel_2";
reg = <0x4640000 0x0a00000>;
};
partition@5040000 {
label = "rootfs2";
reg = <0x5040000 0x2fc0000>;
};
};
&mdio {
status = "okay";
ethphy0: ethernet-phy@1 {
compatible = "marvell,88e1510";
reg = <1>;
};
};
&eth0 {
status = "okay";
ethernet0-port@0 {
phy-handle = <&ethphy0>;
phy-mode = "rgmii";
};
};
&pciec {
status = "okay";
};
&pcie0 {
status = "okay";
};