[09/11,v4] mmc: pxamci: Delete platform data handling of CD and WP

Message ID 20181202084328.25546-10-linus.walleij@linaro.org
State New
Headers show
Series
  • Use GPIO descriptors for CD/WP
Related show

Commit Message

Linus Walleij Dec. 2, 2018, 8:43 a.m.
This deletes the code dealing with handling card detect
and write protect passed in as platform data and makes
the host rely on just GPIO descriptors.

The card read only inversion flag has to be kept around
for now, as the core cannot handle the inversion flags
on the descriptors yet.

Since we can now rely on the descriptors to have the
right polarity, we set the "override_active_level" to
false in mmc_gpiod_request_cd() and mmc_gpiod_request_ro().

Cc: Daniel Mack <daniel@zonque.org>
Cc: Robert Jarzmik <robert.jarzmik@free.fr>
Cc: Bartosz Golaszewski <brgl@bgdev.pl>
Cc: Andrea Adami <andrea.adami@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

---
ChangeLog v3->v4:
- Rebase on the other changes.
ChangeLog v1->v3:
- Split out as separate patch at Robert's request.
---
 drivers/mmc/host/pxamci.c                | 19 -------------------
 include/linux/platform_data/mmc-pxamci.h |  2 --
 2 files changed, 21 deletions(-)

-- 
2.19.1

Comments

Robert Jarzmik Dec. 2, 2018, 1:11 p.m. | #1
Linus Walleij <linus.walleij@linaro.org> writes:

> This deletes the code dealing with handling card detect

> and write protect passed in as platform data and makes

> the host rely on just GPIO descriptors.

>

> The card read only inversion flag has to be kept around

> for now, as the core cannot handle the inversion flags

> on the descriptors yet.

>

> Since we can now rely on the descriptors to have the

> right polarity, we set the "override_active_level" to

> false in mmc_gpiod_request_cd() and mmc_gpiod_request_ro().

>

> Cc: Daniel Mack <daniel@zonque.org>

> Cc: Robert Jarzmik <robert.jarzmik@free.fr>

> Cc: Bartosz Golaszewski <brgl@bgdev.pl>

> Cc: Andrea Adami <andrea.adami@gmail.com>

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>


Cheers.

--
Robert

Patch

diff --git a/drivers/mmc/host/pxamci.c b/drivers/mmc/host/pxamci.c
index 5f06c7902306..a8b6c14f2687 100644
--- a/drivers/mmc/host/pxamci.c
+++ b/drivers/mmc/host/pxamci.c
@@ -730,8 +730,6 @@  static int pxamci_probe(struct platform_device *pdev)
 	}
 
 	if (host->pdata) {
-		int gpio_cd = host->pdata->gpio_card_detect;
-		int gpio_ro = host->pdata->gpio_card_ro;
 		int gpio_power = host->pdata->gpio_power;
 
 		host->detect_delay_ms = host->pdata->detect_delay_ms;
@@ -755,29 +753,12 @@  static int pxamci_probe(struct platform_device *pdev)
 			dev_err(dev, "Failed requesting gpio_cd\n");
 			goto out;
 		}
-		if (ret == -ENOENT && gpio_is_valid(gpio_cd)) {
-			ret = mmc_gpio_request_cd(mmc, gpio_cd, 0);
-			if (ret) {
-				dev_err(dev, "Failed requesting gpio_cd %d\n",
-					gpio_cd);
-			}
-		}
 
 		ret = mmc_gpiod_request_ro(mmc, "wp", 0, false, 0, NULL);
 		if (ret && ret != -ENOENT) {
 			dev_err(dev, "Failed requesting gpio_ro\n");
 			goto out;
 		}
-		/* Try platform data instead */
-		if (ret == -ENOENT && gpio_is_valid(gpio_ro)) {
-			ret = mmc_gpio_request_ro(mmc, gpio_ro);
-			if (ret) {
-				dev_err(dev,
-					"Failed requesting gpio_ro %d\n",
-					gpio_ro);
-				goto out;
-			}
-		}
 		if (!ret) {
 			host->use_ro_gpio = true;
 			mmc->caps2 |= host->pdata->gpio_card_ro_invert ?
diff --git a/include/linux/platform_data/mmc-pxamci.h b/include/linux/platform_data/mmc-pxamci.h
index 752f97c62ef2..db6c247d42d1 100644
--- a/include/linux/platform_data/mmc-pxamci.h
+++ b/include/linux/platform_data/mmc-pxamci.h
@@ -15,8 +15,6 @@  struct pxamci_platform_data {
 	int (*get_ro)(struct device *);
 	int (*setpower)(struct device *, unsigned int);
 	void (*exit)(struct device *, void *);
-	int gpio_card_detect;			/* gpio detecting card insertion */
-	int gpio_card_ro;			/* gpio detecting read only toggle */
 	bool gpio_card_ro_invert;		/* gpio ro is inverted */
 	int gpio_power;				/* gpio powering up MMC bus */
 	bool gpio_power_invert;			/* gpio power is inverted */