Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: kirkwood: Add Zyxel NSA310S board

Zyxel NSA310S is a NAS based on Marvell kirkwood SoC.

Specification:
- Processor Marvell 88F6702 1 GHz
- 256MB RAM
- 128MB NAND
- 1x GBE LAN port (PHY: Marvell 88E1318)
- 2x USB 2.0
- 1x SATA
- 3x button
- 7x leds
- serial on J1 connector (115200 8N1) (GND-NOPIN-RX-TX-VCC)

Tested-by: Tony Dinh <mibodhi@gmail.com>
Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com>
Acked-by: Adam Baker <linux@baker-net.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>

authored by

Pawel Dembicki and committed by
Gregory CLEMENT
e977a103 9abf2313

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