// SPDX-License-Identifier: GPL-2.0 #include "kirkwood.dtsi" #include "kirkwood-6281.dtsi" / { model = "D-Link DNS NASes (kirkwood-based)"; compatible = "dlink,dns-kirkwood", "marvell,kirkwood-88f6281", "marvell,kirkwood"; gpio_keys { compatible = "gpio-keys"; #address-cells = <1>; #size-cells = <0>; pinctrl-0 = <&pmx_button_power &pmx_button_unmount &pmx_button_reset>; pinctrl-names = "default"; power { label = "Power button"; linux,code = <KEY_POWER>; gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; }; eject { label = "USB unmount button"; linux,code = <KEY_EJECTCD>; gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; }; reset { label = "Reset button"; linux,code = <KEY_RESTART>; gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; }; }; gpio_fan { /* Fan: ADDA AD045HB-G73 40mm 6000rpm@5v */ compatible = "gpio-fan"; pinctrl-0 = <&pmx_fan_high_speed &pmx_fan_low_speed>; pinctrl-names = "default"; gpios = <&gpio1 14 GPIO_ACTIVE_HIGH &gpio1 13 GPIO_ACTIVE_HIGH>; gpio-fan,speed-map = <0 0 3000 1 6000 2>; }; gpio_poweroff { compatible = "gpio-poweroff"; pinctrl-0 = <&pmx_power_off>; pinctrl-names = "default"; gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; }; ocp@f1000000 { pinctrl: pin-controller@10000 { pinctrl-0 = <&pmx_power_back_on &pmx_present_sata0 &pmx_present_sata1 &pmx_fan_tacho &pmx_temp_alarm>; pinctrl-names = "default"; pmx_sata0: pmx-sata0 { marvell,pins = "mpp20"; marvell,function = "sata1"; }; pmx_sata1: pmx-sata1 { marvell,pins = "mpp21"; marvell,function = "sata0"; }; pmx_led_power: pmx-led-power { marvell,pins = "mpp26"; marvell,function = "gpio"; }; pmx_led_red_right_hdd: pmx-led-red-right-hdd { marvell,pins = "mpp27"; marvell,function = "gpio"; }; pmx_led_red_left_hdd: pmx-led-red-left-hdd { marvell,pins = "mpp28"; marvell,function = "gpio"; }; pmx_led_red_usb_325: pmx-led-red-usb-325 { marvell,pins = "mpp29"; marvell,function = "gpio"; }; pmx_button_power: pmx-button-power { marvell,pins = "mpp34"; marvell,function = "gpio"; }; pmx_led_red_usb_320: pmx-led-red-usb-320 { marvell,pins = "mpp35"; marvell,function = "gpio"; }; pmx_power_off: pmx-power-off { marvell,pins = "mpp36"; marvell,function = "gpio"; }; pmx_power_back_on: pmx-power-back-on { marvell,pins = "mpp37"; marvell,function = "gpio"; }; pmx_power_sata0: pmx-power-sata0 { marvell,pins = "mpp39"; marvell,function = "gpio"; }; pmx_power_sata1: pmx-power-sata1 { marvell,pins = "mpp40"; marvell,function = "gpio"; }; pmx_present_sata0: pmx-present-sata0 { marvell,pins = "mpp41"; marvell,function = "gpio"; }; pmx_present_sata1: pmx-present-sata1 { marvell,pins = "mpp42"; marvell,function = "gpio"; }; pmx_led_white_usb: pmx-led-white-usb { marvell,pins = "mpp43"; marvell,function = "gpio"; }; pmx_fan_tacho: pmx-fan-tacho { marvell,pins = "mpp44"; marvell,function = "gpio"; }; pmx_fan_high_speed: pmx-fan-high-speed { marvell,pins = "mpp45"; marvell,function = "gpio"; }; pmx_fan_low_speed: pmx-fan-low-speed { marvell,pins = "mpp46"; marvell,function = "gpio"; }; pmx_button_unmount: pmx-button-unmount { marvell,pins = "mpp47"; marvell,function = "gpio"; }; pmx_button_reset: pmx-button-reset { marvell,pins = "mpp48"; marvell,function = "gpio"; }; pmx_temp_alarm: pmx-temp-alarm { marvell,pins = "mpp49"; marvell,function = "gpio"; }; }; sata@80000 { pinctrl-0 = <&pmx_sata0 &pmx_sata1>; pinctrl-names = "default"; status = "okay"; nr-ports = <2>; }; }; regulators { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <0>; pinctrl-0 = <&pmx_power_sata0 &pmx_power_sata1>; pinctrl-names = "default"; sata0_power: regulator@1 { compatible = "regulator-fixed"; reg = <1>; regulator-name = "SATA0 Power"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; enable-active-high; regulator-always-on; regulator-boot-on; gpio = <&gpio1 7 0>; }; sata1_power: regulator@2 { compatible = "regulator-fixed"; reg = <2>; regulator-name = "SATA1 Power"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; enable-active-high; regulator-always-on; regulator-boot-on; gpio = <&gpio1 8 0>; }; }; }; &nand { status = "okay"; chip-delay = <35>; partition@0 { label = "u-boot"; reg = <0x0000000 0x100000>; read-only; }; partition@100000 { label = "uImage"; reg = <0x0100000 0x500000>; }; partition@600000 { label = "ramdisk"; reg = <0x0600000 0x500000>; }; partition@b00000 { label = "image"; reg = <0x0b00000 0x6600000>; }; partition@7100000 { label = "mini firmware"; reg = <0x7100000 0xa00000>; }; partition@7b00000 { label = "config"; reg = <0x7b00000 0x500000>; }; }; &mdio { status = "okay"; ethphy0: ethernet-phy@8 { reg = <8>; }; }; ð0 { status = "okay"; ethernet0-port@0 { phy-handle = <ðphy0>; }; };