diff mbox

[4/6] mmc: sdhci-esdhc-imx: remove duplicated dts parsing

Message ID 1434564337-24720-5-git-send-email-aisheng.dong@freescale.com (mailing list archive)
State New, archived
Headers show

Commit Message

Dong Aisheng June 17, 2015, 6:05 p.m. UTC
After commit 8d86e4fcccf6 ("mmc: sdhci-esdhc-imx: Call mmc_of_parse()"),
we do not need those duplicated parsing anymore.

Note: fsl,cd-controller is also deleted due to the driver does
not support controller card detection anymore after switch to runtime pm.
And there's no user of it right now in device tree.

wp-gpios is kept because we're still support fsl,wp-controller,
so we need a way to check if it's gpio wp or controller wp.

Signed-off-by: Dong Aisheng <aisheng.dong@freescale.com>
---
 drivers/mmc/host/sdhci-esdhc-imx.c | 14 --------------
 1 file changed, 14 deletions(-)

Comments

Shawn Guo July 9, 2015, 7:38 a.m. UTC | #1
On Thu, Jun 18, 2015 at 02:05:35AM +0800, Dong Aisheng wrote:
> After commit 8d86e4fcccf6 ("mmc: sdhci-esdhc-imx: Call mmc_of_parse()"),
> we do not need those duplicated parsing anymore.
> 
> Note: fsl,cd-controller is also deleted due to the driver does
> not support controller card detection anymore after switch to runtime pm.
> And there's no user of it right now in device tree.
> 
> wp-gpios is kept because we're still support fsl,wp-controller,
> so we need a way to check if it's gpio wp or controller wp.

I do not remember the reason why controller based CD stops working after
we switch to runtime PM.  But if CD stops working for some reason,
shouldn't controller based WP stop working for the same reason?

Shawn

> 
> Signed-off-by: Dong Aisheng <aisheng.dong@freescale.com>
Aisheng Dong July 9, 2015, 8:59 a.m. UTC | #2
On Thu, Jul 09, 2015 at 03:38:35PM +0800, Shawn Guo wrote:
> On Thu, Jun 18, 2015 at 02:05:35AM +0800, Dong Aisheng wrote:
> > After commit 8d86e4fcccf6 ("mmc: sdhci-esdhc-imx: Call mmc_of_parse()"),
> > we do not need those duplicated parsing anymore.
> > 
> > Note: fsl,cd-controller is also deleted due to the driver does
> > not support controller card detection anymore after switch to runtime pm.
> > And there's no user of it right now in device tree.
> > 
> > wp-gpios is kept because we're still support fsl,wp-controller,
> > so we need a way to check if it's gpio wp or controller wp.
> 
> I do not remember the reason why controller based CD stops working after
> we switch to runtime PM.  But if CD stops working for some reason,
> shouldn't controller based WP stop working for the same reason?
> 

The main reason may be CD/WP function needs controller clock on.
But after enable runtime pm, the clock will be disabled.

See below commit:
commit dacf49223fc680e6d5b5ca4ea43dcd197c1814c5
Author: Sascha Hauer <s.hauer@pengutronix.de>
Date:   Fri May 23 14:33:04 2014 +0200

ARM: dts: imx51-babbage: Fix esdhc setup

Since commit 89d7e5c13122 (mmc: sdhci-esdhc-imx: add runtime pm
support), controller based card detection / write protection is not
supported anymore by esdhc driver.  Let's use GPIO for CD/WP on esdhc1
instead.

While at it, fix cd gpio polarity for esdhc2. This is wrong and
currently only works because the imx esdhc driver ignores the polarity.

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>

WP is bit different since sdhci_get_ro will call runtime_pm_get to enable
clocks. So i guess WP may still work.
I did not test, but i did see there's still a lot users of fsl,wp_controller
in device tree which is supposed to work.

There's no fsl,cd-controller users anymore.

Regards
Dong Aisheng

> Shawn
> 
> > 
> > Signed-off-by: Dong Aisheng <aisheng.dong@freescale.com>
diff mbox

Patch

diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
index 10f03ee..1b0e618 100644
--- a/drivers/mmc/host/sdhci-esdhc-imx.c
+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
@@ -884,27 +884,13 @@  sdhci_esdhc_imx_probe_dt(struct platform_device *pdev,
 	struct esdhc_platform_data *boarddata = &imx_data->boarddata;
 	int ret;
 
-	if (of_get_property(np, "non-removable", NULL))
-		boarddata->cd_type = ESDHC_CD_PERMANENT;
-
-	if (of_get_property(np, "fsl,cd-controller", NULL))
-		boarddata->cd_type = ESDHC_CD_CONTROLLER;
-
 	if (of_get_property(np, "fsl,wp-controller", NULL))
 		boarddata->wp_type = ESDHC_WP_CONTROLLER;
 
-	boarddata->cd_gpio = of_get_named_gpio(np, "cd-gpios", 0);
-	if (gpio_is_valid(boarddata->cd_gpio))
-		boarddata->cd_type = ESDHC_CD_GPIO;
-
 	boarddata->wp_gpio = of_get_named_gpio(np, "wp-gpios", 0);
 	if (gpio_is_valid(boarddata->wp_gpio))
 		boarddata->wp_type = ESDHC_WP_GPIO;
 
-	of_property_read_u32(np, "bus-width", &boarddata->max_bus_width);
-
-	of_property_read_u32(np, "max-frequency", &boarddata->f_max);
-
 	if (of_find_property(np, "no-1-8-v", NULL))
 		boarddata->support_vsel = false;
 	else