提交 fa3a5115 编写于 作者: D Daniel Mack 提交者: Ulf Hansson

mmc: pxamci: call mmc_of_parse()

Call into mmc_of_parse() from pxamci_of_init(). As it needs a pointer to a
struct mmc_host, refactor the code a bit.

This allows all generic MMC properties to be set that are described in
Documentation/devicetree/bindings/mmc/mmc.txt. Reword the documentation
a bit to make that clear.

The "cd" and "wp" gpio lookups are removed as the lookup will now be
done by mmc_of_parse().
Signed-off-by: NDaniel Mack <daniel@zonque.org>
Acked-by: NRobert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: NUlf Hansson <ulf.hansson@linaro.org>
上级 0da5358b
...@@ -10,8 +10,8 @@ Optional properties: ...@@ -10,8 +10,8 @@ Optional properties:
- marvell,detect-delay-ms: sets the detection delay timeout in ms. - marvell,detect-delay-ms: sets the detection delay timeout in ms.
- marvell,gpio-power: GPIO spec for the card power enable pin - marvell,gpio-power: GPIO spec for the card power enable pin
This file documents differences between the core properties in mmc.txt In addition to the properties described in this docuent, the details
and the properties used by the pxa-mmc driver. described in mmc.txt are supported.
Examples: Examples:
......
...@@ -591,11 +591,13 @@ static const struct of_device_id pxa_mmc_dt_ids[] = { ...@@ -591,11 +591,13 @@ static const struct of_device_id pxa_mmc_dt_ids[] = {
MODULE_DEVICE_TABLE(of, pxa_mmc_dt_ids); MODULE_DEVICE_TABLE(of, pxa_mmc_dt_ids);
static int pxamci_of_init(struct platform_device *pdev) static int pxamci_of_init(struct platform_device *pdev,
struct mmc_host *mmc)
{ {
struct device_node *np = pdev->dev.of_node; struct device_node *np = pdev->dev.of_node;
struct pxamci_platform_data *pdata; struct pxamci_platform_data *pdata;
u32 tmp; u32 tmp;
int ret;
if (!np) if (!np)
return 0; return 0;
...@@ -604,11 +606,6 @@ static int pxamci_of_init(struct platform_device *pdev) ...@@ -604,11 +606,6 @@ static int pxamci_of_init(struct platform_device *pdev)
if (!pdata) if (!pdata)
return -ENOMEM; return -ENOMEM;
pdata->gpio_card_detect =
of_get_named_gpio(np, "cd-gpios", 0);
pdata->gpio_card_ro =
of_get_named_gpio(np, "wp-gpios", 0);
/* pxa-mmc specific */ /* pxa-mmc specific */
pdata->gpio_power = pdata->gpio_power =
of_get_named_gpio(np, "pxa-mmc,gpio-power", 0); of_get_named_gpio(np, "pxa-mmc,gpio-power", 0);
...@@ -616,12 +613,17 @@ static int pxamci_of_init(struct platform_device *pdev) ...@@ -616,12 +613,17 @@ static int pxamci_of_init(struct platform_device *pdev)
if (of_property_read_u32(np, "pxa-mmc,detect-delay-ms", &tmp) == 0) if (of_property_read_u32(np, "pxa-mmc,detect-delay-ms", &tmp) == 0)
pdata->detect_delay_ms = tmp; pdata->detect_delay_ms = tmp;
ret = mmc_of_parse(mmc);
if (ret < 0)
return ret;
pdev->dev.platform_data = pdata; pdev->dev.platform_data = pdata;
return 0; return 0;
} }
#else #else
static int pxamci_of_init(struct platform_device *pdev) static int pxamci_of_init(struct platform_device *pdev,
struct mmc_host *mmc)
{ {
return 0; return 0;
} }
...@@ -634,10 +636,6 @@ static int pxamci_probe(struct platform_device *pdev) ...@@ -634,10 +636,6 @@ static int pxamci_probe(struct platform_device *pdev)
struct resource *r; struct resource *r;
int ret, irq, gpio_cd = -1, gpio_ro = -1, gpio_power = -1; int ret, irq, gpio_cd = -1, gpio_ro = -1, gpio_power = -1;
ret = pxamci_of_init(pdev);
if (ret)
return ret;
r = platform_get_resource(pdev, IORESOURCE_MEM, 0); r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
irq = platform_get_irq(pdev, 0); irq = platform_get_irq(pdev, 0);
if (irq < 0) if (irq < 0)
...@@ -672,6 +670,10 @@ static int pxamci_probe(struct platform_device *pdev) ...@@ -672,6 +670,10 @@ static int pxamci_probe(struct platform_device *pdev)
*/ */
mmc->max_blk_count = 65535; mmc->max_blk_count = 65535;
ret = pxamci_of_init(pdev, mmc);
if (ret)
return ret;
host = mmc_priv(mmc); host = mmc_priv(mmc);
host->mmc = mmc; host->mmc = mmc;
host->pdata = pdev->dev.platform_data; host->pdata = pdev->dev.platform_data;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册