162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Device Tree file for D-Link DNS-327L 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2015, Andrew Andrianov <andrew@ncrmnt.org> 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci 862306a36Sopenharmony_ci/* Remaining unsolved: 962306a36Sopenharmony_ci * There's still some unknown device on i2c address 0x13 1062306a36Sopenharmony_ci */ 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/dts-v1/; 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci#include <dt-bindings/input/input.h> 1562306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 1662306a36Sopenharmony_ci#include "armada-370.dtsi" 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci/ { 1962306a36Sopenharmony_ci model = "D-Link DNS-327L"; 2062306a36Sopenharmony_ci compatible = "dlink,dns327l", 2162306a36Sopenharmony_ci "marvell,armada370", 2262306a36Sopenharmony_ci "marvell,armada-370-xp"; 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci chosen { 2562306a36Sopenharmony_ci stdout-path = &uart0; 2662306a36Sopenharmony_ci }; 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci memory@0 { 2962306a36Sopenharmony_ci device_type = "memory"; 3062306a36Sopenharmony_ci reg = <0x00000000 0x20000000>; /* 512 MiB */ 3162306a36Sopenharmony_ci }; 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci soc { 3462306a36Sopenharmony_ci ranges = <MBUS_ID(0xf0, 0x01) 0 0xd0000000 0x100000 3562306a36Sopenharmony_ci MBUS_ID(0x01, 0xe0) 0 0xfff00000 0x100000 3662306a36Sopenharmony_ci MBUS_ID(0x09, 0x01) 0 0xf1100000 0x10000>; 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci internal-regs { 3962306a36Sopenharmony_ci sata@a0000 { 4062306a36Sopenharmony_ci nr-ports = <2>; 4162306a36Sopenharmony_ci status = "okay"; 4262306a36Sopenharmony_ci }; 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci usb@50000 { 4562306a36Sopenharmony_ci status = "okay"; 4662306a36Sopenharmony_ci }; 4762306a36Sopenharmony_ci }; 4862306a36Sopenharmony_ci }; 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci gpio-keys { 5162306a36Sopenharmony_ci compatible = "gpio-keys"; 5262306a36Sopenharmony_ci pinctrl-0 = < 5362306a36Sopenharmony_ci &backup_button_pin 5462306a36Sopenharmony_ci &power_button_pin 5562306a36Sopenharmony_ci &reset_button_pin>; 5662306a36Sopenharmony_ci pinctrl-names = "default"; 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci power-button { 5962306a36Sopenharmony_ci label = "Power Button"; 6062306a36Sopenharmony_ci linux,code = <KEY_POWER>; 6162306a36Sopenharmony_ci gpios = <&gpio2 1 GPIO_ACTIVE_LOW>; 6262306a36Sopenharmony_ci }; 6362306a36Sopenharmony_ci 6462306a36Sopenharmony_ci backup-button { 6562306a36Sopenharmony_ci label = "Backup Button"; 6662306a36Sopenharmony_ci linux,code = <KEY_COPY>; 6762306a36Sopenharmony_ci gpios = <&gpio1 31 GPIO_ACTIVE_LOW>; 6862306a36Sopenharmony_ci }; 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci reset-button { 7162306a36Sopenharmony_ci label = "Reset Button"; 7262306a36Sopenharmony_ci linux,code = <KEY_RESTART>; 7362306a36Sopenharmony_ci gpios = <&gpio2 0 GPIO_ACTIVE_LOW>; 7462306a36Sopenharmony_ci }; 7562306a36Sopenharmony_ci }; 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci gpio-leds { 7862306a36Sopenharmony_ci compatible = "gpio-leds"; 7962306a36Sopenharmony_ci pinctrl-0 = < 8062306a36Sopenharmony_ci &sata_l_amber_pin 8162306a36Sopenharmony_ci &sata_r_amber_pin 8262306a36Sopenharmony_ci &backup_led_pin 8362306a36Sopenharmony_ci /* Ensure these are managed by hardware */ 8462306a36Sopenharmony_ci &sata_l_white_pin 8562306a36Sopenharmony_ci &sata_r_white_pin>; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci pinctrl-names = "default"; 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci led-sata-r-amber { 9062306a36Sopenharmony_ci label = "dns327l:amber:sata-r"; 9162306a36Sopenharmony_ci gpios = <&gpio1 20 GPIO_ACTIVE_HIGH>; 9262306a36Sopenharmony_ci default-state = "keep"; 9362306a36Sopenharmony_ci }; 9462306a36Sopenharmony_ci 9562306a36Sopenharmony_ci led-sata-l-amber { 9662306a36Sopenharmony_ci label = "dns327l:amber:sata-l"; 9762306a36Sopenharmony_ci gpios = <&gpio1 21 GPIO_ACTIVE_HIGH>; 9862306a36Sopenharmony_ci default-state = "keep"; 9962306a36Sopenharmony_ci }; 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci led-backup { 10262306a36Sopenharmony_ci label = "dns327l:white:usb"; 10362306a36Sopenharmony_ci gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>; 10462306a36Sopenharmony_ci default-state = "keep"; 10562306a36Sopenharmony_ci }; 10662306a36Sopenharmony_ci }; 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci usb_power: regulator-1 { 10962306a36Sopenharmony_ci compatible = "regulator-fixed"; 11062306a36Sopenharmony_ci pinctrl-0 = <&xhci_pwr_pin>; 11162306a36Sopenharmony_ci pinctrl-names = "default"; 11262306a36Sopenharmony_ci regulator-name = "USB3.0 Port Power"; 11362306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 11462306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 11562306a36Sopenharmony_ci enable-active-high; 11662306a36Sopenharmony_ci regulator-boot-on; 11762306a36Sopenharmony_ci regulator-always-on; 11862306a36Sopenharmony_ci gpio = <&gpio0 13 GPIO_ACTIVE_HIGH>; 11962306a36Sopenharmony_ci }; 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci sata_r_power: regulator-2 { 12262306a36Sopenharmony_ci compatible = "regulator-fixed"; 12362306a36Sopenharmony_ci pinctrl-0 = <&sata_r_pwr_pin>; 12462306a36Sopenharmony_ci pinctrl-names = "default"; 12562306a36Sopenharmony_ci regulator-name = "SATA-R Power"; 12662306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 12762306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 12862306a36Sopenharmony_ci startup-delay-us = <2000000>; 12962306a36Sopenharmony_ci enable-active-high; 13062306a36Sopenharmony_ci regulator-always-on; 13162306a36Sopenharmony_ci regulator-boot-on; 13262306a36Sopenharmony_ci gpio = <&gpio1 22 GPIO_ACTIVE_HIGH>; 13362306a36Sopenharmony_ci }; 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci sata_l_power: regulator-3 { 13662306a36Sopenharmony_ci compatible = "regulator-fixed"; 13762306a36Sopenharmony_ci pinctrl-0 = <&sata_l_pwr_pin>; 13862306a36Sopenharmony_ci pinctrl-names = "default"; 13962306a36Sopenharmony_ci regulator-name = "SATA-L Power"; 14062306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 14162306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 14262306a36Sopenharmony_ci startup-delay-us = <4000000>; 14362306a36Sopenharmony_ci enable-active-high; 14462306a36Sopenharmony_ci regulator-always-on; 14562306a36Sopenharmony_ci regulator-boot-on; 14662306a36Sopenharmony_ci gpio = <&gpio1 24 GPIO_ACTIVE_HIGH>; 14762306a36Sopenharmony_ci }; 14862306a36Sopenharmony_ci}; 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci&pciec { 15162306a36Sopenharmony_ci status = "okay"; 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci pcie@1,0 { 15462306a36Sopenharmony_ci /* Port 0, Lane 0 */ 15562306a36Sopenharmony_ci status = "okay"; 15662306a36Sopenharmony_ci }; 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_ci pcie@2,0 { 15962306a36Sopenharmony_ci /* Port 1, Lane 0 */ 16062306a36Sopenharmony_ci status = "okay"; 16162306a36Sopenharmony_ci }; 16262306a36Sopenharmony_ci}; 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ci&pinctrl { 16562306a36Sopenharmony_ci sata_l_white_pin: sata-l-white-pin { 16662306a36Sopenharmony_ci marvell,pins = "mpp57"; 16762306a36Sopenharmony_ci marvell,function = "sata0"; 16862306a36Sopenharmony_ci }; 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ci sata_r_white_pin: sata-r-white-pin { 17162306a36Sopenharmony_ci marvell,pins = "mpp55"; 17262306a36Sopenharmony_ci marvell,function = "sata1"; 17362306a36Sopenharmony_ci }; 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ci sata_r_amber_pin: sata-r-amber-pin { 17662306a36Sopenharmony_ci marvell,pins = "mpp52"; 17762306a36Sopenharmony_ci marvell,function = "gpio"; 17862306a36Sopenharmony_ci }; 17962306a36Sopenharmony_ci 18062306a36Sopenharmony_ci sata_l_amber_pin: sata-l-amber-pin { 18162306a36Sopenharmony_ci marvell,pins = "mpp53"; 18262306a36Sopenharmony_ci marvell,function = "gpio"; 18362306a36Sopenharmony_ci }; 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci backup_led_pin: backup-led-pin { 18662306a36Sopenharmony_ci marvell,pins = "mpp61"; 18762306a36Sopenharmony_ci marvell,function = "gpo"; 18862306a36Sopenharmony_ci }; 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ci xhci_pwr_pin: xhci-pwr-pin { 19162306a36Sopenharmony_ci marvell,pins = "mpp13"; 19262306a36Sopenharmony_ci marvell,function = "gpio"; 19362306a36Sopenharmony_ci }; 19462306a36Sopenharmony_ci 19562306a36Sopenharmony_ci sata_r_pwr_pin: sata-r-pwr-pin { 19662306a36Sopenharmony_ci marvell,pins = "mpp54"; 19762306a36Sopenharmony_ci marvell,function = "gpio"; 19862306a36Sopenharmony_ci }; 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci sata_l_pwr_pin: sata-l-pwr-pin { 20162306a36Sopenharmony_ci marvell,pins = "mpp56"; 20262306a36Sopenharmony_ci marvell,function = "gpio"; 20362306a36Sopenharmony_ci }; 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci uart1_pins: uart1-pins { 20662306a36Sopenharmony_ci marvell,pins = "mpp60", "mpp61"; 20762306a36Sopenharmony_ci marvell,function = "uart1"; 20862306a36Sopenharmony_ci }; 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci power_button_pin: power-button-pin { 21162306a36Sopenharmony_ci marvell,pins = "mpp65"; 21262306a36Sopenharmony_ci marvell,function = "gpio"; 21362306a36Sopenharmony_ci }; 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ci backup_button_pin: backup-button-pin { 21662306a36Sopenharmony_ci marvell,pins = "mpp63"; 21762306a36Sopenharmony_ci marvell,function = "gpio"; 21862306a36Sopenharmony_ci }; 21962306a36Sopenharmony_ci 22062306a36Sopenharmony_ci reset_button_pin: reset-button-pin { 22162306a36Sopenharmony_ci marvell,pins = "mpp64"; 22262306a36Sopenharmony_ci marvell,function = "gpio"; 22362306a36Sopenharmony_ci }; 22462306a36Sopenharmony_ci}; 22562306a36Sopenharmony_ci 22662306a36Sopenharmony_ci/* Serial console */ 22762306a36Sopenharmony_ci&uart0 { 22862306a36Sopenharmony_ci status = "okay"; 22962306a36Sopenharmony_ci}; 23062306a36Sopenharmony_ci 23162306a36Sopenharmony_ci/* Connected to Weltrend MCU */ 23262306a36Sopenharmony_ci&uart1 { 23362306a36Sopenharmony_ci pinctrl-0 = <&uart1_pins>; 23462306a36Sopenharmony_ci pinctrl-names = "default"; 23562306a36Sopenharmony_ci status = "okay"; 23662306a36Sopenharmony_ci}; 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci&mdio { 23962306a36Sopenharmony_ci phy0: ethernet-phy@0 { /* Marvell 88E1318 */ 24062306a36Sopenharmony_ci reg = <0>; 24162306a36Sopenharmony_ci marvell,reg-init = <0x2 0x19 0x0 0x0077>, 24262306a36Sopenharmony_ci <0x2 0x18 0x0 0x5747>; 24362306a36Sopenharmony_ci }; 24462306a36Sopenharmony_ci}; 24562306a36Sopenharmony_ci 24662306a36Sopenharmony_cið1 { 24762306a36Sopenharmony_ci phy = <&phy0>; 24862306a36Sopenharmony_ci phy-mode = "rgmii-id"; 24962306a36Sopenharmony_ci status = "okay"; 25062306a36Sopenharmony_ci}; 25162306a36Sopenharmony_ci 25262306a36Sopenharmony_ci&i2c0 { 25362306a36Sopenharmony_ci compatible = "marvell,mv64xxx-i2c"; 25462306a36Sopenharmony_ci clock-frequency = <100000>; 25562306a36Sopenharmony_ci status = "okay"; 25662306a36Sopenharmony_ci}; 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ci&nand_controller { 25962306a36Sopenharmony_ci status = "okay"; 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_ci nand@0 { 26262306a36Sopenharmony_ci reg = <0>; 26362306a36Sopenharmony_ci label = "pxa3xx_nand-0"; 26462306a36Sopenharmony_ci nand-rb = <0>; 26562306a36Sopenharmony_ci marvell,nand-keep-config; 26662306a36Sopenharmony_ci nand-on-flash-bbt; 26762306a36Sopenharmony_ci nand-ecc-strength = <4>; 26862306a36Sopenharmony_ci nand-ecc-step-size = <512>; 26962306a36Sopenharmony_ci 27062306a36Sopenharmony_ci partitions { 27162306a36Sopenharmony_ci compatible = "fixed-partitions"; 27262306a36Sopenharmony_ci #address-cells = <1>; 27362306a36Sopenharmony_ci #size-cells = <1>; 27462306a36Sopenharmony_ci 27562306a36Sopenharmony_ci partition@0 { 27662306a36Sopenharmony_ci label = "u-boot"; 27762306a36Sopenharmony_ci /* 1.0 MiB */ 27862306a36Sopenharmony_ci reg = <0x0000000 0x100000>; 27962306a36Sopenharmony_ci read-only; 28062306a36Sopenharmony_ci }; 28162306a36Sopenharmony_ci 28262306a36Sopenharmony_ci partition@100000 { 28362306a36Sopenharmony_ci label = "u-boot-env"; 28462306a36Sopenharmony_ci /* 128 KiB */ 28562306a36Sopenharmony_ci reg = <0x100000 0x20000>; 28662306a36Sopenharmony_ci read-only; 28762306a36Sopenharmony_ci }; 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ci partition@120000 { 29062306a36Sopenharmony_ci label = "uImage"; 29162306a36Sopenharmony_ci /* 7 MiB */ 29262306a36Sopenharmony_ci reg = <0x120000 0x700000>; 29362306a36Sopenharmony_ci }; 29462306a36Sopenharmony_ci 29562306a36Sopenharmony_ci partition@820000 { 29662306a36Sopenharmony_ci label = "ubifs"; 29762306a36Sopenharmony_ci /* ~ 84 MiB */ 29862306a36Sopenharmony_ci reg = <0x820000 0x54e0000>; 29962306a36Sopenharmony_ci }; 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_ci /* Hardcoded into stock bootloader */ 30262306a36Sopenharmony_ci partition@5d00000 { 30362306a36Sopenharmony_ci label = "failsafe-uImage"; 30462306a36Sopenharmony_ci /* 5 MiB */ 30562306a36Sopenharmony_ci reg = <0x5d00000 0x500000>; 30662306a36Sopenharmony_ci }; 30762306a36Sopenharmony_ci 30862306a36Sopenharmony_ci partition@6200000 { 30962306a36Sopenharmony_ci label = "failsafe-fs"; 31062306a36Sopenharmony_ci /* 29 MiB */ 31162306a36Sopenharmony_ci reg = <0x6200000 0x1d00000>; 31262306a36Sopenharmony_ci }; 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_ci partition@7f00000 { 31562306a36Sopenharmony_ci label = "bbt"; 31662306a36Sopenharmony_ci /* 1 MiB for BBT */ 31762306a36Sopenharmony_ci reg = <0x7f00000 0x100000>; 31862306a36Sopenharmony_ci }; 31962306a36Sopenharmony_ci }; 32062306a36Sopenharmony_ci }; 32162306a36Sopenharmony_ci}; 322