[PATCH v2 06/10] mmc: omap_hsmmc: add support for pbias configuration in dt

Lee Jones lee.jones at linaro.org
Fri Jun 14 02:17:31 EST 2013


On Thu, 13 Jun 2013, Balaji T K wrote:

> On Thursday 13 June 2013 04:17 PM, Lee Jones wrote:
> >On Thu, 13 Jun 2013, Linus Walleij wrote:
> >
> >>On Thu, Jun 6, 2013 at 9:14 PM, Balaji T K <balajitk at ti.com> wrote:
> >>
> >>>PBIAS register configuration is based on the regulator voltage
> >>>which supplies these pbias cells, sd i/o pads.
> >>>With PBIAS register address and bit definitions different across
> >>>omap[3,4,5], Simplify PBIAS configuration under three different
> >>>regulator voltage levels - O V, 1.8 V, 3 V. Corresponding pinctrl states
> >>>are defined as pbias_off, pbias_1v8, pbias_3v.
> >>>
> >>>pinctrl state mmc_init is used for configuring speed mode, loopback clock
> >>>(in devconf0/devconf1/prog_io1 register for omap3) and pull strength
> >>>configuration (in control_mmc1 for omap4)
> >>>
> >>>Signed-off-by: Balaji T K <balajitk at ti.com>
> >>
> >>You *need* Lee Jones and Mark Brown to review this.
> >>Maybe Laurent has something to add too.
> >>
> >>Ux500 had the very same thing, and there this was solved using
> >>a GPIO regulator for "vqmmc" a level-shifter. I vaguely remember
> >>Laurent doing something similar with the SH stuff.
> >
> >I haven't seem much of this patch-set, but this certainly looks like
> >it should be handled by a GPIO regulator instead of pinctrl. States
> >are easily declared in a 'struct gpio_regulator_state', which the
> >framework then uses to set the correct pins for the required voltage.
> >
> 
> Thanks for the pointer, but wondering why is it named as gpio-regulator
> and how it is different from fixed-regulator.
> After going through git log description, I understand that voltage/current level
> for a particular regulator is controlled by a set of pad/pin on the POWER IC
> and pad/pin may be usually connected to gpio pins if it is needs to be
> configurable and ground/pulled for constant voltage.
> 
> Collection of gpios logic level are modeled as state for particular voltage.
> But gpio is not used in my case.
> 
> >And yes, 'vqmmc' is a good place to store the this regulator.

As I say, I didn't see much of the code, only parts which looked
similar a voltage level-shifter.

The difference between fixed and gpio regulators, is that the former
is exactly that, 'fixed'. You can turn voltage on and off using a gpio
pin, but you can't shift the voltage. Something which is required of
your use-case. The latter switches between voltgages via a set of gpio
pins, for instance, your use-case could look somelike like:

static struct gpio_regulator_state sdi0_reg_states[] = {
        { .value = 3300000, .gpios = (1 << 0) },
        { .value = 1800000, .gpios = (0 << 0) },
};

But if there aren't any gpio pins involved, then this isn't what you
want either.

-- 
Lee Jones
Linaro ST-Ericsson Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog


More information about the devicetree-discuss mailing list