1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*724ba675SRob Herring/* 3*724ba675SRob Herring * ZyXEL NSA310S Board Description 4*724ba675SRob Herring * Copyright 2020-2022 Pawel Dembicki <paweldembicki@gmail.com> 5*724ba675SRob Herring * Copyright (c) 2015-2021, Tony Dinh <mibodhi@gmail.com> 6*724ba675SRob Herring * Copyright (c) 2014, Adam Baker <linux@baker-net.org.uk> 7*724ba675SRob Herring * Based upon the board setup file created by Peter Schildmann 8*724ba675SRob Herring */ 9*724ba675SRob Herring/dts-v1/; 10*724ba675SRob Herring 11*724ba675SRob Herring#include "kirkwood.dtsi" 12*724ba675SRob Herring#include "kirkwood-6281.dtsi" 13*724ba675SRob Herring#include <dt-bindings/leds/common.h> 14*724ba675SRob Herring 15*724ba675SRob Herring/ { 16*724ba675SRob Herring model = "ZyXEL NSA310S"; 17*724ba675SRob Herring compatible = "zyxel,nsa310s", "marvell,kirkwood-88f6702", "marvell,kirkwood"; 18*724ba675SRob Herring 19*724ba675SRob Herring memory { 20*724ba675SRob Herring device_type = "memory"; 21*724ba675SRob Herring reg = <0x00000000 0x10000000>; 22*724ba675SRob Herring }; 23*724ba675SRob Herring 24*724ba675SRob Herring chosen { 25*724ba675SRob Herring bootargs = "console=ttyS0,115200n8 earlyprintk"; 26*724ba675SRob Herring stdout-path = &uart0; 27*724ba675SRob Herring }; 28*724ba675SRob Herring 29*724ba675SRob Herring gpio_poweroff { 30*724ba675SRob Herring compatible = "gpio-poweroff"; 31*724ba675SRob Herring pinctrl-0 = <&pmx_pwr_off>; 32*724ba675SRob Herring pinctrl-names = "default"; 33*724ba675SRob Herring gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>; 34*724ba675SRob Herring }; 35*724ba675SRob Herring 36*724ba675SRob Herring keys { 37*724ba675SRob Herring compatible = "gpio-keys"; 38*724ba675SRob Herring #address-cells = <1>; 39*724ba675SRob Herring #size-cells = <0>; 40*724ba675SRob Herring pinctrl-0 = <&pmx_buttons>; 41*724ba675SRob Herring pinctrl-names = "default"; 42*724ba675SRob Herring 43*724ba675SRob Herring power { 44*724ba675SRob Herring label = "Power Button"; 45*724ba675SRob Herring linux,code = <KEY_POWER>; 46*724ba675SRob Herring gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>; 47*724ba675SRob Herring }; 48*724ba675SRob Herring 49*724ba675SRob Herring copy { 50*724ba675SRob Herring label = "Copy Button"; 51*724ba675SRob Herring linux,code = <KEY_COPY>; 52*724ba675SRob Herring gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; 53*724ba675SRob Herring }; 54*724ba675SRob Herring 55*724ba675SRob Herring reset { 56*724ba675SRob Herring label = "Reset Button"; 57*724ba675SRob Herring linux,code = <KEY_RESTART>; 58*724ba675SRob Herring gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; 59*724ba675SRob Herring }; 60*724ba675SRob Herring }; 61*724ba675SRob Herring 62*724ba675SRob Herring leds { 63*724ba675SRob Herring compatible = "gpio-leds"; 64*724ba675SRob Herring pinctrl-0 = <&pmx_leds>; 65*724ba675SRob Herring pinctrl-names = "default"; 66*724ba675SRob Herring 67*724ba675SRob Herring led-1 { 68*724ba675SRob Herring function = LED_FUNCTION_DISK_ERR; 69*724ba675SRob Herring color = <LED_COLOR_ID_RED>; 70*724ba675SRob Herring gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>; 71*724ba675SRob Herring }; 72*724ba675SRob Herring 73*724ba675SRob Herring led-2 { 74*724ba675SRob Herring function = LED_FUNCTION_USB; 75*724ba675SRob Herring color = <LED_COLOR_ID_GREEN>; 76*724ba675SRob Herring gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; 77*724ba675SRob Herring linux,default-trigger = "usb-host"; 78*724ba675SRob Herring }; 79*724ba675SRob Herring 80*724ba675SRob Herring led-3 { 81*724ba675SRob Herring function = LED_FUNCTION_DISK; 82*724ba675SRob Herring color = <LED_COLOR_ID_GREEN>; 83*724ba675SRob Herring gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; 84*724ba675SRob Herring linux,default-trigger = "ata1"; 85*724ba675SRob Herring }; 86*724ba675SRob Herring 87*724ba675SRob Herring led-4 { 88*724ba675SRob Herring function = LED_FUNCTION_INDICATOR; 89*724ba675SRob Herring color = <LED_COLOR_ID_GREEN>; 90*724ba675SRob Herring gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>; 91*724ba675SRob Herring }; 92*724ba675SRob Herring 93*724ba675SRob Herring led-5 { 94*724ba675SRob Herring function = LED_FUNCTION_INDICATOR; 95*724ba675SRob Herring color = <LED_COLOR_ID_RED>; 96*724ba675SRob Herring gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>; 97*724ba675SRob Herring }; 98*724ba675SRob Herring 99*724ba675SRob Herring led-6 { 100*724ba675SRob Herring function = LED_FUNCTION_STATUS; 101*724ba675SRob Herring color = <LED_COLOR_ID_GREEN>; 102*724ba675SRob Herring gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; 103*724ba675SRob Herring linux,default-trigger = "default-on"; 104*724ba675SRob Herring }; 105*724ba675SRob Herring 106*724ba675SRob Herring led-7 { 107*724ba675SRob Herring function = LED_FUNCTION_STATUS; 108*724ba675SRob Herring color = <LED_COLOR_ID_RED>; 109*724ba675SRob Herring gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; 110*724ba675SRob Herring }; 111*724ba675SRob Herring }; 112*724ba675SRob Herring 113*724ba675SRob Herring usb0_power: regulator@1 { 114*724ba675SRob Herring compatible = "regulator-fixed"; 115*724ba675SRob Herring regulator-name = "USB Power"; 116*724ba675SRob Herring 117*724ba675SRob Herring regulator-min-microvolt = <5000000>; 118*724ba675SRob Herring regulator-max-microvolt = <5000000>; 119*724ba675SRob Herring regulator-always-on; 120*724ba675SRob Herring regulator-boot-on; 121*724ba675SRob Herring gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>; 122*724ba675SRob Herring }; 123*724ba675SRob Herring 124*724ba675SRob Herring sata1_power: regulator@2 { 125*724ba675SRob Herring compatible = "regulator-fixed"; 126*724ba675SRob Herring regulator-name = "SATA1 Power"; 127*724ba675SRob Herring 128*724ba675SRob Herring regulator-min-microvolt = <5000000>; 129*724ba675SRob Herring regulator-max-microvolt = <5000000>; 130*724ba675SRob Herring regulator-always-on; 131*724ba675SRob Herring regulator-boot-on; 132*724ba675SRob Herring gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>; 133*724ba675SRob Herring }; 134*724ba675SRob Herring 135*724ba675SRob Herring thermal-zones { 136*724ba675SRob Herring disk-thermal { 137*724ba675SRob Herring polling-delay = <20000>; 138*724ba675SRob Herring polling-delay-passive = <2000>; 139*724ba675SRob Herring 140*724ba675SRob Herring thermal-sensors = <&hdd_temp>; 141*724ba675SRob Herring 142*724ba675SRob Herring trips { 143*724ba675SRob Herring disk_alert: disk-alert { 144*724ba675SRob Herring temperature = <40000>; 145*724ba675SRob Herring hysteresis = <5000>; 146*724ba675SRob Herring type = "active"; 147*724ba675SRob Herring }; 148*724ba675SRob Herring disk_crit: disk-crit { 149*724ba675SRob Herring temperature = <60000>; 150*724ba675SRob Herring hysteresis = <2000>; 151*724ba675SRob Herring type = "critical"; 152*724ba675SRob Herring }; 153*724ba675SRob Herring }; 154*724ba675SRob Herring }; 155*724ba675SRob Herring }; 156*724ba675SRob Herring}; 157*724ba675SRob Herring 158*724ba675SRob Herring 159*724ba675SRob Herringð0 { 160*724ba675SRob Herring status = "okay"; 161*724ba675SRob Herring 162*724ba675SRob Herring ethernet0-port@0 { 163*724ba675SRob Herring phy-handle = <ðphy0>; 164*724ba675SRob Herring }; 165*724ba675SRob Herring}; 166*724ba675SRob Herring 167*724ba675SRob Herring&i2c0 { 168*724ba675SRob Herring status = "okay"; 169*724ba675SRob Herring 170*724ba675SRob Herring rtc@68 { 171*724ba675SRob Herring compatible = "htk,ht1382"; 172*724ba675SRob Herring reg = <0x68>; 173*724ba675SRob Herring }; 174*724ba675SRob Herring}; 175*724ba675SRob Herring 176*724ba675SRob Herring&mdio { 177*724ba675SRob Herring status = "okay"; 178*724ba675SRob Herring 179*724ba675SRob Herring ethphy0: ethernet-phy@1 { 180*724ba675SRob Herring reg = <1>; 181*724ba675SRob Herring phy-mode = "rgmii-id"; 182*724ba675SRob Herring marvell,reg-init = <0x1 0x16 0x0 0x3>, 183*724ba675SRob Herring <0x1 0x10 0x0 0x1017>, 184*724ba675SRob Herring <0x1 0x11 0x0 0x4408>, 185*724ba675SRob Herring <0x1 0x16 0x0 0x0>; 186*724ba675SRob Herring }; 187*724ba675SRob Herring}; 188*724ba675SRob Herring 189*724ba675SRob Herring&nand { 190*724ba675SRob Herring status = "okay"; 191*724ba675SRob Herring chip-delay = <35>; 192*724ba675SRob Herring 193*724ba675SRob Herring partition@0 { 194*724ba675SRob Herring label = "uboot"; 195*724ba675SRob Herring reg = <0x0000000 0x00c0000>; 196*724ba675SRob Herring read-only; 197*724ba675SRob Herring }; 198*724ba675SRob Herring partition@c0000 { 199*724ba675SRob Herring label = "uboot_env"; 200*724ba675SRob Herring reg = <0x00c0000 0x0080000>; 201*724ba675SRob Herring }; 202*724ba675SRob Herring partition@140000 { 203*724ba675SRob Herring label = "ubi"; 204*724ba675SRob Herring reg = <0x0140000 0x7ec0000>; 205*724ba675SRob Herring }; 206*724ba675SRob Herring}; 207*724ba675SRob Herring 208*724ba675SRob Herring&pciec { 209*724ba675SRob Herring status = "okay"; 210*724ba675SRob Herring}; 211*724ba675SRob Herring 212*724ba675SRob Herring&pcie0 { 213*724ba675SRob Herring status = "okay"; 214*724ba675SRob Herring}; 215*724ba675SRob Herring 216*724ba675SRob Herring&pinctrl { 217*724ba675SRob Herring pinctrl-names = "default"; 218*724ba675SRob Herring 219*724ba675SRob Herring pmx_buttons: pmx-buttons { 220*724ba675SRob Herring marvell,pins = "mpp24", "mpp25", "mpp26"; 221*724ba675SRob Herring marvell,function = "gpio"; 222*724ba675SRob Herring }; 223*724ba675SRob Herring 224*724ba675SRob Herring pmx_leds: pmx-leds { 225*724ba675SRob Herring marvell,pins = "mpp13", "mpp15", "mpp16", "mpp22", "mpp23", 226*724ba675SRob Herring "mpp28", "mpp29"; 227*724ba675SRob Herring marvell,function = "gpio"; 228*724ba675SRob Herring }; 229*724ba675SRob Herring 230*724ba675SRob Herring pmx_power: pmx-power { 231*724ba675SRob Herring marvell,pins = "mpp21", "mpp33"; 232*724ba675SRob Herring marvell,function = "gpio"; 233*724ba675SRob Herring }; 234*724ba675SRob Herring 235*724ba675SRob Herring pmx_pwr_off: pmx-pwr-off { 236*724ba675SRob Herring marvell,pins = "mpp27"; 237*724ba675SRob Herring marvell,function = "gpio"; 238*724ba675SRob Herring }; 239*724ba675SRob Herring}; 240*724ba675SRob Herring 241*724ba675SRob Herring&rtc { 242*724ba675SRob Herring status = "disabled"; 243*724ba675SRob Herring}; 244*724ba675SRob Herring 245*724ba675SRob Herring&sata { 246*724ba675SRob Herring status = "okay"; 247*724ba675SRob Herring nr-ports = <1>; 248*724ba675SRob Herring #address-cells = <1>; 249*724ba675SRob Herring #size-cells = <0>; 250*724ba675SRob Herring 251*724ba675SRob Herring hdd_temp: sata-port@0 { 252*724ba675SRob Herring reg = <0>; 253*724ba675SRob Herring #thermal-sensor-cells = <0>; 254*724ba675SRob Herring }; 255*724ba675SRob Herring}; 256*724ba675SRob Herring 257*724ba675SRob Herring&uart0 { 258*724ba675SRob Herring status = "okay"; 259*724ba675SRob Herring}; 260