rk3562-rk809.dtsi分析
·
这个设备树片段是 RK3562 开发板中 PMIC(电源管理集成电路)RK809 的完整配置,通过 I2C0 总线与 SoC 通信。RK809 不仅提供系统各级电压,还集成了 电源按键管理、GPIO 扩展、音频 Codec 等功能。下面对每个模块进行详细解读。
1. 总线节点 &i2c0
&i2c0 {
status = "okay";
rk809: pmic@20 { ... };
};
- 作用:启用 I2C0 控制器,并在地址
0x20上挂载 RK809 设备。 - 背景:RK809 是 Rockchip 平台常用的 PMIC,通过 I2C 配置其寄存器,实现电压调节、上电时序、休眠唤醒等功能。
2. RK809 基础属性
compatible = "rockchip,rk809";
reg = <0x20>;
interrupt-parent = <&gpio0>;
interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
compatible:匹配内核驱动rk809(同时兼容rk817系列)。reg:I2C 从设备地址 0x20。interrupt-parent/interrupts:PMIC 的中断输出引脚连接到 GPIO0 的 3 号引脚(即GPIO0_A3),低电平触发。用于上报按键、电源事件、过温等异常。
引脚控制(pinctrl)与睡眠模式
pinctrl-names = "default", "pmic-sleep", "pmic-power-off", "pmic-reset";
pinctrl-0 = <&pmic_int>;
pinctrl-1 = <&soc_slppin_slp>, <&rk817_slppin_slp>;
pinctrl-2 = <&soc_slppin_gpio>, <&rk817_slppin_pwrdn>;
pinctrl-3 = <&soc_slppin_gpio>, <&rk817_slppin_rst>;
rockchip,system-power-controller;
wakeup-source;
- 不同 pinctrl 状态:用于系统在不同电源状态(正常、休眠、关机、复位)时配置 PMIC 的
SLPPIN引脚功能。具体:default:PMIC 中断引脚功能(pmic_int)。pmic-sleep:SoC 和 PMIC 都进入睡眠模式。pmic-power-off:SoC 的SLPPIN作为 GPIO,PMIC 收到后执行关机。pmic-reset:SoC 拉低SLPPIN触发 PMIC 复位。
rockchip,system-power-controller:表示该 PMIC 负责整个系统的电源管理(关机、重启)。wakeup-source:允许 PMIC 中断唤醒系统(例如按电源键唤醒)。
时钟输出
#clock-cells = <1>;
clock-output-names = "rk808-clkout1", "rk808-clkout2";
- RK809 可以提供两个时钟输出(如 32.768kHz 给 RTC,或 24MHz 给 Codec)。这里声明为时钟提供者,其他节点可通过
clocks = <&rk809 0>引用。
复位与电源使能行为
pmic-reset-func = <0>;
not-save-power-en = <1>;
pmic-reset-func = <0>:复位时仅复位 PMIC 寄存器,不复位 PMIC 本身(另一种选项是复位 PMIC 芯片)。not-save-power-en = <1>:在 U-Boot 阶段不保存 PMIC_POWER_EN 寄存器(避免干扰内核电源状态)。
输入电源供应
vcc1-supply = <&vcc3v3_sys>;
...
vcc9-supply = <&vcc3v3_sys>;
- RK809 内部有多路 DCDC/LDO,它们的输入源(VIN)都来自板上的
vcc3v3_sys(3.3V 系统电源)。这保证了 PMIC 自身能正常工作。
3. 子功能模块
3.1 电源按键(pwrkey)
pwrkey {
status = "okay";
};
- 启用 RK809 内置的电源按键检测功能。当按下开发板上的 POWER 键时,PMIC 会通过中断通知 SoC,实现长按关机、短按休眠/唤醒等功能。
3.2 PMIC GPIO 与引脚功能配置(pinctrl_rk8xx)
pinctrl_rk8xx: pinctrl_rk8xx {
gpio-controller;
#gpio-cells = <2>;
rk817_slppin_slp: rk817_slppin_slp { ... };
...
};
- 声明 RK809 本身可以作为 GPIO 控制器(通常提供 1 个 GPIO 引脚,即
SLPPIN复用)。 - 定义了四种
SLPPIN功能模式(pin_fun0~pin_fun3),分别对应 null、sleep、power-off、reset。SoC 可以根据系统状态动态切换。
3.3 稳压器(regulators)
RK809 内部包含多个 DCDC 和 LDO,为 SoC 的不同模块供电。每个 regulator 节点都有标准属性:
| 属性 | 含义 |
|---|---|
regulator-always-on |
始终使能,即使没有驱动使用也不关闭。 |
regulator-boot-on |
在引导阶段就要使能。 |
regulator-min/max-microvolt |
电压范围。 |
regulator-init-microvolt |
启动时设置的电压。 |
regulator-ramp-delay |
电压爬升时间(微秒)。 |
regulator-initial-mode |
DCDC 工作模式(0x2 通常为 PWM 模式,效率高但纹波小)。 |
regulator-state-mem |
系统挂起到内存(suspend-to-RAM)时的行为,如 off-in-suspend 或 on-in-suspend。 |
关键电源域说明
| 名称 | 类型 | 作用 |
|---|---|---|
vdd_logic |
DCDC_REG1 | 逻辑电路(大部分外设)供电,0.5V~1.35V,默认 0.95V。 |
vdd_cpu |
DCDC_REG2 | CPU 核心供电,0.5V~1.35V,默认 1.05V。 |
vcc_ddr |
DCDC_REG3 | DDR 内存控制器和 PHY 供电(通常固定 1.1V 或 1.2V)。 |
vdd_gpu |
DCDC_REG4 | GPU 核心供电,0.5V~1.35V,默认 0.9V。 |
vcc2v8_dvp |
LDO1 | 摄像头(DVP 接口)2.8V 电源。 |
vdda_0v9 |
LDO2 | 模拟音频 0.9V 电源。 |
vdda0v9_pmu |
LDO3 | PMU 域模拟 0.9V,休眠时保持供电。 |
vccio_acodec |
LDO4 | 音频 Codec IO 电源(3.0V)。 |
vccio_sd |
LDO5 | SD 卡 IO 电源(1.8V/3.3V 动态切换)。 |
vcc3v3_pmu |
LDO6 | PMU 域 3.3V 电源,休眠时保持。 |
vcca_1v8 |
LDO7 | 模拟 1.8V 电源(例如 PLL、HDMI)。 |
vcca1v8_pmu |
LDO8 | PMU 域模拟 1.8V,休眠保持。 |
vcc1v8_dvp |
LDO9 | 摄像头 DVP 接口 1.8V 电源。 |
vcc_1v8 |
DCDC_REG5 | 数字 1.8V 主电源。 |
vcc_3v3 |
SWITCH_REG1 | 3.3V 开关电源(常开,为外设如 Wi-Fi 供电)。 |
vcc3v3_sd |
SWITCH_REG2 | SD 卡插槽 3.3V 供电,可独立控制。 |
注:
vcc3v3_sd由 RK809 输出,之前设备树中sdmmc0的vmmc-supply = <&vcc3v3_sd>即引用此处。
3.4 音频 Codec(rk809_codec)
rk809_codec: codec {
compatible = "rockchip,rk809-codec", "rockchip,rk817-codec";
clocks = <&mclkout_sai0>;
clock-names = "mclk";
assigned-clocks = <&mclkout_sai0>;
assigned-clock-rates = <12288000>;
pinctrl-0 = <&i2s0m0_mclk>;
hp-volume = <20>;
spk-volume = <3>;
mic-in-differential;
status = "okay";
};
- 作用:配置 RK809 内部的音频编解码器,通过 SAI0 (I2S)接口与 SoC 连接。
- 时钟:
mclkout_sai0是 SoC 提供给 Codec 的主时钟(MCLK),频率设为 12.288MHz(常见音频采样率 48kHz 的 256 倍)。 - 引脚:
i2s0m0_mclk确保 MCLK 引脚复用正确。 - 音量与输入:
hp-volume = <20>:耳机输出默认音量(0~31)。spk-volume = <3>:扬声器默认音量。mic-in-differential:麦克风使用差分输入模式(抗干扰)。
- 关联:此节点被
rk809_sound节点(之前提供的文件中的rk809-sound)引用为rockchip,codec。
4. 总结:RK809 在系统中的角色
- 电源管理核心:为 CPU、GPU、逻辑、DDR、IO 等提供各种电压,并控制系统上下电时序。
- 用户交互:电源按键检测,实现关机/休眠/唤醒。
- 音频中枢:内置 Codec,与 SoC 的 SAI0 接口配合,实现耳机/麦克风/喇叭的音频输入输出。
- 辅助功能:提供时钟输出、一个 GPIO 引脚(SLPPIN)用于 SoC 与 PMIC 的状态同步。
这个 dtsi 文件(如 rk3562-rk809.dtsi)是 RK3562 EVB 板级设备树的核心组成部分,为系统提供了完整的电源和音频基础。所有电压配置已经过 Rockchip 官方验证,开发者一般无需修改,除非更换 PMIC 或调整电压需求。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)