[PATCH 3/5] MMC: mmci: Add generic Device Tree bindings to mmci core code

Per Forlin per.forlin at stericsson.com
Thu Mar 15 11:12:21 EDT 2012


On Wed, Mar 14, 2012 at 3:20 PM, Lee Jones <lee.jones at linaro.org> wrote:
> This adds the necessary bindings for collection of shared
> attributes used in the mmci driver.
>
> Signed-off-by: Lee Jones <lee.jones at linaro.org>
> ---
>  drivers/mmc/host/mmci.c |   43 +++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 43 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
> index 23b41a5..9132ca8 100644
> --- a/drivers/mmc/host/mmci.c
> +++ b/drivers/mmc/host/mmci.c
> @@ -30,6 +30,7 @@
>  #include <linux/dma-mapping.h>
>  #include <linux/amba/mmci.h>
>  #include <linux/pm_runtime.h>
> +#include <linux/of_gpio.h>
>
>  #include <asm/div64.h>
>  #include <asm/io.h>
> @@ -1056,11 +1057,47 @@ static const struct mmc_host_ops mmci_ops = {
>        .get_cd         = mmci_get_cd,
>  };
>
> +#ifdef CONFIG_OF
> +static void mmci_dt_populate_generic_pdata(struct device_node *np,
> +                                       struct mmci_platform_data *pdata)
> +{
> +       const void *prop;
> +       int len;
> +
> +       of_property_read_u32(np, "wp-gpios", &pdata->gpio_wp);
> +       if (!pdata->gpio_wp)
> +               pdata->gpio_wp = -1;
> +
> +       of_property_read_u32(np, "cd-gpios", &pdata->gpio_cd);
> +       if (!pdata->gpio_cd)
> +               pdata->gpio_cd = -1;
> +
> +       if (of_get_property(np, "cd-invert", NULL))
> +               pdata->cd_invert = true;
> +       else
> +               pdata->cd_invert = false;
> +
> +       of_property_read_u32(np, "clock_frequency", &pdata->f_max);
> +       if (!pdata->f_max)
> +               pr_warning("%s has no 'clock_frequency' property\n", np->full_name);
> +
> +       if (of_get_property(np, "mmc_cap_4_bit_data", NULL))
I have no previous experience with DT. Could you please bring some
light on this.
Is it really necessary to represent each bit in the CAP with a string?
To add CAP_ERASE for instance I need to change the code here and
update the DT, right?

BR
Per



More information about the linux-arm-kernel mailing list