120 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			5.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
| 1. Insert driver ko in the script file, S10_SysInit2.
 | |
| 2. Find the following sensor you want to change and replace the function of set_cap_cfg in your sample code.
 | |
| 
 | |
| ################################  OS02K ##########################################
 | |
| #define VDO_SIZE_W      1920
 | |
| #define VDO_SIZE_H      1080
 | |
| 
 | |
| static HD_RESULT set_cap_cfg(HD_PATH_ID *p_video_cap_ctrl)
 | |
| {
 | |
| 	HD_RESULT ret = HD_OK;
 | |
| 	HD_VIDEOCAP_DRV_CONFIG cap_cfg = {0};
 | |
| 	HD_PATH_ID video_cap_ctrl = 0;
 | |
| 	HD_VIDEOCAP_CTRL iq_ctl = {0};
 | |
| 	char *chip_name = getenv("NVT_CHIP_ID");
 | |
| 
 | |
| 	snprintf(cap_cfg.sen_cfg.sen_dev.driver_name, HD_VIDEOCAP_SEN_NAME_LEN-1, "nvt_sen_os02k10");
 | |
| 	cap_cfg.sen_cfg.sen_dev.if_type = HD_COMMON_VIDEO_IN_MIPI_CSI;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.sensor_pinmux =  0x220; //PIN_SENSOR_CFG_MIPI | PIN_SENSOR_CFG_MCLK
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.serial_if_pinmux = 0xF01;
 | |
| 	if (chip_name != NULL && strcmp(chip_name, "CHIP_NA51089") == 0) {
 | |
| 		cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.cmd_if_pinmux = 0x01;//PIN_I2C_CFG_CH1
 | |
| 	} else {
 | |
| 		cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.cmd_if_pinmux = 0x10;//PIN_I2C_CFG_CH2
 | |
| 	}
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.clk_lane_sel = HD_VIDEOCAP_SEN_CLANE_SEL_CSI0_USE_C0;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[0] = 0;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[1] = 1;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[2] = 2;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[3] = 3;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[4] = HD_VIDEOCAP_SEN_IGNORE;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[5] = HD_VIDEOCAP_SEN_IGNORE;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[6] = HD_VIDEOCAP_SEN_IGNORE;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[7] = HD_VIDEOCAP_SEN_IGNORE;
 | |
| 	ret = hd_videocap_open(0, HD_VIDEOCAP_0_CTRL, &video_cap_ctrl); //open this for device control
 | |
| 	if (ret != HD_OK) {
 | |
| 		return ret;
 | |
| 	}
 | |
| 	ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_DRV_CONFIG, &cap_cfg);
 | |
| 	iq_ctl.func = HD_VIDEOCAP_FUNC_AE | HD_VIDEOCAP_FUNC_AWB;
 | |
| 	ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_CTRL, &iq_ctl);
 | |
| 
 | |
| 	*p_video_cap_ctrl = video_cap_ctrl;
 | |
| 	return ret;
 | |
| }
 | |
| 
 | |
| 
 | |
| ################################  OS05A ##########################################
 | |
| #define VDO_SIZE_W      2592
 | |
| #define VDO_SIZE_H      1944
 | |
| 
 | |
| static HD_RESULT set_cap_cfg(HD_PATH_ID *p_video_cap_ctrl)
 | |
