Loading [MathJax]/extensions/tex2jax.js
  • <xmp id="om0om">
  • <table id="om0om"><noscript id="om0om"></noscript></table>
  • NVIDIA DRIVE OS Linux SDK API Reference

    6.0.4 Release
    All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
    NvSIPLDeviceBlockInfo.hpp
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2020-2022, NVIDIA CORPORATION. All rights reserved.
    3  *
    4  * NVIDIA CORPORATION and its licensors retain all intellectual property
    5  * and proprietary rights in and to this software, related documentation
    6  * and any modifications thereto. Any use, reproduction, disclosure or
    7  * distribution of this software and related documentation without an express
    8  * license agreement from NVIDIA CORPORATION is strictly prohibited.
    9  */
    10 
    11 #ifndef NVSIPLDEVICEBLOCKINFO_HPP
    12 #define NVSIPLDEVICEBLOCKINFO_HPP
    13 
    14 #include "NvSIPLCapStructs.h"
    15 
    16 #include <string>
    17 #include <memory>
    18 #include <vector>
    19 #include <cmath>
    20 
    28 namespace nvsipl
    29 {
    42 #if !NV_IS_SAFETY
    43 static const uint32_t MAX_DEVICEBLOCKS_PER_PLATFORM = 6U;
    44 #else
    45 static const uint32_t MAX_DEVICEBLOCKS_PER_PLATFORM = 4U;
    46 #endif
    47 
    49 static const uint32_t MAX_CAMERAMODULES_PER_BLOCK = 4U;
    50 
    53 
    56 
    58 static const std::uint32_t MAX_CSI_LANE_CONFIGURATION = 2U;
    59 
    61 static const std::uint32_t X2_CSI_LANE_CONFIGURATION = 0U;
    62 
    64 static const std::uint32_t X4_CSI_LANE_CONFIGURATION = 1U;
    65 
    67 struct SensorInfo
    68 {
    72  struct Resolution
    73  {
    78  uint32_t width = 0U;
    79 
    84  uint32_t height = 0U;
    85  };
    86 
    91  {
    101  uint32_t cfa = 0U;
    105  uint32_t embeddedTopLines = UINT32_MAX;
    109  uint32_t embeddedBottomLines = UINT32_MAX;
    122  float_t fps = 0.0F;
    127  };
    128 
    130  uint32_t id = UINT32_MAX;
    132  std::string name = "";
    133 #if !NV_IS_SAFETY
    134 
    135  std::string description = "";
    136 #endif // !NV_IS_SAFETY
    137 
    138  uint8_t i2cAddress = static_cast<uint8_t>UINT8_MAX;
    143  bool isTriggerModeEnabled = false;
    145  std::vector<uint32_t> errGpios;
    150  bool useCDIv2API = false;
    151 #if !NV_IS_SAFETY
    152 
    155  bool isTPGEnabled = false;
    157  uint32_t patternMode = 0;
    158 #endif // !NV_IS_SAFETY
    159 };
    160 
    163 {
    165  std::string name = "";
    166 #if !NV_IS_SAFETY
    167 
    168  std::string description = "";
    169 #endif
    170 
    171  uint8_t i2cAddress = static_cast<uint8_t>UINT8_MAX;
    172 
    176  bool useCDIv2API = false;
    177 };
    178 
    181  uint8_t sourceGpio;
    182  uint8_t destGpio;
    183 };
    184 
    186 struct SerInfo
    187 {
    189  std::string name = "";
    190 #if !NV_IS_SAFETY
    191 
    192  std::string description = "";
    193 #endif // !NV_IS_SAFETY
    194 
    195  uint8_t i2cAddress = static_cast<uint8_t>UINT8_MAX;
    196 #if !NV_IS_SAFETY
    197 
    198  bool longCable = false;
    199 #endif // !NV_IS_SAFETY
    200 
    201  std::vector<uint32_t> errGpios;
    206  bool useCDIv2API = false;
    210  std::vector<SerdesGPIOPinMap> serdesGPIOPinMappings;
    211 };
    212 
    218 {
    220  std::string name = "";
    221 #if !NV_IS_SAFETY
    222 
    223  std::string description = "";
    224 #endif // !NV_IS_SAFETY
    225 
    227  uint32_t linkIndex = UINT32_MAX;
    231  bool isEEPROMSupported = false;
    237 };
    238 
    240 struct DeserInfo
    241 {
    243  std::string name = "";
    244 #if !NV_IS_SAFETY
    245 
    246  std::string description = "";
    247 #endif // !NV_IS_SAFETY
    248 
    249  uint8_t i2cAddress = static_cast<uint8_t>UINT8_MAX;
    251  std::vector<uint32_t> errGpios;
    256  bool useCDIv2API = false;
    257  /* @brief Holds flag to indicate that the deser needs to run a reset all sequence at
    258  startup */
    259  bool resetAll = false;
    260 };
    261 
    269 {
    277  uint32_t i2cDevice = UINT32_MAX;
    283  uint32_t numCameraModules = 0U;
    288  std::uint32_t desI2CPort = UINT32_MAX;
    290  std::uint32_t desTxPort = UINT32_MAX;
    292  std::uint32_t pwrPort = UINT32_MAX;
    294  std::uint32_t dphyRate[MAX_CSI_LANE_CONFIGURATION] = {0U};
    296  std::uint32_t cphyRate[MAX_CSI_LANE_CONFIGURATION] = {0U};
    304  bool isPassiveModeEnabled = false;
    306  bool isGroupInitProg = false;
    308  std::vector<uint32_t> gpios;
    309 #if !NV_IS_SAFETY
    310 
    312  bool isPwrCtrlDisabled = false;
    314  bool longCables[MAX_CAMERAMODULES_PER_BLOCK] = {false, false, false, false};
    315 #endif // !NV_IS_SAFETY
    316  /* @brief Reset all sequence is needed when starting deserializer. */
    317  bool resetAll;
    318 };
    319 
    322 } // namespace nvsipl
    323 
    324 #endif //NVSIPLDEVICEBLOCKINFO_HPP
    NVSIPL_CAP_CSI_INTERFACE_TYPE_CSI_A
    @ NVSIPL_CAP_CSI_INTERFACE_TYPE_CSI_A
    Specifies CSI port A.
    Definition: NvSIPLCapStructs.h:29
    nvsipl::MAX_DEVICEBLOCKS_PER_PLATFORM
    static const uint32_t MAX_DEVICEBLOCKS_PER_PLATFORM
    Indicates the maximum number of device blocks per platform.
    Definition: NvSIPLDeviceBlockInfo.hpp:43
    nvsipl::DeserInfo::name
    std::string name
    Holds the name of the deserializer, for example, "MAX96712".
    Definition: NvSIPLDeviceBlockInfo.hpp:243
    nvsipl::DeviceBlockInfo::dphyRate
    std::uint32_t dphyRate[MAX_CSI_LANE_CONFIGURATION]
    Holds the deserializer's data rate in DPHY mode(kHz)
    Definition: NvSIPLDeviceBlockInfo.hpp:294
    nvsipl::DeviceBlockInfo::csiPort
    NvSiplCapInterfaceType csiPort
    Holds the NvSiplCapInterfaceType that specifies the CSI port of the SoC to which the deserializer is ...
    Definition: NvSIPLDeviceBlockInfo.hpp:272
    nvsipl::MAX_CAMERAMODULES_PER_BLOCK
    static const uint32_t MAX_CAMERAMODULES_PER_BLOCK
    Indicates the maximum number of camera modules per device block.
    Definition: NvSIPLDeviceBlockInfo.hpp:49
    nvsipl::SensorInfo::vcInfo
    VirtualChannelInfo vcInfo
    Holds virtual channel information.
    Definition: NvSIPLDeviceBlockInfo.hpp:140
    nvsipl::MAX_CSI_LANE_CONFIGURATION
    static const std::uint32_t MAX_CSI_LANE_CONFIGURATION
    Indicates the maximum number of CSI lane configurations.
    Definition: NvSIPLDeviceBlockInfo.hpp:58
    nvsipl::DeviceBlockInfo::deserInfo
    DeserInfo deserInfo
    Holds the DeserInfo deserializer information.
    Definition: NvSIPLDeviceBlockInfo.hpp:279
    nvsipl::DeviceBlockInfo::isPwrCtrlDisabled
    bool isPwrCtrlDisabled
    Holds a flag which indicates whether power control is disabled on the platform.
    Definition: NvSIPLDeviceBlockInfo.hpp:312
    nvsipl::SensorInfo::VirtualChannelInfo::fps
    float_t fps
    Holds the average number of frames per second in the range from NVSIPL_CAP_MIN_FRAME_RATE to NVSIPL_C...
    Definition: NvSIPLDeviceBlockInfo.hpp:122
    nvsipl::SerInfo::i2cAddress
    uint8_t i2cAddress
    Holds the native I2C address.
    Definition: NvSIPLDeviceBlockInfo.hpp:195
    nvsipl::SensorInfo::name
    std::string name
    Holds the name of the image sensor, for example, "AR0231".
    Definition: NvSIPLDeviceBlockInfo.hpp:132
    nvsipl::DeviceBlockInfo::i2cDevice
    uint32_t i2cDevice
    Holds the I2C device bus number used to connect the deserializer with the SoC.
    Definition: NvSIPLDeviceBlockInfo.hpp:277
    nvsipl::DeserInfo::description
    std::string description
    Holds the description of the deserializer.
    Definition: NvSIPLDeviceBlockInfo.hpp:246
    nvsipl::SensorInfo::Resolution::height
    uint32_t height
    < Holds the height in pixels in the range from NVSIPL_CAP_MIN_IMAGE_HEIGHT to NVSIPL_CAP_MAX_IMAGE_HE...
    Definition: NvSIPLDeviceBlockInfo.hpp:84
    nvsipl::SerdesGPIOPinMap::destGpio
    uint8_t destGpio
    Definition: NvSIPLDeviceBlockInfo.hpp:182
    nvsipl::DeserInfo::useCDIv2API
    bool useCDIv2API
    Holds a flag which indicates whether CDI (Camera Device Interface) is using the new version 2 API for...
    Definition: NvSIPLDeviceBlockInfo.hpp:256
    nvsipl::SensorInfo::VirtualChannelInfo::cfa
    uint32_t cfa
    Holds the Bayer color filter array order of the sensor.
    Definition: NvSIPLDeviceBlockInfo.hpp:101
    nvsipl::EEPROMInfo
    Defines the EEPROM information.
    Definition: NvSIPLDeviceBlockInfo.hpp:162
    nvsipl::DeserInfo::resetAll
    bool resetAll
    Definition: NvSIPLDeviceBlockInfo.hpp:259
    nvsipl::CameraModuleInfo::sensorInfo
    SensorInfo sensorInfo
    Holds the information about the sensor in a camera module.
    Definition: NvSIPLDeviceBlockInfo.hpp:236
    nvsipl::DeviceBlockInfo::numCameraModules
    uint32_t numCameraModules
    Holds the number of camera modules connected to the deserializer.
    Definition: NvSIPLDeviceBlockInfo.hpp:283
    nvsipl::SensorInfo::description
    std::string description
    Holds the description of the image sensor.
    Definition: NvSIPLDeviceBlockInfo.hpp:135
    nvsipl::CameraModuleInfo::linkIndex
    uint32_t linkIndex
    Holds the index of the deserializer link to which this module is connected.
    Definition: NvSIPLDeviceBlockInfo.hpp:227
    nvsipl::SensorInfo::VirtualChannelInfo::inputFormat
    NvSiplCapInputFormatType inputFormat
    Holds the input format @anon_struct_member{1}.
    Definition: NvSIPLDeviceBlockInfo.hpp:113
    nvsipl::SensorInfo::Resolution::width
    uint32_t width
    < Holds the width in pixels in the range from NVSIPL_CAP_MIN_IMAGE_WIDTH to NVSIPL_CAP_MAX_IMAGE_WIDT...
    Definition: NvSIPLDeviceBlockInfo.hpp:78
    nvsipl::SensorInfo::isTriggerModeEnabled
    bool isTriggerModeEnabled
    Holds a flag which indicates whether trigger mode is enabled.
    Definition: NvSIPLDeviceBlockInfo.hpp:143
    NvSiplCapInterfaceType
    NvSiplCapInterfaceType
    Definition: NvSIPLCapStructs.h:27
    nvsipl::SerInfo::useCDIv2API
    bool useCDIv2API
    Holds a flag which indicates whether CDI (Camera Device Interface) is using the new version 2 API for...
    Definition: NvSIPLDeviceBlockInfo.hpp:206
    nvsipl::SensorInfo::errGpios
    std::vector< uint32_t > errGpios
    Holds CDAC Error GPIO indices for the sensor.
    Definition: NvSIPLDeviceBlockInfo.hpp:145
    NvSiplCapCsiPhyMode
    NvSiplCapCsiPhyMode
    Definition: NvSIPLCapStructs.h:132
    nvsipl::SensorInfo::i2cAddress
    uint8_t i2cAddress
    Holds the native I2C address of the image sensor.
    Definition: NvSIPLDeviceBlockInfo.hpp:138
    nvsipl::CameraModuleInfo
    Defines information for the camera module.
    Definition: NvSIPLDeviceBlockInfo.hpp:217
    NvSIPLCapStructs.h
    nvsipl::DeviceBlockInfo::gpios
    std::vector< uint32_t > gpios
    Holds CDAC GPIO indices for the Device Block.
    Definition: NvSIPLDeviceBlockInfo.hpp:308
    nvsipl::SensorInfo::patternMode
    uint32_t patternMode
    Holds the Test Pattern Generator (TPG) pattern mode.
    Definition: NvSIPLDeviceBlockInfo.hpp:157
    nvsipl::SensorInfo::VirtualChannelInfo::embeddedTopLines
    uint32_t embeddedTopLines
    Holds the number of top embedded lines.
    Definition: NvSIPLDeviceBlockInfo.hpp:105
    nvsipl::DeviceBlockInfo::cameraModuleInfoList
    CameraModuleInfo cameraModuleInfoList[MAX_CAMERAMODULES_PER_BLOCK]
    Holds an array of information about each camera module in the device block.
    Definition: NvSIPLDeviceBlockInfo.hpp:286
    nvsipl::SensorInfo
    Defines the image sensor information.
    Definition: NvSIPLDeviceBlockInfo.hpp:67
    nvsipl::EEPROMInfo::description
    std::string description
    Holds the description of the EEPROM.
    Definition: NvSIPLDeviceBlockInfo.hpp:168
    nvsipl::SensorInfo::VirtualChannelInfo::isEmbeddedDataTypeEnabled
    bool isEmbeddedDataTypeEnabled
    Indicates whether the embedded data is coming in CSI packet with different data.
    Definition: NvSIPLDeviceBlockInfo.hpp:126
    nvsipl::DeviceBlockInfo::pwrPort
    std::uint32_t pwrPort
    Holds the power port.
    Definition: NvSIPLDeviceBlockInfo.hpp:292
    nvsipl::DeviceBlockInfo::desI2CPort
    std::uint32_t desI2CPort
    Holds the deserializer I2C port number connected with the SoC.
    Definition: NvSIPLDeviceBlockInfo.hpp:288
    nvsipl::DeserInfo::i2cAddress
    uint8_t i2cAddress
    Holds the native I2C address of the deserializer.
    Definition: NvSIPLDeviceBlockInfo.hpp:249
    nvsipl::DeviceBlockInfo::phyMode
    NvSiplCapCsiPhyMode phyMode
    Holds the NvSiplCapCsiPhyMode Phy mode.
    Definition: NvSIPLDeviceBlockInfo.hpp:274
    nvsipl::DeviceBlockInfo::isSimulatorModeEnabled
    bool isSimulatorModeEnabled
    Holds a flag which indicates whether simulator mode has been enabled.
    Definition: NvSIPLDeviceBlockInfo.hpp:300
    nvsipl::X4_CSI_LANE_CONFIGURATION
    static const std::uint32_t X4_CSI_LANE_CONFIGURATION
    Indicates the index for CSI 4 lanes.
    Definition: NvSIPLDeviceBlockInfo.hpp:64
    nvsipl::SensorInfo::VirtualChannelInfo::resolution
    Resolution resolution
    Holds the Resolution of the captured frame.
    Definition: NvSIPLDeviceBlockInfo.hpp:117
    nvsipl::SensorInfo::useCDIv2API
    bool useCDIv2API
    Holds a flag which indicates whether CDI (Camera Device Interface) is using the new version 2 API for...
    Definition: NvSIPLDeviceBlockInfo.hpp:150
    nvsipl::SerInfo::longCable
    bool longCable
    Holds long cable support.
    Definition: NvSIPLDeviceBlockInfo.hpp:198
    nvsipl::CameraModuleInfo::name
    std::string name
    Holds the name of the camera module, for example, "SF3324".
    Definition: NvSIPLDeviceBlockInfo.hpp:220
    NvSiplCapInputFormatType
    NvSiplCapInputFormatType
    Definition: NvSIPLCapStructs.h:73
    nvsipl::DeviceBlockInfo::isGroupInitProg
    bool isGroupInitProg
    Holds a flag which indicates whether group initialization is enabled.
    Definition: NvSIPLDeviceBlockInfo.hpp:306
    nvsipl::SerdesGPIOPinMap
    Defines GPIO mapping from the serializer to the deserializer.
    Definition: NvSIPLDeviceBlockInfo.hpp:180
    nvsipl::MAX_CAMERAMODULES_PER_PLATFORM
    static const uint32_t MAX_CAMERAMODULES_PER_PLATFORM
    Indicates the maximum number of camera modules per platform.
    Definition: NvSIPLDeviceBlockInfo.hpp:52
    nvsipl::SensorInfo::isTPGEnabled
    bool isTPGEnabled
    Holds a flag which indicates whether the sensor requires configuration in Test Pattern Generator (TPG...
    Definition: NvSIPLDeviceBlockInfo.hpp:155
    nvsipl::CameraModuleInfo::serInfo
    SerInfo serInfo
    Holds the SerInfo of the serializer.
    Definition: NvSIPLDeviceBlockInfo.hpp:229
    nvsipl::DeserInfo
    Defines the deserializer information.
    Definition: NvSIPLDeviceBlockInfo.hpp:240
    nvsipl::DeviceBlockInfo::longCables
    bool longCables[MAX_CAMERAMODULES_PER_BLOCK]
    Holds long cable support.
    Definition: NvSIPLDeviceBlockInfo.hpp:314
    nvsipl::SerdesGPIOPinMap::sourceGpio
    uint8_t sourceGpio
    Definition: NvSIPLDeviceBlockInfo.hpp:181
    nvsipl::SensorInfo::Resolution
    Defines the image resolution.
    Definition: NvSIPLDeviceBlockInfo.hpp:72
    nvsipl::SerInfo::description
    std::string description
    Holds the description of the serializer.
    Definition: NvSIPLDeviceBlockInfo.hpp:192
    nvsipl::DeviceBlockInfo
    Defines the DeviceBlock information.
    Definition: NvSIPLDeviceBlockInfo.hpp:268
    nvsipl::CameraModuleInfo::eepromInfo
    EEPROMInfo eepromInfo
    Holds the information about EEPROM device in a camera module.
    Definition: NvSIPLDeviceBlockInfo.hpp:234
    nvsipl::SerInfo::serdesGPIOPinMappings
    std::vector< SerdesGPIOPinMap > serdesGPIOPinMappings
    Holds the information about GPIO mapping from the serializer to the deserializer Holds two numbers as...
    Definition: NvSIPLDeviceBlockInfo.hpp:210
    nvsipl::EEPROMInfo::name
    std::string name
    Holds the name of the EEPROM, for example, "N24C64".
    Definition: NvSIPLDeviceBlockInfo.hpp:165
    NVSIPL_CAP_INPUT_FORMAT_TYPE_RAW12
    @ NVSIPL_CAP_INPUT_FORMAT_TYPE_RAW12
    Specifies RAW 12.
    Definition: NvSIPLCapStructs.h:92
    nvsipl::CameraModuleInfo::description
    std::string description
    Holds the description of the camera module.
    Definition: NvSIPLDeviceBlockInfo.hpp:223
    nvsipl::DeviceBlockInfo::desTxPort
    std::uint32_t desTxPort
    Holds the deserializer Tx port number connected with the SoC.
    Definition: NvSIPLDeviceBlockInfo.hpp:290
    nvsipl::SerInfo::name
    std::string name
    Holds the name of the serializer, for example, "MAX96705".
    Definition: NvSIPLDeviceBlockInfo.hpp:189
    nvsipl::EEPROMInfo::useCDIv2API
    bool useCDIv2API
    Holds a flag which indicates whether CDI (Camera Device Interface) is using the new version 2 API for...
    Definition: NvSIPLDeviceBlockInfo.hpp:176
    nvsipl
    Contains the classes and variables for implementation of SIPL.
    Definition: INvSiplControlAuto.hpp:33
    nvsipl::DeserInfo::errGpios
    std::vector< uint32_t > errGpios
    Holds CDAC Error GPIO indices for the deserializer.
    Definition: NvSIPLDeviceBlockInfo.hpp:251
    nvsipl::MAX_SENSORS_PER_PLATFORM
    static const uint32_t MAX_SENSORS_PER_PLATFORM
    Indicates the maximum number of sensors per platform.
    Definition: NvSIPLDeviceBlockInfo.hpp:55
    nvsipl::CameraModuleInfo::isEEPROMSupported
    bool isEEPROMSupported
    Holds EEPROM support.
    Definition: NvSIPLDeviceBlockInfo.hpp:231
    nvsipl::SerInfo
    Defines the serializer information.
    Definition: NvSIPLDeviceBlockInfo.hpp:186
    nvsipl::DeviceBlockInfo::resetAll
    bool resetAll
    Definition: NvSIPLDeviceBlockInfo.hpp:317
    nvsipl::X2_CSI_LANE_CONFIGURATION
    static const std::uint32_t X2_CSI_LANE_CONFIGURATION
    Indicates the index for CSI 2 lanes.
    Definition: NvSIPLDeviceBlockInfo.hpp:61
    nvsipl::SensorInfo::VirtualChannelInfo
    Defines the information of a virtual channel/single exposure.
    Definition: NvSIPLDeviceBlockInfo.hpp:90
    nvsipl::SensorInfo::VirtualChannelInfo::embeddedBottomLines
    uint32_t embeddedBottomLines
    Holds the number of bottom embedded lines.
    Definition: NvSIPLDeviceBlockInfo.hpp:109
    NVSIPL_CAP_CSI_DPHY_MODE
    @ NVSIPL_CAP_CSI_DPHY_MODE
    Specifies that CSI is in DPHY mode.
    Definition: NvSIPLCapStructs.h:134
    nvsipl::SerInfo::errGpios
    std::vector< uint32_t > errGpios
    Holds CDAC Error GPIO indices for the serializer.
    Definition: NvSIPLDeviceBlockInfo.hpp:201
    nvsipl::DeviceBlockInfo::cphyRate
    std::uint32_t cphyRate[MAX_CSI_LANE_CONFIGURATION]
    Holds the deserializer's data rate in CPHY mode(ksps)
    Definition: NvSIPLDeviceBlockInfo.hpp:296
    nvsipl::DeviceBlockInfo::isPassiveModeEnabled
    bool isPassiveModeEnabled
    Holds a flag which indicates whether passive mode must be enabled.
    Definition: NvSIPLDeviceBlockInfo.hpp:304
    人人超碰97caoporen国产