Zephyr Project API 3.7.0
A Scalable Open Source RTOS
|
Macros | |
#define | DT_NODE_VENDOR_BY_IDX(node_id, idx) DT_CAT3(node_id, _COMPAT_VENDOR_IDX_, idx) |
Get the vendor at index idx as a string literal. | |
#define | DT_NODE_VENDOR_HAS_IDX(node_id, idx) IS_ENABLED(DT_CAT4(node_id, _COMPAT_VENDOR_IDX_, idx, _EXISTS)) |
Does a node's compatible property have a vendor at an index? | |
#define | DT_NODE_VENDOR_BY_IDX_OR(node_id, idx, default_value) |
Like DT_NODE_VENDOR_BY_IDX(), but with a fallback to default_value. | |
#define | DT_NODE_VENDOR_OR(node_id, default_value) DT_NODE_VENDOR_BY_IDX_OR(node_id, 0, default_value) |
Get the node's (only) vendor as a string literal. | |
#define | DT_NODE_MODEL_BY_IDX(node_id, idx) DT_CAT3(node_id, _COMPAT_MODEL_IDX_, idx) |
Get the model at index "idx" as a string literal. | |
#define | DT_NODE_MODEL_HAS_IDX(node_id, idx) IS_ENABLED(DT_CAT4(node_id, _COMPAT_MODEL_IDX_, idx, _EXISTS)) |
Does a node's compatible property have a model at an index? | |
#define | DT_NODE_MODEL_BY_IDX_OR(node_id, idx, default_value) |
Like DT_NODE_MODEL_BY_IDX(), but with a fallback to default_value. | |
#define | DT_NODE_MODEL_OR(node_id, default_value) DT_NODE_MODEL_BY_IDX_OR(node_id, 0, default_value) |
Get the node's (only) model as a string literal. | |
#define DT_NODE_MODEL_BY_IDX | ( | node_id, | |
idx | |||
) | DT_CAT3(node_id, _COMPAT_MODEL_IDX_, idx) |
#include <include/zephyr/devicetree.h>
Get the model at index "idx" as a string literal.
The model is a string extracted from the compatible after the vendor prefix.
Example vendor-prefixes.txt:
vnd A stand-in for a real vendor zephyr Zephyr-specific binding
Example devicetree fragment:
n1: node-1 { compatible = "vnd,model1", "gpio", "zephyr,model2"; };
Example usage:
DT_NODE_MODEL_BY_IDX(DT_NODELABEL(n1), 0) // "model1" DT_NODE_MODEL_BY_IDX(DT_NODELABEL(n1), 2) // "model2"
Notice that the compatible at index 1 doesn't match any entries in the vendor prefix file and therefore index 1 is not a valid model index. Use DT_NODE_MODEL_HAS_IDX(node_id, idx) to determine if an index is valid.
node_id | node identifier |
idx | index of the model to return |
#define DT_NODE_MODEL_BY_IDX_OR | ( | node_id, | |
idx, | |||
default_value | |||
) |
#include <include/zephyr/devicetree.h>
Like DT_NODE_MODEL_BY_IDX(), but with a fallback to default_value.
If the value exists, this expands to DT_NODE_MODEL_BY_IDX(node_id, idx). The default_value parameter is not expanded in this case.
Otherwise, this expands to default_value.
node_id | node identifier |
idx | index of the model to return |
default_value | a fallback value to expand to |
#define DT_NODE_MODEL_HAS_IDX | ( | node_id, | |
idx | |||
) | IS_ENABLED(DT_CAT4(node_id, _COMPAT_MODEL_IDX_, idx, _EXISTS)) |
#include <include/zephyr/devicetree.h>
Does a node's compatible property have a model at an index?
If this returns 1, then DT_NODE_MODEL_BY_IDX(node_id, idx) is valid. If it returns 0, it is an error to use DT_NODE_MODEL_BY_IDX(node_id, idx) with index "idx".
node_id | node identifier |
idx | index of the model to check |
#define DT_NODE_MODEL_OR | ( | node_id, | |
default_value | |||
) | DT_NODE_MODEL_BY_IDX_OR(node_id, 0, default_value) |
#include <include/zephyr/devicetree.h>
Get the node's (only) model as a string literal.
Equivalent to DT_NODE_MODEL_BY_IDX_OR(node_id, 0, default_value).
node_id | node identifier |
default_value | a fallback value to expand to |
#define DT_NODE_VENDOR_BY_IDX | ( | node_id, | |
idx | |||
) | DT_CAT3(node_id, _COMPAT_VENDOR_IDX_, idx) |
#include <include/zephyr/devicetree.h>
Get the vendor at index idx
as a string literal.
The vendor is a string extracted from vendor prefixes if an entry exists that matches the node's compatible prefix. There may be as many as one vendor prefixes file per directory in DTS_ROOT.
Example vendor-prefixes.txt:
vnd A stand-in for a real vendor zephyr Zephyr-specific binding
Example devicetree fragment:
Example usage:
Notice that the compatible at index 1 doesn't match any entries in the vendor prefix file and therefore index 1 is not a valid vendor index. Use DT_NODE_VENDOR_HAS_IDX(node_id, idx) to determine if an index is valid.
node_id | node identifier |
idx | index of the vendor to return |
#define DT_NODE_VENDOR_BY_IDX_OR | ( | node_id, | |
idx, | |||
default_value | |||
) |
#include <include/zephyr/devicetree.h>
Like DT_NODE_VENDOR_BY_IDX(), but with a fallback to default_value.
If the value exists, this expands to DT_NODE_VENDOR_BY_IDX(node_id, idx). The default_value parameter is not expanded in this case.
Otherwise, this expands to default_value.
node_id | node identifier |
idx | index of the vendor to return |
default_value | a fallback value to expand to |
#define DT_NODE_VENDOR_HAS_IDX | ( | node_id, | |
idx | |||
) | IS_ENABLED(DT_CAT4(node_id, _COMPAT_VENDOR_IDX_, idx, _EXISTS)) |
#include <include/zephyr/devicetree.h>
Does a node's compatible property have a vendor at an index?
If this returns 1, then DT_NODE_VENDOR_BY_IDX(node_id, idx) is valid. If it returns 0, it is an error to use DT_NODE_VENDOR_BY_IDX(node_id, idx) with index idx
.
node_id | node identifier |
idx | index of the vendor to check |
idx
is a valid vendor index, 0 otherwise. #define DT_NODE_VENDOR_OR | ( | node_id, | |
default_value | |||
) | DT_NODE_VENDOR_BY_IDX_OR(node_id, 0, default_value) |
#include <include/zephyr/devicetree.h>
Get the node's (only) vendor as a string literal.
Equivalent to DT_NODE_VENDOR_BY_IDX_OR(node_id, 0, default_value).
node_id | node identifier |
default_value | a fallback value to expand to |