| # Copyright (c) 2017, Linaro Limited |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| # Common fields for I3C devices |
| |
| include: [base.yaml, power.yaml] |
| |
| on-bus: i3c |
| |
| properties: |
| reg: |
| required: true |
| description: | |
| Contains 3 fields. |
| |
| For I3C devices, the 3 fields are static address, first half |
| of Provisioned ID, and the second half of the Provisioned ID. |
| 1. The static address can be assigned to be the target device's |
| dynamic address before Dynamic Address Assignment (DAA) |
| starts. Can be zero if static address is not used, and |
| target address is determined via DAA. |
| 2. First half of the Provisioned ID contains the manufacturer |
| ID left-shifted by 1, where the manufacturer ID is |
| the bits 33-47 (zero-based) of the 48-bit Provisioned ID. |
| 3. Second half of the Provisioned ID contains the combination of |
| the part ID (bits 16-31 of the Provisioned ID) left-shifted |
| by 16, and the instance ID (bits 12-15 of the Provisioned ID) |
| left-shifted by 12. Basically, this is the lower 32 bits |
| of the Provisioned ID. |
| |
| Note that the DT node of a I3C target device should be in format |
| "<node name>@<address + PID>", e.g. "sensor@4200001234012345678", |
| where the PID part is expanded to be a 64-bit integer. |
| |
| For I2C devices, the 3 fields are static address, 0x00, and |
| value of the Legacy Virtual Register (LVR). |
| 1. 7-bit address of the I2C device. (Note that 10-bit |
| addressing is not supported.) |
| 2. Always 0x00. |
| 3. LVR describes the I2C device where, |
| * bit[31:8]: unused. |
| * bit[7:5]: I2C device index: |
| * Index 0: I2C device has a 50 ns spike filter where |
| it is not affected by high frequency on SCL. |
| * Index 1: I2C device does not have a 50 ns spike filter |
| but can work with high frequency on SCL. |
| * Index 2: I2C device does not have a 50 ns spike filter |
| and cannot work with high frequency on SCL. |
| * Other values are reserved. |
| * bit[4]: I2C mode indicator: |
| * 0: FM+ mode |
| * 1: FM mode |
| * bit[3:0]: reserved. |
| |
| The DT node of a I2C device should be in format |
| "<node name>@<address + 00000000 + LVR>", |
| e.g. "sensor@5000000000000000FF", where the middle 0x00 and LVR |
| are both expanded to 32-bit integers. |
| |
| assigned-address: |
| type: int |
| description: | |
| Dynamic address to be assigned to the device. |
| |
| supports-setaasa: |
| type: boolean |
| description: | |
| Indicates if the device supports the CCC SETAASA. If true, it will |
| be used as an optimization for bus initialization. |