// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) /dts-v1/; #ifdef __IPQ_MEM_PROFILE_512_MB__ #include "ipq5332-512MB-memory.dtsi" #else #include "ipq5332-default-memory.dtsi" #endif #include "ipq5332-avm-common.dtsi" / { #address-cells = <0x2>; #size-cells = <0x2>; model = "FRITZ!Box 7690"; aliases { serial1 = &blsp1_uart1; ethernet0 = "/soc/dp1"; ethernet1 = "/soc/dp2"; }; avm-wkk-extra-resets { compatible = "avm,gpio-aggregator"; pinctrl-0 = <&avm_wkk_extra_reset_pins>; pinctrl-names = "default"; gpios = <&tlmm 42 GPIO_ACTIVE_LOW>, <&tlmm 41 GPIO_ACTIVE_LOW>; gpio-line-names = "wkk_5g_reset", "wkk_2g_reset"; }; dect_gpio: dect-gpio { compatible = "avm,gpio-aggregator"; gpios = <&tlmm 22 GPIO_ACTIVE_HIGH>, <&tlmm 16 GPIO_ACTIVE_HIGH>; gpio-line-names = "DECT_RST", "DECT_RD"; }; /* measure clock and fs from tdm-interface (piglet, pcmlink) */ tdmclkfs_gpio: tdmclkfs-gpio { compatible = "avm,gpio-aggregator"; gpios = <&tlmm 35 GPIO_ACTIVE_HIGH>, <&tlmm 36 GPIO_ACTIVE_HIGH>; gpio-line-names = "TDM_FS", "TDM_CLK"; }; avm-lrwpan { compatible = "avm,lrwpan", "avm,gpio-aggregator"; pinctrl-0 = <&avm_lrwpan_pins>; pinctrl-names = "default"; gpios = <&tlmm 40 GPIO_ACTIVE_LOW>, <&tlmm 5 GPIO_ACTIVE_HIGH>, <&tlmm 1 GPIO_ACTIVE_HIGH>; gpio-line-names = "lrwpan-reset-lowactive", "lrwpan-swdio", "lrwpan-swclk"; }; avm-hui { compatible = "avm,hui"; pinctrl-0 = <&avm_led_pins>; pinctrl-names = "default"; status = "ok"; dim_leds: dim-leds { brightness-range = <0>, <255>; compatible = "avm,hui-generic-led-pwm"; led-type = "default-on"; /* GPIO 29 is channel 3 */ pwms = <&pwm 3 1000000>; dimmable; }; box-power@0 { compatible = "avm,hui-generic-led-gpio"; gpios = <&tlmm 4 GPIO_ACTIVE_HIGH>; location = <1>; }; box-wlan@0 { compatible = "avm,hui-generic-led-gpio"; gpios = <&tlmm 3 GPIO_ACTIVE_HIGH>; location = <2>; }; box-fon-dect@0 { compatible = "avm,hui-generic-led-gpio"; gpios = <&tlmm 6 GPIO_ACTIVE_HIGH>; location = <3>; }; connect@0 { compatible = "avm,hui-generic-led-gpio"; gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; location = <4>; }; box_info: info { compatible = "avm,hui-generic-led-gpio"; gpios = <&tlmm 7 GPIO_ACTIVE_HIGH>, <&tlmm 2 GPIO_ACTIVE_HIGH>; location = <5>; colors { normal = <0x00>, <0xFF>, <0x00>; error = <0xFF>, <0x00>, <0x00>; }; }; box-wlan@1 { compatible = "avm,hui-generic-button-gpio"; gpios = <&tlmm 50 GPIO_ACTIVE_LOW>; }; box-fon@1 { compatible = "avm,hui-generic-button-gpio"; gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; }; box-connect@1 { compatible = "avm,hui-generic-button-gpio"; gpios = <&tlmm 23 GPIO_ACTIVE_LOW>; }; }; soc { pinctrl@1000000 { /* ina2xx pins*/ ina2xx_i2c_pins: ina2xx-i2c-pins { pins = "gpio43", "gpio45"; /* SCL, SDA */ function = "blsp2_i2c0"; drive-strength = <8>; bias-disable; }; /* ina2xx alert pin */ ina2xx_alert_pin: ina2xx-alert-pin { pins = "gpio24"; drive-strength = <8>; bias-disable; }; /* Zigbee or DECT */ serial_1_pins: serial1-pinmux { pins = "gpio17", "gpio16", "gpio15", "gpio14"; /* CTS, RX, TX, RTS */ function = "blsp1_uart0"; drive-strength = <8>; bias-disable; }; avm_wkk_extra_reset_pins: avm-wkk-extra-reset-pins { wkk_5g_pin { pins = "gpio42"; function = "gpio"; drive-strength = <8>; output-high; }; wkk_2g_pin { pins = "gpio41"; function = "gpio"; drive-strength = <8>; output-high; }; }; usb_pw_en_pins: usb_pwr_en_pinmux { pins = "gpio49"; function = "gpio"; drive-strength = <8>; bias-disable; output-low; }; avm_lrwpan_pins: avm_lrwpan_pins { reset_lowactive_pin { pins = "gpio40"; function = "gpio"; drive-strength = <2>; output-low; }; swd_pins { pins = "gpio1", "gpio5"; function = "gpio"; drive-strength = <2>; bias-disable; }; }; /* pcmlink */ audio_pins_pri: audio_pinmux_pri { mux_0 { pins = "gpio30"; /* TDM-DI */ function = "audio_pri"; drive-strength = <8>; bias-pull-up; }; mux_1 { pins = "gpio31"; /* TDM-FS */ function = "audio_pri"; drive-strength = <8>; bias-pull-up; input-enable; }; mux_2 { pins = "gpio32"; /* TDM-CLK */ function = "audio_pri"; drive-strength = <16>; bias-pull-up; input-enable; }; }; /* pcmlink */ audio_pins_sec: audio_pinmux_sec { mux_0 { pins = "gpio33"; /* TDM-DO */ function = "audio_sec"; drive-strength = <16>; bias-pull-up; }; mux_1 { pins = "gpio35"; /* TDM-FS */ function = "audio_sec"; drive-strength = <16>; bias-pull-up; input-enable; }; mux_2 { pins = "gpio36"; /* TDM-CLK */ function = "audio_sec"; drive-strength = <16>; bias-pull-up; input-enable; }; }; /* This is an MDIO where the Miami is slave */ mdio0_pins: mdio0_pinmux { mux_0 { pins = "gpio25"; function = "mdc0"; drive-strength = <2>; bias-pull-up; }; mux_1 { pins = "gpio26"; function = "mdio0"; drive-strength = <2>; bias-pull-up; }; }; mdio1_pins: mdio_pinmux { mux_0 { pins = "gpio27"; function = "mdc1"; drive-strength = <8>; bias-disable; }; mux_1 { pins = "gpio28"; function = "mdio1"; drive-strength = <8>; bias-pull-up; }; }; avm_pwm_pins: avm_pwm_pins { mux { pins = "gpio29"; function = "pwm1"; drive-strength = <8>; }; }; avm_led_pins: avm_led_pins { mux { pins = "gpio0", "gpio2", "gpio3", "gpio4", "gpio6", "gpio7", "gpio23", "gpio34", "gpio50"; function = "gpio"; drive-strength = <2>; bias-disable; }; }; }; avm-usb-en-gpio { compatible = "avm,gpio-aggregator"; pinctrl-0 = <&usb_pw_en_pins>; pinctrl-names = "default"; gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>; gpio-line-names = "usb-pwr-en"; }; /* USB */ eud@78000 { status = "ok"; }; /* USB: disable USB3 SuperSpeed, otherwise pcie0 can not be used */ usb3@8A00000 { status = "ok"; qcom,select-utmi-as-pipe-clk; dwc3@8A00000 { /delete-property/ #phy-cells; /delete-property/ phys; /delete-property/ phy-names; }; }; /* USB */ hs_m31phy_0: hs_m31phy@7b000 { status = "ok"; }; /* BLSP3 which is configured from spi to i2c */ i2c_2: i2c@78b7000 { compatible = "qcom,i2c-qup-v2.2.1"; #address-cells = <1>; #size-cells = <0>; reg = <0x078b7000 0x600>; interrupts = ; clock-frequency = <400000>; clocks = <&gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>, <&gcc GCC_BLSP1_AHB_CLK>; clock-names = "core", "iface"; dmas = <&blsp_dma 8>, <&blsp_dma 9>; dma-names = "tx", "rx"; pinctrl-0 = <&ina2xx_i2c_pins>; pinctrl-names = "default"; status = "ok"; ina236@40 { compatible = "ti,ina236"; reg = <0x40>; pinctrl-0 = <&ina2xx_alert_pin>; pinctrl-names = "default"; shunt-resistor = <15000>; interrupts-extended = <&tlmm 24 IRQ_TYPE_EDGE_FALLING>; interrupt-names = "alert"; alert-type = <12>; /* bus undervoltage */ alert-limit = <10800>; /* 10,8V */ }; }; pcm_avm: pcm@0xA3C0000{ compatible = "qca,ipq5332-lpass-pcm_avm"; reg = <0xA3C0000 0x23014>; pinctrl-0 = <&audio_pins_pri>; pinctrl-1 = <&audio_pins_sec>; pinctrl-names = "primary", "secondary"; status = "ok"; pcm0: pcm0@0 { interrupts = <0 370 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "out0"; status = "ok"; }; pcm1: pcm1@1 { interrupts = <0 371 IRQ_TYPE_LEVEL_HIGH>; interrupt-names = "out1"; status = "ok"; }; }; avm_mac_addr_maceth_0: dp1 { device_type = "network"; compatible = "qcom,nss-dp"; qcom,id = <2>; reg = <0x3a504000 0x4000>; qcom,mactype = <1>; mac-address = [000000000000]; mdio-bus = <&mdio>; qcom,phy-mdio-addr = <4>; qcom,link-poll = <1>; devname = "wan"; phy-mode = "sgmii"; }; mht_switch_port: dp2 { device_type = "network"; compatible = "qcom,nss-dp"; qcom,id = <1>; reg = <0x3a500000 0x4000>; qcom,mactype = <1>; mac-address = [000000000000]; phy-mode = "sgmii"; devname = "gmac1"; avm,no_pa; qcom,ppe-offload-disabled = <1>; qcom,is_switch_connected = <1>; qcom,mht-dev = <1>; }; mdio:mdio@90000 { #address-cells = <1>; #size-cells = <0>; status = "ok"; pinctrl-0 = <&mdio1_pins &mdio0_pins>; pinctrl-names = "default"; /*gpio51 for manhattan reset*/ phy-reset-gpio = <&tlmm 51 GPIO_ACTIVE_HIGH>; phyaddr_fixup = <0xC90F018>; uniphyaddr_fixup = <0xC90F014>; mdio_clk_fixup; /* MDIO clock sequence fix up flag */ phy0: ethernet-phy@0 { reg = <1>; fixup; }; phy1: ethernet-phy@1 { reg = <2>; fixup; }; phy2: ethernet-phy@2 { reg = <3>; fixup; }; phy3: ethernet-phy@3 { reg = <4>; fixup; }; }; ess-instance { num_devices = <0x2>; ppe_switch: ess-switch@3a000000 { switch_cpu_bmp = <0x1>; /* cpu port bitmap */ switch_lan_bmp = <0x3E>; /* lan port bitmap */ switch_wan_bmp = <0x0>; /* wan port bitmap */ switch_mac_mode = <0xc>; /* mac mode for uniphy instance0*/ switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ switch_mac_mode2 = <0xff>; /* mac mode for uniphy instance2*/ qcom,port_phyinfo { port@0 { port_id = <1>; forced-speed = <2500>; forced-duplex = <1>; }; port@1 { port_id = <2>; phy_address = <4>; }; mht_port1: port@2 { port_id = <3>; phy_address = <1>; }; mht_port2: port@3 { port_id = <4>; phy_address = <2>; }; mht_port3: port@4 { port_id = <5>; phy_address = <3>; }; }; }; mht_switch: ess-switch1@1 { compatible = "qcom,ess-switch-qca8386"; device_id = <1>; switch_access_mode = "mdio"; mdio-bus = <&mdio>; switch_mac_mode = <0xc>; /* mac mode for uniphy instance0 */ switch_mac_mode1 = <0xff>; /* mac mode1 for uniphy instance1 */ switch_cpu_bmp = <0x1>; /* cpu port bitmap */ switch_lan_bmp = <0xe>; /* lan port bitmap */ switch_wan_bmp = <0x0>; /* wan port bitmap */ link-polling-required = <0>; fdb_sync = "interrupt"; link-intr-gpio = <&tlmm 52 0>; qcom,port_phyinfo { mht_cpu_link1: port@0 { port_id = <0>; forced-speed = <2500>; forced-duplex = <1>; }; port@1 { port_id = <1>; phy_address = <1>; }; port@2 { port_id = <2>; phy_address = <2>; }; port@3 { port_id = <3>; phy_address = <3>; }; }; }; avm_mac_addr_maceth_1: virt-dp1 { compatible = "avm,ppe-virtifmgr"; status = "ok"; phy-mode = "sgmii"; devname = "eth2"; external_port = <1>; phy-handle = <&phy0>; master-handle = <&mht_switch_port>; external-cpu-link-handle = <&mht_cpu_link1>; internal-pp-handle = <&mht_port1>; mac-address = [000000000000]; type = <3>; }; avm_mac_addr_maceth_2: virt-dp2 { compatible = "avm,ppe-virtifmgr"; status = "ok"; phy-mode = "sgmii"; devname = "eth1"; external_port = <2>; phy-handle = <&phy1>; master-handle = <&mht_switch_port>; external-cpu-link-handle = <&mht_cpu_link1>; internal-pp-handle = <&mht_port2>; mac-address = [000000000000]; type = <3>; }; avm_mac_addr_maceth_3: virt-dp3 { compatible = "avm,ppe-virtifmgr"; status = "ok"; phy-mode = "sgmii"; devname = "eth0"; external_port = <3>; phy-handle = <&phy2>; master-handle = <&mht_switch_port>; external-cpu-link-handle = <&mht_cpu_link1>; internal-pp-handle = <&mht_port3>; mac-address = [000000000000]; type = <3>; }; }; }; }; &pwm { pinctrl-0 = <&avm_pwm_pins>; used-pwm-indices = <0>, <0>, <0>, <1>; pinctrl-names = "default"; #pwm-cells = <2>; status = "ok"; }; /* ZigBee or DECT */ &blsp1_uart1 { pinctrl-0 = <&serial_1_pins>; pinctrl-names = "default"; status = "ok"; }; /* WiFi global memory */ &mlo_global_mem0 { size = <0x0 0xD00000>; status = "ok"; }; /* VRX */ &pcie0_phy { status = "ok"; }; /* Waikiki 2G? */ &pcie1_phy { status = "ok"; }; /* Waikiki 5G? */ &pcie2_phy { status = "ok"; }; /* VRX */ &pcie0 { status = "ok"; perst-gpio = <&tlmm 44 GPIO_ACTIVE_LOW>; }; &pci0_pin { pins = "gpio44"; }; /* Waikiki 2G */ &pcie1 { status = "ok"; perst-gpio = <&tlmm 47 GPIO_ACTIVE_LOW>; num-lanes = <1>; phys = <&pcie1_phy>; }; &pcie1_rp { #address-cells = <5>; #size-cells = <0>; reg = <0 0 0 0 0>; wifi@1 { reg = <0 0 0 0 0>; license-file = "qcn9224/license.dat"; qrtr_node_id = <0x30>; memory-region = <0>,<&mhi_region0>; qti,disable-rddm-prealloc; qti,rddm-seg-len = <0x1000>; status = "ok"; }; }; &qcn9224_pcie0 { status = "ok"; }; &mhi_region0 { status = "ok"; size = <0x0 0x00f00000>; }; &wifi1 { hremote_node = <&qcn9224_pcie0>; board_id = <0x0001>; status = "ok"; }; /* Waikiki 5G */ &pcie2 { status = "ok"; perst-gpio = <&tlmm 38 GPIO_ACTIVE_LOW>; }; &pcie2_rp { #address-cells = <5>; #size-cells = <0>; reg = <0 0 0 0 0>; wifi@2 { reg = <0 0 0 0 0>; license-file = "qcn9224/license.dat"; qrtr_node_id = <0x31>; memory-region = <0>,<&mhi_region1>; qti,disable-rddm-prealloc; qti,rddm-seg-len = <0x1000>; status = "ok"; }; }; &pci2_pin { pins = "gpio38"; }; &qcn9224_pcie1 { status = "ok"; }; &mhi_region1 { status = "ok"; size = <0x0 0x00f00000>; }; &wifi2 { hremote_node = <&qcn9224_pcie1>; board_id = <0x0002>; status = "ok"; }; /* internal wifi: disabled */ &wifi0 { status = "disabled"; }; &q6_region { status = "disabled"; }; &m3_dump { status = "disabled"; }; &q6_etr_region { status = "disabled"; }; &q6_caldb_region { status = "disabled"; }; /* pcmlink */ &lpass { status = "ok"; }; /* emmc */ &sdhc_1 { status = "ok"; }; /* Remove unused avm special mac address definitions */ /delete-node/ &avm_mac_addr_macrouter_3;