io-domain voltages as regulators?

Ulf Hansson ulf.hansson at linaro.org
Mon Aug 11 05:46:54 PDT 2014


On 11 August 2014 09:44, Linus Walleij <linus.walleij at linaro.org> wrote:
> On Mon, Aug 4, 2014 at 12:18 AM, Heiko Stübner <heiko at sntech.de> wrote:
>
> [Adding Ulf Hansson to this discussion...]
>
>> Hi Mark, Linus,
>>
>> I'd like to clarify what the appropriate way to handle pin output voltages is.
>> On the Rockchip SoCs the voltage for some groups of pins can be set between
>> 3.3V and 1.8V ... like the MMC/SD pins who need this to support UHS mode
>> cards.
>
> This is called "vqmmc" in the mmc/sd subsystem.
>
> grep for mmc_set_signal_voltage() in drivers/mmc/core/*
>
> In drivers/mmc/core/core.c, you find:
>
>  mmc->supply.vqmmc = devm_regulator_get_optional(dev, "vqmmc");
>
> Which gets the regulator to set the signal voltage, if such
> a regulator is specified for the host.
>
> Very simple and straight-forward, and handled by the MMC core.
>
>> In [0] when talking about something different, Linus Walleij described a
>> similar case as
>>
>> "I think we need to have a discussion with Mark Brown on how to
>> handle this.
>> We have previously had the case of MMC/SD level-shifters, where
>> a certain setting gives a certain level of signals out, and another setting
>> gives another level. Like two discrete levels.
>> So we modeled that as a regulator provider inside the pin control
>> driver eventually, see sh-pfc/pfc-sh73a0.c"
>>
>> As this sound like exactly the thing I'm trying to solve, is handling this via
>> a regulator the correct general way?
>
> Ithinkso.

Just to confirm, I fully agree with the above said.

You may also find a good example in the mmci host driver for how to
make use of the vqmmc regulator.

Kind regards
Uffe



More information about the linux-arm-kernel mailing list