NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
devblk_cdi.h File Reference

Detailed Description

NVIDIA Device Block Interface: Camera Device Interface (CDI)

This file contains the Camera Device Interface API.

Definition in file devblk_cdi.h.

Go to the source code of this file.

Data Structures

struct  DevBlkCDIDevice
 Holds the handles for an DevBlkCDIDevice object. More...
 
struct  DevBlkCDIPowerControlInfo
 Structure to hold power control information. More...
 
struct  DevBlkImageDesc
 Structure to describe a RAW image buffer. More...
 
struct  DevBlkCDIGPIOIndices
 Structure to hold array of CAMGPIO indices. More...
 
struct  DevBlkCDIDeviceDriver
 Holds device driver data. More...
 
struct  DevBlkCDIAdvancedConfig
 Holds the description of the target I2C device. More...
 
struct  DevBlkCDISensorControl
 Holds the sensor control structure. More...
 
struct  DevBlkCDIModuleConfig
 Holds the CDI Module ISP configuration. More...
 

Macros

#define DEVBLK_CDI_SIMULATOR_ADDRESS   0xFF1U
 Device address to use for an CDI simulator device. More...
 
#define RDEV_CFG_I2C_BITS   8U
 Bits reserved for the I2C bus number in CDI_RDEV_CFG(csi, i2c). More...
 
#define RDEV_CFG_CSI_BITS   (RDEV_CFG_I2C_BITS + 8U)
 Bits reserved for the CSI port in CDI_SLV_RDEV_CFG(csi, i2c). More...
 
#define RDEV_CFG_SLV_BIT   (RDEV_CFG_CSI_BITS + 1U)
 Bit reserved for the passive mode flag in CDI_SLV_RDEV_CFG(csi, i2c). More...
 
#define CDI_RDEV_CFG(csi, i2c)   (((uint32_t)(csi) << (uint32_t)RDEV_CFG_I2C_BITS) | (i2c))
 Macro to create root device configuration with the connected CSI port and I2C bus. More...
 
#define CDI_RDEV_CFG_EX(csi, i2c, disPwrCtrl)
 Extended macro to create root device configuration with the connected CSI port, I2C bus, and an option to disable power control from root device. More...
 
#define CDI_SLV_RDEV_CFG(csi, i2c)   ((i2c) | ((uint32_t)(csi) << RDEV_CFG_I2C_BITS) | ((uint32_t)(1U) << RDEV_CFG_CSI_BITS))
 Macro to create a passive root device configuration with the connected CSI port and I2C bus when the application is run on a passive SoC. More...
 
#define DEVBLK_CDI_ROOT_DEVICE_MAX_GPIOS   (16U)
 The maximum number of GPIOs supported on a CDI Root Device. More...
 
#define MAX_POWER_LINKS_PER_BLOCK   (4U)
 The maximum number of power links per device block. More...
 
#define DEVBLK_CDI_GPIO_LEVEL_LOW   (1U)
 CDI codes for CAMGPIO GPIO Levels. More...
 
#define DEVBLK_CDI_GPIO_LEVEL_HIGH   (2U)
 

Typedefs

typedef void DevBlkCDIRootDevice
 An opaque handle for an DevBlkCDIRootDevice object. More...
 
typedef struct DevBlkCDISensorControl DevBlkCDISensorControl
 Holds the sensor control structure. More...
 
typedef struct DevBlkCDIModuleConfig DevBlkCDIModuleConfig
 Holds the CDI Module ISP configuration. More...
 

Enumerations

enum  DevBlkCDI_I2CPort {
  DEVBLK_CDI_I2C_BUS_0 = 0,
  DEVBLK_CDI_I2C_BUS_1 = 1,
  DEVBLK_CDI_I2C_BUS_2 = 2,
  DEVBLK_CDI_I2C_BUS_3 = 3,
  DEVBLK_CDI_I2C_BUS_4 = 4,
  DEVBLK_CDI_I2C_BUS_5 = 5,
  DEVBLK_CDI_I2C_BUS_6 = 6,
  DEVBLK_CDI_I2C_BUS_7 = 7,
  DEVBLK_CDI_I2C_BUS_8 = 8,
  DEVBLK_CDI_I2C_BUS_9 = 9,
  DEVBLK_CDI_I2C_BUS_10 = 10,
  DEVBLK_CDI_I2C_BUS_11 = 11,
  DEVBLK_CDI_I2C_BUS_12 = 12,
  DEVBLK_CDI_I2C_BUS_13 = 13,
  DEVBLK_CDI_I2C_BUS_14 = 14,
  DEVBLK_CDI_I2C_BUS_15 = 15,
  DEVBLK_CDI_I2C_BUS_16 = 16,
  DEVBLK_CDI_I2C_SIMULATOR = 255
}
 Defines the I2C buses on the host hardware device. More...
 
enum  DevBlkCDIGpioEvent {
  DEVBLK_CDI_GPIO_EVENT_INTR = 0,
  DEVBLK_CDI_GPIO_EVENT_INTR_TIMEOUT,
  DEVBLK_CDI_GPIO_EVENT_ERROR_CAMGPIO,
  DEVBLK_CDI_GPIO_EVENT_ERROR_BACKEND,
  DEVBLK_CDI_GPIO_EVENT_ERROR_UNKNOWN
}
 CDI codes for CAMGPIO Interrupt Events. More...
 
