| * Qualcomm Technologies, Inc. ConNectivity SubSystem Platform Driver |
| |
| This platform driver adds support for the CNSS subsystem used for PCIe |
| based Wi-Fi devices. It also adds support to integrate PCIe WLAN module |
| to subsystem restart framework. Apart from that, it also manages the |
| 3.3V voltage regulator, WLAN Enable GPIO signal and PCIe link dynamically |
| with support for suspend and resume by retaining the PCI config space |
| states when PCIe link is shutdown. The main purpose of this device tree |
| entry below is to invoke the CNSS platform driver and provide handle to |
| the WLAN enable GPIO, 3.3V fixed voltage regulator resources. It also |
| provides the reserved RAM dump memory location and size. |
| |
| Required properties: |
| - compatible: "qcom,cnss" for QCA6174 device |
| "qcom,cnss-qca6290" for QCA6290 device |
| "qcom,cnss-qca6390" for QCA6390 device |
| "qcom,cnss-qca6490" for QCA6490 device |
| "qcom,cnss-kiwi" for KIWI device |
| "qcom,cnss-qca-converged" for converged QCA devices |
| - wlan-en-gpio: WLAN_EN GPIO signal specified by the chip specifications |
| - vdd-wlan-supply: phandle to the regulator device tree node |
| - pinctrl-names: Names corresponding to the numbered pinctrl states |
| - pinctrl-<n>: Pinctrl states as described in |
| bindings/pinctrl/pinctrl-bindings.txt |
| - qcom,wlan-rc-num: List of PCIe root complex numbers which WLAN device may |
| attach to |
| - qcom,wlan: Signature string for WLAN devices which all CNSS family drivers |
| are able to search for |
| |
| Optional properties: |
| - mpm_wake_set_gpios: U32 array of GPIOs which need to be setup for |
| interrupt wakeup capable. |
| - qcom,notify-modem-status: Boolean property to decide whether modem |
| notification should be enabled or not in this |
| platform |
| - wlan-soc-swreg-supply: phandle to the external 1.15V regulator for QCA6174 |
| - wlan-ant-switch-supply: phandle to the 2.7V regulator for the antenna |
| switch of QCA6174 |
| - qcom,wlan-uart-access: Boolean property to decide whether QCA6174 |
| has exclusive access to UART. |
| - vdd-wlan-io-supply: phandle to the 1.8V IO regulator for QCA6174 |
| - vdd-wlan-io12-supply: phandle to the 1.2V IO regulator for Kiwi |
| - vdd-wlan-ant-share-supply: phandle to the Antenna Sharing regulator |
| - vdd-wlan-xtal-supply: phandle to the 1.8V XTAL regulator for QCA6174 |
| - vdd-wlan-xtal-aon-supply: phandle to the LDO-4 regulator. This is needed |
| on platforms where XTAL regulator depends on |
| always on regulator in VDDmin. |
| - vdd-wlan-ctrl1-supply: phandle to the DBU1 - 1.8V for QCA6595 or 3.3V for |
| QCA6174 on auto platform. |
| - vdd-wlan-ctrl2-supply: phandle to the DBU4 - 2.2V for QCA6595 or 3.85V for |
| QCA6696 on auto platform. |
| - vdd-wlan-core-supply: phandle to the 1.3V CORE regulator for QCA6174 |
| - vdd-wlan-sp2t-supply: phandle to the 2.7V SP2T regulator for QCA6174 |
| - <supply-name>-supply: phandle to the regulator device tree node. |
| optional "supply-name" is "vdd-wlan-rfa" |
| - qcom,<supply>-config: Specifies voltage levels for supply. Should specified |
| in pairs (min, max), units uV. There can be optional |
| load in uA and Regulator settle delay in us |
| - qcom,smmu-s1-enable: Boolean property to decide whether to enable SMMU |
| S1 stage or not |
| - qcom,wlan-smmu-iova-address: I/O virtual address range as <start length> |
| format to be used for allocations associated |
| between WLAN/PCIe and SMMU |
| - qcom,wlan-ramdump-dynamic: To enable CNSS RAMDUMP collection |
| by providing the size of CNSS DUMP |
| - qcom,cmd_db_name: CommandDB name indicating the PMIC rail used for open |
| loop CPR |
| - reg: Memory regions defined as starting address and size |
| - reg-names: Names of the memory regions defined in reg entry |
| - wlan-bootstrap-gpio: WLAN_BOOTSTRAP GPIO signal specified by QCA6174 |
| which should be drived depending on platforms |
| - qcom,is-dual-wifi-enabled: Boolean property to control wlan enable(wlan-en) |
| gpio on dual-wifi platforms. |
| - vdd-wlan-en-supply: WLAN_EN fixed regulator specified by QCA6174 |
| specifications. |
| - qcom,wlan-en-vreg-support: Boolean property to decide the whether the |
| WLAN_EN pin is a gpio or fixed regulator. |
| - qcom,mhi: phandle to indicate the device which needs MHI support. |
| - qcom,cap-tsf-gpio: WLAN_TSF_CAPTURED GPIO signal specified by the chip |
| specifications, should be drived depending on products |
| - cnss-daemon-support: Boolean property to decide whether cnss_daemon |
| userspace QMI client is supported. |
| - use-nv-mac: Boolean property to indicate whether NV MAC is used or not. |
| - qcom,set-wlaon-pwr-ctrl: Boolean property to indicate if set |
| WLAON_QFPROM_PWR_CTRL_REG register during power on |
| and off sequences. |
| - use-pm-domain: Boolean property to indicate if driver needs to use PM |
| domain or not. |
| - qcom,wlan-cbc-enabled: boolean property to control cold boot calibration |
| - interconnects: Interconnect framework setup for bus configuration |
| - interconnect-names: Interconnect path names as strings |
| - qcom,icc-path-count: Number of Interconnect paths for this platform |
| - qcom,bus-bw-cfg-count: Number of bus bandwidth voting cases |
| - qcom,bus-bw-cfg: Bus bandwidth voting data |
| - qcom,tcs_offset_int_pow_amp_vreg: TCS CMD register offset for Voltage |
| regulator used in internal power amplifier for QCA6490 |
| - cnss-enable-self-recovery: Boolean property to enable self recovery when |
| recovery is trigeered with reason link down. |
| - qcom,bt-en-gpio: QCA6490 requires synchronization for BT and WLAN GPIO |
| enable to resolve PMU power up issues. Provide BT GPIO using |
| this config param. |
| - qcom,same-dt-multi-dev: Boolean property to decide whether it supports |
| multiple WLAN devices using the same DT node |
| without sub-nodes. |
| - qcom,converged-dt: Boolean property to decide whether it supports multiple |
| WLAN devices using the same DT node with sub-nodes. |
| - mboxes: Specifies mbox channel data for AOP messaging |
| - qcom,vreg_ipa: Specifies voltage regulator used for WLAN device internal |
| power amp config |
| - qcom,xo-clk-gpio: Added for QCA6490 XO CLK selection leakage prevention. |
| |
| List of chip specific sub nodes: |
| - chip_cfg@X: represent chip specific configurations |
| Each sub node has the following required properties: |
| - supported-ids: U32 array to decide which device ids are supported by |
| sub node. |
| |
| Examples: |
| |
| qcom,cnss@0d400000 { |
| compatible = "qcom,cnss"; |
| reg = <0x0d400000 0x200000>; |
| reg-names = "ramdump"; |
| qcom,wlan-ramdump-dynamic = <0x200000>; |
| wlan-en-gpio = <&msmgpio 82 0>; |
| vdd-wlan-supply = <&wlan_vreg>; |
| qcom,notify-modem-status; |
| wlan-soc-swreg-supply = <&pma8084_l27>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&cnss_default>; |
| qcom,wlan; |
| qcom,wlan-rc-num = <0>; |
| qcom,wlan-smmu-iova-address = <0 0x10000000>; |
| qcom,mhi = <&mhi_wlan>; |
| qcom,cap-tsf-gpio = <&tlmm 126 1>; |
| }; |
| |
| wlan: qcom,cnss-qca6490@b0000000 { |
| compatible = "qcom,cnss-qca6490"; |
| reg = <0xb0000000 0x10000>; |
| reg-names = "smmu_iova_ipa"; |
| wlan-en-gpio = <&tlmm 80 0>; |
| qcom,bt-en-gpio = <&tlmm 81 0>; |
| pinctrl-names = "wlan_en_active", "wlan_en_sleep"; |
| pinctrl-0 = <&cnss_wlan_en_active>; |
| pinctrl-1 = <&cnss_wlan_en_sleep>; |
| qcom,wlan; |
| qcom,wlan-rc-num = <0>; |
| qcom,wlan-ramdump-dynamic = <0x420000>; |
| qcom,wlan-cbc-enabled; |
| use-pm-domain; |
| cnss-enable-self-recovery; |
| qcom,same-dt-multi-dev; |
| mboxes = <&qmp_aop 0>; |
| qcom,vreg_ipa="s3e"; |
| qcom,xo-clk-gpio = <&tlmm 204 0>; |
| |
| vdd-wlan-aon-supply = <&S2E>; |
| qcom,vdd-wlan-aon-config = <1012000 1012000 0 0 1>; |
| vdd-wlan-dig-supply = <&S11B>; |
| qcom,vdd-wlan-dig-config = <966000 966000 0 0 1>; |
| vdd-wlan-io-supply = <&S10B>; |
| qcom,vdd-wlan-io-config = <1800000 1800000 0 0 1>; |
| vdd-wlan-rfa1-supply = <&S1C>; |
| qcom,vdd-wlan-rfa1-config = <1900000 2100000 0 0 1>; |
| vdd-wlan-rfa2-supply = <&S12B>; |
| qcom,vdd-wlan-rfa2-config = <1350000 1350000 0 0 1>; |
| wlan-ant-switch-supply = <&L7E>; |
| qcom,wlan-ant-switch-config = <2800000 2800000 0 0 1>; |
| }; |
| |
| |
| wlan: qcom,cnss-qca-converged { |
| compatible = "qcom,cnss-qca-converged"; |
| qcom,converged-dt; |
| |
| qcom,wlan-sw-ctrl-gpio = <&tlmm 83 0>; |
| |
| chip_cfg@0 { |
| supported-ids = <0x1103>; |
| reg = <0xb0000000 0x10000>; |
| reg-names = "smmu_iova_ipa"; |
| wlan-en-gpio = <&tlmm 80 0>; |
| pinctrl-names = "wlan_en_active", "wlan_en_sleep"; |
| pinctrl-0 = <&cnss_wlan_en_active>; |
| pinctrl-1 = <&cnss_wlan_en_sleep>; |
| qcom,wlan; |
| qcom,wlan-rc-num = <0>; |
| qcom,wlan-ramdump-dynamic = <0x780000>; |
| qcom,wlan-cbc-enabled; |
| use-pm-domain; |
| mboxes = <&qmp_aop 0>; |
| |
| vdd-wlan-io-supply = <&L15B>; |
| qcom,vdd-wlan-io-config = <1800000 1800000 0 0 1>; |
| vdd-wlan-supply = <&S5G>; |
| qcom,vdd-wlan-config = <1000000 1000000 0 0 1>; |
| vdd-wlan-aon-supply = <&S2G>; |
| qcom,vdd-wlan-aon-config = <980000 980000 0 0 1>; |
| vdd-wlan-dig-supply = <&S4E>; |
| qcom,vdd-wlan-dig-config = <950000 950000 0 0 1>; |
| vdd-wlan-rfa1-supply = <&S6G>; |
| qcom,vdd-wlan-rfa1-config = <1900000 1900000 0 0 1>; |
| vdd-wlan-rfa2-supply = <&S4G>; |
| qcom,vdd-wlan-rfa2-config = <1350000 1350000 0 0 1>; |
| } |
| }; |