<html><head></head><body><div class="ydp4583c686yahoo-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"><span>I still have this problem. After power off board I cant run it from physical buttons.</span></div><div dir="ltr" data-setdir="false">Pass-through mode configured in kernel like CONFIG_ or it comes as a kernel patch ?<br></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><span>I have GPIOD0 <span><span style="color: rgb(0, 0, 0); font-family: Helvetica Neue, Helvetica, Arial, sans-serif; font-size: 16px;">power button </span></span>GPIOD1 power out. Kernel show this debug information in sysfs <span>/sys/kernel/debug/pinctrl/1e6e2080.pinctrl-aspeed-g5-pinctrl/pingroups:</span></span></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><span><div><div>group: GPID0</div><div>pin 24 (F19)</div><div>pin 25 (E21)</div><div><br></div><div>group: GPID2</div><div>pin 26 (F20)</div><div>pin 27 (D20)</div><div><br></div><div>group: GPID4</div><div>pin 28 (D21)</div><div>pin 29 (E20)</div><div><br></div><div>group: GPID6</div><div>pin 30 (G18)</div><div>pin 31 (C21)</div><div><br></div><div>group: GPIE0</div><div>pin 32 (B20)</div><div>pin 33 (C20)</div><div><br></div><div>group: GPIE2</div><div>pin 34 (F18)</div><div>pin 35 (F17)</div></div><div>......</div><div><br></div></span></div><div dir="ltr" data-setdir="false">I cant understand what it mean but in this debug file among all gpios there are only GPIOD and GPIOE gpio banks.</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><br></div><div class="ydp4583c686signature"><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_5601818569" class="yahoo_quoted">
            <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                
                <div>
                    среда, 8 июня 2022 г., 18:04:16 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">Sorry for the delay on this as I was on leave.  Did this get resolved?<br clear="none"><br clear="none">On 5/11/2022 2:05 AM, Nikita Pavlov wrote:<br clear="none">> Hi Jason,<br clear="none">> <br clear="none">> Front panel stop working from there until the next reboot even after <br clear="none">> stopping gpioset.<br clear="none">It sounds like something in the pinctrl muxing is not behaving as expected.<br clear="none"><br clear="none">Do you use Aspeed?  What version of Aspeed chip are you using? (This <br clear="none">will help find the pinctrl info in the kernel which is hardware-specific.)<br clear="none"><br clear="none">> <br clear="none">> I test it with getting POWER_OUT line value and then released line like <br clear="none">> this:<br clear="none">> <br clear="none">> #include <gpiod.hpp><br clear="none">> <br clear="none">> #include <iostream><br clear="none">> <br clear="none">> int main(int argc, char** argv)<br clear="none">> {<br clear="none">>      gpiod::line line = gpiod::find_line("POWER_OUT");<br clear="none">>      if (!line)<br clear="none">>      {<br clear="none">>          std::cerr << "find line error\n";<br clear="none">>          return -1;<br clear="none">>      }<br clear="none">> <br clear="none">>      try<br clear="none">>      {<br clear="none">>          line.request({"pwr", gpiod::line_request::EVENT_BOTH_EDGES, {}});<br clear="none">>      }<br clear="none">>      catch (const std::exception& ec)<br clear="none">>      {<br clear="none">>          std::cerr << ec.what();<br clear="none">>      }<br clear="none">> <br clear="none">>      int state = line.get_value();<br clear="none">>      std::cout << state << '\n';<br clear="none">>      line.release();<br clear="none">> <br clear="none">>      return 0;<br clear="none">> }<br clear="none">> <br clear="none">> <br clear="none">> But front panel button also doesnt work with getting value.<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">> понедельник, 2 мая 2022 г., 18:36:24 GMT+3, Bills, Jason M <br clear="none">> <<a shape="rect" ymailto="mailto:jason.m.bills@linux.intel.com" href="mailto:jason.m.bills@linux.intel.com">jason.m.bills@linux.intel.com</a>> написал(-а):<br clear="none">> <br clear="none">> <br clear="none">> 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 <br clear="none">> 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,<br clear="none">> <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> <mailto:<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 <br clear="none">> 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> <mailto:<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> <br clear="none">> <mailto:<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">> <mailto:<a shape="rect" ymailto="mailto:kuiying.wang@intel.com" href="mailto:kuiying.wang@intel.com">kuiying.wang@intel.com</a>><div class="yqt1021942522" id="yqtfd63322"><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">>  > <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><br clear="none">>  ><br clear="none">>  > <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">> <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>