// SPDX-License-Identifier: (GPL-2.0+ OR BSD-3-Clause) /* * IPQ5332 AP-MI03.1 board device tree source * * Copyright (c) 2020-2021 The Linux Foundation. All rights reserved. * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. */ /dts-v1/; #include "ipq5332.dtsi" #include "ipq5332-memory.dtsi" / { #address-cells = <0x2>; #size-cells = <0x2>; model = "Qualcomm Technologies, Inc. IPQ5332/AP-MI03.1"; compatible = "qcom,ipq5332-ap-mi03.1", "qcom,ipq5332"; interrupt-parent = <&intc>; aliases { serial0 = &blsp1_uart0; ethernet0 = "/soc/dp1"; ethernet1 = "/soc/dp2"; }; chosen { stdout-path = "serial0"; bootargs-append = " clk_ignore_unused"; }; soc { pinctrl@1000000 { spi_0_pins: spi0-pinmux { spi_clock { pins = "gpio14"; function = "blsp0_spi"; drive-strength = <2>; bias-pull-down; }; spi_mosi { pins = "gpio15"; function = "blsp0_spi"; drive-strength = <2>; bias-pull-down; }; spi_miso { pins = "gpio16"; function = "blsp0_spi"; drive-strength = <2>; bias-pull-down; }; spi_cs { pins = "gpio17"; function = "blsp0_spi"; drive-strength = <2>; bias-pull-up; }; }; serial_0_pins: serial0-pinmux { pins = "gpio18", "gpio19"; function = "blsp0_uart0"; drive-strength = <8>; bias-pull-up; }; mdio1_pins: mdio_pinmux { mux_0 { pins = "gpio27"; function = "mdc1"; drive-strength = <2>; bias-pull-up; }; mux_1 { pins = "gpio28"; function = "mdio1"; drive-strength = <2>; bias-pull-up; }; }; }; mdio:mdio@90000 { status = "ok"; pinctrl-0 = <&mdio1_pins>; pinctrl-names = "default"; /*gpio31 for 8033 reset, gpio22 for s17c reset*/ phy-reset-gpio = <&tlmm 31 0 &tlmm 22 0>; force_clause22; /* force MDIO bus to use clause22 because of S17C */ phy0: ethernet-phy@0 { reg = <5>; }; }; ess-instance { num_devices = <0x2>; ess-switch@3a000000 { switch_cpu_bmp = <0x1>; /* cpu port bitmap */ switch_lan_bmp = <0x2>; /* lan port bitmap */ switch_wan_bmp = <0x4>; /* wan port bitmap */ switch_mac_mode = <0xf>; /* 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 = <1000>; forced-duplex = <1>; }; port@1 { port_id = <2>; phy_address = <5>; mdiobus = <&mdio>; }; }; }; ess-switch1@1 { compatible = "qcom,ess-switch-qca83xx"; device_id = <1>; switch_access_mode = "mdio"; mdio-bus = <&mdio>; reset_gpio = <&tlmm 22 0>; switch_cpu_bmp = <0x1>; /* cpu port bitmap */ switch_lan_bmp = <0x38>; /* lan port bitmap */ switch_wan_bmp = <0x0>; /* wan port bitmap */ link-polling-required = <0>; link-intr-gpio = <&tlmm 24 0>; qca,ar8327-initvals = < 0x00004 0x80 /* PAD0_MODE */ 0x00008 0 /* PAD5_MODE */ 0x0000c 0 /* PAD6_MODE */ 0x00010 0x2613a0 /* PORT0 FORCE MODE*/ 0x000e4 0xaa545 /* MAC_POWER_SEL */ 0x000e0 0xc74164de /* SGMII_CTRL */ 0x0007c 0x4e /* PORT0_STATUS */ 0x00094 0 /* PORT6_STATUS */ >; qcom,port_phyinfo { port@3 { port_id = <3>; phy_address = <2>; }; port@4 { port_id = <4>; phy_address = <3>; }; port@5 { port_id = <5>; phy_address = <4>; }; }; }; }; serial@78af000 { pinctrl-0 = <&serial_0_pins>; pinctrl-names = "default"; status = "ok"; }; spi@78b5000 { pinctrl-0 = <&spi_0_pins>; pinctrl-names = "default"; cs-select = <0>; status = "ok"; m25p80@0 { compatible = "n25q128a11"; #address-cells = <1>; #size-cells = <1>; reg = <0>; spi-max-frequency = <50000000>; }; }; q6v5_wcss: remoteproc@d100000 { memory-region = <&q6_region>; }; /delete-node/ tmc@4048000; /delete-node/ replicator@4046000; /delete-node/ etf@4047000; /delete-node/ funnel@4045000; /delete-node/ funnel@4041000; /delete-node/ funnel@4042000; /delete-node/ stm@4002000; /delete-node/ funnel@50a1000; /delete-node/ etm@509c000; /delete-node/ etm@509d000; /delete-node/ etm@509e000; /delete-node/ etm@509f000; dp1 { device_type = "network"; compatible = "qcom,nss-dp"; qcom,id = <2>; reg = <0x3a001200 0x200>; qcom,mactype = <0>; local-mac-address = [000000000000]; mdio-bus = <&mdio>; qcom,phy-mdio-addr = <5>; qcom,link-poll = <1>; phy-mode = "sgmii"; }; dp2 { device_type = "network"; compatible = "qcom,nss-dp"; qcom,id = <1>; reg = <0x3a001000 0x200>; qcom,mactype = <0>; local-mac-address = [000000000000]; phy-mode = "sgmii"; qcom,is_switch_connected = <1>; qcom,mht-dev = <1>; }; /* EDMA host driver configuration for the board */ edma@3ab00000 { qcom,txdesc-ring-start = <4>; /* Tx desc ring start ID */ qcom,txdesc-rings = <12>; /* Total number of Tx desc rings to be provisioned */ qcom,mht-txdesc-rings = <8>; /* Extra Tx desc rings to be provisioned for MHT SW ports. */ qcom,txcmpl-ring-start = <4>; /* Tx complete ring start ID */ qcom,txcmpl-rings = <12>; /* Total number of Tx complete rings to be provisioned */ qcom,mht-txcmpl-rings = <8>; /* Extra Tx complete rings to be provisioned for mht sw ports. */ qcom,rxfill-ring-start = <4>; /* Rx fill ring start ID */ qcom,rxfill-rings = <4>; /* Total number of Rx fill rings to be provisioned */ qcom,rxdesc-ring-start = <12>; /* Rx desc ring start ID */ qcom,rxdesc-rings = <4>; /* Total number of Rx desc rings to be provisioned */ qcom,rx-page-mode = <0>; /* Rx fill ring page mode */ qcom,tx-map-priority-level = <1>; /* Tx priority level per port */ qcom,rx-map-priority-level = <1>; /* Rx priority level per core */ qcom,txdesc-map = <8 9 10 11>, /* Port0 per-core Tx ring map */ <12 13 14 15>, /* MHT-Port1 per-core Tx ring map */ <4 5 6 7>, /* MHT-Port2 per-core Tx ring map/packets from vp*/ <16 17 18 19>, /* MHT-Port3 per-core Tx ring map */ <20 21 22 23>; /* MHT-Port4 per-core Tx ring map */ qcom,txdesc-fc-grp-map = <1 2 3 4 5>; /* Per GMAC flow control group map */ qcom,rxfill-map = <4 5 6 7>; /* Per-core Rx fill ring map */ qcom,rxdesc-map = <12 13 14 15>; /* Per-core Rx desc ring map */ qcom,rx-queue-start = <0>; /* Rx queue start */ qcom,rx-ring-queue-map = <0 8 16 24>, /* Priority 0 queues per-core Rx ring map */ <1 9 17 25>, /* Priority 1 queues per-core Rx ring map */ <2 10 18 26>, /* Priority 2 queues per-core Rx ring map */ <3 11 19 27>, /* Priority 3 queues per-core Rx ring map */ <4 12 20 28>, /* Priority 4 queues per-core Rx ring map */ <5 13 21 29>, /* Priority 5 queues per-core Rx ring map */ <6 14 22 30>, /* Priority 6 queues per-core Rx ring map */ <7 15 23 31>; /* Priority 7 queues per-core Rx ring map */ interrupts = <0 163 4>, /* Tx complete ring id #4 IRQ info */ <0 164 4>, /* Tx complete ring id #5 IRQ info */ <0 165 4>, /* Tx complete ring id #6 IRQ info */ <0 166 4>, /* Tx complete ring id #7 IRQ info */ <0 167 4>, /* Tx complete ring id #8 IRQ info */ <0 168 4>, /* Tx complete ring id #9 IRQ info */ <0 169 4>, /* Tx complete ring id #10 IRQ info */ <0 170 4>, /* Tx complete ring id #11 IRQ info */ <0 171 4>, /* Tx complete ring id #12 IRQ info */ <0 172 4>, /* Tx complete ring id #13 IRQ info */ <0 173 4>, /* Tx complete ring id #14 IRQ info */ <0 174 4>, /* Tx complete ring id #15 IRQ info */ <0 139 4>, /* Rx desc ring id #12 IRQ info */ <0 140 4>, /* Rx desc ring id #13 IRQ info */ <0 141 4>, /* Rx desc ring id #14 IRQ info */ <0 142 4>, /* Rx desc ring id #15 IRQ info */ <0 191 4>, /* Misc error IRQ info */ <0 160 4>, /* PPEDS Node #1(TxComp ring id #1) TxComplete IRQ info */ <0 128 4>, /* PPEDS Node #1(Rx Desc ring id #1) Rx Desc IRQ info */ <0 152 4>, /* PPEDS Node #1(RxFill Desc ring id #1) Rx Fill IRQ info */ <0 161 4>, /* PPEDS Node #2(TxComp ring id #2) TxComplete IRQ info */ <0 129 4>, /* PPEDS Node #2(Rx Desc ring id #2) Rx Desc IRQ info */ <0 153 4>, /* PPEDS Node #2(RxFill Desc ring id #2) Rx Fill IRQ info */ <0 175 4>, /* MHT port Tx complete ring id #16 IRQ info */ <0 176 4>, /* MHT port Tx complete ring id #17 IRQ info */ <0 177 4>, /* MHT port Tx complete ring id #18 IRQ info */ <0 178 4>, /* MHT port Tx complete ring id #19 IRQ info */ <0 179 4>, /* MHT port Tx complete ring id #20 IRQ info */ <0 180 4>, /* MHT port Tx complete ring id #21 IRQ info */ <0 181 4>, /* MHT port Tx complete ring id #22 IRQ info */ <0 182 4>; /* MHT port Tx complete ring id #23 IRQ info */ }; }; }; &wifi0 { qcom,rproc = <&q6_wcss_pd1>; qcom,rproc_rpd = <&q6v5_wcss>; qcom,multipd_arch; qcom,userpd-subsys-name = "q6v5_wcss_userpd1"; mem-region = <&q6_region>; qcom,board_id = <0x11>; status = "ok"; };