举例
下面以gt24c64来分析 eeprom 地址映射的设置
eeprom 设置代码
static eeprom_lib_func_t sunny_gt24c64_s5k2l7_eeprom_lib_func_ptr = {
.get_calibration_items = sunny_gt24c64_s5k2l7_eeprom_get_calibration_items,
.format_calibration_data = sunny_gt24c64_s5k2l7_eeprom_format_calibration_data,
.do_af_calibration = eeprom_autofocus_calibration,
.do_wbc_calibration = eeprom_whitebalance_calibration,
.do_lsc_calibration = eeprom_lensshading_calibration,
.get_raw_data = NULL,
.get_ois_raw_data = NULL,
.eeprom_info =
{
...
.mem_map_array =
{
.memory_map =
{
{
.slave_addr = 0xA0,
.mem_settings =
{
{ 0x0000, CAMERA_I2C_WORD_ADDR,
0x0B9A, CAMERA_I2C_BYTE_DATA, CAMERA_I2C_OP_READ, 1 }
},
.memory_map_size = 1,
},
},
.size_map_array = 1,
},
},
};
其中我们分析的为 mem_settings的设置
uapi/media/msm_cam_sensor.h
从结构分析 eeprom_info中内嵌了 memory_map_array 。
uapi/media/msm_camsensor_sdk.h
memory_map_array 由size 与map数据组成 。
map中包含 地址 寄存器设置 与 map的size
memory 设置结构体如下:
与代码建立了一一对应
总结
本文简单分析了eeprom 地址映射 参数的define.