Loading Documentation/devicetree/bindings/cnss/icnss.txt +14 −0 Original line number Diff line number Diff line Loading @@ -12,13 +12,22 @@ Required properties: - reg-names: Names of the memory regions defined in reg entry - interrupts: Copy engine interrupt table - qcom,wlan-msa-memory: MSA memory size - clocks: List of clock phandles - clock-names: List of clock names corresponding to the "clocks" property - iommus: SMMUs and corresponding Stream IDs needed by WLAN - qcom,wlan-smmu-iova-address: I/O virtual address range as <start length> format to be used for allocations associated between WLAN and SMMU Optional properties: - <supply-name>-supply: phandle to the regulator device tree node optional "supply-name" is "vdd-0.8-cx-mx". - qcom,<supply>-config: Specifies voltage levels for supply. Should be specified in pairs (min, max), units uV. There can be optional load in uA and Regulator settle delay in uS. - qcom,icnss-vadc: VADC handle for vph_pwr read APIs. - qcom,icnss-adc_tm: VADC handle for vph_pwr notification APIs. - qcom,smmu-s1-bypass: Boolean context flag to set SMMU to S1 bypass Example: Loading @@ -26,6 +35,8 @@ Example: compatible = "qcom,icnss"; reg = <0x0a000000 0x1000000>; reg-names = "membase"; clocks = <&clock_gcc clk_aggre2_noc_clk>; clock-names = "smmu_aggre2_noc_clk"; iommus = <&anoc2_smmu 0x1900>, <&anoc2_smmu 0x1901>; qcom,wlan-smmu-iova-address = <0 0x10000000>; Loading @@ -43,4 +54,7 @@ Example: <0 140 0 /* CE10 */ >, <0 141 0 /* CE11 */ >; qcom,wlan-msa-memory = <0x200000>; qcom,smmu-s1-bypass; vdd-0.8-cx-mx-supply = <&pm8998_l5>; qcom,vdd-0.8-cx-mx-config = <800000 800000 2400 1000>; }; drivers/soc/qcom/icnss.c +604 −155 File changed.Preview size limit exceeded, changes collapsed. Show changes include/soc/qcom/icnss.h +16 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,21 @@ #define ICNSS_MAX_IRQ_REGISTRATIONS 12 #define ICNSS_MAX_TIMESTAMP_LEN 32 enum icnss_uevent { ICNSS_UEVENT_FW_READY, ICNSS_UEVENT_FW_CRASHED, ICNSS_UEVENT_FW_DOWN, }; struct icnss_uevent_fw_down_data { bool crashed; }; struct icnss_uevent_data { enum icnss_uevent uevent; void *data; }; struct icnss_driver_ops { char *name; int (*probe)(struct device *dev); Loading @@ -28,6 +43,7 @@ struct icnss_driver_ops { int (*pm_resume)(struct device *dev); int (*suspend_noirq)(struct device *dev); int (*resume_noirq)(struct device *dev); int (*uevent)(struct device *dev, struct icnss_uevent_data *uevent); }; Loading Loading
Documentation/devicetree/bindings/cnss/icnss.txt +14 −0 Original line number Diff line number Diff line Loading @@ -12,13 +12,22 @@ Required properties: - reg-names: Names of the memory regions defined in reg entry - interrupts: Copy engine interrupt table - qcom,wlan-msa-memory: MSA memory size - clocks: List of clock phandles - clock-names: List of clock names corresponding to the "clocks" property - iommus: SMMUs and corresponding Stream IDs needed by WLAN - qcom,wlan-smmu-iova-address: I/O virtual address range as <start length> format to be used for allocations associated between WLAN and SMMU Optional properties: - <supply-name>-supply: phandle to the regulator device tree node optional "supply-name" is "vdd-0.8-cx-mx". - qcom,<supply>-config: Specifies voltage levels for supply. Should be specified in pairs (min, max), units uV. There can be optional load in uA and Regulator settle delay in uS. - qcom,icnss-vadc: VADC handle for vph_pwr read APIs. - qcom,icnss-adc_tm: VADC handle for vph_pwr notification APIs. - qcom,smmu-s1-bypass: Boolean context flag to set SMMU to S1 bypass Example: Loading @@ -26,6 +35,8 @@ Example: compatible = "qcom,icnss"; reg = <0x0a000000 0x1000000>; reg-names = "membase"; clocks = <&clock_gcc clk_aggre2_noc_clk>; clock-names = "smmu_aggre2_noc_clk"; iommus = <&anoc2_smmu 0x1900>, <&anoc2_smmu 0x1901>; qcom,wlan-smmu-iova-address = <0 0x10000000>; Loading @@ -43,4 +54,7 @@ Example: <0 140 0 /* CE10 */ >, <0 141 0 /* CE11 */ >; qcom,wlan-msa-memory = <0x200000>; qcom,smmu-s1-bypass; vdd-0.8-cx-mx-supply = <&pm8998_l5>; qcom,vdd-0.8-cx-mx-config = <800000 800000 2400 1000>; };
drivers/soc/qcom/icnss.c +604 −155 File changed.Preview size limit exceeded, changes collapsed. Show changes
include/soc/qcom/icnss.h +16 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,21 @@ #define ICNSS_MAX_IRQ_REGISTRATIONS 12 #define ICNSS_MAX_TIMESTAMP_LEN 32 enum icnss_uevent { ICNSS_UEVENT_FW_READY, ICNSS_UEVENT_FW_CRASHED, ICNSS_UEVENT_FW_DOWN, }; struct icnss_uevent_fw_down_data { bool crashed; }; struct icnss_uevent_data { enum icnss_uevent uevent; void *data; }; struct icnss_driver_ops { char *name; int (*probe)(struct device *dev); Loading @@ -28,6 +43,7 @@ struct icnss_driver_ops { int (*pm_resume)(struct device *dev); int (*suspend_noirq)(struct device *dev); int (*resume_noirq)(struct device *dev); int (*uevent)(struct device *dev, struct icnss_uevent_data *uevent); }; Loading