enum  DevBlkCDIPowerItems {
  DEVBLK_CDI_PWR_AGGREGATOR,
  DEVBLK_CDI_PWR_LINK_0,
  DEVBLK_CDI_PWR_LINK_1,
  DEVBLK_CDI_PWR_LINK_2,
  DEVBLK_CDI_PWR_LINK_3
}
 CDI Power control items. More...
 

Functions

NvMediaStatus DevBlkCDIRootDeviceGetGPIOPinLevel (DevBlkCDIRootDevice const *device, uint32_t gpio_idx, uint32_t *level)
 Queries the logic level of a Tegra GPIO input pin associated with the root device. More...
 
NvMediaStatus DevBlkCDIRootDeviceCheckGPIOPinLevel (DevBlkCDIRootDevice const *device, uint32_t gpio_idx, uint32_t expected_level)
 Compares the logic level of a Tegra GPIO input pin associated with the root device with expected pin level. More...
 
NvMediaStatus DevBlkCDIRootDevicePollGPIOPinLevel (DevBlkCDIDevice const *device, uint32_t gpio_idx, uint32_t expected_level, uint32_t poll_count, uint32_t poll_delay)
 Poll the logic level of a Tegra GPIO input pin associated with the root device with expected pin level. More...
 
NvMediaStatus DevBlkCDIRootDeviceSetGPIOPinLevel (DevBlkCDIRootDevice const *device, uint32_t gpio_idx, uint32_t level)
 Sets the logic level of Tegra GPIO output pin associated with this root device. More...
 
NvMediaStatus DevBlkCDIRootDeviceCheckIntrPin (DevBlkCDIRootDevice const *device, uint32_t gpio_idx)
 Verifies that the level of a GPIO pin configured as an interrupt is at the correct pre-transition level, and then clears any pending interrupt event. More...
 
NvMediaStatus DevBlkCDIDeviceRead (DevBlkCDIDevice const *device, uint32_t deviceIndex, uint32_t regLength, uint8_t *regData, uint32_t dataLength, uint8_t *data)
 
Usage considerations More...
 
NvMediaStatus DevBlkCDIDeviceWrite (DevBlkCDIDevice const *device, uint32_t deviceIndex, uint32_t dataLength, const uint8_t *data)
 Performs a write operation over I2C. More...
 
NvMediaStatus DevBlkCDIGetSensorAttributes (DevBlkCDIDevice *device, DevBlkCDISensorAttributes *sensorAttr, const size_t sensorAttrStructSize)
 Queries the sensor attributes. More...
 
NvMediaStatus DevBlkCDISetSensorControls (DevBlkCDIDevice *device, const DevBlkCDISensorControl *sensorControl, const size_t sensrCtrlStructSize)
 Sets sensor control parameters. More...
 
NvMediaStatus DevBlkCDIParseTopEmbDataInfo (DevBlkCDIDevice *device, const DevBlkCDIEmbeddedDataChunk *embeddedTopDataChunk, const size_t embeddedDataChunkStructSize, DevBlkCDIEmbeddedDataInfo *embeddedDataInfo, const size_t dataInfoStructSize)
 Parses top sensor embedded data info and provides sensor image settings information for the captured frame. More...
 
NvMediaStatus DevBlkCDIParseBotEmbDataInfo (DevBlkCDIDevice *device, const DevBlkCDIEmbeddedDataChunk *embeddedBotDataChunk, const size_t embeddedDataChunkStructSize, DevBlkCDIEmbeddedDataInfo *embeddedDataInfo, const size_t dataInfoStructSize)
 Parses Bottom sensor embedded data info and provides sensor image settings information for the captured frame. More...
 
NvMediaStatus DevBlkCDISetDeserPower (DevBlkCDIDevice *device, NvMediaBool enable)
 Set the deserializer module power. More...
 
NvMediaStatus DevBlkCDIEnableErrorReport (DevBlkCDIRootDevice const *device)
 Enable the error report. More...
 
NvMediaStatus DevBlkCDIGetDesPowerControlInfo (DevBlkCDIDevice *device, DevBlkCDIPowerControlInfo *desPwrControlInfo)
 Get the deserialzer's power control information. More...
 
NvMediaStatus DevBlkCDIGetCamPowerControlInfo (DevBlkCDIDevice *device, DevBlkCDIPowerControlInfo *camPwrControlInfo)
 Get the camera's power control information. More...
 
NvMediaStatus DevBlkCDIReserveI2CAddr (DevBlkCDIDevice *device, uint8_t address, bool useNativeI2C, uint32_t *reservedI2CAddr)
 Reserve device I2C address. More...
 
NvMediaStatus DevBlkCDISetFsyncMux (DevBlkCDIDevice *device, uint32_t fsyncMuxSel, uint32_t camGrpIdx)
 Set multiplexer to select the FSYNC source. More...
 
NvMediaStatus DevBlkCDIAuthenticateImage (DevBlkCDIDevice const *const device, DevBlkImageDesc const *const imageDesc)
 Authenticate an image data passed in a parameters. More...
 
NvMediaStatus DevBlkCDISetSensorCharMode (DevBlkCDIDevice *device, uint8_t expNo)
 Set sensor in characterization mode. More...
 
NvMediaStatus DevBlkCDIGetModuleConfig (DevBlkCDIDevice *device, DevBlkCDIModuleConfig *moduleConfig)
 Gets the Module ISP configuration. More...