 |
Zephyr API 3.6.99
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
7#ifndef ZEPHYR_INCLUDE_DRIVERS_I3C_DEVICETREE_H_
8#define ZEPHYR_INCLUDE_DRIVERS_I3C_DEVICETREE_H_
36#define I3C_DEVICE_ID_DT(node_id) \
38 .pid = ((uint64_t)DT_PROP_BY_IDX(node_id, reg, 1) << 32)\
39 | DT_PROP_BY_IDX(node_id, reg, 2), \
52#define I3C_DEVICE_ID_DT_INST(inst) \
53 I3C_DEVICE_ID_DT(DT_DRV_INST(inst))
62#define I3C_SUPPORTS_SETAASA BIT(0)
64#define I3C_V1P0_SUPPORT BIT(1)
78#define I3C_DEVICE_DESC_DT(node_id) \
80 .bus = DEVICE_DT_GET(DT_BUS(node_id)), \
81 .dev = DEVICE_DT_GET(node_id), \
82 .static_addr = DT_PROP_BY_IDX(node_id, reg, 0), \
83 .pid = ((uint64_t)DT_PROP_BY_IDX(node_id, reg, 1) << 32) | \
84 DT_PROP_BY_IDX(node_id, reg, 2), \
85 .init_dynamic_addr = DT_PROP_OR(node_id, assigned_address, 0), \
86 .flags = FIELD_PREP(I3C_SUPPORTS_SETAASA, DT_PROP(node_id, supports_setaasa)) | \
87 FIELD_PREP(I3C_V1P0_SUPPORT, DT_PROP(node_id, v1p0_support)), \
101#define I3C_DEVICE_DESC_DT_INST(inst) \
102 I3C_DEVICE_DESC_DT(DT_DRV_INST(inst))
110#define I3C_DEVICE_DESC_DT_FILTERED(node_id) \
111 COND_CODE_0(DT_PROP_BY_IDX(node_id, reg, 1), \
112 (), (I3C_DEVICE_DESC_DT(node_id)))
122#define I3C_DEVICE_ARRAY_DT(node_id) \
124 DT_FOREACH_CHILD_STATUS_OKAY( \
126 I3C_DEVICE_DESC_DT_FILTERED) \
139#define I3C_DEVICE_ARRAY_DT_INST(inst) \
140 I3C_DEVICE_ARRAY_DT(DT_DRV_INST(inst))
167#define I3C_DEVICE_DT_DEFINE(node_id, init_fn, pm, data, config, level, \
169 DEVICE_DT_DEFINE(node_id, init_fn, pm, data, config, level, \
170 prio, api, __VA_ARGS__)
180#define I3C_DEVICE_DT_INST_DEFINE(inst, ...) \
181 I3C_DEVICE_DT_DEFINE(DT_DRV_INST(inst), __VA_ARGS__)
192#define I3C_I2C_DEVICE_DESC_DT(node_id) \
194 .bus = DEVICE_DT_GET(DT_BUS(node_id)), \
195 .addr = DT_PROP_BY_IDX(node_id, reg, 0), \
196 .lvr = DT_PROP_BY_IDX(node_id, reg, 2), \
209#define I3C_I2C_DEVICE_DESC_DT_INST(inst) \
210 I3C_I2C_DEVICE_DESC_DT(DT_DRV_INST(inst))
219#define I3C_I2C_DEVICE_DESC_DT_FILTERED(node_id) \
220 COND_CODE_0(DT_PROP_BY_IDX(node_id, reg, 1), \
221 (I3C_I2C_DEVICE_DESC_DT(node_id)), ())
231#define I3C_I2C_DEVICE_ARRAY_DT(node_id) \
233 DT_FOREACH_CHILD_STATUS_OKAY( \
235 I3C_I2C_DEVICE_DESC_DT_FILTERED) \
248#define I3C_I2C_DEVICE_ARRAY_DT_INST(inst) \
249 I3C_I2C_DEVICE_ARRAY_DT(DT_DRV_INST(inst))