x86-power-control
Bills, Jason M
jason.m.bills at linux.intel.com
Fri Oct 18 03:01:59 AEDT 2019
Hi Vijay
On 10/16/2019 6:13 PM, Vijay Khemka wrote:
> One more question on code, I see following code requires powerButtonMask
> to be set before aquiring GPIO line. Please let me know who sets this
> powerButtonMask to true. I know this is related to GPIO passthrough but
> still couldn’t understand where in code it gets set until someone call
> set-property of dbus.
powerButtonMask is a gpiod::line object that returns true if it
references a GPIO line and false otherwise.
>
> power_control::powerButtonIface->register_property(
>
> "ButtonMasked", false, [](constboolrequested, bool& current) {
>
> if(requested)
>
> {
>
> if(power_control::powerButtonMask)
>
> {
This will return if powerButtonMask already references a GPIO.
>
> return1;
>
> }
>
> if(!power_control::setGPIOOutput(
>
> "POWER_OUT", 1, power_control::powerButtonMask))
Otherwise, this will request the "POWER_OUT" GPIO and assign it to
powerButtonMask (which will make it return true).
>
> {
>
> throwstd::runtime_error("Failed to request GPIO");
>
> return0;
>
> }
>
> std::cerr << "Power Button Masked.\n";
>
> }
>
> else
>
> {
>
> if(!power_control::powerButtonMask)
>
> {
This will return if powerButtonMask does not reference a GPIO line.
>
> return1;
>
> }
>
> std::cerr << "Power Button Un-masked\n";
>
> power_control::powerButtonMask.reset();
Otherwise this will reset powerButtonMask to release the "POWER_OUT"
GPIO (which will make it return false).
>
> }
>
> Regards
>
> -Vijay
>
More information about the openbmc
mailing list