* [PATCH v3 1/2] DTS: bindings: wl1251: mark ti,power-gpio as optional
2020-01-26 20:00 [PATCH v3 0/2] wl1251: remove ti,power-gpio for sdio mode H. Nikolaus Schaller
@ 2020-01-26 20:00 ` H. Nikolaus Schaller
2020-01-27 15:36 ` Rob Herring
2020-02-12 16:16 ` [PATCH v3 1/2] DTS: bindings: wl1251: mark ti, power-gpio " Kalle Valo
2020-01-26 20:00 ` [PATCH v3 2/2] wl1251: remove ti,power-gpio for SDIO mode H. Nikolaus Schaller
1 sibling, 2 replies; 5+ messages in thread
From: H. Nikolaus Schaller @ 2020-01-26 20:00 UTC (permalink / raw)
To: Kalle Valo, Ulf Hansson, Rob Herring, Mark Rutland,
H. Nikolaus Schaller, Thomas Gleixner, Greg Kroah-Hartman,
Alexios Zavras
Cc: linux-wireless, netdev, devicetree, linux-kernel, letux-kernel, kernel
It is now only useful for SPI interface.
Power control of SDIO mode is done through mmc core.
Suggested by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
---
Documentation/devicetree/bindings/net/wireless/ti,wl1251.txt | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/net/wireless/ti,wl1251.txt b/Documentation/devicetree/bindings/net/wireless/ti,wl1251.txt
index f38950560982..88fd28d15eac 100644
--- a/Documentation/devicetree/bindings/net/wireless/ti,wl1251.txt
+++ b/Documentation/devicetree/bindings/net/wireless/ti,wl1251.txt
@@ -9,11 +9,12 @@ Required properties:
- spi-max-frequency : Maximum SPI clocking speed of device in Hz
- interrupts : Should contain interrupt line
- vio-supply : phandle to regulator providing VIO
-- ti,power-gpio : GPIO connected to chip's PMEN pin
Optional properties:
- ti,wl1251-has-eeprom : boolean, the wl1251 has an eeprom connected, which
provides configuration data (calibration, MAC, ...)
+- ti,power-gpio : GPIO connected to chip's PMEN pin if operated in
+ SPI mode
- Please consult Documentation/devicetree/bindings/spi/spi-bus.txt
for optional SPI connection related properties,
--
2.23.0
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 2/2] wl1251: remove ti,power-gpio for SDIO mode
2020-01-26 20:00 [PATCH v3 0/2] wl1251: remove ti,power-gpio for sdio mode H. Nikolaus Schaller
2020-01-26 20:00 ` [PATCH v3 1/2] DTS: bindings: wl1251: mark ti,power-gpio as optional H. Nikolaus Schaller
@ 2020-01-26 20:00 ` H. Nikolaus Schaller
1 sibling, 0 replies; 5+ messages in thread
From: H. Nikolaus Schaller @ 2020-01-26 20:00 UTC (permalink / raw)
To: Kalle Valo, Ulf Hansson, Rob Herring, Mark Rutland,
H. Nikolaus Schaller, Thomas Gleixner, Greg Kroah-Hartman,
Alexios Zavras
Cc: linux-wireless, netdev, devicetree, linux-kernel, letux-kernel, kernel
Remove handling of this property from code.
Note that wl->power_gpio is still needed in
the header file for SPI mode (N900).
Suggested by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
---
drivers/net/wireless/ti/wl1251/sdio.c | 32 ++-------------------------
1 file changed, 2 insertions(+), 30 deletions(-)
diff --git a/drivers/net/wireless/ti/wl1251/sdio.c b/drivers/net/wireless/ti/wl1251/sdio.c
index 94569cd695c8..c9a4e9a43400 100644
--- a/drivers/net/wireless/ti/wl1251/sdio.c
+++ b/drivers/net/wireless/ti/wl1251/sdio.c
@@ -15,9 +15,7 @@
#include <linux/wl12xx.h>
#include <linux/irq.h>
#include <linux/pm_runtime.h>
-#include <linux/gpio.h>
#include <linux/of.h>
-#include <linux/of_gpio.h>
#include <linux/of_irq.h>
#include "wl1251.h"
@@ -160,15 +158,6 @@ static int wl1251_sdio_set_power(struct wl1251 *wl, bool enable)
int ret;
if (enable) {
- /*
- * Power is controlled by runtime PM, but we still call board
- * callback in case it wants to do any additional setup,
- * for example enabling clock buffer for the module.
- */
- if (gpio_is_valid(wl->power_gpio))
- gpio_set_value(wl->power_gpio, true);
-
-
ret = pm_runtime_get_sync(&func->dev);
if (ret < 0) {
pm_runtime_put_sync(&func->dev);
@@ -186,9 +175,6 @@ static int wl1251_sdio_set_power(struct wl1251 *wl, bool enable)
ret = pm_runtime_put_sync(&func->dev);
if (ret < 0)
goto out;
-
- if (gpio_is_valid(wl->power_gpio))
- gpio_set_value(wl->power_gpio, false);
}
out:
@@ -241,31 +227,17 @@ static int wl1251_sdio_probe(struct sdio_func *func,
wl1251_board_data = wl1251_get_platform_data();
if (!IS_ERR(wl1251_board_data)) {
- wl->power_gpio = wl1251_board_data->power_gpio;
wl->irq = wl1251_board_data->irq;
wl->use_eeprom = wl1251_board_data->use_eeprom;
} else if (np) {
- wl->use_eeprom = of_property_read_bool(np,
- "ti,wl1251-has-eeprom");
- wl->power_gpio = of_get_named_gpio(np, "ti,power-gpio", 0);
+ wl->use_eeprom = of_property_read_bool(np, "ti,wl1251-has-eeprom");
wl->irq = of_irq_get(np, 0);
-
- if (wl->power_gpio == -EPROBE_DEFER ||
- wl->irq == -EPROBE_DEFER) {
+ if (wl->irq == -EPROBE_DEFER) {
ret = -EPROBE_DEFER;
goto disable;
}
}
- if (gpio_is_valid(wl->power_gpio)) {
- ret = devm_gpio_request(&func->dev, wl->power_gpio,
- "wl1251 power");
- if (ret) {
- wl1251_error("Failed to request gpio: %d\n", ret);
- goto disable;
- }
- }
-
if (wl->irq) {
irq_set_status_flags(wl->irq, IRQ_NOAUTOEN);
ret = request_irq(wl->irq, wl1251_line_irq, 0, "wl1251", wl);
--
2.23.0
^ permalink raw reply related [flat|nested] 5+ messages in thread