Zephyr Project API  3.2.0
A Scalable Open Source RTOS
i3c_i2c_device_desc Struct Reference

Structure describing a I2C device on I3C bus. More...

#include <i3c.h>

Data Fields

sys_snode_t node
 
const struct devicebus
 
const uint16_t addr
 
const uint8_t lvr
 
void * controller_priv
 

Detailed Description

Structure describing a I2C device on I3C bus.

Instances of this are passed to the I3C controller device APIs, for example: () i3c_i2c_device_register() to tell the controller of an I2C device. () i3c_i2c_transfers() to initiate data transfers between controller and I2C device.

Fields other than node must be initialized by the module that implements the device behavior prior to passing the object reference to I3C controller device APIs.

Field Documentation

◆ addr

const uint16_t i3c_i2c_device_desc::addr

Static address for this I2C device.

◆ bus

const struct device* i3c_i2c_device_desc::bus

I3C bus to which this I2C device is attached

◆ controller_priv

void* i3c_i2c_device_desc::controller_priv

Private data by the controller to aid in transactions. Do not modify.

◆ lvr

const uint8_t i3c_i2c_device_desc::lvr

Legacy Virtual Register (LVR)

  • LVR[7:5]: I2C device index:
    • 0: I2C device has a 50 ns spike filter where it is not affected by high frequency on SCL.
    • 1: I2C device does not have a 50 ns spike filter but can work with high frequency on SCL.
    • 2: I2C device does not have a 50 ns spike filter and cannot work with high frequency on SCL.
  • LVR[4]: I2C mode indicator:
    • 0: FM+ mode
    • 1: FM mode
  • LVR[3:0]: Reserved.

◆ node

sys_snode_t i3c_i2c_device_desc::node

Private, do not modify


The documentation for this struct was generated from the following file: