当前位置: 首页 > 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.xdnf.cn/news/1420435.html

相关文章:

  • DVWA靶场通关笔记-SQL Injection Blind(SQL盲注 Impossible级别)
  • kubectl-etcd
  • 【C++】内存管理机制:从new到delete全解析
  • 植物中lncRNA鉴定和注释流程,代码(包含Identified,Classification,WGCNA.....)
  • 开发中使用——鸿蒙CoreSpeechKit语音识别
  • 基于MCP架构的OpenWeather API服务端设计与实现
  • C#在物联网GPS经纬度转换为百度地图地址
  • 亚马逊云代理商:如何选择适合的AWS EC2实例类型?
  • CVE Push Service | 高危漏洞实时情报自动化推送工具
  • Vue基础知识-使用监视属性watch和计算属性computed实现列表过滤+排序
  • 【golang长途旅行第35站】Redis
  • docker中的命令(六)
  • 针对redis中的热数据该怎么处理
  • ✝常用表格✝
  • Simulink库文件-一种低通滤波模块搭建方法
  • 【stm32】定时器(超详细)
  • 重构导航之核:高德地图的深度学习架构解析 导论:从数字化世界到可计算世界
  • 手搓3D轮播图组件以及倒影效果
  • Shell 编程 —— 正则表达式与文本处理实战
  • 如何用 Kotlin 在 Android 手机开发一个文字游戏,并加入付费机制?
  • 基于运营商投诉工单的分析系统设计与实现
  • Kotlin
  • 秋招笔记-8.29
  • 哈希表-1.两数之和-力扣(LeetCode)
  • 电路学习(四)半导体
  • LeetCode 165. 比较版本号 - 优雅Java解决方案
  • LangChain开源LLM集成:从本地部署到自定义生成的低成本落地方案
  • 人工智能——课程考核
  • 移动开发如何给不同手机屏幕做适配
  • Shell脚本编程:函数、数组与正则表达式详解