Re: regulator: adding enable control to fixed regulator interface

From: Roger Quadros
Date: Thu Jul 30 2009 - 08:53:02 EST


On Thu, Jul 30, 2009 at 3:36 PM, Mark
Brown<broonie@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, Jul 30, 2009 at 03:20:24PM +0300, Roger Quadros wrote:
>
> [Cut description of GPIO-switched regulator.]
>
>> What is the best way to implement this within the regulator framework?
>> Writing a regulator driver is one solution but I'm sure there must be
>> many instances like this and writing a driver for each case is not
>> that nice.
>
> Only one driver should be needed even if a new driver is implemented for
> this - we already have an abstracted API for GPIOs in the form of
> gpiolib (see drivers/gpio) so the driver can just take in platform data
> with the gpio number and a voltage as platform data.
>

Yes using gpiolib makes sense. In this case we need to obtain GPIO number
and enabling polarity (active high/low) through platform data.

>> I want to use the fixed regulator driver but this does not have
>> regulator enable/disable control.
>
>> Isn't it a good idea to have enable/disable control for the current
>> implementation of the fixed voltage regulator i.e. drivers/regulator/fixed.c ?
>
> It should be possible to do it with platform data for the fixed voltage
> regulator, though without looking at the code I can't say for certain if
> it'd be easier to just add a separate driver rather than have the
> conditional code to handle cases both with and without GPIO.  I'd expect
> it'll be fine to combine, though.
>
>> The regulator enabling/disabling functionality can be implemented by
>> platform code and the required function pointers could be passed through
>> fixed_voltage_config structure.
>
> I don't see any need for platform code to provide callbacks here given
> the existing gpiolib abstraction.
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/