|
Zephyr API Documentation
2.7.0-rc2
A Scalable Open Source RTOS
|
Macros | |
| #define | DT_NUM_REGS(node_id) DT_CAT(node_id, _REG_NUM) |
| Get the number of register blocks in the reg property. More... | |
| #define | DT_REG_HAS_IDX(node_id, idx) IS_ENABLED(DT_CAT(node_id, _REG_IDX_##idx##_EXISTS)) |
| Is "idx" a valid register block index? More... | |
| #define | DT_REG_ADDR_BY_IDX(node_id, idx) DT_CAT(node_id, _REG_IDX_##idx##_VAL_ADDRESS) |
| Get the base address of the register block at index "idx". More... | |
| #define | DT_REG_SIZE_BY_IDX(node_id, idx) DT_CAT(node_id, _REG_IDX_##idx##_VAL_SIZE) |
| Get the size of the register block at index "idx". More... | |
| #define | DT_REG_ADDR(node_id) DT_REG_ADDR_BY_IDX(node_id, 0) |
| Get a node's (only) register block address. More... | |
| #define | DT_REG_SIZE(node_id) DT_REG_SIZE_BY_IDX(node_id, 0) |
| Get a node's (only) register block size. More... | |
| #define | DT_REG_ADDR_BY_NAME(node_id, name) DT_CAT(node_id, _REG_NAME_##name##_VAL_ADDRESS) |
| Get a register block's base address by name. More... | |
| #define | DT_REG_SIZE_BY_NAME(node_id, name) DT_CAT(node_id, _REG_NAME_##name##_VAL_SIZE) |
| Get a register block's size by name. More... | |
| #define DT_NUM_REGS | ( | node_id | ) | DT_CAT(node_id, _REG_NUM) |
#include <include/devicetree.h>
Get the number of register blocks in the reg property.
Use this instead of DT_PROP_LEN(node_id, reg).
| node_id | node identifier |
| #define DT_REG_ADDR | ( | node_id | ) | DT_REG_ADDR_BY_IDX(node_id, 0) |
#include <include/devicetree.h>
Get a node's (only) register block address.
Equivalent to DT_REG_ADDR_BY_IDX(node_id, 0).
| node_id | node identifier |
| #define DT_REG_ADDR_BY_IDX | ( | node_id, | |
| idx | |||
| ) | DT_CAT(node_id, _REG_IDX_##idx##_VAL_ADDRESS) |
#include <include/devicetree.h>
Get the base address of the register block at index "idx".
| node_id | node identifier |
| idx | index of the register whose address to return |
| #define DT_REG_ADDR_BY_NAME | ( | node_id, | |
| name | |||
| ) | DT_CAT(node_id, _REG_NAME_##name##_VAL_ADDRESS) |
#include <include/devicetree.h>
Get a register block's base address by name.
| node_id | node identifier |
| name | lowercase-and-underscores register specifier name |
| #define DT_REG_HAS_IDX | ( | node_id, | |
| idx | |||
| ) | IS_ENABLED(DT_CAT(node_id, _REG_IDX_##idx##_EXISTS)) |
#include <include/devicetree.h>
Is "idx" a valid register block index?
If this returns 1, then DT_REG_ADDR_BY_IDX(node_id, idx) or DT_REG_SIZE_BY_IDX(node_id, idx) are valid. If it returns 0, it is an error to use those macros with index "idx".
| node_id | node identifier |
| idx | index to check |
| #define DT_REG_SIZE | ( | node_id | ) | DT_REG_SIZE_BY_IDX(node_id, 0) |
#include <include/devicetree.h>
Get a node's (only) register block size.
Equivalent to DT_REG_SIZE_BY_IDX(node_id, 0).
| node_id | node identifier |
| #define DT_REG_SIZE_BY_IDX | ( | node_id, | |
| idx | |||
| ) | DT_CAT(node_id, _REG_IDX_##idx##_VAL_SIZE) |
#include <include/devicetree.h>
Get the size of the register block at index "idx".
This is the size of an individual register block, not the total number of register blocks in the property; use DT_NUM_REGS() for that.
| node_id | node identifier |
| idx | index of the register whose size to return |
| #define DT_REG_SIZE_BY_NAME | ( | node_id, | |
| name | |||
| ) | DT_CAT(node_id, _REG_NAME_##name##_VAL_SIZE) |
#include <include/devicetree.h>
Get a register block's size by name.
| node_id | node identifier |
| name | lowercase-and-underscores register specifier name |