- 电池管理任务,例如充电和电量计量。
- 用户界面组件,例如闪光灯、显示屏和 RGB 色彩空间。
- 片上系统(SoC)基础设施元件,例如时钟、模数转换器(ADC)和上电(PON)功能。
XBL_CFG 镜像在 XBL 中进行定制。配置 PMIC XBL DT 属性可确保最佳性能和集成。您可以使用 DT 框架执行这些定制。
Linux 设备的 PMIC DTSI 文件位于 boot_images/boot/Settings/Soc/<Chipset>/Core/PMIC/pm.dtsi, access.dtsi。
表:PMIC DT 属性
| 属性名称 | 属性描述 | 数据类型 | 可能的值/取值范围 | 设备行为 |
|---|---|---|---|---|
s2-kpdpwr | 启用 PMIC 电源键引脚复位配置。 | 布尔型 | • PM_TRUE• PM_FALSE | 当按住电源键达到 s1-ms 和 s2-ms 中指定的时长时,电源键被配置为复位或关闭设备。若为 PM_FALSE,则使用硬件默认设置。 |
reset-type | 选择复位类型。 | UINT8 | • PM_WARM_RESET• PM_HARD_RESET• PM_SHUTDOWN | • WARM_RESET:崩溃转储收集 • HARD_RESET:重启 • SHUTDOWN:关机 |
s1-ms | 按键持续时间(从支持的值中选择)。 | UINT32 | 0, 32, 56, 80, 128, 184, 272, 408, 608, 904, 1352, 2048, 3072, 4480, 6720, 10256 | KPDPWR_N_RESET_S1_TIMER,单位为 ms |
s2-ms | 按键持续时间(从支持的值中选择)。 | UINT32 | 0, 10, 50, 100, 250, 500, 1000, 2000 | KPDPWR_N_RESET_S2_TIMER,单位为 ms |
s2-kpdpwr-resin | 配置 PMIC 电源键和 resin 键组合。 | 布尔型 | • PM_TRUE• PM_FALSE | 电源键和 resin 键组合在 s1-ms 和 s2-ms 指定的时长内均适用。若为 PM_FALSE,则使用硬件默认值。 |
reset-type | 选择复位类型。 | UINT32 | • PM_WARM_RESET• PM_HARD_RESET• PM_SHUTDOWN | WARM_RESET:崩溃转储,HARD_RESET:重启,SHUTDOWN:关机 |
s1-ms | 按键持续时间(选择支持的值)。 | UINT32 | 0, 32, 56, 80, 128, 184, 272, 408, 608, 904, 1352, 2048, 3072, 4480, 6720, 10256 | RESIN_AND_KPDPWR_RESET_S1_TIMER,单位为 ms |
s2-ms | 按键持续时间(选择支持的值)。 | UINT32 | 0, 10, 50, 100, 250, 500, 1000, 2000 | RESIN_AND_KPDPWR_RESET_S2_TIMER,单位为 ms |
s2-resin | 配置用作音量减键的 resin 键引脚。 | 布尔型 | • PM_TRUE• PM_FALSE | 当按住 resin 键达到 s1-ms / s2-ms 时长时,可复位或关闭设备。若为 PM_FALSE,则应用硬件默认值。 |
reset-type | 选择复位类型。 | UINT8 | • PM_WARM_RESET• PM_HARD_RESET• PM_SHUTDOWN | WARM_RESET:崩溃转储,HARD_RESET:重启,SHUTDOWN:关机 |
s1-ms | 按键持续时间(选择支持的值)。 | UINT32 | 0, 32, 56, 80, 128, 184, 272, 408, 608, 904, 1352, 2048, 3072, 4480, 6720, 10256 | RESIN_N_RESET_S1_TIMER,单位为 ms |
s2-ms | 按键持续时间(选择支持的值)。 | UINT32 | 0, 10, 50, 100, 250, 500, 1000, 2000 | RESIN_N_RESET_S2_TIMER,单位为 ms |
s3-reset | 配置 S3 复位。 | 布尔型 | • PM_TRUE• PM_FALSE | 在 S2 复位失败时用作故障保护复位或恢复出厂设置。在定时器到期后触发。 |
s3-src | 选择复位源。 | UINT8 | • PM_PON_RESET_SOURCE_KPDPWR• PM_PON_RESET_SOURCE_RESIN• PM_PON_RESET_SOURCE_RESIN_AND_KPDPWR• PM_PON_RESET_SOURCE_RESIN_OR_KPDPWR | 电源键、resin 键或其组合 |
timervalue-ms | S3 复位的按键持续时间。 | UINT32 | 0, 8, 16, 32, 63, 125, 240, 500, 1000, 2000, 4000, 8000, 16000, 32000, 64000, 128000 | RESET_S3_TIMER_n,单位为 ms |
uvlo-config | 配置欠压锁定阈值。 | UINT8 | PMIC_A、PMIC_B、PMIC_C、PMIC_D、PMIC_E、PMIC_I、PMIC_K | 达到 UVLO 阈值时设备关机。 |
uvlo_thresh | UVLO 阈值。 | UINT32 | mV | 阈值,单位为毫伏 |
uvlo_hyst | UVLO 迟滞。 | UINT32 | mV | 迟滞,单位为毫伏 |
uvlo_enable | 启用 UVLO 配置。 | 布尔型 | PM_ENABLE、PM_DISABLE | 若为 PM_DISABLE,则应用硬件默认值。 |
ovlo-config | 配置过压锁定阈值。 | PMIC_INDEX | PMIC_A–PMIC_K | 达到 OVLO 阈值时设备关机。 |
ovlo_thresh | OVLO 阈值。 | – | mV | 阈值,单位为毫伏 |
ovlo_hyst | OVLO 迟滞。 | – | mV | 迟滞,单位为毫伏 |
ovlo_enable | 启用 OVLO 配置。 | – | PM_ENABLE、PM_DISABLE | 若为 PM_DISABLE,则应用硬件默认值。 |
Long-pwrkey-dbnc-chk | 启动期间的电源键去抖检查。 | UINT32 | msec | 如果在去抖窗口内未按下按键,设备将关机。 |
chk-at | 检查按键的阶段。 | UINT8 | 0, 1, 2 | 0:不检查,1:XBL Loader,2:XBL core(UEFI) |
sw-config | 在启动期间修改 LDO、SMPS、时钟和 GPIO 的 PMIC 软件配置。 | UINT32 | PM_EVENT_LOG_LEVEL_* | 控制 UART 中 PON 日志的详细程度。 |
Charger | 充电器配置组。 | UINT32 | PMIC_D / PMIC_I | 主充电器 PMIC 索引。 |
no-batt-cfg-enable | 启用无电池配置。 | UINT8 | PM_TRUE、PM_FALSE | 如果未检测到电池,设备将自动启动。 |
Secondary-charger-present | 指示是否存在辅助充电器。 | UINT8 | PM_TRUE、PM_FALSE | 辅助充电器设置。 |
SMPS/LDO/CLK 示例代码
driver-post-init = <
// PM_SMPS_SET_AHC_HR PM_BUSID_0 PMIC_C PM_SMPS_1 0x57
// PM_SMPS_SET_ULS PM_BUSID_0 PMIC_F PM_SMPS_6 1375000 /*The Voltage is in microVolts*/
// PM_LDO_SET_ULS PM_BUSID_0 PMIC_F PM_SMPS_6 1375000 /*The Voltage is in microVolts*/
// PM_CLK_ENABLE PM_BUSID_0 PMIC_A PM_CLK_RF_1 PM_TRUE
// PM_SMPS_SET_VOLT PM_BUSID_0 PMIC_B PM_SMPS_1 1200
// PM_SMPS_SET_AHC PM_BUSID_0 PMIC_B PM_SMPS_1 PM_FALSE
// PM_LDO_SET_AHC PM_BUSID_0 PMIC_B PM_LDO_1 PM_FALSE
// PM_LDO_SET_VOLT PM_BUSID_0 PMIC_B PM_LDO_1 1200
// PM_LDO_SET_MODE PM_BUSID_0 PMIC_B PM_LDO_1 PM_SW_MODE_NPM
// PM_SMPS_SET_MODE PM_BUSID_0 PMIC_B PM_SMPS_1 PM_SW_MODE_NPM
// PM_SMPS_SET_PD_CTRL PM_BUSID_0 PMIC_B PM_SMPS_1 PM_TRUE
// PM_SMPS_SET_PIN_CTRL PM_BUSID_0 PMIC_B PM_SMPS_1 PM_TRUE
// PM_SMPS_SET_OCP_BROADCAST PM_BUSID_0 PMIC_B PM_SMPS_1 PM_TRUE
// PM_LDO_SET_PD_CTRL PM_BUSID_0 PMIC_B PM_LDO_1 PM_TRUE
// PM_LDO_SET_PIN_CTRL PM_BUSID_0 PMIC_B PM_LDO_1 PM_TRUE
// PM_LDO_SET_OCP_BROADCAST PM_BUSID_0 PMIC_B PM_LDO_1 PM_TRUE
// PM_CLK_DRV_STR PM_BUSID_0 PMIC_A PM_CLK_RF_1 3
// PM_SMPS_SET_ENABLE PM_BUSID_0 PMIC_B PM_SMPS_1 PM_TRUE
// PM_LDO_SET_ENABLE PM_BUSID_0 PMIC_B PM_LDO_1 PM_TRUE
// PM_SPMI_CLK_DATA_CFG PM_BUSID_0 PMIC_A 0x2 0x2 /*BUS_ID, PMIC_ID, CLK buff Config, DATA buff Config*/
PM_DELAY(10)
> ;

