15 #ifndef _NVMEDIA_ISC_H
16 #define _NVMEDIA_ISC_H
51 #define NVMEDIA_ISC_VERSION_MAJOR 2
53 #define NVMEDIA_ISC_VERSION_MINOR 4
57 #define NVMEDIA_ISC_SIMULATOR_ADDRESS 0xFF1
59 #define RDEV_CFG_I2C_BITS 8
61 #define RDEV_CFG_CSI_BITS (RDEV_CFG_I2C_BITS + 8)
63 #define RDEV_CFG_SLV_BIT (RDEV_CFG_CSI_BITS + 1)
71 #define ISC_RDEV_CFG(csi, i2c) (((uint32_t)(csi) << RDEV_CFG_I2C_BITS) | (i2c))
84 #define ISC_RDEV_CFG_EX(csi, i2c, disPwrCtrl) \
86 ((uint32_t)(csi & 0xffu) << RDEV_CFG_I2C_BITS) | \
87 ((uint32_t)(disPwrCtrl & 1u) << RDEV_CFG_SLV_BIT))
96 #define ISC_SLV_RDEV_CFG(csi, i2c) \
97 ((i2c) | ((uint32_t)(csi) << RDEV_CFG_I2C_BITS) | ((uint32_t)(1u) << RDEV_CFG_CSI_BITS))
105 #define ADV_CONFIG_INIT(cfg, ctx) \
107 memset(&cfg, 0, sizeof(cfg)); \
108 cfg.clientContext = (void *)(ctx); \
263 NvMediaISCRootDevice *
275 NvMediaISCRootDevice *device
427 NvMediaISCTransactionHandle *transaction,
428 uint32_t deviceIndex,
435 NvMediaISCTransactionHandle *transaction,
436 uint32_t deviceIndex,
438 const uint8_t *data);
441 NvMediaISCTransactionHandle *transaction,
442 uint32_t microSecond);
513 NvMediaISCDriverHandle **handle,
515 void *clientContext);
518 NvMediaISCDriverHandle *handle);
521 NvMediaISCDriverHandle *handle,
522 NvMediaISCTransactionHandle *transaction);
528 NvMediaISCDriverHandle *handle,
529 NvMediaISCTransactionHandle *transaction,
534 NvMediaISCDriverHandle *handle,
535 NvMediaISCTransactionHandle *transaction);
539 NvMediaISCDriverHandle *handle,
540 NvMediaISCTransactionHandle *transaction,
541 uint32_t enumeratedDeviceConfig);
545 NvMediaISCDriverHandle *handle,
546 NvMediaISCTransactionHandle *transaction,
547 uint32_t parameterType,
548 uint32_t parameterSize,
553 NvMediaISCDriverHandle *handle,
554 NvMediaISCTransactionHandle *transaction,
555 uint32_t parameterType,
556 uint32_t parameterSize,
562 NvMediaISCDriverHandle *handle,
563 NvMediaISCTransactionHandle *transaction,
565 uint32_t *lineLength,
570 NvMediaISCDriverHandle *handle,
571 NvMediaISCTransactionHandle *transaction,
573 uint32_t *lineLength,
575 uint32_t *sensorFrameId);
578 NvMediaISCDriverHandle *handle,
579 NvMediaISCTransactionHandle *transaction,
580 float_t *temperature);
583 NvMediaISCDriverHandle *handle,
584 NvMediaISCTransactionHandle *transaction,
588 NvMediaISCDriverHandle *handle,
589 NvMediaISCTransactionHandle *transaction,
593 NvMediaISCDriverHandle *handle,
594 NvMediaISCTransactionHandle *transaction,
595 uint32_t deviceIndex,
596 uint32_t registerNum,
601 NvMediaISCDriverHandle *handle,
602 NvMediaISCTransactionHandle *transaction,
603 uint32_t deviceIndex,
604 uint32_t registerNum,
609 NvMediaISCDriverHandle *handle,
610 NvMediaISCTransactionHandle *transaction);
613 NvMediaISCDriverHandle *handle,
614 NvMediaISCTransactionHandle *transaction,
615 uint32_t parameterSize,
619 NvMediaISCDriverHandle *handle,
623 NvMediaISCDriverHandle *handle,
624 NvMediaISCTransactionHandle *transaction,
625 uint32_t numExposureControls,
629 NvMediaISCDriverHandle *handle,
635 NvMediaISCDriverHandle *handle,
636 NvMediaISCTransactionHandle *transaction,
641 NvMediaISCDriverHandle *handle,
642 NvMediaISCTransactionHandle *transaction,
648 NvMediaISCDriverHandle *handle,
669 #define NVMEDIA_ISC_TIMEOUT_INFINITE 0xFFFFFFFF
693 NvMediaISCRootDevice *rootDevice,
694 uint32_t *deviceAddressList,
706 NvMediaISCDevice *device
722 NvMediaISCDevice *device
740 NvMediaISCDevice *device,
741 uint32_t instanceNumber,
758 NvMediaISCDevice *device
777 NvMediaISCDevice *device,
778 uint32_t enumeratedDeviceConfig
799 NvMediaISCDevice *device,
800 uint32_t parameterType,
801 uint32_t parameterSize,
823 NvMediaISCDevice *device,
824 uint32_t parameterType,
825 uint32_t parameterSize,
847 NvMediaISCDevice *device,
849 uint32_t *lineLength,
872 NvMediaISCDevice *device,
874 uint32_t *lineLength,
876 uint32_t *sensorFrameId
893 NvMediaISCDevice *device,
983 NvMediaISCDevice *device,
1002 NvMediaISCDevice *device,
1024 NvMediaISCDevice *device,
1025 uint32_t deviceIndex,
1026 uint32_t registerAddress,
1027 uint32_t dataByteNumber,
1049 NvMediaISCDevice *device,
1050 uint32_t deviceIndex,
1051 uint32_t registerAddress,
1052 uint32_t dataByteNumber,
1069 NvMediaISCDevice *device
1087 NvMediaISCDevice *device,
1088 uint32_t parameterSize,
1108 NvMediaISCRootDevice *device,
1110 void (*cbFunc)(
void *),
1149 NvMediaISCRootDevice *device,
1170 NvMediaISCDevice *device,
1202 NvMediaISCDevice *device,
1221 NvMediaISCDevice *device,
1222 uint32_t numExposureControls,
1241 NvMediaISCDevice *device,
1264 NvMediaISCRootDevice *device,
1284 NvMediaISCRootDevice *device,
1301 NvMediaISCRootDevice *device,
1320 NvMediaISCRootDevice *device,
1341 NvMediaISCDevice *device,
1364 NvMediaISCDevice *device,
struct NvMediaISCModuleConfig NvMediaISCModuleConfig
Holds the ISC Module ISP configuration.
NvMediaStatus NvMediaISCSetExposure(NvMediaISCDevice *device, NvMediaISCExposureControl *exposureControl)
Sets exposure control parameters.
Active number of exposures.
uint32_t NvMediaBool
A boolean value, holding NVMEDIA_TRUE or NVMEDIA_FALSE.
NvMediaISCExposureMode
Exposure mode.
NvMediaStatus NvMediaISCGetModuleConfig(NvMediaISCDevice *device, NvMediaISCModuleConfig *moduleConfig)
Gets the Module ISP configuration.
NvMediaStatus NvMediaISCReadParameters(NvMediaISCDevice *device, uint32_t parameterType, uint32_t parameterSize, void *parameter)
Reads device specific parameters.
NvMediaStatus NvMediaISCRootDeviceSetSyncConfig(NvMediaISCRootDevice *device, float_t freq, float_t dutyRatio)
Sets the PWM frequency and duty.
struct NvMediaISCExposureControl NvMediaISCExposureControl
Exposure control structure.
NvMediaStatus NvMediaISCParseEmbeddedData(NvMediaISCDevice *device, uint32_t lineCount, uint32_t *lineLength, uint8_t *lineData[], struct NvMediaISCEmbeddedData *parsedInformation)
Parses embedded data in the captured image.
NvMediaISCSensorAttrType
ISC sensor attributes.
NvMediaStatus NvMediaISCReadRegister(NvMediaISCDevice *device, uint32_t deviceIndex, uint32_t registerAddress, uint32_t dataByteNumber, uint8_t *dataBuffer)
Reads a device register.
NvMediaISCPowerItems
ISC Power control items.
NvMediaStatus NvMediaISCRootDeviceGetSyncConfig(NvMediaISCRootDevice *device, float_t *freq, float_t *dutyRatio)
Gets the PWM frequency and duty.
NvMediaStatus NvMediaISCGetVersion(NvMediaVersion *version)
Gets the version compatibility for the NvMedia ISC library.
Maximum possible HDR ratio value.
Fine integration time values in seconds.
Very short exposure mode.
Maximum possible exposure time values in seconds.
NvMediaStatus NvMediaISCCheckPresence(NvMediaISCDevice *device)
Check that the device is present.
void NvMediaISCRootDeviceDestroy(NvMediaISCRootDevice *device)
Destroys an NvMediaISCRootDevice object.
NvMediaStatus
The set of all possible error codes.
NvMediaStatus NvMediaISCGetCharacterizationAttr(NvMediaISCDevice *device, NvMediaISCSensorCharAttr type, uint32_t size, void *attribute)
Get sensor characterization attribute.
NvMediaStatus NvMediaISCGetErrorStatus(NvMediaISCDevice *device, uint32_t parameterSize, void *parameter)
Gets error information about an ISC device.
NvMediaStatus NvMediaISCSetDefaults(NvMediaISCDevice *device)
Sets defaults for the device.
Unique ID per instance of camera module.
Mininum possible gain values.
NvMediaStatus NvMediaISCWriteRegister(NvMediaISCDevice *device, uint32_t deviceIndex, uint32_t registerAddress, uint32_t dataByteNumber, uint8_t *dataBuffer)
Reads a device register.
NvMediaStatus NvMediaISCRootDeviceRegisterCallback(NvMediaISCRootDevice *device, int32_t sigNum, void(*cbFunc)(void *), void *context)
Registers a callback function to handle error messages.
void NvMediaISCDeviceDestroy(NvMediaISCDevice *device)
Destroys an NvMediaISCDevice device.
NvMediaStatus NvMediaISCSetCharacterizationAttr(NvMediaISCDevice *device, NvMediaISCSensorCharAttr type, uint32_t size, void *attribute)
Set sensor characterization attribute.
struct NvMediaISCEmbeddedData NvMediaISCEmbeddedData
Holds the embedded data structure.
NvMediaISCRootDevice * NvMediaISCRootDeviceCreate(uint32_t portCfg)
Creates an NvMediaISCRootDevice object.
NvMediaStatus NvMediaISCSetBracketedExposure(NvMediaISCDevice *device, uint32_t numExposureControls, NvMediaISCExposureControl *exposureControls)
Sets bracketed exposure control parameters.
NvMediaStatus NvMediaISCRootDeviceGetPowerStatus(NvMediaISCRootDevice *device, NvMediaISCPowerItems powerItem, NvMediaBool *powerStatus)
Gets the power ON/OFF status of a specific sub-device.
NvMediaStatus NvMediaISCGetSensorFrameId(NvMediaISCDevice *device, uint32_t lineCount, uint32_t *lineLength, uint8_t *lineData[], uint32_t *sensorFrameId)
Gets sensor frame ID from embedded data.
NvMediaISC_I2CPort
Defines the I2C buses on the host hardware device.
NvMediaStatus NvMediaISCGetTemperature(NvMediaISCDevice *device, float_t *temperature)
Gets a device temperature.
Maximum possible gain values.
NvMediaStatus NvMediaISCSetDeviceConfig(NvMediaISCDevice *device, uint32_t enumeratedDeviceConfig)
Sets enumerated device configuration to the device.
NvMediaStatus NvMediaISCCheckLink(NvMediaISCDevice *device, uint32_t instanceNumber, uint32_t link)
check the result of link detection of the numbered instance.
struct NvMediaISCWBGainControl NvMediaISCWBGainControl
Holds the white balance control structure.
Gain factor between the exposures.
NvMediaStatus NvMediaISCDumpRegisters(NvMediaISCDevice *device)
Dumps all device register to the standard output.
NvMediaISCDevice * NvMediaISCDeviceCreate(NvMediaISCRootDevice *rootDevice, uint32_t *deviceAddressList, uint32_t numDevices, NvMediaISCDeviceDriver *deviceDriver, NvMediaISCAdvancedConfig *advancedConfig)
Creates an NvMediaISCDevice object.
Single exposure enable flag.
Exposure time step values in seconds.
NvMediaStatus NvMediaISCRootDevicePowerControl(NvMediaISCRootDevice *device, NvMediaISCPowerItems powerItem, NvMediaBool powerOn)
Turns ON/OFF the power of a specific sub-device.
NvMediaISCSensorCharAttr
ISC sensor characterization attributes.
NvMediaStatus NvMediaISCRootDeviceEnableSync(NvMediaISCRootDevice *device, NvMediaBool enable)
Enables or disables PWM for the external synchronization.
Quantum efficiency ratio in split pixel HDR sensor technology.
void NvMediaISCRootDevice
An opaque handle for an NvMediaISCRootDevice object.
NvMediaStatus NvMediaISCGetSensorAttr(NvMediaISCDevice *device, NvMediaISCSensorAttrType type, uint32_t size, void *attribute)
Get sensor attribute.
NvMediaStatus NvMediaISCSetWBGain(NvMediaISCDevice *device, NvMediaISCWBGainControl *wbControl)
Sets white balance control parameters.
Minimum possible exposure time values in seconds.
NvMediaStatus NvMediaISCGetVersionInfo(NvMediaISCVersionInfo *versionInfo)
Returns the version information for the NvMedia ISC library.
NvMediaStatus NvMediaISCSetCompandingCurve(NvMediaISCDevice *device, uint32_t numPoints, NvMediaPoint *kneePoints)
Sets the companding curve control parameters.
NvMediaStatus NvMediaISCWriteParameters(NvMediaISCDevice *device, uint32_t parameterType, uint32_t parameterSize, void *parameter)
Writes device specific parameters.