[PATCH v4 2/3] mwifiex: parse chip specific gpio from device tree

From: Amitkumar Karwar
Date: Tue Feb 16 2016 - 04:20:58 EST


From: Xinming Hu <huxm@xxxxxxxxxxx>

This patch parse chip specific gpio parameter from device
tree. Corresponding binding file is also updated.

Signed-off-by: Xinming Hu <huxm@xxxxxxxxxxx>
Signed-off-by: Amitkumar Karwar <akarwar@xxxxxxxxxxx>
---
v4: Renamed "mwifiex,chip-gpio" to "marvell,wakeup-gpios"(Rob Herring/
Arnd Bergmann)
---
.../devicetree/bindings/net/wireless/marvell-sd8xxx.txt | 6 ++++--
drivers/net/wireless/marvell/mwifiex/sta_cmd.c | 9 +++++++++
2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/wireless/marvell-sd8xxx.txt b/Documentation/devicetree/bindings/net/wireless/marvell-sd8xxx.txt
index f7671ae..c337fab 100644
--- a/Documentation/devicetree/bindings/net/wireless/marvell-sd8xxx.txt
+++ b/Documentation/devicetree/bindings/net/wireless/marvell-sd8xxx.txt
@@ -11,7 +11,9 @@ Optional properties:
- marvell,caldata* : A series of properties with marvell,caldata prefix,
represent Calibration data downloaded to the device during
initialization. This is an array of unsigned values.
-
+ - marvell,wakeup-gpios : Chip's wakeup gpio pin number. This needs to be downloaded
+ to to firmware. Chip notifies wifi wakeup signal to SOC
+ through this pin.

Example:

@@ -24,6 +26,6 @@ wlan {

marvell,caldata_00_txpwrlimit_2g_cfg_set = /bits/ 8 <
0x01 0x00 0x06 0x00 0x08 0x02 0x89 0x01 ...>;
-
+ marvell,wakeup-gpios = <3>;
};

diff --git a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
index 238fe4f..fce3f98 100644
--- a/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
+++ b/drivers/net/wireless/marvell/mwifiex/sta_cmd.c
@@ -2134,6 +2134,7 @@ int mwifiex_sta_init_cmd(struct mwifiex_private *priv, u8 first_sta, bool init)
enum state_11d_t state_11d;
struct mwifiex_ds_11n_tx_cfg tx_cfg;
u8 sdio_sp_rx_aggr_enable;
+ u32 data;

if (first_sta) {
if (priv->adapter->iface_type == MWIFIEX_PCIE) {
@@ -2157,6 +2158,14 @@ int mwifiex_sta_init_cmd(struct mwifiex_private *priv, u8 first_sta, bool init)
adapter->dt_node = mwifiex_plt_dev ?
mwifiex_plt_dev->dev.of_node : NULL;
if (adapter->dt_node) {
+ if (of_property_read_u32(adapter->dt_node,
+ "marvell,wakeup-gpios",
+ &data) == 0) {
+ mwifiex_dbg(adapter, INFO,
+ "Wakeup gpio = 0x%x\n", data);
+ adapter->hs_cfg.gpio = data;
+ }
+
ret = mwifiex_dnld_dt_cfgdata(priv, adapter->dt_node,
"marvell,caldata");
if (ret)
--
1.8.1.4