当前位置: 首页 > news >正文

【RK3576】【Android14】PMIC电源管理

获取更多相关的【RK3576】【Android14】驱动开发,可收藏系列博文,持续更新中:
【RK3576】Android 14 驱动开发实战指南


概述

RK3576搭载RK806,是一款高性能 PMIC。

从使用者的角度看,RK806 的功能概况起来可以分为 3 个部分:

1. regulator 功能:控制各路 DCDC、LDO 电源状态;

2. gpio 功能:有3个IO可用,可以控制整个PMIC进待机,也可以单独分给指定电源进待机,也可当 普通 gpio 使用;

3. pwrkey 功能:检测 power 按键的按下/释放,可以为 AP 节省一个 gpio。

硬件接口

RK806上几个关键硬件引脚

引脚名称方向主要功能实现的具体能力
PWRON输入开机触发这是RK806的开机触发引脚。通常连接至RK3576的某个GPIO或专用的电源按键检测电路,可以实现系统开/关机功能
RESETB输出系统复位这是RK806输出的系统复位信号。它连接到RK3576的nRESET引脚或其他需要复位的芯片
INT输出中断请求事件告警、紧急处理(如过热保护)。中断输出引脚。用于RK806主动向RK3576报告紧急或异步事件
PWRCTRL1/2/3输出电源时序控制定制化上电/断电序列,控制外部电源芯片。是可编程的通用输出控制引脚
EXT_EN输出外部设备使能控制特定外围模块的电源。这是一个专用的外部设备使能引脚。其功能与PWRCTRL引脚类似,但通常是预先设计用于特定用途

驱动开发

DTS配置

rk806-pmic相关的dts配置:

