Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea274787 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "wcnss: Add wcnss snapshot to msm-4.9"

parents 26fa79a2 a53cf21c
Loading
Loading
Loading
Loading
+110 −0
Original line number Diff line number Diff line
* Qualcomm Technologies Inc. WCNSS Platform Driver

WCNSS driver is the platform driver. It is used for performing the cold
boot-up of the wireless device. It is responsible for adjusting
the necessary I/O rails and enabling appropriate gpios for wireless
connectivity subsystem.

Required properties:
- compatible: "wcnss_wlan"
- reg: physical address and length of the register set for the device.
- reg-names: "wcnss_mmio", "wcnss_fiq", "pronto_phy_base", "riva_phy_base",
	"riva_ccu_base", "pronto_a2xb_base", "pronto_ccpu_base",
	"pronto_saw2_base", "wlan_tx_phy_aborts","wlan_brdg_err_source",
	"wlan_tx_status", "alarms_txctl", "alarms_tactl",
	"pronto_mcu_base", "pronto_qfuse".
- interupts: Pronto to Apps interrupts for tx done and rx pending.
- qcom,pronto-vddmx-supply: regulator to supply pronto pll.
- qcom,pronto-vddcx-supply: voltage corner regulator to supply WLAN/BT/FM
digital module.
- qcom,pronto-vddpx-supply: regulator to supply WLAN DAC.
- qcom,iris-vddxo-supply  : regulator to supply RF XO.
- qcom,iris-vddrfa-supply : regulator to supply RFA digital.
- qcom,iris-vddpa-supply  : regulator to supply RF PA.
- qcom,iris-vdddig-supply : regulator to supply RF digital(BT/FM).
- gpios: gpio numbers to configure 5-wire interface of WLAN connectivity
- qcom,has-48mhz-xo: boolean flag to determine the usage of 24MHz XO from RF
- qcom,has-pronto-hw: boolean flag to determine the revId of the WLAN subsystem
- qcom,wcnss-adc_tm: ADC handle for vbatt notification APIs.
- qcom,wcnss-vadc: VADC handle for battery voltage notification APIs.
- pinctrl-<n> : Pinctrl states as described in bindings/pinctrl/pinctrl-bindings.txt
- pinctrl-names : Names corresponding to the numbered pinctrl states
- clocks: from common clock binding: handle to xo, rf_clk and wcnss snoc clocks.
- clock-names: Names of all the clocks that are accessed by the subsystem
- qcom,vdd-voltage-level: This property represents (nominal, min, max) voltage
for iris and pronto regulators in milli-volts.
- qcom,vdd-current: This property represents current value for
iris and pronto regulators in micro-amps.

Optional properties:
- qcom,has-autodetect-xo: boolean flag to determine whether Iris XO auto detect
should be performed during boot up.
- qcom,snoc-wcnss-clock-freq: indicates the wcnss snoc clock frequency in Hz.
If wcnss_snoc clock is specified in the list of clocks, this property needs
to be set to make it functional.
- qcom,wlan-rx-buff-count: WLAN RX buffer count is a configurable value,
using a smaller count for this buffer will reduce the memory usage.
- qcom,is-pronto-v3: boolean flag to determine the pronto hardware version
in use. subsequently correct workqueue will be used by DXE engine to push frames
in TX data path.
- qcom,is-dual-band-disable: boolean flag to determine the WLAN dual band
capability.
- qcom,is-pronto-vadc: boolean flag to determine Battery voltage feature
support for pronto hardware.
- qcom,wcnss-pm : <Core rail LDO#, PA rail LDO#, XO settling time,
RPM power collapse enabled, standalone power collapse enabled>
Power manager related parameter for LDO configuration.
	11     -  WCN CORE rail LDO number
	21     -  WCN PA rail LDO number
	1200   -  WCN XO settling time (usec)
	1      -  WCN RPM power collapse enabled
	1      -  WCN standalone power collapse enabled
	6      -  GPIO strength value
- qcom,has-vsys-adc-channel: boolean flag to determine which ADC HW channel need
to use for VBATT feature.
- qcom,has-a2xb-split-reg: boolean flag to determine A2xb split timeout limit
register is available or not.

Example:

