RK356X 如何配置PMU

一:RK809的了解

无论是RK3568,还是PX30亦或是RK3588对于电源的配置都使用到了RK809芯片做电源管理,并且在RK809中也做了休眠,关机,耳机,喇叭,等等功能。本章对于电源域的配置做了详解如下:

二:设备树配置:

当我们拿到RK的源码后,在官方的dts中可以找到在I2C0节点下有RK809的配置(通过电路图可以看到RK809挂载在I2C0中),找到RK809后可以看到如下配置:

红框中对休眠,关机等等做了说明,可以在pinctrl中,找到对应的说明:

我们继续往下看:

vdda0v9_image: LDO_REG1 {
                regulator-boot-on;
                regulator-always-on;
                regulator-min-microvolt = <900000>;
                regulator-max-microvolt = <900000>;
                regulator-name = "vdda0v9_image";
                regulator-state-mem {
                    regulator-off-in-suspend;
                };
            };

            vdda_0v9: LDO_REG2 {
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <900000>;
                regulator-max-microvolt = <900000>;
                regulator-name = "vdda_0v9";
                regulator-state-mem {
                    regulator-off-in-suspend;
                };
            };

            vdda0v9_pmu: LDO_REG3 {
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <900000>;
                regulator-max-microvolt = <900000>;
                regulator-name = "vdda0v9_pmu";
                regulator-state-mem {
                    regulator-on-in-suspend;
                    regulator-suspend-microvolt = <900000>;
                };
            };

            vccio_acodec: LDO_REG4 {
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
                regulator-name = "vccio_acodec";
                regulator-state-mem {
                    regulator-off-in-suspend;
                };
            };

            vccio_sd: LDO_REG5 {
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <3300000>;
                regulator-name = "vccio_sd";
                regulator-state-mem {
                    regulator-off-in-suspend;
                };
            };

            vcc3v3_pmu: LDO_REG6 {
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
                regulator-name = "vcc3v3_pmu";
                regulator-state-mem {
                    regulator-on-in-suspend;
                    regulator-suspend-microvolt = <3300000>;
                };
            };

            vcca_1v8: LDO_REG7 {
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
                regulator-name = "vcca_1v8";
                regulator-state-mem {
                    regulator-off-in-suspend;
                };
            };

            vcca1v8_pmu: LDO_REG8 {
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
                regulator-name = "vcca1v8_pmu";
                regulator-state-mem {
                    regulator-on-in-suspend;
                    regulator-suspend-microvolt = <1800000>;
                };
            };

            vcca1v8_image: LDO_REG9 {
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
                regulator-name = "vcca1v8_image";
                regulator-state-mem {
                    regulator-off-in-suspend;
                };
            };

            vcc_1v8: DCDC_REG5 {
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <1800000>;
                regulator-max-microvolt = <1800000>;
                regulator-name = "vcc_1v8";
                regulator-state-mem {
                    regulator-off-in-suspend;
                };
            };

            vcc_3v3: SWITCH_REG1 {
                regulator-always-on;
                regulator-boot-on;
                regulator-name = "vcc_3v3";
                regulator-state-mem {
                    regulator-off-in-suspend;
                };
            };

            vcc3v3_sd: SWITCH_REG2 {
                regulator-always-on;
                regulator-boot-on;
                regulator-name = "vcc3v3_sd";
                regulator-state-mem {
                    regulator-off-in-suspend;
                };
            };
        };

以上的设备树配置主要看核心板中对于RK809的电路,如下:

将其中的每个引脚电压进行对应。

最后也是最重要的一步:(对pmu_io进行配置)

可以看在pmu上面的解释,发现vccio2不需要配置

同样配置也是需要在电路图中找到对应的电压如下图:

vdd_logic: DCDC_REG1 {
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <500000>;
                regulator-max-microvolt = <1350000>;
                regulator-init-microvolt = <900000>;
                regulator-ramp-delay = <6001>;
                regulator-initial-mode = <0x2>;
                regulator-name = "vdd_logic";
                regulator-state-mem {
                    regulator-off-in-suspend;
                };
            };

            vdd_gpu: DCDC_REG2 {
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <500000>;
                regulator-max-microvolt = <1350000>;
                regulator-init-microvolt = <900000>;
                regulator-ramp-delay = <6001>;
                regulator-initial-mode = <0x2>;
                regulator-name = "vdd_gpu";
                regulator-state-mem {
                    regulator-off-in-suspend;
                };
            };

            vcc_ddr: DCDC_REG3 {
                regulator-always-on;
                regulator-boot-on;
                regulator-initial-mode = <0x2>;
                regulator-name = "vcc_ddr";
                regulator-state-mem {
                    regulator-on-in-suspend;
                };
            };

            vdd_npu: DCDC_REG4 {
                regulator-always-on;
                regulator-boot-on;
                regulator-min-microvolt = <500000>;
                regulator-max-microvolt = <1350000>;
                regulator-init-microvolt = <900000>;
                regulator-ramp-delay = <6001>;
                regulator-initial-mode = <0x2>;
                regulator-name = "vdd_npu";
                regulator-state-mem {
                    regulator-off-in-suspend;
                };
            };

三:最后一步:

将rk其他的外设功能全部关闭,(自己不知道是什么功能的节点可以百度),关闭所有外设之后,编译:将程序烧录到板卡中。

注意:hdmi需要打开,

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小艹大叔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值