| {
 | |
| 	HD_RESULT ret = HD_OK;
 | |
| 	HD_VIDEOCAP_DRV_CONFIG cap_cfg = {0};
 | |
| 	HD_PATH_ID video_cap_ctrl = 0;
 | |
| 	HD_VIDEOCAP_CTRL iq_ctl = {0};
 | |
| 	char *chip_name = getenv("NVT_CHIP_ID");
 | |
| 
 | |
| 	snprintf(cap_cfg.sen_cfg.sen_dev.driver_name, HD_VIDEOCAP_SEN_NAME_LEN-1, "nvt_sen_os05a10");
 | |
| 	cap_cfg.sen_cfg.sen_dev.if_type = HD_COMMON_VIDEO_IN_MIPI_CSI;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.sensor_pinmux =  0x220; //PIN_SENSOR_CFG_MIPI | PIN_SENSOR_CFG_MCLK
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.serial_if_pinmux = 0xF01;
 | |
| 	if (chip_name != NULL && strcmp(chip_name, "CHIP_NA51089") == 0) {
 | |
| 		cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.cmd_if_pinmux = 0x01;//PIN_I2C_CFG_CH1
 | |
| 	} else {
 | |
| 		cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.cmd_if_pinmux = 0x10;//PIN_I2C_CFG_CH2
 | |
| 	}
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.clk_lane_sel = HD_VIDEOCAP_SEN_CLANE_SEL_CSI0_USE_C0;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[0] = 0;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[1] = 1;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[2] = 2;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[3] = 3;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[4] = HD_VIDEOCAP_SEN_IGNORE;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[5] = HD_VIDEOCAP_SEN_IGNORE;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[6] = HD_VIDEOCAP_SEN_IGNORE;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.sen_2_serial_pin_map[7] = HD_VIDEOCAP_SEN_IGNORE;
 | |
| 	ret = hd_videocap_open(0, HD_VIDEOCAP_0_CTRL, &video_cap_ctrl); //open this for device control
 | |
| 	if (ret != HD_OK) {
 | |
| 		return ret;
 | |
| 	}
 | |
| 	ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_DRV_CONFIG, &cap_cfg);
 | |
| 	iq_ctl.func = HD_VIDEOCAP_FUNC_AE | HD_VIDEOCAP_FUNC_AWB;
 | |
| 	ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_CTRL, &iq_ctl);
 | |
| 
 | |
| 	*p_video_cap_ctrl = video_cap_ctrl;
 | |
| 	return ret;
 | |
| }
 | |
| 
 | |
| ################################  AR0237 ##########################################
 | |
| HD_RESULT set_cap_cfg(HD_PATH_ID *p_video_cap_ctrl)
 | |
| {
 | |
| 	HD_RESULT ret = HD_OK;
 | |
| 	HD_VIDEOCAP_DRV_CONFIG cap_cfg = {0};
 | |
| 	HD_PATH_ID video_cap_ctrl = 0;
 | |
| 	HD_VIDEOCAP_CTRL iq_ctl = {0};
 | |
| 	char *chip_name = getenv("NVT_CHIP_ID");
 | |
| 
 | |
| 	snprintf(cap_cfg.sen_cfg.sen_dev.driver_name, HD_VIDEOCAP_SEN_NAME_LEN-1, "nvt_sen_ar0237");
 | |
| 	cap_cfg.sen_cfg.sen_dev.if_type = HD_COMMON_VIDEO_IN_P_RAW;//HD_COMMON_VIDEO_IN_MIPI_CSI;
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.sensor_pinmux =  0x204; // PIN_SENSOR_CFG_12BITS //0x220; //PIN_SENSOR_CFG_MIPI | PIN_SENSOR_CFG_MCLK
 | |
| 	cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.serial_if_pinmux = 0x0;	//0x301;//PIN_MIPI_LVDS_CFG_CLK2 | PIN_MIPI_LVDS_CFG_DAT0|PIN_MIPI_LVDS_CFG_DAT1 | PIN_MIPI_LVDS_CFG_DAT2 | PIN_MIPI_LVDS_CFG_DAT3
 | |
| 	if (chip_name != NULL && strcmp(chip_name, "CHIP_NA51089") == 0) {
 | |
| 		cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.cmd_if_pinmux = 0x01;//PIN_I2C_CFG_CH1
 | |
| 	} else {
 | |
| 		cap_cfg.sen_cfg.sen_dev.pin_cfg.pinmux.cmd_if_pinmux = 0x10;//PIN_I2C_CFG_CH2
 | |
| 	}
 | |
| 
 | |
| 	ret = hd_videocap_open(0, HD_VIDEOCAP_0_CTRL, &video_cap_ctrl); //open this for device control
 | |
| 	if (ret != HD_OK) {
 | |
| 		return ret;
 | |
| 	}
 | |
| 	ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_DRV_CONFIG, &cap_cfg);
 | |
| 	iq_ctl.func = HD_VIDEOCAP_FUNC_AE | HD_VIDEOCAP_FUNC_AWB;
 | |
| 	ret |= hd_videocap_set(video_cap_ctrl, HD_VIDEOCAP_PARAM_CTRL, &iq_ctl);
 | |
| 
 | |
| 	*p_video_cap_ctrl = video_cap_ctrl;
 | |
| 	return ret;
 | |
| }
 | |
| 
 | |
| ################################################################################## | 
