TI J721E Imaging User Guide
iss_sensors.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2020 Texas Instruments Incorporated
4  *
5  * All rights reserved not granted herein.
6  *
7  * Limited License.
8  *
9  * Texas Instruments Incorporated grants a world-wide, royalty-free, non-exclusive
10  * license under copyrights and patents it now or hereafter owns or controls to make,
11  * have made, use, import, offer to sell and sell ("Utilize") this software subject to the
12  * terms herein. With respect to the foregoing patent license, such license is granted
13  * solely to the extent that any such patent is necessary to Utilize the software alone.
14  * The patent license shall not apply to any combinations which include this software,
15  * other than combinations with devices manufactured by or for TI ("TI Devices").
16  * No hardware patent is licensed hereunder.
17  *
18  * Redistributions must preserve existing copyright notices and reproduce this license
19  * (including the above copyright notice and the disclaimer and (if applicable) source
20  * code license limitations below) in the documentation and/or other materials provided
21  * with the distribution
22  *
23  * Redistribution and use in binary form, without modification, are permitted provided
24  * that the following conditions are met:
25  *
26  * * No reverse engineering, decompilation, or disassembly of this software is
27  * permitted with respect to any software provided in binary form.
28  *
29  * * any redistribution and use are licensed by TI for use only with TI Devices.
30  *
31  * * Nothing shall obligate TI to provide you with source code for the software
32  * licensed and provided to you in object code.
33  *
34  * If software source code is provided to you, modification and redistribution of the
35  * source code are permitted provided that the following conditions are met:
36  *
37  * * any redistribution and use of the source code, including any resulting derivative
38  * works, are licensed by TI for use only with TI Devices.
39  *
40  * * any redistribution and use of any object code compiled from the source code
41  * and any resulting derivative works, are licensed by TI for use only with TI Devices.
42  *
43  * Neither the name of Texas Instruments Incorporated nor the names of its suppliers
44  *
45  * may be used to endorse or promote products derived from this software without
46  * specific prior written permission.
47  *
48  * DISCLAIMER.
49  *
50  * THIS SOFTWARE IS PROVIDED BY TI AND TI'S LICENSORS "AS IS" AND ANY EXPRESS
51  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
52  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
53  * IN NO EVENT SHALL TI AND TI'S LICENSORS BE LIABLE FOR ANY DIRECT, INDIRECT,
54  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
55  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
56  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
57  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
58  * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
59  * OF THE POSSIBILITY OF SUCH DAMAGE.
60  *
61  */
62 #ifndef ISS_SENSORS_H_
63 #define ISS_SENSORS_H_
64 
65 #include "TI/tivx_ext_raw_image.h"
66 
67 #include <stdio.h>
68 #include <stdint.h>
69 #include <stdlib.h>
70 #include <assert.h>
71 
72 /*******************************************************************************
73  * Include files
74  *******************************************************************************
75  */
76 
77 /*******************************************************************************
78  * Defines
79  *******************************************************************************
80  */
81 
82 
87 #define SENSOR_I2C_TIMEOUT (5000U)
88 
89 typedef enum
90 {
106 
107 
113 typedef enum
114 {
127 
128 
129 #define IMAGE_SENSOR_REMOTE_SERVICE_NAME "com.ti.image_sensor"
130 #define CMD_PARAM_SIZE 384
131 
132 /* Maximum number of channels supported */
133 #define ISS_SENSORS_MAX_CHANNEL (12U)
134 
135 /* Max characters in the sensor name */
136 #define ISS_SENSORS_MAX_NAME (32U)
137 
138 /* Supports Sensor's name */
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"
146 // #define SENSOR_SONY_IMX390_UB953_D3CM "IMX390-UB953_D3CM"
147 // #define SENSOR_ONSEMI_AR0233_MAX9295_D3 "AR0233-MAX9295-D3"
148 // #define SENSOR_ONSEMI_AR0233_MAX9295_LEOPARD "AR0233-MAX9295-LEOPARD"
149 // #define GW_MAX9295_AR0233_UYVY "GW_MAX9295_AR0233_UYVY"
150 // #define SENSOR_ONSEMI_AR0820_MAX9295 "AR0820-MAX9295"
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"
154 
155 /* Defines ported from PDK for devices on MCU_PLUS_SDK */
156 // #if defined (SOC_J722S)
157 #if defined (MCU_PLUS_SDK)
158 
160 #define BOARD_I2C_REG_ADDR_MSB_FIRST (0x0U)
161 
162 #define I2C_400kHz I2C_400KHZ
163 
172 #define BOARD_CSI_INST_0 ((uint32_t) 0x0U)
173 
174 #define BOARD_CSI_INST_1 ((uint32_t) 0x1U)
175 
176 #define BOARD_CSI_INST_2 ((uint32_t) 0x2U)
177 /* @} */
178 
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)
182 
183 /* Board detect ID for Fusion2 */
184 #define BOARD_ID_FUSION2 (0x2U)
185 
186 int32_t Board_i2c16BitRegRd(void *handle,
187  uint32_t slaveAddr,
188  uint16_t regAddr,
189  uint8_t *regData,
190  uint8_t numOfBytes,
191  uint8_t byteOrdSel,
192  uint32_t i2cTimeout);
193 #endif
194 
195 /*******************************************************************************
196  * Data structure's
197  *******************************************************************************
198  */
199 
204 typedef enum
205 {
233 
234 
239 typedef enum
240 {
250 
255 typedef enum {
274 
279 typedef enum {
287 
292 typedef enum {
300 
301 
307 typedef struct
308 {
309  uint32_t totalWidth, totalHeight;
311  struct {
312  uint32_t startx, starty;
314  uint32_t width, height;
316  } info[ISS_SENSOR_MAX_EXPOSURE];
318 
323 typedef struct
324 {
325  uint16_t nRegAddr;
327  uint16_t nRegValue;
329  uint32_t nDelay;
331 } I2cParams;
332 
333 
339 typedef struct
340 {
341  uint32_t chId;
343  uint32_t expRatio;
345  uint32_t exposureTime[ISS_SENSOR_MAX_EXPOSURE];
348  uint32_t analogGain[ISS_SENSOR_MAX_EXPOSURE];
352 
353 
359 typedef struct
360 {
361  uint32_t chId;
363  uint32_t rGain[ISS_SENSOR_MAX_EXPOSURE];
366  uint32_t gGain[ISS_SENSOR_MAX_EXPOSURE];
369  uint32_t bGain[ISS_SENSOR_MAX_EXPOSURE];
372  uint32_t colorTemp[ISS_SENSOR_MAX_EXPOSURE];
376 
377 
382 typedef struct
383 {
384  uint32_t chId;
386  uint8_t *pDccCfg;
388  uint32_t dccCfgSize;
391 
392 
397 typedef struct
398 {
399  tivx_raw_image_create_params_t raw_params;
401  uint32_t features;
403  uint32_t aewbMode;
405  uint32_t fps;
407  uint32_t numDataLanes;
409  uint32_t dataLanesMap[4];
411  uint32_t dataLanesPolarity[4];
413  uint32_t csi_laneBandSpeed;
416 
417 
423 typedef struct
424 {
427  uint16_t i2cInstId;
429  uint8_t i2cAddrSensor[ISS_SENSORS_MAX_CHANNEL];
431  uint8_t i2cAddrSer[ISS_SENSORS_MAX_CHANNEL];
433  // uint8_t i2cAddrMisc[ISS_SENSORS_MAX_CHANNEL];
437  uint32_t num_channels;
439  uint32_t dccId;
442 
443 /*******************************************************************************
444  * Defines
445  *******************************************************************************
446  */
447 #define ISS_SENSORS_MAX_SUPPORTED_SENSOR (12U)
448 
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
455 
456 
457 /*******************************************************************************
458  * Data Structures
459  *******************************************************************************
460  */
461 
466 typedef struct
467 {
468  uint8_t pol;
471  uint8_t position;
480 
481 
486 typedef struct
487 {
490  uint8_t enableFsin;
495 
496 
515 typedef struct
516 {
524 
529 typedef struct {
530  uint32_t min;
532  uint32_t max;
534 } IssAeRange;
535 
536 
543 #define MAX_AE_DYN_PARAMS (10U)
544 
549 typedef struct {
550  IssAeRange exposureTimeRange[MAX_AE_DYN_PARAMS];
552  IssAeRange analogGainRange[MAX_AE_DYN_PARAMS];
554  IssAeRange digitalGainRange[MAX_AE_DYN_PARAMS];
556  uint32_t numAeDynParams;
562  uint32_t threshold;
566  uint32_t enableBlc;
569 
570 
576 typedef struct {
580  uint32_t sensor_pre_gain;
583 
588 typedef int32_t (*IssSensor_ProbeFxn) (uint32_t chId, void *pSensorHdl);
589 
594 typedef int32_t (*IssSensor_ConfigFxn) (uint32_t chId, void *pSensorHdl, uint32_t sensor_features_requested);
595 
600 typedef int32_t (*IssSensor_StreamOnFxn) (uint32_t chId, void *pSensorHdl);
601 
606 typedef int32_t (*IssSensor_StreamOffFxn) (uint32_t chId, void *pSensorHdl);
607 
613 typedef int32_t (*IssSensor_PowerOnFxn) (uint32_t chId, void *pSensorHdl);
614 
619 typedef int32_t (*IssSensor_PowerOffFxn) (uint32_t chId, void *pSensorHdl);
620 
625 typedef int32_t (*IssSensor_SetAeParamsFxn) (void *pSensorHdl, uint32_t chId, IssSensor_ExposureParams *pExpPrms);
626 
631 typedef int32_t (*IssSensor_GetDccParamsFxn) (uint32_t chId, void *pSensorHdl, IssSensor_DccParams *pDccPrms);
632 
637 typedef int32_t (*IssSensor_GetExpParamsFxn) (uint32_t chId, void *pSensorHdl, IssSensor_ExposureParams *pExpPrms);
638 
643 typedef void (*IssSensor_InitAewbConfigFxn) (uint32_t chId, void *pSensorHdl);
644 
649 typedef void (*IssSensor_GetIspConfigFxn) (uint32_t chId, void *pSensorHdl);
650 
655 typedef void (*IssSensor_DeinitFxn) (uint32_t chId, void *pSensorHdl);
656 
661 typedef int32_t (*I2cRegReadWriteFxn) (uint32_t chId, void *pSensorHdl, uint32_t readWriteFlag, I2cParams *pReg);
662 
667 typedef int32_t (*IssSensor_GetExpPrgFxn) (uint32_t chId, void *pSensorHdl, IssAeDynamicParams *p_ae_dynPrms);
668 
673 typedef int32_t (*IssSensor_GetWbConfigFxn) (uint32_t chId, void *pSensorHdl, IssAwbDynamicParams *p_awb_dynPrms);
674 
675 
680 typedef int32_t (*IssSensor_SetAwbParamsFxn) (void *pSensorHdl, uint32_t chId, IssSensor_WhiteBalanceParams *pWbPrms);
681 
704 };
705 /* Forward Declaration of Sensor Params */
706 typedef struct IssSensorFxns_t IssSensorFxns;
707 
708 
709 // typedef int32_t (*IssSerDes_ProbeFxn)(uint32_t chId, void *pSensorHdl);
710 
711 // typedef int32_t (*IssSerDes_ConfigFxn)(uint32_t chId, void *pSensorHdl);
712 
713 // typedef int32_t (*IssSerDes_EnableCSIFxn)(uint32_t chId, void *pSensorHdl);
714 
715 // typedef int32_t (*IssSerDes_DisableCSIFxn)(uint32_t chId, void *pSensorHdl);
716 
717 // typedef int32_t (*IssSerDes_SelectTypeFxn)(uint32_t chId, void *pSensorHdl, uint32_t type);
718 
719 // struct IssSerDesFxns_t {
720 // IssSerDes_ProbeFxn probe;
721 // IssSerDes_ConfigFxn config;
722 // IssSerDes_EnableCSIFxn enableCSI;
723 // IssSerDes_DisableCSIFxn disableCSI;
724 // IssSerDes_SelectTypeFxn selectType;
725 // };
726 // typedef struct IssSerDesFxns_t IssSerDesFxns;
727 
732 typedef struct
733 {
734  uint32_t isUsed;
738  IssSensorFxns * sensorFxns;
742  // IssSerDesFxns * desFxns;
743  // IssSerDesFxns * serFxns;
745 
746 
747 /*******************************************************************************
748  * Functions Declarations
749  *******************************************************************************
750  * \ingroup group_vision_function_imaging_sensordrv
751  */
752 
753 
769 int32_t IssSensor_Init();
770 
783 int32_t IssSensor_DeInit();
784 
799 int32_t IssSensor_Register(IssSensors_Handle *pSensorPrms);
800 
801 
819 int32_t IssSensor_GetSensorInfo(char * name, IssSensor_CreateParams *pCreatePrms);
820 
839 int32_t IssSensor_GetSensorInfoFromDccId(uint32_t dccId, IssSensor_Info *pInfo);
840 
860 
879 void* IssSensor_Create(char * name);
880 
902 int32_t IssSensor_Control(void* handle, uint32_t cmd, void* cmdArgs,
903  void* cmdRetArgs);
904 
921 int32_t IssSensor_Start(void* handle, uint32_t chId);
922 
939 int32_t IssSensor_Stop(void* handle, uint32_t chId);
940 
956 int32_t IssSensor_Delete(void* handle);
957 
971 int32_t ub960_cfgScript(I2cParams *script, int8_t ub960InstanceId);
972 
987 int32_t ub953_cfgScript(uint8_t i2cInstId, uint8_t i2cAddr, I2cParams *script);
988 
1002 
1020 int32_t IssSensor_PowerOn(void* handle, uint32_t chMask);
1021 
1022 
1036 int32_t IssSensor_PowerOff(void* handle, uint32_t chId);
1037 
1054 int32_t IssSensor_Config(void* handle, uint32_t chId, uint32_t feat);
1055 
1070 int32_t IssSensor_SetAeParams(void *handle, uint32_t chId, IssSensor_ExposureParams *pExpPrms);
1071 
1086 int32_t IssSensor_SetAwbParams(void *handle, uint32_t chId, IssSensor_WhiteBalanceParams *pWbPrms);
1087 
1088 int32_t enableUB960Broadcast(int8_t ub960InstanceId);
1089 int32_t disableUB960Broadcast(int8_t ub960InstanceId);
1090 int32_t UB960_SelectPort(uint32_t chId);
1091 int32_t UB960_SetAlias(uint32_t chId, uint8_t slot, uint8_t phy_i2c_addr_7bit, uint8_t alias_i2c_addr_7bit);
1092 int32_t UB960_SetSerAlias(uint32_t chId, 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);
1094 
1095 
1109 int32_t enableUB960Streaming(uint32_t chId);
1110 
1124 int32_t disableUB960Streaming(uint32_t chId);
1125 
1126 
1151 int8_t getUB960InstIdFromChId(uint32_t chId);
1152 int32_t initFusion2_UB97x();
1153 int32_t deInitFusion2_UB97x();
1154 
1155 #endif /* End of ISS_SENSORS_H_*/
1156 
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&#39;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&#39;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