// SPDX-License-Identifier: GPL-2.0-or-later OR MIT /* Copyright (c) 2021, Dirk Buchwalder */ /dts-v1/; #include "ipq8074.dtsi" #include "ipq8074-hk-cpu.dtsi" #include "ipq8074-ess.dtsi" #include #include #include / { model = "QNAP 301w"; compatible = "qnap,301w", "qcom,ipq8074"; aliases { serial0 = &blsp1_uart5; /* * Aliases as required by u-boot * to patch MAC addresses */ led-boot = &led_system_red; led-failsafe = &led_system_red; led-running = &led_pwr_green; led-upgrade = &led_system_red; ethernet0 = &dp1; ethernet1 = &dp2; ethernet2 = &dp3; ethernet3 = &dp4; ethernet4 = &dp5; ethernet5 = &dp6_syn; label-mac-device = &dp1; }; chosen { stdout-path = "serial0:115200n8"; }; keys { compatible = "gpio-keys"; pinctrl-0 = <&button_pins>; pinctrl-names = "default"; wps-button { label = "wps"; gpios = <&tlmm 57 GPIO_ACTIVE_LOW>; linux,code = ; }; reset-button { label = "reset"; gpios = <&tlmm 67 GPIO_ACTIVE_LOW>; linux,code = ; }; }; leds { compatible = "gpio-leds"; pinctrl-0 = <&leds_pins>; pinctrl-names = "default"; led_system_green: led-system-green { gpios = <&tlmm 1 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_STATUS; }; led_system_red: led-system-red { gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_STATUS; }; led_pwr_green: led-pwr-green { gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_POWER; }; led-wifi-green { gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_WLAN; }; led-lan4-green { gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_LAN; function-enumerator = <4>; }; led-lan4-amber { gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_LAN; function-enumerator = <4>; }; led-lan3-green { gpios = <&tlmm 8 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_LAN; function-enumerator = <3>; }; led-lan3-amber { gpios = <&tlmm 11 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_LAN; function-enumerator = <3>; }; led-lan2-green { gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_LAN; function-enumerator = <2>; }; led-lan2-amber { gpios = <&tlmm 13 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_LAN; function-enumerator = <2>; }; led-lan1-green { gpios = <&tlmm 14 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_LAN; function-enumerator = <1>; }; led-lan1-amber { gpios = <&tlmm 15 GPIO_ACTIVE_HIGH>; color = ; function = LED_FUNCTION_LAN; function-enumerator = <1>; }; led-10g-1-green { gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>; color = ; function = "10g"; function-enumerator = <1>; }; led-10g-1-amber { gpios = <&tlmm 56 GPIO_ACTIVE_HIGH>; color = ; function = "10g"; function-enumerator = <1>; }; led-10g-2-green { gpios = <&tlmm 51 GPIO_ACTIVE_HIGH>; color = ; function = "10g"; function-enumerator = <2>; }; led-10g-2-amber { gpios = <&tlmm 52 GPIO_ACTIVE_HIGH>; color = ; function = "10g"; function-enumerator = <2>; }; }; }; &tlmm { mdio_pins: mdio-state { mdc-pins { pins = "gpio68"; function = "mdc"; drive-strength = <8>; bias-pull-up; }; mdio-pins { pins = "gpio69"; function = "mdio"; drive-strength = <8>; bias-pull-up; }; }; button_pins: button-state { wps-pins { pins = "gpio57"; function = "gpio"; drive-strength = <8>; bias-pull-up; }; rst-pins { pins = "gpio67"; function = "gpio"; drive-strength = <8>; bias-pull-up; }; }; leds_pins: leds-state { pins = "gpio1", "gpio3", "gpio4", "gpio6", "gpio7", "gpio8", "gpio11", "gpio12", "gpio13", "gpio14", "gpio15", "gpio42", "gpio51", "gpio52", "gpio54", "gpio56"; function = "gpio"; drive-strength = <8>; bias-pull-down; }; }; &blsp1_uart5 { status = "okay"; }; &prng { status = "okay"; }; &ssphy_0 { status = "okay"; }; &qusb_phy_0 { status = "okay"; }; &ssphy_1 { status = "okay"; }; &qusb_phy_1 { status = "okay"; }; &usb_0 { status = "okay"; }; &usb_1 { status = "okay"; }; &cryptobam { status = "okay"; }; &crypto { status = "okay"; }; &qpic_bam { status = "okay"; }; &blsp1_spi1 { /* BLSP1 QUP1 */ pinctrl-0 = <&spi_0_pins>; pinctrl-names = "default"; cs-gpios = <0>; status = "okay"; flash@0 { #address-cells = <1>; #size-cells = <1>; reg = <0>; compatible = "jedec,spi-nor"; spi-max-frequency = <50000000>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "0:sbl1"; reg = <0x0 0x50000>; read-only; }; partition@50000 { label = "0:mibib"; reg = <0x50000 0x10000>; read-only; }; partition@60000 { label = "0:qsee"; reg = <0x60000 0x180000>; read-only; }; partition@1e0000 { label = "0:devcfg"; reg = <0x1e0000 0x10000>; read-only; }; partition@1f0000 { label = "0:apdp"; reg = <0x1f0000 0x10000>; read-only; }; partition@200000 { label = "0:rpm"; reg = <0x200000 0x40000>; read-only; }; partition@240000 { label = "0:cdt"; reg = <0x240000 0x10000>; read-only; }; partition@250000 { label = "0:appsblenv"; reg = <0x250000 0x20000>; }; partition@270000 { label = "0:appsbl"; reg = <0x250000 0x100000>; read-only; }; partition@370000 { label = "0:art"; reg = <0x370000 0x40000>; read-only; }; partition@3b0000 { label = "0:ethphyfw1"; reg = <0x3b0000 0x80000>; compatible = "nvmem-cells"; #address-cells = <1>; #size-cells = <1>; aqr0_fw: firmware@0 { reg = <0x0 0x5fc02>; }; }; partition@430000 { label = "0:ethphyfw2"; reg = <0x430000 0x80000>; compatible = "nvmem-cells"; #address-cells = <1>; #size-cells = <1>; aqr1_fw: firmware@0 { reg = <0x0 0x5fc02>; }; }; partition@4b0000 { label = "reserved"; reg = <0x4b0000 0x350000>; }; }; }; }; &mdio { status = "okay"; pinctrl-0 = <&mdio_pins>; pinctrl-names = "default"; reset-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; aqr113c_0: ethernet-phy@0 { compatible ="ethernet-phy-ieee802.3-c45"; reg = <0>; reset-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>; firmware-name = "marvell/AQR-G4_v5.4.C-AQR_CIG_WF-1945_0x0_ID44778_VER1630.cld"; nvmem-cell-names = "firmware"; nvmem-cells = <&aqr0_fw>; }; aqr113c_8: ethernet-phy@8 { compatible ="ethernet-phy-ieee802.3-c45"; reg = <8>; reset-gpios = <&tlmm 59 GPIO_ACTIVE_LOW>; firmware-name = "marvell/AQR-G4_v5.4.C-AQR_CIG_WF-1945_0x8_ID44776_VER1630.cld"; nvmem-cell-names = "firmware"; nvmem-cells = <&aqr1_fw>; }; ethernet-phy-package@16 { #address-cells = <1>; #size-cells = <0>; compatible = "qcom,qca8075-package"; reg = <16>; qcom,package-mode = "qsgmii"; qca8075_16: ethernet-phy@16 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <16>; }; qca8075_17: ethernet-phy@17 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <17>; }; qca8075_18: ethernet-phy@18 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <18>; }; qca8075_19: ethernet-phy@19 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <19>; }; }; }; &sdhc_1 { status = "okay"; /* According to the stock dts from the QNAP gpl drop * the emmc has a problem with the hs400 > hs200 speed switch. * Therefore remove the mmc-hs400-1_8v property */ /delete-property/ mmc-hs400-1_8v; mmc-hs200-1_8v; mmc-ddr-1_8v; vqmmc-supply = <&l11>; }; &switch { status = "okay"; switch_lan_bmp = <(ESS_PORT1 | ESS_PORT2 | ESS_PORT3 | ESS_PORT4 | ESS_PORT6)>; /* lan port bitmap */ switch_wan_bmp = ; /* wan port bitmap */ switch_mac_mode = ; /* mac mode for uniphy instance0*/ switch_mac_mode1 = ; /* mac mode for uniphy instance1*/ switch_mac_mode2 = ; /* mac mode for uniphy instance2*/ qcom,port_phyinfo { port@0 { port_id = <1>; phy_address = <16>; }; port@1 { port_id = <2>; phy_address = <17>; }; port@2 { port_id = <3>; phy_address = <18>; }; port@3 { port_id = <4>; phy_address = <19>; }; port@4 { port_id = <5>; phy_address = <8>; compatible = "ethernet-phy-ieee802.3-c45"; ethernet-phy-ieee802.3-c45; }; port@5 { port_id = <6>; phy_address = <0>; compatible = "ethernet-phy-ieee802.3-c45"; ethernet-phy-ieee802.3-c45; }; }; }; &edma { status = "okay"; }; &dp1 { status = "okay"; phy-mode = "qsgmii"; phy-handle = <&qca8075_16>; label = "lan4"; }; &dp2 { status = "okay"; phy-mode = "qsgmii"; phy-handle = <&qca8075_17>; label = "lan3"; }; &dp3 { status = "okay"; phy-mode = "qsgmii"; phy-handle = <&qca8075_18>; label = "lan2"; }; &dp4 { status = "okay"; phy-mode = "qsgmii"; phy-handle = <&qca8075_19>; label = "lan1"; }; &dp5 { status = "okay"; qcom,mactype = <1>; phy-mode = "usxgmii"; phy-handle = <&aqr113c_8>; label = "10g-1"; }; &dp6_syn { status = "okay"; phy-mode = "usxgmii"; phy-handle = <&aqr113c_0>; label = "10g-2"; }; &wifi { status = "okay"; qcom,ath11k-calibration-variant = "QNAP-301w"; };