<html><head></head><body><div class="ydpe4b991acyahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:16px;"><div><div dir="ltr" data-setdir="false">Hi Jason, </div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><div dir="ltr" data-setdir="false"><span style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif;">Front panel stop working from there until the next </span><span style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif;">reboot even after stopping gpioset.</span></div><div dir="ltr" data-setdir="false"><span style="font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><br></span></div><div dir="ltr" data-setdir="false">I test it with getting POWER_OUT line value and then released line like this:</div><div dir="ltr" data-setdir="false"><div><div><br></div><div>#include <gpiod.hpp></div><div><br></div><div>#include <iostream></div><div><br></div><div>int main(int argc, char** argv)</div><div>{</div><div>    gpiod::line line = gpiod::find_line("POWER_OUT");</div><div>    if (!line)</div><div>    {</div><div>        std::cerr << "find line error\n";</div><div>        return -1;</div><div>    }</div><div><br></div><div>    try</div><div>    {</div><div>        line.request({"pwr", gpiod::line_request::EVENT_BOTH_EDGES, {}});</div><div>    }</div><div>    catch (const std::exception& ec)</div><div>    {</div><div>        std::cerr << ec.what();</div><div>    }</div><div><br></div><div>    int state = line.get_value();</div><div>    std::cout << state << '\n';</div><div>    line.release();</div><div><br></div><div>    return 0;</div><div>}</div></div><br></div></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">But front panel button also doesnt work with getting value.</div><div><br></div><div class="ydpe4b991acsignature"><div dir="ltr" style="font-family:Helvetica, Arial, sans-serif;font-size:16px;"><div><span style="font-family:Helvetica, Arial, sans-serif;">--</span><br clear="none" style="font-family:Helvetica, Arial, sans-serif;"><span style="font-family:Helvetica, Arial, sans-serif;">Best regards,</span><br clear="none" style="font-family:Helvetica, Arial, sans-serif;"><span style="font-family:Helvetica, Arial, sans-serif;">Nikita Pavlov,</span><br clear="none" style="font-family:Helvetica, Arial, sans-serif;"><span style="font-family:Helvetica, Arial, sans-serif;">NUST MISiS Student</span></div><br></div></div></div>
        <div><br></div><div><br></div>
        
        </div><div id="yahoo_quoted_2320514506" class="yahoo_quoted">
            <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                
                <div>
                    понедельник, 2 мая 2022 г., 18:36:24 GMT+3, Bills, Jason M <jason.m.bills@linux.intel.com> написал(-а):
                </div>
                <div><br></div>
                <div><br></div>
                <div><div dir="ltr">Hi Nikita,<br clear="none"><br clear="none">On 4/30/2022 7:25 AM, Nikita Pavlov wrote:<br clear="none">> Hi Jason, thank you for your response. In my platform I have <br clear="none">> power-control gpios in GPIOD group like this:<br clear="none">> <br clear="none">> /*D0-D7*/ "POWER_BUTTON","POWER_OUT","RESET_BUTTON","RESET_OUT",<br clear="none">> <br clear="none">> Also I configurate pass-through mode in dts:<br clear="none">> <br clear="none">>          pinctrl-names = "pass-through";<br clear="none">>          pinctrl-0 = <&pinctrl_gpid0_default<br clear="none">>                              &pinctrl_gpid2_default>;<br clear="none"><br clear="none">Could you please share what is your BMC hardware version?<br clear="none">> <br clear="none">> After update and reboot platform I have same problem - front panel <br clear="none">> buttons dont enable (front panel buttons dont enable if I use <br clear="none">> x86-power-control module or manually set gpio values by gpioset utility).<br clear="none">> But if I dont use any impacts on gpio (disable x86-power-control module <br clear="none">> and dont use gpio utilities like gpioset/get) front panel buttons work well.<br clear="none">> <br clear="none">> What are your assumptions about this ?<br clear="none"><br clear="none">The pass-through is set up as a mux in pinctrl.  If I remember <br clear="none">correctly, the output pin has GPIO output and pass-through mode as two <br clear="none">different options in the pinctrl mux.<br clear="none"><br clear="none">So, when you request the output pin using libgpiod, it automatically <br clear="none">configures the pinctrl to disable the pass-through. You should be able <br clear="none">to re-enable pass-through by simply releasing control of the output pin <br clear="none">in libgpiod.<br clear="none"><br clear="none">For simplicity, let's work with just the gpioset utility and not use <br clear="none">x86-power-control.  So, when you initially boot, the pass-through is <br clear="none">working. You then use gpioset to change the output pin (which will <br clear="none">switch the pinctrl mux and disable pass-through mode causing the front <br clear="none">panel to stop working). When you stop gpioset, it should release the <br clear="none">gpio and switch the mux back to enable pass-through mode for the front <br clear="none">panel to work again.<br clear="none"><br clear="none">In your test does the front panel start working again after stopping <br clear="none">gpioset? Or does the front panel stop working from there until the next <br clear="none">reboot even after stopping gpioset?<br clear="none"><br clear="none">Thanks,<div class="yqt5727141433" id="yqtfd20813"><br clear="none">-Jason<br clear="none"><br clear="none">> <br clear="none">> <br clear="none">> <br clear="none">> --<br clear="none">> Best regards,<br clear="none">> Nikita Pavlov,<br clear="none">> NUST MISiS Student<br clear="none">> <br clear="none">> <br clear="none">> <br clear="none">> четверг, 28 апреля 2022 г., 23:01:13 GMT+3, Bills, Jason M <br clear="none">> <<a shape="rect" ymailto="mailto:jason.m.bills@intel.com" href="mailto:jason.m.bills@intel.com">jason.m.bills@intel.com</a>> написал(-а):<br clear="none">> <br clear="none">> <br clear="none">> Hi Nikita,<br clear="none">> <br clear="none">> In the hardware, we have the power button routed through a GPIO <br clear="none">> pass-through on the Aspeed chip.  If that pass-through is disabled, it <br clear="none">> will prevent the physical front panel button signal from getting past <br clear="none">> the BMC.  That is the first thing I would check.<br clear="none">> <br clear="none">> Also, it is better to send these kinds of questions to the OpenBMC <br clear="none">> mailing list as there may be others in the community in a similar situation.<br clear="none">> <br clear="none">> Thanks,<br clear="none">> <br clear="none">> -Jason<br clear="none">> <br clear="none">> *From:* Nikita Pavlov <<a shape="rect" ymailto="mailto:niikita@yahoo.com" href="mailto:niikita@yahoo.com">niikita@yahoo.com</a>><br clear="none">> *Sent:* Thursday, April 28, 2022 8:58 AM<br clear="none">> *To:* Bills, Jason M <<a shape="rect" ymailto="mailto:jason.m.bills@intel.com" href="mailto:jason.m.bills@intel.com">jason.m.bills@intel.com</a>>; <a shape="rect" ymailto="mailto:kuiying.wang@intel.com" href="mailto:kuiying.wang@intel.com">kuiying.wang@intel.com</a><br clear="none">> *Subject:* x86-power-control question: front panel buttons dont work<br clear="none">> <br clear="none">> Hi, I user x86-power-control module for my test intel platform. Its <br clear="none">> module works in webui but front panel physical buttons doesnt work. I <br clear="none">> think that it interface describe in this fragment <br clear="none">> <a shape="rect" href="https://github.com/openbmc/x86-power-control/blob/master/src/power_control.cpp#L3072 " target="_blank">https://github.com/openbmc/x86-power-control/blob/master/src/power_control.cpp#L3072 </a><br clear="none">> <<a shape="rect" href="https://github.com/openbmc/x86-power-control/blob/master/src/power_control.cpp#L3072" target="_blank">https://github.com/openbmc/x86-power-control/blob/master/src/power_control.cpp#L3072</a>> but <br clear="none">> I cant understand this logic.<br clear="none">> <br clear="none">> Say me pls, why front panel buttons dont work ?<br clear="none">> <br clear="none">> --<br clear="none">> Best regards,<br clear="none">> Nikita Pavlov,<br clear="none">> NUST MISiS Student<br clear="none">> <br clear="none"></div></div></div>
            </div>
        </div></body></html>