NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
IMX623_CustomInterface.hpp
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: Copyright (c) 2022-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
3  * SPDX-License-Identifier: LicenseRef-NvidiaProprietary
4  *
5  * NVIDIA CORPORATION, its affiliates and licensors retain all intellectual
6  * property and proprietary rights in and to this material, related
7  * documentation and any modifications thereto. Any use, reproduction,
8  * disclosure or distribution of this material and related documentation
9  * without an express license agreement from NVIDIA CORPORATION or
10  * its affiliates is strictly prohibited.
11  */
12 
13 #ifndef IMX623_CUSTOMINTERFACE_HPP
14 #define IMX623_CUSTOMINTERFACE_HPP
15 
17 #include "IMX623_CustomData.h"
18 #include "MAX96717F_CustomData.h"
19 #include "TPS650332_CustomData.h"
20 
29 namespace nvsipl {
30 
37 constexpr UUID IMX623_CUSTOM_INTERFACE_ID(0x90FB9A0DU, 0xA3AAU, 0x4C1BU, 0xA3B0U,
38  0xA1U, 0xE0U, 0xE9U, 0xBFU, 0x4FU, 0x7DU);
39 
44 public:
58  static const UUID& getClassInterfaceID() {
60  }
74  const UUID& getInstanceInterfaceID() const noexcept override {
76  }
77 
117  uint8_t const * const embeddedBufTop,
118  uint32_t const embeddedBufTopSize,
119  IMX623CustomEmbeddedData * const customEmbData) const = 0;
120 
159  MAX96717FVideoStatus *const customErrInfo) const = 0;
160 
197  virtual SIPLStatus PSCheckIsetComparator(uint8_t* const dataBuff) const = 0;
198 
245  uint8_t const dataBuff_size, uint16_t* const dataBuff) const = 0;
246 
277  virtual SIPLStatus VerifySerGPIOReadBackStatus(void) const = 0;
278 
279 #if !(NV_IS_SAFETY)
280 
312  virtual SIPLStatus WriteEEPROMData(
313  uint16_t const address, uint32_t const length, uint8_t * const buffer) = 0;
314 #endif // !(NV_IS_SAFETY)
315 
348  uint32_t const length, uint8_t const * const buffer) = 0;
349 
383  virtual SIPLStatus TPS650332ExecuteABIST(bool* const hasError) = 0;
384 
420  virtual SIPLStatus TPS650332GetErrorInfo(TPS650332CustomErrInfo *const customErrInfo) = 0;
421 
457  virtual SIPLStatus TPS650332GetnINTErrorStatus(bool* const hasError) = 0;
458 
491  DevBlkCDITemperature *const sensorTempInfo) const = 0;
492 
527  DevBlkCDITemperature *const serTempInfo) const = 0;
528 
555  virtual SIPLStatus CameraModulePowerOff(void) = 0;
556 
592  virtual SIPLStatus ControlDeserLink(bool const enable) = 0;
593 
594 #if !NV_IS_SAFETY
595 
628  virtual SIPLStatus IMX623I2CCRCIntegrityCheck(void) const = 0;
629 
663  virtual SIPLStatus IMX623I2CCMACIntegrityCheck(void) const = 0;
664 #endif
665 
666 protected:
667 
669  IMX623_CustomInterface() = default;
670 
673 
676 
679 
682 
686  ~IMX623_CustomInterface() = default;
687 };
688 }
690 #endif
nvsipl::IMX623_CustomInterface::~IMX623_CustomInterface
~IMX623_CustomInterface()=default
Default destructor of class IMX623_CustomInterface.
nvsipl::IMX623_CustomInterface::ControlDeserLink
virtual SIPLStatus ControlDeserLink(bool const enable)=0
Control deserializer link.
nvsipl::IMX623_CustomInterface::IMX623_CustomInterface
IMX623_CustomInterface()=default
NV_IS_SAFETY.
nvsipl::IMX623_CustomInterface::IMX623I2CCRCIntegrityCheck
virtual SIPLStatus IMX623I2CCRCIntegrityCheck(void) const =0
Perform I2C CRC integrity check.
nvsipl::IMX623_CustomInterface::getInstanceInterfaceID
const UUID & getInstanceInterfaceID() const noexcept override
Get Sensor IMX623 instance custom interface ID.
Definition: IMX623_CustomInterface.hpp:74
nvsipl::IMX623_CustomInterface::GetSerializerVideoStatus
virtual SIPLStatus GetSerializerVideoStatus(MAX96717FVideoStatus *const customErrInfo) const =0
Get serializer's video status.
nvsipl::IMX623_CustomInterface::PSCheckIsetComparator
virtual SIPLStatus PSCheckIsetComparator(uint8_t *const dataBuff) const =0
Read ISET(Current-Limit Setting) value from Power Switch (PS) Status register.
nvsipl::IMX623_CustomInterface::GetSensorTemperature
virtual SIPLStatus GetSensorTemperature(DevBlkCDITemperature *const sensorTempInfo) const =0
Get Sensor temperature.
INvSIPLDeviceInterfaceProvider.hpp
NVIDIA SIPL: Device Interface Provider Interface
nvsipl::IMX623_CustomInterface::TPS650332GetnINTErrorStatus
virtual SIPLStatus TPS650332GetnINTErrorStatus(bool *const hasError)=0
Get fault status of nINT pin of TPS650332 PMIC.
nvsipl::UUID
A universally unique identifier.
Definition: INvSIPLDeviceInterfaceProvider.hpp:28
IMX623CustomEmbeddedData
Describes the Custom Embedded Data needed by the application.
Definition: IMX623_CustomData.h:34
nvsipl::SIPLStatus
SIPLStatus
Defines the status codes returned by functions in SIPL modules.
Definition: NvSIPLCommon.hpp:153
nvsipl::IMX623_CustomInterface::IMX623I2CCMACIntegrityCheck
virtual SIPLStatus IMX623I2CCMACIntegrityCheck(void) const =0
Perform I2C CMAC integrity check.
nvsipl::IMX623_CustomInterface::PSReadVoltageAndCurrentValues
virtual SIPLStatus PSReadVoltageAndCurrentValues(uint8_t const dataBuff_size, uint16_t *const dataBuff) const =0
Reads the voltage and current values for a Power Switch link/channel.
nvsipl::IMX623_CUSTOM_INTERFACE_ID
constexpr UUID IMX623_CUSTOM_INTERFACE_ID(0x90FB9A0DU, 0xA3AAU, 0x4C1BU, 0xA3B0U, 0xA1U, 0xE0U, 0xE9U, 0xBFU, 0x4FU, 0x7DU)
This is version 4 UUID obtained using https://www.uuidgenerator.net/ It's unique to IMX623 custom int...
nvsipl::Interface
Top-level interface class implementable for a particular device.
Definition: INvSIPLDeviceInterfaceProvider.hpp:141
nvsipl::IMX623_CustomInterface::GetSerializerTemperature
virtual SIPLStatus GetSerializerTemperature(DevBlkCDITemperature *const serTempInfo) const =0
Get MAX96717F Serializer Temperature data.
nvsipl::IMX623_CustomInterface::getClassInterfaceID
static const UUID & getClassInterfaceID()
Get Sensor IMX623 class custom interface ID.
Definition: IMX623_CustomInterface.hpp:58
nvsipl::IMX623_CustomInterface::TPS650332GetErrorInfo
virtual SIPLStatus TPS650332GetErrorInfo(TPS650332CustomErrInfo *const customErrInfo)=0
Get error info for TPS650332 PMIC.
TPS650332_CustomData.h
DevBlkCDITemperature
Holds the sensor temperature structure.
Definition: NvSIPLCDICommon.h:343
nvsipl::IMX623_CustomInterface::CameraModulePowerOff
virtual SIPLStatus CameraModulePowerOff(void)=0
To power off camera module.
nvsipl::IMX623_CustomInterface::WriteTempHistToEEPROM
virtual SIPLStatus WriteTempHistToEEPROM(uint32_t const length, uint8_t const *const buffer)=0
Write Temperature Histogram to the EEPROM module.
nvsipl::IMX623_CustomInterface
The class of custom interfaces in Sensor IMX623.
Definition: IMX623_CustomInterface.hpp:43
nvsipl::IMX623_CustomInterface::ParseCustomEmbeddedData
virtual SIPLStatus ParseCustomEmbeddedData(uint8_t const *const embeddedBufTop, uint32_t const embeddedBufTopSize, IMX623CustomEmbeddedData *const customEmbData) const =0
Parse the custom embedded data from the passed raw data.
nvsipl::IMX623_CustomInterface::TPS650332ExecuteABIST
virtual SIPLStatus TPS650332ExecuteABIST(bool *const hasError)=0
Execute TPS650332 PMIC Analog Built In Self Test (ABIST) Runtime.
TPS650332CustomErrInfo
Holds custom error type for TPS650332.
Definition: TPS650332_CustomData.h:108
nvsipl
Contains the classes and variables for implementation of SIPL.
Definition: NvSIPLCamera.hpp:44
nvsipl::IMX623_CustomInterface::WriteEEPROMData
virtual SIPLStatus WriteEEPROMData(uint16_t const address, uint32_t const length, uint8_t *const buffer)=0
Write to the EEPROM module.
IMX623_CustomData.h
nvsipl::IMX623_CustomInterface::operator=
IMX623_CustomInterface & operator=(IMX623_CustomInterface const &) &=delete
Prevent default copy assignment operator of class IMX623_CustomInterface.
nvsipl::IMX623_CustomInterface::VerifySerGPIOReadBackStatus
virtual SIPLStatus VerifySerGPIOReadBackStatus(void) const =0
Verify Serializer GPIO Readback Status.