Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
i3c_i2c_device_desc Struct Reference

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

#include <i3c.h>

Data Fields

const struct devicebus
 Used to attach this node onto a linked list.
 
const uint16_t addr
 Static address for this I2C device.
 
const uint8_t lvr
 Legacy Virtual Register (LVR)
 

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

Used to attach this node onto a linked list.

I3C bus to which this I2C device is attached

◆ 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.

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