qcom,wcnss-wlan@fb000000 {
	compatible = "qcom,wcnss_wlan";
	reg = <0xfb000000 0x280000>,
	    <0xf9011008 0x04>;
reg-names = "wcnss_mmio", "wcnss_fiq";
	interrupts = <0 145 0 0 146 0>;
	interrupt-names = "wcnss_wlantx_irq", "wcnss_wlanrx_irq";

	qcom,pronto-vddmx-supply = <&pm8841_s1>;
	qcom,pronto-vddcx-supply = <&pm8841_s2_corner>;
	qcom,pronto-vddpx-supply = <&pm8941_s3>;
	qcom,iris-vddxo-supply = <&pm8941_l6>;
	qcom,iris-vddrfa-supply = <&pm8941_l11>;
	qcom,iris-vddpa-supply = <&pm8941_l19>;
	qcom,iris-vdddig-supply = <&pm8941_l3>;

	gpios = <&msmgpio 36 0>, <&msmgpio 37 0>, <&msmgpio 38 0>,
	      <&msmgpio 39 0>, <&msmgpio 40 0>;
	qcom,has-48mhz-xo;
	qcom,is-pronto-vt;
	qcom,wlan-rx-buff-count = <512>;
	qcom,has-pronto-hw;
	qcom,wcnss-adc_tm = <&pm8226_adc_tm>;

	pinctrl-names = "wcnss_default", "wcnss_sleep";
	pinctrl-0 = <&wcnss_default>;
	pinctrl-1 = <&wcnss_sleep>;
	pinctrl-2 = <&wcnss_gpio_default>;

	clocks = <&clock_rpm clk_xo_wlan_clk>,
	       <&clock_rpm clk_rf_clk2>,
	       <&clock_debug clk_gcc_debug_mux>,
	       <&clock_gcc clk_wcnss_m_clk>,
	       <&clock_gcc clk_snoc_wcnss_a_clk>;

	clock-names = "xo", "rf_clk", "measure", "wcnss_debug",
		"snoc_wcnss";

	qcom,snoc-wcnss-clock-freq = <200000000>;
	qcom,wcnss-pm = <11 21 1200 1 1 6>;
};
+2 −0
Original line number Diff line number Diff line
@@ -774,3 +774,5 @@ config QCOM_QDSS_BRIDGE
	  The driver will help route diag traffic from modem side over the QDSS
	  sub-system to USB on APSS side. The driver acts as a bridge between the
	  MHI and USB interface. If unsure, say N.

source "drivers/soc/qcom/wcnss/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -96,3 +96,4 @@ obj-$(CONFIG_QMP_DEBUGFS_CLIENT) += qmp-debugfs-client.o
obj-$(CONFIG_MSM_REMOTEQDSS) += remoteqdss.o
obj-$(CONFIG_QSEE_IPC_IRQ_BRIDGE) += qsee_ipc_irq_bridge.o
obj-$(CONFIG_QCOM_QDSS_BRIDGE) += qdss_bridge.o
obj-$(CONFIG_WCNSS_CORE) += wcnss/
+39 −0
Original line number Diff line number Diff line
config WCNSS_CORE
	tristate "Qualcomm Technologies Inc. WCNSS CORE driver"
	select WIRELESS_EXT
	select WEXT_PRIV
	select WEXT_CORE
	select WEXT_SPY
	help
	  This module adds support for WLAN connectivity subsystem
	  This module is responsible for communicating WLAN on/off
	  Core driver for the Qualcomm Technologies Inc. WCNSS triple play
	  connectivity subsystem, Enable WCNSS core platform driver
	  for WLAN.

config WCNSS_CORE_PRONTO
	tristate "Qualcomm Technologies Inc. WCNSS Pronto Support"
	depends on WCNSS_CORE
	help
	  Pronto Support for the Qualcomm Technologies Inc. WCNSS triple
	  play connectivity subsystem, Enable WCNSS core platform driver
	  for WLAN. This module adds support for WLAN connectivity subsystem
	  This module is responsible for communicating WLAN on/off

config WCNSS_REGISTER_DUMP_ON_BITE
	bool "Enable/disable WCNSS register dump when there is a WCNSS bite"
	depends on WCNSS_CORE_PRONTO
	help
	 When Apps receives a WDOG bite from WCNSS, collecting a register dump
	 of WCNSS is helpful to root cause the failure. WCNSS may not be
	 properly clocked in some WCNSS bite cases, and that may cause unclocked
	 register access failures. So this feature is to enable/disable the
	 register dump on WCNSS WDOG bite.

config CNSS_CRYPTO
	tristate "Enable CNSS crypto support"
	help
	  Add crypto support for the WLAN  driver module.
	  This feature enable wlan driver to use the crypto APIs exported
	  from cnss platform driver. This crypto APIs used to generate cipher
	  key and add support for the WLAN driver module security protocol.
+6 −0
Original line number Diff line number Diff line

# Makefile for WCNSS triple-play driver

wcnsscore-objs += wcnss_wlan.o wcnss_vreg.o

obj-$(CONFIG_WCNSS_CORE) += wcnsscore.o
Loading