1、PMIC
1.1 概述
PMIC全称Power management integrated circuit,一般情况下是一颗独立于主控的
芯片,集成了电源控制,电源键控制,充电控制等模块。
1.2 配置
menuconfig中的配置:
使能PMIC驱动:
BSP Driver --->
Enable PMIC
PMIC驱动是一个核心驱动,为其他相关驱动提供接口,所以单独使能PMIC驱动并没有实际作用,需要根据具体情况使能特定模块驱动,如下所示:
BSP Driver ---> Enable PMIC Enable PMIC Key Enable PMIC Charger Enable RK812 Charger
对于特定的某款PMIC芯片需要填充struct rk_pmic_desc来配置特定的信息,如下:
struct rk_pmic_desc
{
int8 i2c_id; /* 读写PMIC寄存器所使用的i2c的id */
uint8 i2c_addr; /* i2c设备地址 */
uint8 on_src_reg; /* pmic_on_source的寄存器偏低地址 */
uint8 int_st_reg; /* pmic_int_st的寄存器偏低地址 */
uint8 int_reg_num; /* pmic_int寄存器的个数 */
uint8 int_num; /* PMIC内部中断的个数 */
uint8 on_src_num; /* on source的个数 */
uint8 power_ctrl_reg_num[PMIC_PWR_MAX]; /* 各个power_ctrl_reg的数组长度 */
int pmic_int_pin; /* pmic_int pin序号 */
eGPIO_pinLevel pmic_int_level; /* pmic_int pin 的触发电平 */
ePINCTRL_configParam pmic_int_iOPAram; /* pmic_int pin 的初始化参数 */
int pmic_sleep_pin; /* pmic_sleep pin 序号 */
eGPIO_pinLevel pmic_sleep_level; /* pmic_sleep pin 的生效电平 */
ePINCTRL_configParam pmic_sleep_ioparam; /* pmic_sleep pin 的初始化参数 */
const struct pmic_reg_data *power_ctrl_reg[PMIC_PWR_MAX]; /* PMIC处于各个电源状态下需要配置的寄存器 */
pmic_int_id *int_map; /* PMIC内部中断映射表 */
pmic_on_src_t *on_src_map; /* on source 映射表 */
struct I2C_DEVICE_CLASS *i2cbus; /* I2C设备指针 */
};
以RK812为例,需进行如下配置:
src/bsp/RK2206/board/rk2206_EVB/board.c
#include "driver/drv_pmic.h"
#ifdef CONFIG_DRIVER_PMIC
/* PMIC内部中断映射表 */
static pmic_int_id rk812_int_map[] = {
......
更多详细内容请下载附件查看