[REPOST RFC PATCH 0/3] New "gpio-poweroff" driver to turn off platform devices with GPIOs
Moffett, Kyle D
Kyle.D.Moffett at boeing.com
Wed Dec 14 07:44:48 EST 2011
On Dec 13, 2011, at 14:10, Rob Herring wrote:
> On 12/13/2011 12:23 PM, Kyle Moffett wrote:
>>
>> I posted this patch series a few weeks ago and saw no responses, so I
>> tweaked the CC list and am reposting it again for review.
>>
>> I'm working on support for some custom hardware of ours, and part of
>> the support code is the ability for the software to shutdown the power
>> supply using GPIOs (via an I2C GPIO controller).
>>
>> I previously had this in my platform code, but it seemed generically
>> useful, so I split it out into a separate module for others to use.
>>
>> The first two patches are generic of_gpio enhancements, providing some
>> new library functions for requesting lots of GPIOs at once.
>>
>> The third patch is the actual driver itself. The driver can be used to
>> instantiate a platform device as a whole-machine-poweroff device as we
>> use it on our hardware. Alternatively it can instantiate multiple
>> platform devs at specific locations on the device tree which trigger
>> from the platform_driver->shutdown() callback.
>>
>> For architectures which are still stuck in the dark ages, this driver
>> also supports being instantiated via legacy platform_data.
>
> Leave them there... :)
Mostly this was out of convenience and imitating the other OF platform
drivers. I wrote it and ended up with a struct full of probe data being
passed between functions, so I just called it "platform_data" :-D.
>> The OpenFirmware binding documentation is added in the third patch.
>> Since this is my first cut, it's a little rough, so please be gentle.
>>
>> I'm interested to know what you all think.
>
> Does the regulator framework gpio-regulator not work for this?
Well, when I initially wrote this code, the regulator framework didn't
exist :-D.
I looked at it a bit when I was generalizing my code, but it seemed
dramatically more complicated than I needed, and I couldn't see any
reasonable way to hook it from the machine_poweroff() code.
There's also the fact that I was looking for a pure-device-tree type
of driver and the regulator framework does not seem to support the
standard OF-platform probe system.
I will admit that there's probably some value in having a more generic
GPIO-power-control (instead of just poweroff), but I don't have the
target use-case to be able to design for it.
> The DT gpio patches look useful on their own.
Yeah, it seemed like a fairly generic extension of the existing API.
Thanks for the comments!
Cheers,
Kyle Moffett
--
Curious about my work on the Debian powerpcspe port?
I'm keeping a blog here: http://pureperl.blogspot.com/
More information about the devicetree-discuss
mailing list