Loading [MathJax]/jax/input/TeX/config.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
    devblk_cdi_i2c.h
    Go to the documentation of this file.
    1 /*
    2  * Copyright (c) 2020-2022, NVIDIA CORPORATION. All rights reserved. All
    3  * information contained herein is proprietary and confidential to NVIDIA
    4  * Corporation. Any use, reproduction, or disclosure without the written
    5  * permission of NVIDIA Corporation is prohibited.
    6  */
    7 #ifndef DEVBLK_CDI_I2C_H
    8 #define DEVBLK_CDI_I2C_H
    9 
    10 #include "devblk_cdi.h"
    11 
    12 #ifdef __cplusplus
    13 extern "C" {
    14 #endif
    15 
    36 #define I2C_ARRAY_SIZE(x) (uint32_t)(sizeof(x) / sizeof((x)[0]))
    37 
    39 typedef struct {
    44  uint16_t address;
    45 
    50  uint16_t data;
    51 
    56  uint32_t delayUsec;
    58 
    60 typedef struct {
    71  uint32_t numRegs;
    73 
    75 typedef struct {
    86  uint32_t numRegs;
    88 
    92 typedef void* DevBlkCDII2CPgmr;
    93 
    128  DevBlkCDIDevice *handle,
    129  const uint8_t addrLength,
    130  const uint8_t dataLength
    131 );
    132 
    159 void
    161  DevBlkCDII2CPgmr i2cProgrammer
    162 );
    163 
    199  DevBlkCDII2CPgmr i2cProgrammer,
    200  const uint16_t address,
    201  const uint8_t data
    202 );
    203 
    239  DevBlkCDII2CPgmr i2cProgrammer,
    240  const uint16_t address,
    241  const uint16_t data
    242 );
    243 
    280  DevBlkCDII2CPgmr i2cProgrammer,
    281  const uint16_t address,
    282  uint8_t *data
    283 );
    284 
    321  DevBlkCDII2CPgmr i2cProgrammer,
    322  const uint16_t address,
    323  uint16_t *data
    324 );
    325 
    370  DevBlkCDII2CPgmr i2cProgrammer,
    371  const DevBlkCDII2CRegList *regList
    372 );
    373 
    418  DevBlkCDII2CPgmr i2cProgrammer,
    419  const DevBlkCDII2CRegListWritable *regList
    420 );
    421 
    461  DevBlkCDII2CPgmr i2cProgrammer,
    462  const uint16_t address,
    463  const uint16_t dataLength,
    464  uint8_t *dataBuff
    465 );
    466 
    467 #if !NV_IS_SAFETY
    468 
    500  DevBlkCDII2CPgmr i2cProgrammer,
    501  const DevBlkCDII2CRegList *regList
    502 );
    503 
    532  DevBlkCDII2CPgmr i2cProgrammer,
    533  NvMediaBool enable
    534 );
    535 #endif /* #if !NV_IS_SAFETY */
    536 
    539 #ifdef __cplusplus
    540 } /* extern "C" */
    541 #endif
    542 
    543 #endif /* DEVBLK_CDI_I2C_H */
    DevBlkCDII2CReg::data
    uint16_t data
    The value of an I2C register; Valid range: [0, UINT16_MAX].
    Definition: devblk_cdi_i2c.h:50
    DevBlkCDII2CReg::address
    uint16_t address
    The address of an I2C register; Valid range: [0, UINT16_MAX].
    Definition: devblk_cdi_i2c.h:44
    DevBlkCDII2CRegListWritable
    Defines the I2C register table to read from the device.
    Definition: devblk_cdi_i2c.h:75
    DevBlkCDII2CRegList::regs
    const DevBlkCDII2CReg * regs
    An array of DevBlkCDII2CReg structures, of length numRegs.
    Definition: devblk_cdi_i2c.h:67
    NvMediaStatus
    NvMediaStatus
    Defines all possible error codes.
    Definition: nvmedia_core.h:104
    DevBlkCDII2CPgmrDumpArray
    NvMediaStatus DevBlkCDII2CPgmrDumpArray(DevBlkCDII2CPgmr i2cProgrammer, const DevBlkCDII2CRegList *regList)
    Dumps the values for all registers in the register table.
    DevBlkCDII2CPgmrReadArray
    NvMediaStatus DevBlkCDII2CPgmrReadArray(DevBlkCDII2CPgmr i2cProgrammer, const DevBlkCDII2CRegListWritable *regList)
    Performs read operation for a register table.
    DevBlkCDII2CRegList::numRegs
    uint32_t numRegs
    The number of registers in the regs array; Valid range: [0, UINT32_MAX].
    Definition: devblk_cdi_i2c.h:71
    DevBlkCDII2CPgmrReadUint16
    NvMediaStatus DevBlkCDII2CPgmrReadUint16(DevBlkCDII2CPgmr i2cProgrammer, const uint16_t address, uint16_t *data)
    Reads 16-bit data from an I2C register.
    DevBlkCDII2CReg::delayUsec
    uint32_t delayUsec
    The number of microseconds to delay between this read/write operation and the next one; Valid range: ...
    Definition: devblk_cdi_i2c.h:56
    DevBlkCDII2CPgmrWriteArray
    NvMediaStatus DevBlkCDII2CPgmrWriteArray(DevBlkCDII2CPgmr i2cProgrammer, const DevBlkCDII2CRegList *regList)
    Performs write operation for a register table.
    DevBlkCDII2CPgmr
    void * DevBlkCDII2CPgmr
    An opaque handle for an I2C programmer object.
    Definition: devblk_cdi_i2c.h:92
    devblk_cdi.h
    NVIDIA Device Block Interface: Camera Device Interface (CDI)
    DevBlkCDII2CRegListWritable::regs
    DevBlkCDII2CReg * regs
    An array of DevBlkCDII2CReg structures, of length numRegs.
    Definition: devblk_cdi_i2c.h:82
    DevBlkCDII2CPgmrReadUint8
    NvMediaStatus DevBlkCDII2CPgmrReadUint8(DevBlkCDII2CPgmr i2cProgrammer, const uint16_t address, uint8_t *data)
    Reads 8-bit data from an I2C register.
    DevBlkCDII2CPgmrCreate
    DevBlkCDII2CPgmr DevBlkCDII2CPgmrCreate(DevBlkCDIDevice *handle, const uint8_t addrLength, const uint8_t dataLength)
    Creates an I2C Programmer to read/write I2C registers of a device.
    DevBlkCDII2CPgmrWriteUint8
    NvMediaStatus DevBlkCDII2CPgmrWriteUint8(DevBlkCDII2CPgmr i2cProgrammer, const uint16_t address, const uint8_t data)
    Writes 8-bit data to an I2C register.
    DevBlkCDII2CPgmrWriteUint16
    NvMediaStatus DevBlkCDII2CPgmrWriteUint16(DevBlkCDII2CPgmr i2cProgrammer, const uint16_t address, const uint16_t data)
    Writes 16-bit data to an I2C register.
    DevBlkCDII2CPgmrReadBlock
    NvMediaStatus DevBlkCDII2CPgmrReadBlock(DevBlkCDII2CPgmr i2cProgrammer, const uint16_t address, const uint16_t dataLength, uint8_t *dataBuff)
    Reads a block of data from I2C device.
    DevBlkCDII2CPgmrDebugLogControl
    NvMediaStatus DevBlkCDII2CPgmrDebugLogControl(DevBlkCDII2CPgmr i2cProgrammer, NvMediaBool enable)
    Enables debug logs for I2C Programmer.
    DevBlkCDIDevice
    Holds the handle for an DevBlkCDIDevice object.
    Definition: devblk_cdi.h:119
    DevBlkCDII2CPgmrDestroy
    void DevBlkCDII2CPgmrDestroy(DevBlkCDII2CPgmr i2cProgrammer)
    Destroys an I2C Programmer.
    NvMediaBool
    uint32_t NvMediaBool
    A boolean value, holding NVMEDIA_TRUE or NVMEDIA_FALSE.
    Definition: nvmedia_core.h:72
    DevBlkCDII2CRegList
    Defines the I2C register table to write to the device.
    Definition: devblk_cdi_i2c.h:60
    DevBlkCDII2CReg
    Defines the I2C address/data pair and an optional delay.
    Definition: devblk_cdi_i2c.h:39
    DevBlkCDII2CRegListWritable::numRegs
    uint32_t numRegs
    The number of registers in the regs array; Valid range: [0, UINT32_MAX].
    Definition: devblk_cdi_i2c.h:86
    人人超碰97caoporen国产