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); \
265 NvMediaISCRootDevice *
277 NvMediaISCRootDevice *device
448 NvMediaISCTransactionHandle *transaction,
449 uint32_t deviceIndex,
456 NvMediaISCTransactionHandle *transaction,
457 uint32_t deviceIndex,
459 const uint8_t *data);
462 NvMediaISCTransactionHandle *transaction,
463 uint32_t microSecond);
534 NvMediaISCDriverHandle **handle,
536 void *clientContext);
539 NvMediaISCDriverHandle *handle);
542 NvMediaISCDriverHandle *handle,
543 NvMediaISCTransactionHandle *transaction);
549 NvMediaISCDriverHandle *handle,
550 NvMediaISCTransactionHandle *transaction,
555 NvMediaISCDriverHandle *handle,
556 NvMediaISCTransactionHandle *transaction);
560 NvMediaISCDriverHandle *handle,
561 NvMediaISCTransactionHandle *transaction,
562 uint32_t enumeratedDeviceConfig);
566 NvMediaISCDriverHandle *handle,
567 NvMediaISCTransactionHandle *transaction,
568 uint32_t parameterType,
569 uint32_t parameterSize,
574 NvMediaISCDriverHandle *handle,
575 NvMediaISCTransactionHandle *transaction,
576 uint32_t parameterType,
577 uint32_t parameterSize,
583 NvMediaISCDriverHandle *handle,
584 NvMediaISCTransactionHandle *transaction,
586 uint32_t *lineLength,
591 NvMediaISCDriverHandle *handle,
592 NvMediaISCTransactionHandle *transaction,
594 uint32_t *lineLength,
596 uint32_t *sensorFrameId);
599 NvMediaISCDriverHandle *handle,
600 NvMediaISCTransactionHandle *transaction,
601 float_t *temperature);
604 NvMediaISCDriverHandle *handle,
605 NvMediaISCTransactionHandle *transaction,
609 NvMediaISCDriverHandle *handle,
610 NvMediaISCTransactionHandle *transaction,
614 NvMediaISCDriverHandle *handle,
615 NvMediaISCTransactionHandle *transaction,
616 uint32_t deviceIndex,
617 uint32_t registerNum,
622 NvMediaISCDriverHandle *handle,
623 NvMediaISCTransactionHandle *transaction,
624 uint32_t deviceIndex,
625 uint32_t registerNum,
630 NvMediaISCDriverHandle *handle,
631 NvMediaISCTransactionHandle *transaction);
634 NvMediaISCDriverHandle *handle,
635 NvMediaISCTransactionHandle *transaction,
636 uint32_t parameterSize,
640 NvMediaISCDriverHandle *handle,
644 NvMediaISCDriverHandle *handle,
645 NvMediaISCTransactionHandle *transaction,
646 uint32_t numExposureControls,
650 NvMediaISCDriverHandle *handle,
656 NvMediaISCDriverHandle *handle,
657 NvMediaISCTransactionHandle *transaction,
662 NvMediaISCDriverHandle *handle,
663 NvMediaISCTransactionHandle *transaction,
669 NvMediaISCDriverHandle *handle,
690 #define NVMEDIA_ISC_TIMEOUT_INFINITE 0xFFFFFFFF
714 NvMediaISCRootDevice *rootDevice,
715 uint32_t *deviceAddressList,
727 NvMediaISCDevice *device
743 NvMediaISCDevice *device
761 NvMediaISCDevice *device,
762 uint32_t instanceNumber,
779 NvMediaISCDevice *device
798 NvMediaISCDevice *device,
799 uint32_t enumeratedDeviceConfig
820 NvMediaISCDevice *device,
821 uint32_t parameterType,
822 uint32_t parameterSize,
844 NvMediaISCDevice *device,
845 uint32_t parameterType,
846 uint32_t parameterSize,
868 NvMediaISCDevice *device,
870 uint32_t *lineLength,
893 NvMediaISCDevice *device,
895 uint32_t *lineLength,
897 uint32_t *sensorFrameId
914 NvMediaISCDevice *device,
1004 NvMediaISCDevice *device,
1023 NvMediaISCDevice *device,
1045 NvMediaISCDevice *device,
1046 uint32_t deviceIndex,
1047 uint32_t registerAddress,
1048 uint32_t dataByteNumber,
1070 NvMediaISCDevice *device,
1071 uint32_t deviceIndex,
1072 uint32_t registerAddress,
1073 uint32_t dataByteNumber,
1090 NvMediaISCDevice *device
1108 NvMediaISCDevice *device,
1109 uint32_t parameterSize,
1129 NvMediaISCRootDevice *device,
1131 void (*cbFunc)(
void *),
1170 NvMediaISCRootDevice *device,
1191 NvMediaISCDevice *device,
1223 NvMediaISCDevice *device,
1242 NvMediaISCDevice *device,
1243 uint32_t numExposureControls,
1262 NvMediaISCDevice *device,
1285 NvMediaISCRootDevice *device,
1306 NvMediaISCRootDevice *device,
1323 NvMediaISCRootDevice *device,
1342 NvMediaISCRootDevice *device,
1363 NvMediaISCDevice *device,
1386 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 pulse width modulation (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 pulse width modulation (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.
Minimum 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 pulse width modulation (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.