1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun#include "kirkwood.dtsi" 3*4882a593Smuzhiyun#include "kirkwood-6281.dtsi" 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun/ { 6*4882a593Smuzhiyun model = "D-Link DNS NASes (kirkwood-based)"; 7*4882a593Smuzhiyun compatible = "dlink,dns-kirkwood", "marvell,kirkwood-88f6281", "marvell,kirkwood"; 8*4882a593Smuzhiyun 9*4882a593Smuzhiyun gpio_keys { 10*4882a593Smuzhiyun compatible = "gpio-keys"; 11*4882a593Smuzhiyun #address-cells = <1>; 12*4882a593Smuzhiyun #size-cells = <0>; 13*4882a593Smuzhiyun pinctrl-0 = <&pmx_button_power &pmx_button_unmount 14*4882a593Smuzhiyun &pmx_button_reset>; 15*4882a593Smuzhiyun pinctrl-names = "default"; 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun power { 18*4882a593Smuzhiyun label = "Power button"; 19*4882a593Smuzhiyun linux,code = <KEY_POWER>; 20*4882a593Smuzhiyun gpios = <&gpio1 2 GPIO_ACTIVE_LOW>; 21*4882a593Smuzhiyun }; 22*4882a593Smuzhiyun eject { 23*4882a593Smuzhiyun label = "USB unmount button"; 24*4882a593Smuzhiyun linux,code = <KEY_EJECTCD>; 25*4882a593Smuzhiyun gpios = <&gpio1 15 GPIO_ACTIVE_LOW>; 26*4882a593Smuzhiyun }; 27*4882a593Smuzhiyun reset { 28*4882a593Smuzhiyun label = "Reset button"; 29*4882a593Smuzhiyun linux,code = <KEY_RESTART>; 30*4882a593Smuzhiyun gpios = <&gpio1 16 GPIO_ACTIVE_LOW>; 31*4882a593Smuzhiyun }; 32*4882a593Smuzhiyun }; 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun gpio_fan { 35*4882a593Smuzhiyun /* Fan: ADDA AD045HB-G73 40mm 6000rpm@5v */ 36*4882a593Smuzhiyun compatible = "gpio-fan"; 37*4882a593Smuzhiyun pinctrl-0 = <&pmx_fan_high_speed &pmx_fan_low_speed>; 38*4882a593Smuzhiyun pinctrl-names = "default"; 39*4882a593Smuzhiyun gpios = <&gpio1 14 GPIO_ACTIVE_HIGH 40*4882a593Smuzhiyun &gpio1 13 GPIO_ACTIVE_HIGH>; 41*4882a593Smuzhiyun gpio-fan,speed-map = <0 0 42*4882a593Smuzhiyun 3000 1 43*4882a593Smuzhiyun 6000 2>; 44*4882a593Smuzhiyun }; 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun gpio_poweroff { 47*4882a593Smuzhiyun compatible = "gpio-poweroff"; 48*4882a593Smuzhiyun pinctrl-0 = <&pmx_power_off>; 49*4882a593Smuzhiyun pinctrl-names = "default"; 50*4882a593Smuzhiyun gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>; 51*4882a593Smuzhiyun }; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun ocp@f1000000 { 54*4882a593Smuzhiyun pinctrl: pin-controller@10000 { 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun pinctrl-0 = <&pmx_power_back_on &pmx_present_sata0 57*4882a593Smuzhiyun &pmx_present_sata1 &pmx_fan_tacho 58*4882a593Smuzhiyun &pmx_temp_alarm>; 59*4882a593Smuzhiyun pinctrl-names = "default"; 60*4882a593Smuzhiyun 61*4882a593Smuzhiyun pmx_sata0: pmx-sata0 { 62*4882a593Smuzhiyun marvell,pins = "mpp20"; 63*4882a593Smuzhiyun marvell,function = "sata1"; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun pmx_sata1: pmx-sata1 { 66*4882a593Smuzhiyun marvell,pins = "mpp21"; 67*4882a593Smuzhiyun marvell,function = "sata0"; 68*4882a593Smuzhiyun }; 69*4882a593Smuzhiyun pmx_led_power: pmx-led-power { 70*4882a593Smuzhiyun marvell,pins = "mpp26"; 71*4882a593Smuzhiyun marvell,function = "gpio"; 72*4882a593Smuzhiyun }; 73*4882a593Smuzhiyun pmx_led_red_right_hdd: pmx-led-red-right-hdd { 74*4882a593Smuzhiyun marvell,pins = "mpp27"; 75*4882a593Smuzhiyun marvell,function = "gpio"; 76*4882a593Smuzhiyun }; 77*4882a593Smuzhiyun pmx_led_red_left_hdd: pmx-led-red-left-hdd { 78*4882a593Smuzhiyun marvell,pins = "mpp28"; 79*4882a593Smuzhiyun marvell,function = "gpio"; 80*4882a593Smuzhiyun }; 81*4882a593Smuzhiyun pmx_led_red_usb_325: pmx-led-red-usb-325 { 82*4882a593Smuzhiyun marvell,pins = "mpp29"; 83*4882a593Smuzhiyun marvell,function = "gpio"; 84*4882a593Smuzhiyun }; 85*4882a593Smuzhiyun pmx_button_power: pmx-button-power { 86*4882a593Smuzhiyun marvell,pins = "mpp34"; 87*4882a593Smuzhiyun marvell,function = "gpio"; 88*4882a593Smuzhiyun }; 89*4882a593Smuzhiyun pmx_led_red_usb_320: pmx-led-red-usb-320 { 90*4882a593Smuzhiyun marvell,pins = "mpp35"; 91*4882a593Smuzhiyun marvell,function = "gpio"; 92*4882a593Smuzhiyun }; 93*4882a593Smuzhiyun pmx_power_off: pmx-power-off { 94*4882a593Smuzhiyun marvell,pins = "mpp36"; 95*4882a593Smuzhiyun marvell,function = "gpio"; 96*4882a593Smuzhiyun }; 97*4882a593Smuzhiyun pmx_power_back_on: pmx-power-back-on { 98*4882a593Smuzhiyun marvell,pins = "mpp37"; 99*4882a593Smuzhiyun marvell,function = "gpio"; 100*4882a593Smuzhiyun }; 101*4882a593Smuzhiyun pmx_power_sata0: pmx-power-sata0 { 102*4882a593Smuzhiyun marvell,pins = "mpp39"; 103*4882a593Smuzhiyun marvell,function = "gpio"; 104*4882a593Smuzhiyun }; 105*4882a593Smuzhiyun pmx_power_sata1: pmx-power-sata1 { 106*4882a593Smuzhiyun marvell,pins = "mpp40"; 107*4882a593Smuzhiyun marvell,function = "gpio"; 108*4882a593Smuzhiyun }; 109*4882a593Smuzhiyun pmx_present_sata0: pmx-present-sata0 { 110*4882a593Smuzhiyun marvell,pins = "mpp41"; 111*4882a593Smuzhiyun marvell,function = "gpio"; 112*4882a593Smuzhiyun }; 113*4882a593Smuzhiyun pmx_present_sata1: pmx-present-sata1 { 114*4882a593Smuzhiyun marvell,pins = "mpp42"; 115*4882a593Smuzhiyun marvell,function = "gpio"; 116*4882a593Smuzhiyun }; 117*4882a593Smuzhiyun pmx_led_white_usb: pmx-led-white-usb { 118*4882a593Smuzhiyun marvell,pins = "mpp43"; 119*4882a593Smuzhiyun marvell,function = "gpio"; 120*4882a593Smuzhiyun }; 121*4882a593Smuzhiyun pmx_fan_tacho: pmx-fan-tacho { 122*4882a593Smuzhiyun marvell,pins = "mpp44"; 123*4882a593Smuzhiyun marvell,function = "gpio"; 124*4882a593Smuzhiyun }; 125*4882a593Smuzhiyun pmx_fan_high_speed: pmx-fan-high-speed { 126*4882a593Smuzhiyun marvell,pins = "mpp45"; 127*4882a593Smuzhiyun marvell,function = "gpio"; 128*4882a593Smuzhiyun }; 129*4882a593Smuzhiyun pmx_fan_low_speed: pmx-fan-low-speed { 130*4882a593Smuzhiyun marvell,pins = "mpp46"; 131*4882a593Smuzhiyun marvell,function = "gpio"; 132*4882a593Smuzhiyun }; 133*4882a593Smuzhiyun pmx_button_unmount: pmx-button-unmount { 134*4882a593Smuzhiyun marvell,pins = "mpp47"; 135*4882a593Smuzhiyun marvell,function = "gpio"; 136*4882a593Smuzhiyun }; 137*4882a593Smuzhiyun pmx_button_reset: pmx-button-reset { 138*4882a593Smuzhiyun marvell,pins = "mpp48"; 139*4882a593Smuzhiyun marvell,function = "gpio"; 140*4882a593Smuzhiyun }; 141*4882a593Smuzhiyun pmx_temp_alarm: pmx-temp-alarm { 142*4882a593Smuzhiyun marvell,pins = "mpp49"; 143*4882a593Smuzhiyun marvell,function = "gpio"; 144*4882a593Smuzhiyun }; 145*4882a593Smuzhiyun }; 146*4882a593Smuzhiyun sata@80000 { 147*4882a593Smuzhiyun pinctrl-0 = <&pmx_sata0 &pmx_sata1>; 148*4882a593Smuzhiyun pinctrl-names = "default"; 149*4882a593Smuzhiyun status = "okay"; 150*4882a593Smuzhiyun nr-ports = <2>; 151*4882a593Smuzhiyun }; 152*4882a593Smuzhiyun }; 153*4882a593Smuzhiyun 154*4882a593Smuzhiyun regulators { 155*4882a593Smuzhiyun compatible = "simple-bus"; 156*4882a593Smuzhiyun #address-cells = <1>; 157*4882a593Smuzhiyun #size-cells = <0>; 158*4882a593Smuzhiyun pinctrl-0 = <&pmx_power_sata0 &pmx_power_sata1>; 159*4882a593Smuzhiyun pinctrl-names = "default"; 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun sata0_power: regulator@1 { 162*4882a593Smuzhiyun compatible = "regulator-fixed"; 163*4882a593Smuzhiyun reg = <1>; 164*4882a593Smuzhiyun regulator-name = "SATA0 Power"; 165*4882a593Smuzhiyun regulator-min-microvolt = <5000000>; 166*4882a593Smuzhiyun regulator-max-microvolt = <5000000>; 167*4882a593Smuzhiyun enable-active-high; 168*4882a593Smuzhiyun regulator-always-on; 169*4882a593Smuzhiyun regulator-boot-on; 170*4882a593Smuzhiyun gpio = <&gpio1 7 0>; 171*4882a593Smuzhiyun }; 172*4882a593Smuzhiyun sata1_power: regulator@2 { 173*4882a593Smuzhiyun compatible = "regulator-fixed"; 174*4882a593Smuzhiyun reg = <2>; 175*4882a593Smuzhiyun regulator-name = "SATA1 Power"; 176*4882a593Smuzhiyun regulator-min-microvolt = <5000000>; 177*4882a593Smuzhiyun regulator-max-microvolt = <5000000>; 178*4882a593Smuzhiyun enable-active-high; 179*4882a593Smuzhiyun regulator-always-on; 180*4882a593Smuzhiyun regulator-boot-on; 181*4882a593Smuzhiyun gpio = <&gpio1 8 0>; 182*4882a593Smuzhiyun }; 183*4882a593Smuzhiyun }; 184*4882a593Smuzhiyun}; 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun&nand { 187*4882a593Smuzhiyun status = "okay"; 188*4882a593Smuzhiyun chip-delay = <35>; 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun partition@0 { 191*4882a593Smuzhiyun label = "u-boot"; 192*4882a593Smuzhiyun reg = <0x0000000 0x100000>; 193*4882a593Smuzhiyun read-only; 194*4882a593Smuzhiyun }; 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun partition@100000 { 197*4882a593Smuzhiyun label = "uImage"; 198*4882a593Smuzhiyun reg = <0x0100000 0x500000>; 199*4882a593Smuzhiyun }; 200*4882a593Smuzhiyun 201*4882a593Smuzhiyun partition@600000 { 202*4882a593Smuzhiyun label = "ramdisk"; 203*4882a593Smuzhiyun reg = <0x0600000 0x500000>; 204*4882a593Smuzhiyun }; 205*4882a593Smuzhiyun 206*4882a593Smuzhiyun partition@b00000 { 207*4882a593Smuzhiyun label = "image"; 208*4882a593Smuzhiyun reg = <0x0b00000 0x6600000>; 209*4882a593Smuzhiyun }; 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun partition@7100000 { 212*4882a593Smuzhiyun label = "mini firmware"; 213*4882a593Smuzhiyun reg = <0x7100000 0xa00000>; 214*4882a593Smuzhiyun }; 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun partition@7b00000 { 217*4882a593Smuzhiyun label = "config"; 218*4882a593Smuzhiyun reg = <0x7b00000 0x500000>; 219*4882a593Smuzhiyun }; 220*4882a593Smuzhiyun}; 221*4882a593Smuzhiyun 222*4882a593Smuzhiyun&mdio { 223*4882a593Smuzhiyun status = "okay"; 224*4882a593Smuzhiyun 225*4882a593Smuzhiyun ethphy0: ethernet-phy@8 { 226*4882a593Smuzhiyun reg = <8>; 227*4882a593Smuzhiyun }; 228*4882a593Smuzhiyun}; 229*4882a593Smuzhiyun 230*4882a593Smuzhiyunð0 { 231*4882a593Smuzhiyun status = "okay"; 232*4882a593Smuzhiyun ethernet0-port@0 { 233*4882a593Smuzhiyun phy-handle = <ðphy0>; 234*4882a593Smuzhiyun }; 235*4882a593Smuzhiyun}; 236