62 #ifndef ISS_SENSORS_H_ 63 #define ISS_SENSORS_H_ 65 #include "TI/tivx_ext_raw_image.h" 87 #define SENSOR_I2C_TIMEOUT (5000U) 129 #define IMAGE_SENSOR_REMOTE_SERVICE_NAME "com.ti.image_sensor" 130 #define CMD_PARAM_SIZE 384 133 #define ISS_SENSORS_MAX_CHANNEL (12U) 136 #define ISS_SENSORS_MAX_NAME (32U) 139 #define SENSOR_SONY_IMX390_UB953_D3 "IMX390-UB953_D3" 140 #define SENSOR_ONSEMI_AR0233_UB953_MARS "AR0233-UB953_MARS" 141 #define SENSOR_ONSEMI_AR0820_UB953_LI "AR0820-UB953_LI" 142 #define UB9XX_RAW_TESTPAT "UB9xxx_RAW12_TESTPATTERN" 143 #define UB96X_TESTPATTERN_UYVY "UB96x_UYVY_TESTPATTERN" 144 #define GW_AR0233_UYVY "GW_AR0233_UYVY" 145 #define SENSOR_OV2312_UB953_LI "OV2312-UB953_LI" 151 #define SENSOR_SONY_IMX390_UB953_DISCOVERY_NARROW "IMX390-UB953-DISCOVERY-NARROW" 152 #define SENSOR_SONY_IMX390_UB953_DISCOVERY_MID "IMX390-UB953-DISCOVERY-MID" 153 #define SENSOR_SONY_IMX390_UB953_DISCOVERY_WIDE "IMX390-UB953-DISCOVERY-WIDE" 157 #if defined (MCU_PLUS_SDK) 160 #define BOARD_I2C_REG_ADDR_MSB_FIRST (0x0U) 162 #define I2C_400kHz I2C_400KHZ 172 #define BOARD_CSI_INST_0 ((uint32_t) 0x0U) 174 #define BOARD_CSI_INST_1 ((uint32_t) 0x1U) 176 #define BOARD_CSI_INST_2 ((uint32_t) 0x2U) 179 #define BOARD_FPD_9702_CSI2_DES_HUB1 (0U) 180 #define BOARD_FPD_9702_CSI2_DES_HUB2 (1U) 181 #define BOARD_FPD_9702_CSI2_DES_HUB3 (2U) 184 #define BOARD_ID_FUSION2 (0x2U) 186 int32_t Board_i2c16BitRegRd(
void *handle,
192 uint32_t i2cTimeout);
409 uint32_t dataLanesMap[4];
411 uint32_t dataLanesPolarity[4];
447 #define ISS_SENSORS_MAX_SUPPORTED_SENSOR (12U) 449 #define DEFAULT_TARGET_BRIGHTNESS_MIN 40 450 #define DEFAULT_TARGET_BRIGHTNESS_MAX 50 451 #define DEFAULT_TARGET_BRIGHTNESS 45 452 #define DEFAULT_TARGET_THRESHOLD 5 453 #define DEFAULT_EXPOSURE_TIME 1 454 #define DEFAULT_ENABLE_BLC 0 543 #define MAX_AE_DYN_PARAMS (10U) 594 typedef int32_t (*
IssSensor_ConfigFxn) (uint32_t chId,
void *pSensorHdl, uint32_t sensor_features_requested);
1091 int32_t
UB960_SetAlias(uint32_t chId, uint8_t slot, uint8_t phy_i2c_addr_7bit, uint8_t alias_i2c_addr_7bit);
1093 int32_t
UB960_SetSensorAlias(uint32_t chId, uint8_t sensor_phy_i2c_addr_7bit, uint8_t ser_alias_i2c_addr_7bit);
int32_t IssSensor_PowerOn(void *handle, uint32_t chMask)
Function to power ON the sensor.
Definition: iss_sensors.h:248
Definition: iss_sensors.h:116
AutoExposure results data structure.
Definition: iss_sensors.h:339
Definition: iss_sensors.h:230
Definition: iss_sensors.h:228
Definition: iss_sensors.h:258
int32_t(* IssSensor_ConfigFxn)(uint32_t chId, void *pSensorHdl, uint32_t sensor_features_requested)
Callback for sensor & SerDes configuration.
Definition: iss_sensors.h:594
IssAeRange blueGainRange
Definition: iss_sensors.h:578
uint32_t isUsed
Definition: iss_sensors.h:734
uint32_t exposureTimeStepSize
Definition: iss_sensors.h:564
IssSensor_Exposures
Enum for different sensor exposures in WDR sensor.
Definition: iss_sensors.h:239
int32_t IssSensor_GetSensorInfoFromDccId(uint32_t dccId, IssSensor_Info *pInfo)
Function to get Sensor information for sensor whose DCC ID is passed. It searches in the table of reg...
int32_t IssSensor_Register(IssSensors_Handle *pSensorPrms)
Function to register a sensor driver with the driver framework.
IssSensor_Info sensorInfo
Definition: iss_sensors.h:435
uint32_t dccId
Definition: iss_sensors.h:439
IssSensor_StreamOnFxn streamOn
Definition: iss_sensors.h:690
I2cParams * desCfgPreScript
Definition: iss_sensors.h:517
int32_t UB960_SelectPort(uint32_t chId)
Definition: iss_sensors.h:281
#define MAX_AE_DYN_PARAMS
Maximum number of dynamic parameter configuration supported for Auto Exposure Algorithm tuning...
Definition: iss_sensors.h:543
Definition: iss_sensors.h:241
Definition: iss_sensors.h:294
int32_t enableUB960Broadcast(int8_t ub960InstanceId)
Definition: iss_sensors.h:256
Definition: iss_sensors.h:103
IssSensor_StreamOffFxn streamOff
Definition: iss_sensors.h:691
IssSensor_ProbeFxn probe
Definition: iss_sensors.h:688
Sensor Specific Auto Exposure Dynamic Parameters.
Definition: iss_sensors.h:549
Structure used for specifying register configurations of sensor, serializer and deserializer.
Definition: iss_sensors.h:515
Definition: iss_sensors.h:218
Definition: iss_sensors.h:119
Definition: iss_sensors.h:245
Definition: iss_sensors.h:260
Definition: iss_sensors.h:97
uint32_t chId
Definition: iss_sensors.h:384
uint32_t chId
Definition: iss_sensors.h:341
Definition: iss_sensors.h:118
uint32_t nDelay
Definition: iss_sensors.h:329
Sensor Information structure.
Definition: iss_sensors.h:397
uint32_t num_channels
Definition: iss_sensors.h:437
Definition: iss_sensors.h:212
IssSensors_Handle * IssSensor_GetSensorHandle(char *name)
Function to get the sensor handle for the given sensor. This is used by the DCC Network Handler to Re...
Create Time parameters, ISS sensor layer uses these parameters and configures board module and sensor...
Definition: iss_sensors.h:423
int32_t IssSensor_Config(void *handle, uint32_t chId, uint32_t feat)
Function to configure the sensor.
Definition: iss_sensors.h:296
Definition: iss_sensors.h:99
Definition: iss_sensors.h:210
Definition: iss_sensors.h:93
Definition: iss_sensors.h:247
uint32_t sensor_pre_gain
Definition: iss_sensors.h:580
uint16_t nRegValue
Definition: iss_sensors.h:327
uint32_t chId
Definition: iss_sensors.h:361
uint16_t nRegAddr
Definition: iss_sensors.h:325
uint32_t totalWidth
Definition: iss_sensors.h:309
IssSensor_Features
Enum for Sensor Features.
Definition: iss_sensors.h:204
Definition: iss_sensors.h:216
int32_t(* IssSensor_SetAwbParamsFxn)(void *pSensorHdl, uint32_t chId, IssSensor_WhiteBalanceParams *pWbPrms)
Callback for setting WB gains in the sensor.
Definition: iss_sensors.h:680
int32_t IssSensor_DeInit()
Function to de-initialize sensor driver framework. Unregisters remote service.
Definition: iss_sensors.h:124
int32_t(* I2cRegReadWriteFxn)(uint32_t chId, void *pSensorHdl, uint32_t readWriteFlag, I2cParams *pReg)
Callback for reading/writing sensor registers from the application. Reserved for future use...
Definition: iss_sensors.h:661
uint32_t threshold
Definition: iss_sensors.h:562
int32_t(* IssSensor_PowerOffFxn)(uint32_t chId, void *pSensorHdl)
Callback for powering OFF the sensor, if applicable.
Definition: iss_sensors.h:619
int32_t UB960_SetAlias(uint32_t chId, uint8_t slot, uint8_t phy_i2c_addr_7bit, uint8_t alias_i2c_addr_7bit)
int32_t(* IssSensor_ProbeFxn)(uint32_t chId, void *pSensorHdl)
Callback for sensor probe. Detection of sensor HW using chip ID register.
Definition: iss_sensors.h:588
int32_t(* IssSensor_StreamOffFxn)(uint32_t chId, void *pSensorHdl)
Callback for stopping streaming.
Definition: iss_sensors.h:606
IssSensor_CreateParams * createPrms
Definition: iss_sensors.h:736
IssAeRange targetBrightnessRange
Definition: iss_sensors.h:558
Definition: iss_sensors.h:206
#define ISS_SENSORS_MAX_CHANNEL
Definition: iss_sensors.h:133
Min/Max Range, used in AWB calibration data.
Definition: iss_sensors.h:529
AutoWhiteBalance results data structure.
Definition: iss_sensors.h:359
Definition: iss_sensors.h:120
int32_t(* IssSensor_GetWbConfigFxn)(uint32_t chId, void *pSensorHdl, IssAwbDynamicParams *p_awb_dynPrms)
Callback for getting sensor's WB constraints. Needed for AutoWhiteBalance tuning. ...
Definition: iss_sensors.h:673
uint8_t pol
Definition: iss_sensors.h:468
uint32_t features
Definition: iss_sensors.h:401
Definition: iss_sensors.h:226
uint8_t sensorBroadcast
Definition: iss_sensors.h:488
IssSensor_GetDccParamsFxn getDccParams
Definition: iss_sensors.h:696
int32_t IssSensor_Stop(void *handle, uint32_t chId)
Used stopping the sensor, which is alraedy opened using Create function. Must be called after Create ...
Definition: iss_sensors.h:268
uint32_t fps
Definition: iss_sensors.h:405
For Line Interleaved WDR mode, this structure is used for specifying position of each exposure frame...
Definition: iss_sensors.h:307
IssSensors_Handle * getSensorHandleFromName(char *name)
Function to get sensor handle from name.
#define ISS_SENSORS_MAX_NAME
Definition: iss_sensors.h:136
Definition: iss_sensors.h:262
int8_t getUB960InstIdFromChId(uint32_t chId)
Function to map UB960 Instance to channel number On Fusion board the mapping is as follows Camera Cha...
tivx_raw_image_create_params_t raw_params
Definition: iss_sensors.h:399
Definition: iss_sensors.h:125
Structure for setting DCC params.
Definition: iss_sensors.h:382
IssSensor_DeinitFxn deinit
Definition: iss_sensors.h:701
Definition: iss_sensors.h:298
int32_t(* IssSensor_SetAeParamsFxn)(void *pSensorHdl, uint32_t chId, IssSensor_ExposureParams *pExpPrms)
Callback for setting sensor exposure and gain.
Definition: iss_sensors.h:625
uint16_t i2cInstId
Definition: iss_sensors.h:427
Definition: iss_sensors.h:96
IssSensor_GetIspConfigFxn getIspConfig
Definition: iss_sensors.h:698
Definition: iss_sensors.h:283
void(* IssSensor_DeinitFxn)(uint32_t chId, void *pSensorHdl)
Callback for de-initializing the sensor, if applicable. Reserved for future use.
Definition: iss_sensors.h:655
uint32_t expRatio
Definition: iss_sensors.h:343
uint8_t enableFsin
Definition: iss_sensors.h:490
IssSensor_PowerOnFxn powerOn
Definition: iss_sensors.h:692
Definition: iss_sensors.h:224
I2cParams * sensorCfgPreScript
Definition: iss_sensors.h:519
I2cParams * sensorCfgPostScript
Definition: iss_sensors.h:522
uint32_t numDataLanes
Definition: iss_sensors.h:407
Handle to the sensor driver. Includes all the information about the sensor.
Definition: iss_sensors.h:732
IMAGE_SENSOR_CTRLCMD
IOCTLS supported as part of IM_SENSOR_CMD_CTL command.
Definition: iss_sensors.h:113
int32_t disableUB960Broadcast(int8_t ub960InstanceId)
Definition: iss_sensors.h:98
int32_t IssSensor_Start(void *handle, uint32_t chId)
Used Starting the sensor, which is already opened using Create function. Must be called after Create ...
uint32_t starty
Definition: iss_sensors.h:312
Definition: iss_sensors.h:243
IssSensor_GetExpParamsFxn getExpParams
Definition: iss_sensors.h:694
int32_t disableUB960Streaming(uint32_t chId)
Function to enable streaming from UB960 by setting register 0x33 to 0x2 for the given camera channel...
IssSensor_GetExpPrgFxn getExpPrg
Definition: iss_sensors.h:700
uint32_t csi_laneBandSpeed
Definition: iss_sensors.h:413
uint32_t max
Definition: iss_sensors.h:532
int32_t IssSensor_Control(void *handle, uint32_t cmd, void *cmdArgs, void *cmdRetArgs)
Used for sending control commands, this layer supports all configuration using control commants...
uint32_t dccCfgSize
Definition: iss_sensors.h:388
Structure containins sensor information, used for registering it to the sensor framework.
Definition: iss_sensors.h:687
int32_t deInitFusion2_UB97x()
void(* IssSensor_GetIspConfigFxn)(uint32_t chId, void *pSensorHdl)
Callback for getting ISP settings specific to the sensor, if applicable. Reserved for future use...
Definition: iss_sensors.h:649
int32_t IssSensor_GetSensorInfo(char *name, IssSensor_CreateParams *pCreatePrms)
Function to get Sensor information for given sensor It searches in the table of registered sensors...
uint8_t * pDccCfg
Definition: iss_sensors.h:386
int32_t IssSensor_PowerOff(void *handle, uint32_t chId)
Function to power OFF the sensor.
Definition: iss_sensors.h:102
int32_t IssSensor_Init()
Function to initialize sensor driver framework. Registers with remote service. Includes init function...
int32_t UB960_SetSensorAlias(uint32_t chId, uint8_t sensor_phy_i2c_addr_7bit, uint8_t ser_alias_i2c_addr_7bit)
Definition: iss_sensors.h:266
Definition: iss_sensors.h:123
Definition: iss_sensors.h:117
Definition: iss_sensors.h:122
IssSensor_InitAewbConfigFxn initAewbConfig
Definition: iss_sensors.h:697
AlgItt_IssAewbMode
AEWB Algorithm Mode.
Definition: iss_sensors.h:255
AlgItt_IssAeMode
AE Algorithm SubModes.
Definition: iss_sensors.h:279
Definition: iss_sensors.h:115
uint32_t width
Definition: iss_sensors.h:314
Definition: iss_sensors.h:92
int32_t IssSensor_SetAwbParams(void *handle, uint32_t chId, IssSensor_WhiteBalanceParams *pWbPrms)
Function to send WhiteBalance gains to the sensor.
uint8_t position
Definition: iss_sensors.h:471
IssSensor_PowerOffFxn powerOff
Definition: iss_sensors.h:693
Register address and value pair, with delay.
Definition: iss_sensors.h:323
uint32_t targetBrightness
Definition: iss_sensors.h:560
Definition: iss_sensors.h:214
Definition: iss_sensors.h:91
int32_t(* IssSensor_GetDccParamsFxn)(uint32_t chId, void *pSensorHdl, IssSensor_DccParams *pDccPrms)
Callback for getting DCC parameters. Reserved for future use.
Definition: iss_sensors.h:631
Definition: iss_sensors.h:100
IssSensor_GetWbConfigFxn getWbCfg
Definition: iss_sensors.h:702
int32_t(* IssSensor_GetExpPrgFxn)(uint32_t chId, void *pSensorHdl, IssAeDynamicParams *p_ae_dynPrms)
Callback for getting sensor's exposure constraints. Needed for AutoExposure tuning.
Definition: iss_sensors.h:667
Sensor Specific Auto WhiteBalance Dynamic Parameters.
Definition: iss_sensors.h:576
Definition: iss_sensors.h:121
int32_t UB960_SetSerAlias(uint32_t chId, uint8_t alias_i2c_addr_7bit)
Definition: iss_sensors.h:222
I2cParams * serCfgPreScript
Definition: iss_sensors.h:518
void(* IssSensor_InitAewbConfigFxn)(uint32_t chId, void *pSensorHdl)
Callback for setting AEWB specific sensor settings, if applicable. Reserved for future use...
Definition: iss_sensors.h:643
CSI-2 COmplex I/O Lane Configuration.
Definition: iss_sensors.h:466
I2cRegReadWriteFxn readWriteReg
Definition: iss_sensors.h:699
AlgItt_IssAwbMode
AWB Algorithm SubModes.
Definition: iss_sensors.h:292
IMAGE_SENSOR_COMMAND
Definition: iss_sensors.h:89
Structure used for describing sensor interfacing.
Definition: iss_sensors.h:486
Definition: iss_sensors.h:104
int32_t enableUB960Streaming(uint32_t chId)
Function to enable streaming from UB960 by setting register 0x33 to 0x3 for the given camera channel...
uint32_t enableBlc
Definition: iss_sensors.h:566
IssAeRange greenGainRange
Definition: iss_sensors.h:579
int32_t ub960_cfgScript(I2cParams *script, int8_t ub960InstanceId)
Function to configure UB960 deserializer.
Definition: iss_sensors.h:285
void * IssSensor_Create(char *name)
Creates the sensor, based on the create params, it searches for the given sensor in the registered se...
IssSensor_ConfigFxn config
Definition: iss_sensors.h:689
I2cParams * desCfgPostScript
Definition: iss_sensors.h:520
int32_t(* IssSensor_GetExpParamsFxn)(uint32_t chId, void *pSensorHdl, IssSensor_ExposureParams *pExpPrms)
Callback for getting current exposure settings. Reserved for future use.
Definition: iss_sensors.h:637
IssSensor_SetAeParamsFxn setAeParams
Definition: iss_sensors.h:695
uint32_t numAeDynParams
Definition: iss_sensors.h:556
int32_t IssSensor_SetAeParams(void *handle, uint32_t chId, IssSensor_ExposureParams *pExpPrms)
Function to send Exposure parameters to the sensor.
IssSensorFxns * sensorFxns
Definition: iss_sensors.h:738
I2cParams * serCfgPostScript
Definition: iss_sensors.h:521
IssSensorIntfParams * sensorIntfPrms
Definition: iss_sensors.h:740
int32_t(* IssSensor_StreamOnFxn)(uint32_t chId, void *pSensorHdl)
Callback for starting streaming.
Definition: iss_sensors.h:600
int32_t initFusion2_UB97x()
int32_t IssSensor_Delete(void *handle)
Used for deleting the sensor, which is already opened using Create function. Internally it deletes se...
Definition: iss_sensors.h:95
uint32_t aewbMode
Definition: iss_sensors.h:403
int32_t(* IssSensor_PowerOnFxn)(uint32_t chId, void *pSensorHdl)
Callback for powering ON the sensor and/or configuring the deserialser so that the sensor is visible ...
Definition: iss_sensors.h:613
IssAeRange redGainRange
Definition: iss_sensors.h:577
uint32_t min
Definition: iss_sensors.h:530
Definition: iss_sensors.h:94
Definition: iss_sensors.h:101
uint8_t numCamerasStreaming
Definition: iss_sensors.h:492
IssSensor_SetAwbParamsFxn setAwbParams
Definition: iss_sensors.h:703
Definition: iss_sensors.h:208
int32_t ub953_cfgScript(uint8_t i2cInstId, uint8_t i2cAddr, I2cParams *script)
Function to configure UB953 serializer.
Definition: iss_sensors.h:220