目前mt6735平台,使用pMIC为MT6328。
MT6328提供的函数接口与之前MT6323和MT6325等相比,接口函数做了较大调整。具体文件参考:
upmu_common.c文件。
在MT6323或MT6325相关文件中,提供如下形式的接口函数:
void upmu_set_rg_chr_en(kal_uinT32 val)
void mt6325_upmu_set_rg_chr_en(kal_uint32 val)
其他形式均类似,不再列举。
而MT6328的相关文件中,定义了一个数组:
const PMU_FLAG_TABLE_ENTRY pmu_flags_table[]
以及统一的接口函数:
kal_uint16 PMIC_set_register_value(PMU_FLAGS_LIST_ENUM flagname,kal_uint32 val)
kal_uint16 pmic_get_register_value(PMU_FLAGS_LIST_ENUM flagname)
函数pmic_set_register_value,第一个参数为flagname,需要从数组pmu_flags_table中查找。第二个参数是要设置的值。
函数pmic_get_register_value的参数是flagname,需要从pmu_flags_table中查找,函数返回值,即为需要的值。
数组pmu_flags_table为PMU_FLAG_TABLE_ENTRY类型的数组,定义如下:
typedef struct
{
PMU_FLAGS_LIST_ENUM flagname;
unsigned short offset;
unsigned short mask;
unsigned char shift;
}PMU_FLAG_TABLE_ENTRY;
根据数组形式可知,第一列即为flagname。
除上述接口外, pmic_read_interface等形式的接口,也可以使用pmic_get_register_value等接口进行替换,需要注意flag、 offset、 mask、 shift值是为所需值即可。
了解更多,可到一牛网论坛。