| // SPDX-License-Identifier: (GPL-2.0+ OR MIT) | 
 | /* | 
 |  * ZyXEL NSA310S Board Description | 
 |  * Copyright 2020-2022 Pawel Dembicki <paweldembicki@gmail.com> | 
 |  * Copyright (c) 2015-2021, Tony Dinh <mibodhi@gmail.com> | 
 |  * 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" | 
 | #include <dt-bindings/leds/common.h> | 
 |  | 
 | / { | 
 | 	model = "ZyXEL NSA310S"; | 
 | 	compatible = "zyxel,nsa310s", "marvell,kirkwood-88f6702", "marvell,kirkwood"; | 
 |  | 
 | 	memory { | 
 | 		device_type = "memory"; | 
 | 		reg = <0x00000000 0x10000000>; | 
 | 	}; | 
 |  | 
 | 	chosen { | 
 | 		bootargs = "console=ttyS0,115200n8 earlyprintk"; | 
 | 		stdout-path = &uart0; | 
 | 	}; | 
 |  | 
 | 	gpio_poweroff { | 
 | 		compatible = "gpio-poweroff"; | 
 | 		pinctrl-0 = <&pmx_pwr_off>; | 
 | 		pinctrl-names = "default"; | 
 | 		gpios = <&gpio0 27 GPIO_ACTIVE_HIGH>; | 
 | 	}; | 
 |  | 
 | 	keys { | 
 | 		compatible = "gpio-keys"; | 
 | 		#address-cells = <1>; | 
 | 		#size-cells = <0>; | 
 | 		pinctrl-0 = <&pmx_buttons>; | 
 | 		pinctrl-names = "default"; | 
 |  | 
 | 		power { | 
 | 			label = "Power Button"; | 
 | 			linux,code = <KEY_POWER>; | 
 | 			gpios = <&gpio0 26 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 |  | 
 | 		copy { | 
 | 			label = "Copy Button"; | 
 | 			linux,code = <KEY_COPY>; | 
 | 			gpios = <&gpio0 25 GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 |  | 
 | 		reset { | 
 | 			label = "Reset Button"; | 
 | 			linux,code = <KEY_RESTART>; | 
 | 			gpios = <&gpio0 24 GPIO_ACTIVE_LOW>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	leds { | 
 | 		compatible = "gpio-leds"; | 
 | 		pinctrl-0 = <&pmx_leds>; | 
 | 		pinctrl-names = "default"; | 
 |  | 
 | 		led-1 { | 
 | 			function = LED_FUNCTION_DISK_ERR; | 
 | 			color = <LED_COLOR_ID_RED>; | 
 | 			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 |  | 
 | 		led-2 { | 
 | 			function = LED_FUNCTION_USB; | 
 | 			color = <LED_COLOR_ID_GREEN>; | 
 | 			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>; | 
 | 			linux,default-trigger = "usb-host"; | 
 | 		}; | 
 |  | 
 | 		led-3 { | 
 | 			function = LED_FUNCTION_DISK; | 
 | 			color = <LED_COLOR_ID_GREEN>; | 
 | 			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>; | 
 | 			linux,default-trigger = "ata1"; | 
 | 		}; | 
 |  | 
 | 		led-4 { | 
 | 			function = LED_FUNCTION_INDICATOR; | 
 | 			color = <LED_COLOR_ID_GREEN>; | 
 | 			gpios = <&gpio0 22 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 |  | 
 | 		led-5 { | 
 | 			function = LED_FUNCTION_INDICATOR; | 
 | 			color = <LED_COLOR_ID_RED>; | 
 | 			gpios = <&gpio0 23 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 |  | 
 | 		led-6 { | 
 | 			function = LED_FUNCTION_STATUS; | 
 | 			color = <LED_COLOR_ID_GREEN>; | 
 | 			gpios = <&gpio0 28 GPIO_ACTIVE_HIGH>; | 
 | 			linux,default-trigger = "default-on"; | 
 | 		}; | 
 |  | 
 | 		led-7 { | 
 | 			function = LED_FUNCTION_STATUS; | 
 | 			color = <LED_COLOR_ID_RED>; | 
 | 			gpios = <&gpio0 29 GPIO_ACTIVE_HIGH>; | 
 | 		}; | 
 | 	}; | 
 |  | 
 | 	usb0_power: regulator@1 { | 
 | 		compatible = "regulator-fixed"; | 
 | 		regulator-name = "USB Power"; | 
 |  | 
 | 		regulator-min-microvolt = <5000000>; | 
 | 		regulator-max-microvolt = <5000000>; | 
 | 		regulator-always-on; | 
 | 		regulator-boot-on; | 
 | 		gpio = <&gpio0 21 GPIO_ACTIVE_HIGH>; | 
 | 	}; | 
 |  | 
 | 	sata1_power: regulator@2 { | 
 | 		compatible = "regulator-fixed"; | 
 | 		regulator-name = "SATA1 Power"; | 
 |  | 
 | 		regulator-min-microvolt = <5000000>; | 
 | 		regulator-max-microvolt = <5000000>; | 
 | 		regulator-always-on; | 
 | 		regulator-boot-on; | 
 | 		gpio = <&gpio1 1 GPIO_ACTIVE_HIGH>; | 
 | 	}; | 
 |  | 
 | 	thermal-zones { | 
 | 		disk-thermal { | 
 | 			polling-delay = <20000>; | 
 | 			polling-delay-passive = <2000>; | 
 |  | 
 | 			thermal-sensors = <&hdd_temp>; | 
 |  | 
 | 			trips { | 
 | 				disk_alert: disk-alert { | 
 | 					temperature = <40000>; | 
 | 					hysteresis = <5000>; | 
 | 					type = "active"; | 
 | 				}; | 
 | 				disk_crit: disk-crit { | 
 | 					temperature = <60000>; | 
 | 					hysteresis = <2000>; | 
 | 					type = "critical"; | 
 | 				}; | 
 | 			}; | 
 | 		}; | 
 | 	}; | 
 | }; | 
 |  | 
 |  | 
 | ð0 { | 
 | 	status = "okay"; | 
 |  | 
 | 	ethernet0-port@0 { | 
 | 		phy-handle = <ðphy0>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &i2c0 { | 
 | 	status = "okay"; | 
 |  | 
 | 	rtc@68 { | 
 | 		compatible = "htk,ht1382"; | 
 | 		reg = <0x68>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &mdio { | 
 | 	status = "okay"; | 
 |  | 
 | 	ethphy0: ethernet-phy@1 { | 
 | 		reg = <1>; | 
 | 		phy-mode = "rgmii-id"; | 
 | 		marvell,reg-init = <0x1 0x16 0x0 0x3>, | 
 | 				   <0x1 0x10 0x0 0x1017>, | 
 | 				   <0x1 0x11 0x0 0x4408>, | 
 | 				   <0x1 0x16 0x0 0x0>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &nand { | 
 | 	status = "okay"; | 
 | 	chip-delay = <35>; | 
 |  | 
 | 	partition@0 { | 
 | 		label = "uboot"; | 
 | 		reg = <0x0000000 0x00c0000>; | 
 | 		read-only; | 
 | 	}; | 
 | 	partition@c0000 { | 
 | 		label = "uboot_env"; | 
 | 		reg = <0x00c0000 0x0080000>; | 
 | 	}; | 
 | 	partition@140000 { | 
 | 		label = "ubi"; | 
 | 		reg = <0x0140000 0x7ec0000>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &pciec { | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &pcie0 { | 
 | 	status = "okay"; | 
 | }; | 
 |  | 
 | &pinctrl { | 
 | 	pinctrl-names = "default"; | 
 |  | 
 | 	pmx_buttons: pmx-buttons { | 
 | 		marvell,pins = "mpp24", "mpp25", "mpp26"; | 
 | 		marvell,function = "gpio"; | 
 | 	}; | 
 |  | 
 | 	pmx_leds: pmx-leds { | 
 | 		marvell,pins = "mpp13", "mpp15", "mpp16", "mpp22", "mpp23", | 
 | 						"mpp28", "mpp29"; | 
 | 		marvell,function = "gpio"; | 
 | 	}; | 
 |  | 
 | 	pmx_power: pmx-power { | 
 | 		marvell,pins = "mpp21", "mpp33"; | 
 | 		marvell,function = "gpio"; | 
 | 	}; | 
 |  | 
 | 	pmx_pwr_off: pmx-pwr-off { | 
 | 		marvell,pins = "mpp27"; | 
 | 		marvell,function = "gpio"; | 
 | 	}; | 
 | }; | 
 |  | 
 | &rtc { | 
 | 	status = "disabled"; | 
 | }; | 
 |  | 
 | &sata { | 
 | 	status = "okay"; | 
 | 	nr-ports = <1>; | 
 | 	#address-cells = <1>; | 
 | 	#size-cells = <0>; | 
 |  | 
 | 	hdd_temp: sata-port@0 { | 
 | 		reg = <0>; | 
 | 		#thermal-sensor-cells = <0>; | 
 | 	}; | 
 | }; | 
 |  | 
 | &uart0 { | 
 | 	status = "okay"; | 
 | }; |