|
Zephyr API Documentation 4.4.0-rc1
A Scalable Open Source RTOS
|
Macros | |
| #define | DT_NUM_REGS(node_id) |
| Get the number of register blocks in the reg property. | |
| #define | DT_REG_HAS_IDX(node_id, idx) |
Is idx a valid register block index? | |
| #define | DT_REG_HAS_NAME(node_id, name) |
Is name a valid register block name? | |
| #define | DT_REG_ADDR_BY_IDX_RAW(node_id, idx) |
Get the base raw address of the register block at index idx. | |
| #define | DT_REG_ADDR_RAW(node_id) |
| Get a node's (only) register block raw address. | |
| #define | DT_REG_ADDR_BY_IDX(node_id, idx) |
Get the base address of the register block at index idx. | |
| #define | DT_REG_SIZE_BY_IDX(node_id, idx) |
Get the size of the register block at index idx. | |
| #define | DT_REG_ADDR(node_id) |
| Get a node's (only) register block address. | |
| #define | DT_REG_ADDR_U64(node_id) |
| 64-bit version of DT_REG_ADDR() | |
| #define | DT_REG_SIZE(node_id) |
| Get a node's (only) register block size. | |
| #define | DT_REG_ADDR_BY_NAME(node_id, name) |
| Get a register block's base address by name. | |
| #define | DT_REG_ADDR_BY_NAME_OR(node_id, name, default_value) |
Like DT_REG_ADDR_BY_NAME(), but with a fallback to default_value. | |
| #define | DT_REG_ADDR_BY_NAME_U64(node_id, name) |
| 64-bit version of DT_REG_ADDR_BY_NAME() | |
| #define | DT_REG_SIZE_BY_NAME(node_id, name) |
| Get a register block's size by name. | |
| #define | DT_REG_SIZE_BY_NAME_OR(node_id, name, default_value) |
Like DT_REG_SIZE_BY_NAME(), but with a fallback to default_value. | |
| #define | DT_FOREACH_REG(node_id, fn) |
Invokes fn for each entry of node_id reg property. | |
| #define | DT_FOREACH_REG_SEP(node_id, fn, sep) |
Invokes fn for each entry of node_id reg property with separator. | |
| #define | DT_FOREACH_REG_VARGS(node_id, fn, ...) |
Invokes fn for each entry of node_id reg property with multiple arguments. | |
| #define | DT_FOREACH_REG_SEP_VARGS(node_id, fn, sep, ...) |
Invokes fn for each entry of node_id reg property with separator and multiple arguments. | |
| #define DT_FOREACH_REG | ( | node_id, | |
| fn ) |
#include <zephyr/devicetree.h>
Invokes fn for each entry of node_id reg property.
The macro fn takes two parameters, node_id which will be the node identifier of the node with the reg property and idx the index of the reg array.
Example devicetree fragment:
Example usage:
This expands to:
| node_id | node identifier |
| fn | macro to invoke |
| #define DT_FOREACH_REG_SEP | ( | node_id, | |
| fn, | |||
| sep ) |
#include <zephyr/devicetree.h>
Invokes fn for each entry of node_id reg property with separator.
The macro fn takes two parameters, node_id which will be the node identifier of the node with the reg property and idx the index of the reg array.
Example devicetree fragment:
Example usage:
This expands to:
| node_id | node identifier |
| fn | macro to invoke |
| sep | Separator (e.g. comma or semicolon). Must be in parentheses; this is required to enable providing a comma as separator. |
| #define DT_FOREACH_REG_SEP_VARGS | ( | node_id, | |
| fn, | |||
| sep, | |||
| ... ) |
#include <zephyr/devicetree.h>
Invokes fn for each entry of node_id reg property with separator and multiple arguments.
The macro fn takes multiple arguments. The first one node_id will be the node identifier of the node with the reg property and idx the index of the reg array. The remaining are passed-in by the caller.
| node_id | node identifier |
| fn | macro to invoke |
| sep | Separator (e.g. comma or semicolon). Must be in parentheses; this is required to enable providing a comma as separator. |
| ... | variable number of arguments to pass to fn |
| #define DT_FOREACH_REG_VARGS | ( | node_id, | |
| fn, | |||
| ... ) |
#include <zephyr/devicetree.h>
Invokes fn for each entry of node_id reg property with multiple arguments.
The macro fn takes multiple arguments. The first one node_id will be the node identifier of the node with the reg property and idx the index of the reg array. The remaining are passed-in by the caller.
| node_id | node identifier |
| fn | macro to invoke |
| ... | variable number of arguments to pass to fn |
| #define DT_NUM_REGS | ( | node_id | ) |
#include <zephyr/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 | ) |
#include <zephyr/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 ) |
#include <zephyr/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_IDX_RAW | ( | node_id, | |
| idx ) |
#include <zephyr/devicetree.h>
Get the base raw address of the register block at index idx.
Get the base address of the register block at index idx without any type suffix. This can be used to index other devicetree properties, use the non _RAW macros for assigning values in actual code.
| node_id | node identifier |
| idx | index of the register whose address to return |
| #define DT_REG_ADDR_BY_NAME | ( | node_id, | |
| name ) |
#include <zephyr/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_ADDR_BY_NAME_OR | ( | node_id, | |
| name, | |||
| default_value ) |
#include <zephyr/devicetree.h>
Like DT_REG_ADDR_BY_NAME(), but with a fallback to default_value.
| node_id | node identifier |
| name | lowercase-and-underscores register specifier name |
| default_value | a fallback value to expand to |
default_value otherwise | #define DT_REG_ADDR_BY_NAME_U64 | ( | node_id, | |
| name ) |
#include <zephyr/devicetree.h>
64-bit version of DT_REG_ADDR_BY_NAME()
This macro version adds the appropriate suffix for 64-bit unsigned integer literals. Note that this macro is equivalent to DT_REG_ADDR_BY_NAME() in linker/ASM context.
| node_id | node identifier |
| name | lowercase-and-underscores register specifier name |
| #define DT_REG_ADDR_RAW | ( | node_id | ) |
#include <zephyr/devicetree.h>
Get a node's (only) register block raw address.
Get a node's only register block address without any type suffix. This can be used to index other devicetree properties, use the non _RAW macros for assigning values in actual code.
Equivalent to DT_REG_ADDR_BY_IDX_RAW(node_id, 0).
| node_id | node identifier |
| #define DT_REG_ADDR_U64 | ( | node_id | ) |
#include <zephyr/devicetree.h>
64-bit version of DT_REG_ADDR()
This macro version adds the appropriate suffix for 64-bit unsigned integer literals. Note that this macro is equivalent to DT_REG_ADDR() in linker/ASM context.
| node_id | node identifier |
| #define DT_REG_HAS_IDX | ( | node_id, | |
| idx ) |
#include <zephyr/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 |
idx is a valid register block index, 0 otherwise. | #define DT_REG_HAS_NAME | ( | node_id, | |
| name ) |
#include <zephyr/devicetree.h>
Is name a valid register block name?
If this returns 1, then DT_REG_ADDR_BY_NAME(node_id, name) or DT_REG_SIZE_BY_NAME(node_id, name) are valid. If it returns 0, it is an error to use those macros with name name.
| node_id | node identifier |
| name | name to check |
name is a valid register block name, 0 otherwise. | #define DT_REG_SIZE | ( | node_id | ) |
#include <zephyr/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 ) |
#include <zephyr/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 ) |
#include <zephyr/devicetree.h>
Get a register block's size by name.
| node_id | node identifier |
| name | lowercase-and-underscores register specifier name |
| #define DT_REG_SIZE_BY_NAME_OR | ( | node_id, | |
| name, | |||
| default_value ) |
#include <zephyr/devicetree.h>
Like DT_REG_SIZE_BY_NAME(), but with a fallback to default_value.
| node_id | node identifier |
| name | lowercase-and-underscores register specifier name |
| default_value | a fallback value to expand to |
default_value otherwise