&i2c1 {status = "okay"; /* 启用 I2C1 总线 */rk806: pmic@23 {compatible = "rockchip,rk806"; /* 设备兼容性标识,驱动匹配依据 */reg = <0x23>; /* I2C 设备地址 */interrupt-parent = <&gpio0>; /* 中断父节点为 GPIO0 */interrupts = <6 8>; /* 中断引脚配置:GPIO0_A6,高电平触发 */pinctrl-names = "default", "pmic-power-off"; /* 引脚控制状态命名 */pinctrl-0 = <&pmic_pins>, <&rk806_dvs1_null>, <&rk806_dvs2_null>, <&rk806_dvs3_null>; /* 默认引脚状态 */pinctrl-1 = <&rk806_dvs1_pwrdn>; /* 电源关闭时的引脚状态 *//* 电压与温度保护阈值 */low_voltage_threshold = <3000>; /* 低电压阈值(单位:mV) */shutdown_voltage_threshold = <2700>; /* 强制关机电压阈值 */shutdown_temperture_threshold = <160>; /* 过热关机温度(单位:℃) */hotdie_temperture_threshold = <115>; /* 高温警告阈值 *//* 关机序列配置(控制 PMIC 内部电源轨的关闭顺序) */shutdown-sequence = <2 2 2 0 2 0 2 1 1 22 2 2 2 21 0 0 0 0 2>;/* VBAT 关机序列(电池供电场景) */vb-shutdown-sequence = <2 2 2 0 2 0 2 0 0 22 2 2 2 20 0 0 0 0 2>;pmic-reset-func = <1>; /* PMIC 复位功能使能 */buck5-feedback-disable; /* 禁用 Buck5 的反馈引脚 *//* 电源输入配置(定义 PMIC 的输入电源源) */vcc1-supply = <&vcc_sys>; /* 主系统电源 */vcc2-supply = <&vcc_sys>;vcc3-supply = <&vcc_sys>;vcc4-supply = <&vcc_sys>;vcc5-supply = <&vcc_sys>;vcc6-supply = <&vcc_sys>;vcc7-supply = <&vcc_sys>;vcc8-supply = <&vcc_sys>;vcc9-supply = <&vcc_sys>;vcc10-supply = <&vcc_sys>;vcc11-supply = <&vcc_2v0_pldo_s3>; /* 2.0V PLDO 电源 */vcc12-supply = <&vcc_sys>;vcc13-supply = <&vcc_1v1_nldo_s3>; /* 1.1V NLDO 电源 */vcc14-supply = <&vcc_1v1_nldo_s3>;vcca-supply = <&vcc_sys>;pwrkey {status = "okay"; /* 启用物理电源键功能 */};pinctrl_rk806: pinctrl_rk806 {gpio-controller;#gpio-cells = <2>;/* DVS(动态电压调节)引脚功能配置,用于电源状态切换 */rk806_dvs1_null: rk806_dvs1_null {pins = "gpio_pwrctrl2";function = "pin_fun0"; /* 默认功能 */};rk806_dvs1_slp: rk806_dvs1_slp {pins = "gpio_pwrctrl1";function = "pin_fun1"; /* 睡眠模式 */};rk806_dvs1_pwrdn: rk806_dvs1_pwrdn {pins = "gpio_pwrctrl1";function = "pin_fun2"; /* 电源关闭模式 */};/* 其他 DVS 引脚配置省略,但实际需根据硬件设计填写 */};regulators {/* 以下为关键电源轨配置,影响 CPU、GPU、内存等核心组件 */vdd_cpu_big_s0: DCDC_REG1 {regulator-always-on; /* 始终开启(关键电源) */regulator-boot-on;   /* 启动时开启 */regulator-init-microvolt = <850000>; /* 初始电压 */regulator-min-microvolt = <550000>;  /* 最小电压 */regulator-max-microvolt = <950000>;  /* 最大电压 */regulator-ramp-delay = <12500>;      /* 电压切换延迟(ns) */regulator-name = "vdd_cpu_big_s0";   /* 为大核 CPU 供电 */regulator-state-mem {regulator-off-in-suspend; /* 休眠时关闭 */};};vdd_npu_s0: DCDC_REG2 {regulator-boot-on;regulator-min-microvolt = <550000>;regulator-max-microvolt = <950000>;regulator-name = "vdd_npu_s0"; /* NPU 电源 */regulator-state-mem {regulator-off-in-suspend;};};/* 其他电源轨配置需类似标注,尤其是:- vdd_cpu_lit_s0(小核 CPU)- vdd_gpu_s0(GPU)- vdd_ddr_s0(内存)- 常开电源(如 vcc_3v3_s3、vcc_1v8_s3)*/};};
};

http://www.dtcms.com/a/361556.html

相关文章:

  • 【学Python自动化】 6.1 Python 模块系统学习笔记 (与 Rust 对照)
  • 数据结构:单链表的应用(力扣算法题)第三章
  • Windows 电脑安装dify
  • Go初级之六:接口(Interface)
  • VBA开发者的福音:让代码效率暴涨300%的终极数据结构选择指南
  • git使用详解和实战示例
  • 【学习笔记】从“两个细则”到“四遥”
  • docker安装redis,进入命令窗口基操练习命令
  • KubeBlocks for Milvus 揭秘
  • 学习 Android (十八) 学习 OpenCV (三)
  • 向量数据库概述:Faiss、Milvus、Qdrant、Chroma、Weaviate
  • AI 时代的用户体验设计:设计师会被替代,还是更值钱?
  • TCP连接状态详解/同时打开Simultaneous Open
  • 动态滑动窗口还搞不清?一文搞定动态滑动窗口 | 基础算法
  • 如何将多个Excel报表合并为一个汇总文件?
  • C++ multiset数据结构的使用情况说明
  • [界面通过zmq请求调用指定动态库函数(二)]不同动态库接口不同
  • Unity游戏打包——打包流程
  • 【开题答辩全过程】以 中华美食宝典食谱分享系统的设计与实现为例,包含答辩的问题和答案
  • HTML应用指南:利用GET请求获取MSN财经股价数据并可视化
  • 电脑没加域却能获取到IP地址
  • 力扣hot100 | 堆 | 215. 数组中的第K个最大元素、347. 前 K 个高频元素、128. 最长连续序列
  • 鞍点(Saddle Point)一文通透从曲面直觉到博弈与优化
  • 手写MyBatis第46弹:多插件责任链模式的实现原理与执行顺序奥秘--MyBatis插件架构深度解析
  • 【机器学习学习笔记】numpy基础2
  • 基于站点、模式、遥感多源降水数据融合技术应用
  • 基于单片机自行车码表/骑行运动监测
  • CVE Push Service | 高危漏洞实时情报自动化推送工具
  • Python备份实战专栏第4/6篇:Vue.js + Flask 打造企业级备份监控面板
  • SQLSERVER关键字:N