* [PATCH] mmc: mmci: Drop support for pdata GPIO numbers
@ 2018-09-20 23:01 Linus Walleij
2018-09-26 23:48 ` Ulf Hansson
0 siblings, 1 reply; 2+ messages in thread
From: Linus Walleij @ 2018-09-20 23:01 UTC (permalink / raw)
To: linux-arm-kernel
All the machines using the MMCI are passing GPIOs for the
card detect and write protect using the device tree or
descriptor table (one single case, Integrator/AP IM-PD1).
Drop support for passing global GPIO numbers through
platform data, noone is using it.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
---
arch/arm/mach-integrator/integrator_cp.c | 2 --
arch/arm/mach-versatile/versatile_dt.c | 4 ---
drivers/mmc/host/mmci.c | 34 +++++-------------------
include/linux/amba/mmci.h | 11 ++------
4 files changed, 8 insertions(+), 43 deletions(-)
diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c
index 772a7cf2010e..976ded5c5916 100644
--- a/arch/arm/mach-integrator/integrator_cp.c
+++ b/arch/arm/mach-integrator/integrator_cp.c
@@ -80,8 +80,6 @@ static unsigned int mmc_status(struct device *dev)
static struct mmci_platform_data mmc_data = {
.ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
.status = mmc_status,
- .gpio_wp = -1,
- .gpio_cd = -1,
};
static u64 notrace intcp_read_sched_clock(void)
diff --git a/arch/arm/mach-versatile/versatile_dt.c b/arch/arm/mach-versatile/versatile_dt.c
index 3c8d39c12909..e9d60687e416 100644
--- a/arch/arm/mach-versatile/versatile_dt.c
+++ b/arch/arm/mach-versatile/versatile_dt.c
@@ -89,15 +89,11 @@ unsigned int mmc_status(struct device *dev)
static struct mmci_platform_data mmc0_plat_data = {
.ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
.status = mmc_status,
- .gpio_wp = -1,
- .gpio_cd = -1,
};
static struct mmci_platform_data mmc1_plat_data = {
.ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
.status = mmc_status,
- .gpio_wp = -1,
- .gpio_cd = -1,
};
/*
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index 1841d250e9e2..4b843712dc01 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -28,8 +28,7 @@
#include <linux/amba/bus.h>
#include <linux/clk.h>
#include <linux/scatterlist.h>
-#include <linux/gpio.h>
-#include <linux/of_gpio.h>
+#include <linux/of.h>
#include <linux/regulator/consumer.h>
#include <linux/dmaengine.h>
#include <linux/dma-mapping.h>
@@ -1675,13 +1674,6 @@ static int mmci_probe(struct amba_device *dev,
else if (plat->ocr_mask)
dev_warn(mmc_dev(mmc), "Platform OCR mask is ignored\n");
- /* DT takes precedence over platform data. */
- if (!np) {
- if (!plat->cd_invert)
- mmc->caps2 |= MMC_CAP2_CD_ACTIVE_HIGH;
- mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH;
- }
-
/* We support these capabilities. */
mmc->caps |= MMC_CAP_CMD23;
@@ -1749,30 +1741,16 @@ static int mmci_probe(struct amba_device *dev,
* - not using DT but using a descriptor table, or
* - using a table of descriptors ALONGSIDE DT, or
* look up these descriptors named "cd" and "wp" right here, fail
- * silently of these do not exist and proceed to try platform data
+ * silently of these do not exist
*/
if (!np) {
ret = mmc_gpiod_request_cd(mmc, "cd", 0, false, 0, NULL);
- if (ret < 0) {
- if (ret == -EPROBE_DEFER)
- goto clk_disable;
- else if (gpio_is_valid(plat->gpio_cd)) {
- ret = mmc_gpio_request_cd(mmc, plat->gpio_cd, 0);
- if (ret)
- goto clk_disable;
- }
- }
+ if (ret == -EPROBE_DEFER)
+ goto clk_disable;
ret = mmc_gpiod_request_ro(mmc, "wp", 0, false, 0, NULL);
- if (ret < 0) {
- if (ret == -EPROBE_DEFER)
- goto clk_disable;
- else if (gpio_is_valid(plat->gpio_wp)) {
- ret = mmc_gpio_request_ro(mmc, plat->gpio_wp);
- if (ret)
- goto clk_disable;
- }
- }
+ if (ret == -EPROBE_DEFER)
+ goto clk_disable;
}
ret = devm_request_irq(&dev->dev, dev->irq[0], mmci_irq, IRQF_SHARED,
diff --git a/include/linux/amba/mmci.h b/include/linux/amba/mmci.h
index da8357ba11bc..c92ebc39fc1f 100644
--- a/include/linux/amba/mmci.h
+++ b/include/linux/amba/mmci.h
@@ -18,20 +18,13 @@
* mask into a value to be binary (or set some other custom bits
* in MMCIPWR) or:ed and written into the MMCIPWR register of the
* block. May also control external power based on the power_mode.
- * @status: if no GPIO read function was given to the block in
- * gpio_wp (below) this function will be called to determine
- * whether a card is present in the MMC slot or not
- * @gpio_wp: read this GPIO pin to see if the card is write protected
- * @gpio_cd: read this GPIO pin to detect card insertion
- * @cd_invert: true if the gpio_cd pin value is active low
+ * @status: if no GPIO line was given to the block in this function will
+ * be called to determine whether a card is present in the MMC slot or not
*/
struct mmci_platform_data {
unsigned int ocr_mask;
int (*ios_handler)(struct device *, struct mmc_ios *);
unsigned int (*status)(struct device *);
- int gpio_wp;
- int gpio_cd;
- bool cd_invert;
};
#endif
--
2.17.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH] mmc: mmci: Drop support for pdata GPIO numbers
2018-09-20 23:01 [PATCH] mmc: mmci: Drop support for pdata GPIO numbers Linus Walleij
@ 2018-09-26 23:48 ` Ulf Hansson
0 siblings, 0 replies; 2+ messages in thread
From: Ulf Hansson @ 2018-09-26 23:48 UTC (permalink / raw)
To: linux-arm-kernel
On 21 September 2018 at 01:01, Linus Walleij <linus.walleij@linaro.org> wrote:
> All the machines using the MMCI are passing GPIOs for the
> card detect and write protect using the device tree or
> descriptor table (one single case, Integrator/AP IM-PD1).
>
> Drop support for passing global GPIO numbers through
> platform data, noone is using it.
>
> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Applied for next, thanks!
Kind regards
Uffe
> ---
> arch/arm/mach-integrator/integrator_cp.c | 2 --
> arch/arm/mach-versatile/versatile_dt.c | 4 ---
> drivers/mmc/host/mmci.c | 34 +++++-------------------
> include/linux/amba/mmci.h | 11 ++------
> 4 files changed, 8 insertions(+), 43 deletions(-)
>
> diff --git a/arch/arm/mach-integrator/integrator_cp.c b/arch/arm/mach-integrator/integrator_cp.c
> index 772a7cf2010e..976ded5c5916 100644
> --- a/arch/arm/mach-integrator/integrator_cp.c
> +++ b/arch/arm/mach-integrator/integrator_cp.c
> @@ -80,8 +80,6 @@ static unsigned int mmc_status(struct device *dev)
> static struct mmci_platform_data mmc_data = {
> .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
> .status = mmc_status,
> - .gpio_wp = -1,
> - .gpio_cd = -1,
> };
>
> static u64 notrace intcp_read_sched_clock(void)
> diff --git a/arch/arm/mach-versatile/versatile_dt.c b/arch/arm/mach-versatile/versatile_dt.c
> index 3c8d39c12909..e9d60687e416 100644
> --- a/arch/arm/mach-versatile/versatile_dt.c
> +++ b/arch/arm/mach-versatile/versatile_dt.c
> @@ -89,15 +89,11 @@ unsigned int mmc_status(struct device *dev)
> static struct mmci_platform_data mmc0_plat_data = {
> .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
> .status = mmc_status,
> - .gpio_wp = -1,
> - .gpio_cd = -1,
> };
>
> static struct mmci_platform_data mmc1_plat_data = {
> .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34,
> .status = mmc_status,
> - .gpio_wp = -1,
> - .gpio_cd = -1,
> };
>
> /*
> diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
> index 1841d250e9e2..4b843712dc01 100644
> --- a/drivers/mmc/host/mmci.c
> +++ b/drivers/mmc/host/mmci.c
> @@ -28,8 +28,7 @@
> #include <linux/amba/bus.h>
> #include <linux/clk.h>
> #include <linux/scatterlist.h>
> -#include <linux/gpio.h>
> -#include <linux/of_gpio.h>
> +#include <linux/of.h>
> #include <linux/regulator/consumer.h>
> #include <linux/dmaengine.h>
> #include <linux/dma-mapping.h>
> @@ -1675,13 +1674,6 @@ static int mmci_probe(struct amba_device *dev,
> else if (plat->ocr_mask)
> dev_warn(mmc_dev(mmc), "Platform OCR mask is ignored\n");
>
> - /* DT takes precedence over platform data. */
> - if (!np) {
> - if (!plat->cd_invert)
> - mmc->caps2 |= MMC_CAP2_CD_ACTIVE_HIGH;
> - mmc->caps2 |= MMC_CAP2_RO_ACTIVE_HIGH;
> - }
> -
> /* We support these capabilities. */
> mmc->caps |= MMC_CAP_CMD23;
>
> @@ -1749,30 +1741,16 @@ static int mmci_probe(struct amba_device *dev,
> * - not using DT but using a descriptor table, or
> * - using a table of descriptors ALONGSIDE DT, or
> * look up these descriptors named "cd" and "wp" right here, fail
> - * silently of these do not exist and proceed to try platform data
> + * silently of these do not exist
> */
> if (!np) {
> ret = mmc_gpiod_request_cd(mmc, "cd", 0, false, 0, NULL);
> - if (ret < 0) {
> - if (ret == -EPROBE_DEFER)
> - goto clk_disable;
> - else if (gpio_is_valid(plat->gpio_cd)) {
> - ret = mmc_gpio_request_cd(mmc, plat->gpio_cd, 0);
> - if (ret)
> - goto clk_disable;
> - }
> - }
> + if (ret == -EPROBE_DEFER)
> + goto clk_disable;
>
> ret = mmc_gpiod_request_ro(mmc, "wp", 0, false, 0, NULL);
> - if (ret < 0) {
> - if (ret == -EPROBE_DEFER)
> - goto clk_disable;
> - else if (gpio_is_valid(plat->gpio_wp)) {
> - ret = mmc_gpio_request_ro(mmc, plat->gpio_wp);
> - if (ret)
> - goto clk_disable;
> - }
> - }
> + if (ret == -EPROBE_DEFER)
> + goto clk_disable;
> }
>
> ret = devm_request_irq(&dev->dev, dev->irq[0], mmci_irq, IRQF_SHARED,
> diff --git a/include/linux/amba/mmci.h b/include/linux/amba/mmci.h
> index da8357ba11bc..c92ebc39fc1f 100644
> --- a/include/linux/amba/mmci.h
> +++ b/include/linux/amba/mmci.h
> @@ -18,20 +18,13 @@
> * mask into a value to be binary (or set some other custom bits
> * in MMCIPWR) or:ed and written into the MMCIPWR register of the
> * block. May also control external power based on the power_mode.
> - * @status: if no GPIO read function was given to the block in
> - * gpio_wp (below) this function will be called to determine
> - * whether a card is present in the MMC slot or not
> - * @gpio_wp: read this GPIO pin to see if the card is write protected
> - * @gpio_cd: read this GPIO pin to detect card insertion
> - * @cd_invert: true if the gpio_cd pin value is active low
> + * @status: if no GPIO line was given to the block in this function will
> + * be called to determine whether a card is present in the MMC slot or not
> */
> struct mmci_platform_data {
> unsigned int ocr_mask;
> int (*ios_handler)(struct device *, struct mmc_ios *);
> unsigned int (*status)(struct device *);
> - int gpio_wp;
> - int gpio_cd;
> - bool cd_invert;
> };
>
> #endif
> --
> 2.17.1
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-09-26 23:48 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-20 23:01 [PATCH] mmc: mmci: Drop support for pdata GPIO numbers Linus Walleij
2018-09-26 23:48 ` Ulf Hansson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).