Subject: [PATCH v3] PM / AVS: rockchip-io: add driver handling Rockchip io domains

From: [email-masked] (Kevin Hilman)
Date: Fri, 12 Sep 2014 09:25:04 -0700

Rafael,

Doug Anderson <[email-masked]> writes:

> From: Heiko St?bner <[email-masked]>
>
> IO domain voltages on some Rockchip SoCs are variable but need to be
> kept in sync between the regulators and the SoC using a special
> register.
>
> A specific example using rk3288:
> - If the regulator hooked up to a pin like SDMMC0_VDD is 3.3V then
>   bit 7 of GRF_IO_VSEL needs to be 0.  If the regulator hooked up to
>   that same pin is 1.8V then bit 7 of GRF_IO_VSEL needs to be 1.
>
> Said another way, this driver simply handles keeping bits in the SoC's
> general register file (GRF) in sync with the actual value of a voltage
> hooked up to the pins.
>
> Note that this driver specifically doesn't include:
> - any logic for deciding what voltage we should set regulators to
> - any logic for deciding whether regulators (or internal SoC blocks)
>   should have power or not have power
>
> If there were some other software that had the smarts of making
> decisions about regulators, it would work in conjunction with this
> driver.  When that other software adjusted a regulator's voltage then
> this driver would handle telling the SoC about it.  A good example is
> vqmmc for SD.  In that case the dw_mmc driver simply is told about a
> regulator.  It changes the regulator between 3.3V and 1.8V at the
> right time.  This driver notices the change and makes sure that the
> SoC is on the same page.
>
> Signed-off-by: Heiko St?bner <[email-masked]>
> Signed-off-by: Doug Anderson <[email-masked]>
> Reviewed-by: Santosh Shilimkar <[email-masked]>
> ---
> Changes in v3:
> - Changed compatible string as per Santosh.

Thanks, I like the new string better.

> - Added code docs about the slop in 1.8V and 3.3V as per Santosh.
> - Moved some #defines to the top as per Santosh.

All nice changes, thanks Santosh!

Reviewed-by: Kevin Hilman <[email-masked]>

Rafael, how do you want to handle drivers/avs/* ?  Along with Nishanth,
I'm maintaining everything there currently (only one driver :)), and
since I recommended $SUBJECT driver go into drivers/avs[1], I'm happy to
queue it for you and update MAINTAINERS to cover drivers/avs/* instead
of just smartreflex.c.

Let me know how you'd like to proceed.

Kevin

[1] http://lists.infradead.org/pipermail/linux-arm-kernel/2014-September/286276.html