Lines Matching +full:i3c +full:- +full:master +full:- +full:v1
1 .. SPDX-License-Identifier: GPL-2.0
4 I3C protocol
12 collisions are prevented, ...) please have a look at the I3C specification.
14 This document is just a brief introduction to the I3C protocol and the concepts
16 I3C specification (can be downloaded here
17 https://resources.mipi.org/mipi-i3c-v1-download).
22 The I3C (pronounced 'eye-three-see') is a MIPI standardized protocol designed
25 while remaining power-efficient.
27 I3C Bus
30 An I3C bus is made of several I3C devices and possibly some I2C devices as
31 well, but let's focus on I3C devices for now.
33 An I3C device on the I3C bus can have one of the following roles:
35 * Master: the device is driving the bus. It's the one in charge of initiating
37 events are possible in I3C, see below).
39 slave on the bus. The device can still send events to the master on
40 its own initiative if the master allowed it.
42 I3C is a multi-master protocol, so there might be several masters on a bus,
43 though only one device can act as a master at a given time. In order to gain
44 bus ownership, a master has to follow a specific procedure.
46 Each device on the I3C bus has to be assigned a dynamic address to be able to
51 In addition to these per-device addresses, the protocol defines a broadcast
58 I3C Device discovery
61 The I3C protocol defines a mechanism to automatically discover devices present
63 regard I3C is closer to a discoverable bus like USB than it is to I2C or SPI.
68 During DAA, each I3C device reports 3 important things:
70 * BCR: Bus Characteristic Register. This 8-bit register describes the device bus
72 * DCR: Device Characteristic Register. This 8-bit register describes the
74 * Provisional ID: A 48-bit unique identifier. On a given bus there should be no
77 I3C slave events
80 The I3C protocol allows slaves to generate events on their own, and thus allows
95 I3C Hot-Join
98 The Hot-Join mechanism is similar to USB hotplug. This mechanism allows
99 slaves to join the bus after it has been initialized by the master.
106 This mechanism is relying on slave events to inform the master that a new
109 The master is then free to address the request as it wishes: ignore it or
112 I3C transfer types
118 I3C defines 3 different classes of transfer in addition to I2C transfers which
121 I3C CCC commands
122 ----------------
127 CCC commands contain an 8-bit CCC ID describing the command that is executed.
132 payload is either sent by the master sending the command (write CCC command),
142 (0x61-0x7f and 0xe0-0xef).
144 I3C Private SDR transfers
145 -------------------------
150 It is the equivalent of I2C transfers but in the I3C world. Each transfer is
157 I3C HDR commands
158 ----------------
164 3 different modes defined by the I3C specification (refer to the specification
167 * HDR-DDR: Double Data Rate mode
168 * HDR-TSP: Ternary Symbol Pure. Only usable on busses with no I2C devices
169 * HDR-TSL: Ternary Symbol Legacy. Usable on busses with I2C devices
173 Once the bus has entered a specific HDR mode, the master sends the HDR command.
176 * one 16-bits command word in big endian
177 * N 16-bits data words in big endian
179 Those words may be wrapped with specific preambles/post-ambles which depend on
183 The 16-bits command word is made of:
188 * bit[7:1]: I3C address of the device this command is addressed to
189 * bit[0]: reserved/parity-bit
194 The I3C protocol has been designed to be backward compatible with I2C devices.
195 This backward compatibility allows one to connect a mix of I2C and I3C devices
199 I2C devices can't be discovered like I3C ones and have to be statically
200 declared. In order to let the master know what these devices are capable of