POWER_BTN_N signal in auto-on power up and power off


I know that POWER_BTN_N connects to GPIO on Xavier. It is handled by gpio-keys linux driver, and it is one of the WAKE signal to wake up from suspend/sleep. I also know how systemd-logind handles it to power off on button press, and how systemd-inhibit can disable logind’s handling so that other service e.g. GNOME GUI can handle it.

I have few questions regarding the hardware handling and EFM8SB10F8G:

  1. For auto-power-on case, is POWER_BTN_N signal useless in auto-power-on case? Or will the EFM8SB10F8G MCU simulate a button press by driving POWER_BTN_N low for short period?
  2. For button-power-on case, I know that POWER_BTN_N will representing the Power Button. But I am curious that how POWER_BTN_N is handled by Xavier side? Or is it only used internally by EFM8SB10F8G MCU? If it is used and handled by Xavier side, who and how it is handled? Most likely it is NOT handled by Linux because at that time Linux is not up and running yet. It is probably handled by software on BPMP or AON-SPE?
  3. On OEM document, it has power-off case where power button is press for >= 10s. Is this all handled by EFM8SB10F8G MCU where it will force a hardware shutdown by driving MODULE_POWER_ON low?


Please read chapter 5 in OEM DG, there are detail instruction in it.

  1. Auto-power-on is triggered by ACOK connecting to 3.3V_AO, which will trigger VIN_PWR_ON and MODULE_PWR_ON and so ignore status of POWER_BTN_N and BUTTON_POWER_ON.

  2. POWER_BTN_N is triggered by BUTTON_POWER_N and to trigger VIN_PWR_ON and MODULE_PWR_ON thru MCU. It is connected to SoC not PMIC as you can see in DG.

  3. It is handled by MCU to drive MODULE_POWER_ON low.


Thanks for your reply. I am clear on 1 and 3.

For 2 the button-power-on case, does SoC handle POWER_BTN_N signal on boot up sequence?
I know after SoC and Linux boot up, POWER_BTN_N signal is handled by Linux to WAKE from suspend, or issue power off. But is POWER_BTN_N used by SoC on the boot up sequence?


No, it is MODULE_PWR_ON to enable PMIC and so whole system during boot up.