![]() |
RT-Thread RTOS
An open source embedded real-time operating system
|
Power supply Charger (gpio-charger) Board poweroff and restart
RT-Thread splits power into several layers. They are related but not interchangeable:
| Layer | Page | Scope |
|---|---|---|
| Regulator | Regulator | Shared rails (LDO/DCDC): enable, voltage, refcount |
| Power domain | Power domain | SoC power islands while system is running |
| Power supply | Power supply | Battery/charger reporting (rt_power_supply) |
| Board off/restart | Board poweroff and restart | GPIO/syscon shutdown and reset |
| System DM power | System power off and reboot (core) | Ordered **rt_dm_power_off_handler** + machine hooks |
Reset controller (IP block reset lines) is a different subsystem: Reset controller — not under components/drivers/power/reset/.
Sources under **components/drivers/power/**:
| Path | Role |
|---|---|
**supply/** | rt_power_supply core, daemon, **gpio-charger**, emulator |
| ** eset/** | gpio-poweroff, gpio-restart, **syscon-*** reboot/poweroff |
Power domain providers: components/drivers/pmdomain/ (see Power domain).
When a platform device comes up (Platform bus):
For battery/charger UI or PM policy, drivers register **rt_power_supply** (see Power supply).
For whole-system power off / reboot, drivers register **rt_dm_power_off_handler** (see Board poweroff and restart, System power off and reboot (core)).
| Option | Role |
|---|---|
**RT_USING_POWER_SUPPLY** | Power supply class + workqueue |
**RT_POWER_SUPPLY_DAEMON** | Poll/notify policy thread |
**RT_POWER_SUPPLY_CHARGER_GPIO** | **gpio-charger** |
**RT_POWER_SUPPLY_EMU** | Test battery/charger |
**RT_USING_POWER_RESET** | Board poweroff/restart drivers |
**RT_POWER_RESET_GPIO_***, **RT_POWER_RESET_SYSCON_*** | In-tree reset drivers |
Regulator and power domain have separate Kconfig trees under **components/drivers/regulator/** and **core/power_domain.c**.
| Goal | Register / API |
|---|---|
| Report SOC, charging, USB online | **rt_power_supply_register** + **RT_PLATFORM_DRIVER_EXPORT** |
| Shutdown PMIC / assert poweroff GPIO | **rt_dm_power_off_handler(..., SHUTDOWN, ...)** |
| Warm reset / recovery mode | **rt_dm_power_off_handler(..., RESET, ...)** + **rt_dm_reboot_mode_register** |
| Keep an IP block powered | **rt_dm_power_domain_attach** / **rt_regulator_get** |
| Share 3.3 V rail | **rt_regulator_enable** / **put** |
components/drivers/power/Kconfig