Lines Matching +full:child +full:- +full:ref

2  * SPDX-License-Identifier: Apache-2.0
39 * -----------------
42 * part in DT_N_<path-id>_P_<property-id> macros, or the "prop-suf"
71 * @defgroup devicetree-generic-id Node identifiers and helpers
96 * The arguments to this macro are the names of non-root nodes in the
98 * Non-alphanumeric characters in each name must be converted to
108 * current-speed = <115200>;
119 * Example usage with DT_PROP() to get the `current-speed` property:
125 * (The `current-speed` property is also in `lowercase-and-underscores`
130 * - the first argument corresponds to a child node of the root (`soc` above)
131 * - a second argument corresponds to a child of the first argument
134 * - and so on for deeper nodes in the desired node's path
136 * @param ... lowercase-and-underscores node names along the node's path,
145 * Convert non-alphanumeric characters in the node label to
155 * current-speed = <115200>;
167 * current-speed property:
177 * L2_0: l2-cache {
178 * cache-level = <2>;
184 * Example usage to get the cache-level property:
193 * @param label lowercase-and-underscores node label name
203 * non-alphanumeric characters in the alias property to underscores to
211 * my-serial = &serial1;
217 * current-speed = <115200>;
225 * `serial@40001000` node. Notice how `my-serial` in the devicetree
227 * DT_PROP() to get the current-speed property:
233 * @param alias lowercase-and-underscores alias name.
240 * @param alias_name lowercase-and-underscores devicetree alias name
249 * instance numbers, which are zero-based indexes specific to that
252 * lowercase-and-underscores version of the compatible, @p compat.
256 * - for each compatible, instance numbers start at 0 and are contiguous
257 * - exactly one instance number is assigned for each node with a compatible,
259 * - enabled nodes (status property is `okay` or missing) are assigned the
265 * - instance numbers **in no way reflect** any numbering scheme that
269 * - there **is no general guarantee** that the same node will have
277 * compatible = "vnd,soc-serial";
279 * current-speed = <9600>;
284 * compatible = "vnd,soc-serial";
286 * current-speed = <57600>;
291 * compatible = "vnd,soc-serial";
292 * current-speed = <115200>;
298 * `"vnd,soc-serial"`, that compatible has nodes with instance numbers
312 * // have instance number 0, so this could be the current-speed
318 * // this expands to 115200, and vice-versa.
327 * Notice how `"vnd,soc-serial"` in the devicetree becomes `vnd_soc_serial`
328 * (without quotes) in the DT_INST() arguments. (As usual, `current-speed`
335 * @param compat lowercase-and-underscores compatible, without quotes
347 * parent: parent-node {
348 * child: child-node {
358 * DT_PARENT(DT_NODELABEL(child))
372 * gparent: grandparent-node {
373 * parent: parent-node {
374 * child: child-node { ... }
382 * DT_GPARENT(DT_NODELABEL(child))
383 * DT_PARENT(DT_PARENT(DT_NODELABEL(child))
392 * @brief Get a node identifier for a child node
398 * soc-label: soc {
401 * current-speed = <115200>;
416 * Node labels like `serial1` cannot be used as the @p child argument
423 * @param child lowercase-and-underscores child node name
424 * @return node identifier for the node with the name referred to by 'child'
426 #define DT_CHILD(node_id, child) UTIL_CAT(node_id, DT_S_PREFIX(child))
434 * of them is returned. Otherwise, @ref DT_INVALID_NODE is returned.
439 * node-a {
444 * node-b {
449 * node-c {
461 * This expands to a node identifier for either `node-a` or `node-b`.
462 * It will not expand to a node identifier for `node-c`, because that
465 * @param compat lowercase-and-underscores compatible, without quotes
467 * @ref DT_INVALID_NODE
485 * node: my-node@12345678 { ... };
493 * DT_NODE_PATH(DT_NODELABEL(node)) // "/soc/my-node@12345678"
504 * @brief Get a devicetree node's name with unit-address as a string literal
506 * This returns the node name and unit-address from a node identifier.
513 * node: my-node@12345678 { ... };
521 * DT_NODE_FULL_NAME(DT_NODELABEL(node)) // "my-node@12345678"
525 * @return the node's name with unit-address as a string in the devicetree
530 * @brief Get the node's full name, including the unit-address, as an unquoted
540 * node: my-node@12345678 { ... };
548 * DT_NODE_FULL_NAME_UNQUOTED(DT_NODELABEL(node)) // my-node@12345678
552 * @return the node's full name with unit-address as a sequence of tokens,
558 * @brief Get the node's full name, including the unit-address, as a token.
561 * converting any non-alphanumeric characters to underscores.
568 * node: my-node@12345678 { ... };
580 * @return the node's full name with unit-address as a token, i.e. without any quotes
589 * converting any non-alphanumeric characters to underscores, and
597 * node: my-node@12345678 { ... };
609 * @return the node's full name with unit-address as an uppercased token,
618 * Indexes are zero-based.
626 * c1: child-1 {};
627 * c2: child-2 {};
644 * @brief Get the number of child nodes of a given node
647 * @return Number of child nodes
653 * @brief Get the number of child nodes of a given node
654 * which child nodes' status are okay
657 * @return Number of child nodes which status are okay
717 * @defgroup devicetree-generic-prop Property accessors
728 * - string: a string literal
729 * - boolean: `0` if the property is false, or `1` if it is true
730 * - int: the property's value as an integer literal
731 * - array, uint8-array, string-array: an initializer expression in braces,
734 * - phandle: a node identifier for the node with that phandle
739 * type string-array, `status` has type string, and
740 * `interrupt-controller` has type boolean.
749 * @param prop lowercase-and-underscores property name
762 * - for types array, string-array, and uint8-array, this expands
764 * - for type phandles, this expands to the number of phandles
765 * - for type phandle-array, this expands to the number of
767 * - for type phandle, this expands to 1 (so that a phandle
769 * - for type string, this expands to 1 (so that a string can be
770 * treated as a degenerate case of string-array with length 1)
774 * - reg property: use `DT_NUM_REGS(node_id)` instead
775 * - interrupts property: use `DT_NUM_IRQS(node_id)` instead
777 * It is an error to use this macro with the `ranges`, `dma-ranges`, `reg`
783 * @param prop a lowercase-and-underscores property with a logical length
798 * @param prop a lowercase-and-underscores property with a logical length
815 * - `reg` property: use DT_REG_HAS_IDX(node_id, idx) instead
816 * - `interrupts` property: use DT_IRQ_HAS_IDX(node_id, idx) instead
821 * @param prop a lowercase-and-underscores property with a logical length
830 * @brief Is name @p name available in a `foo-names` property?
834 * - `interrupts` property: use DT_IRQ_HAS_NAME(node_id, idx) instead
841 * nx: node-x {
843 * foo-names = "event", "error";
856 * @param prop a lowercase-and-underscores `prop-names` type property
857 * @param name a lowercase-and-underscores name to check
868 * `node->property[index]`.
872 * - for types array, string-array, uint8-array, and phandles,
873 * this expands to the idx-th array element as an
877 * - for type phandle, idx must be 0 and the expansion is a node
880 * - for type string, idx must be 0 and the expansion is the
881 * entire string (this treats string like string-array of length 1)
885 * - `reg`: use DT_REG_ADDR_BY_IDX() or DT_REG_SIZE_BY_IDX() instead
886 * - `interrupts`: use DT_IRQ_BY_IDX()
887 * - `ranges`: use DT_NUM_RANGES()
888 * - `dma-ranges`: it is an error to use this property with
894 * @param prop lowercase-and-underscores property name
896 * @return a representation of the idx-th element of the property
905 * @param prop lowercase-and-underscores property name
921 * @param prop lowercase-and-underscores property name
937 * some_node: some-node {
938 * compat = "vend,enum-string-array";
943 * foo-names = "default", "option3", "option1";
950 * compatible: vend,enum-string-array
953 * type: phandle-array
955 * Explanation about what this phandle-array exactly is for.
957 * foo-names:
958 * type: string-array
966 * - default
967 * - option1
968 * - option2
969 * - option3
980 * @param prop lowercase-and-underscores property name
982 * @return zero-based index of the property's value in its enum: list
988 * @brief Equivalent to @ref DT_ENUM_IDX_BY_IDX(node_id, prop, 0).
990 * @param prop lowercase-and-underscores property name
991 * @return zero-based index of the property's value in its enum: list
1004 * @param prop lowercase-and-underscores property name
1007 * @return zero-based index of the property's value in its enum if present,
1017 * @param prop lowercase-and-underscores property name
1019 * @return zero-based index of the property's value in its enum if present,
1029 * @param prop lowercase-and-underscores property name
1031 * @param value lowercase-and-underscores enumeration value
1040 * @param prop lowercase-and-underscores property name
1041 * @param value lowercase-and-underscores enumeration value
1051 * converting any non-alphanumeric characters to underscores. This can
1062 * n1: node-1 {
1065 * n2: node-2 {
1068 * n3: node-3 {
1091 * - Unlike C identifiers, the property values may begin with a
1095 * - The uppercased `"FOO"` in the DTS remains `FOO` as a token. It is
1098 * - The whitespace in the DTS `"123 foo"` string is converted to
1102 * @param prop lowercase-and-underscores property name
1118 * @param prop lowercase-and-underscores property name
1130 * converting any non-alphanumeric characters to underscores, and
1141 * n1: node-1 {
1144 * n2: node-2 {
1167 * - Unlike C identifiers, the property values may begin with a
1171 * - The lowercased `"foo"` in the DTS becomes `FOO` as a token, i.e.
1174 * - The whitespace in the DTS `"123 foo"` string is converted to
1179 * @param prop lowercase-and-underscores property name
1195 * @param prop lowercase-and-underscores property name
1207 * This removes "the quotes" from string-valued properties.
1218 * n1: node-1 {
1221 * n2: node-2 {
1224 * n3: node-3 {
1241 * @param prop lowercase-and-underscores property name
1256 * @param prop lowercase-and-underscores property name
1266 * @brief Get an element out of a string-array property as a token.
1269 * non-alphanumeric characters to underscores. That can be useful, for example,
1273 * string-array type.
1280 * n1: node-1 {
1283 * n2: node-2 {
1293 * type: string-array
1305 * For more information, see @ref DT_STRING_TOKEN.
1308 * @param prop lowercase-and-underscores property name
1319 * converts non-alphanumeric characters to underscores. That can be useful, for
1323 * string-array type.
1330 * n1: node-1 {
1333 * n2: node-2 {
1343 * type: string-array
1355 * For more information, see @ref DT_STRING_UPPER_TOKEN.
1358 * @param prop lowercase-and-underscores property name
1368 * This removes "the quotes" from string-valued item.
1374 * string-array type.
1380 * n1: node-1 {
1383 * n2: node-2 {
1391 * type: string-array
1401 * @param prop lowercase-and-underscores property name
1411 * These are special-cased to manage the impedance mismatch between
1431 * n1: node-1 {
1435 * n2: node-2 {
1439 * n3: node-3 {
1454 * @param phs lowercase-and-underscores property with type `phandle`,
1455 * `phandles`, or `phandle-array`
1458 * @param prop lowercase-and-underscores property of the phandle's node
1475 * @param phs lowercase-and-underscores property with type `phandle`,
1476 * `phandles`, or `phandle-array`
1479 * @param prop lowercase-and-underscores property of the phandle's node
1492 * @param ph lowercase-and-underscores property of @p node_id
1494 * @param prop lowercase-and-underscores property of the phandle's node
1501 * @brief Get a phandle-array specifier cell value at an index
1504 * `node->phandle_array[index].cell`. That is, the cell value is in
1512 * #gpio-cells = <2>;
1516 * #gpio-cells = <2>;
1527 * gpio-cells:
1528 * - pin
1529 * - flags
1534 * - index 0 has specifier <17 0x1>, so its `pin` cell is 17, and its
1536 * - index 1 has specifier <5 0x3>, so `pin` is 5 and `flags` is 0x3
1548 * @param pha lowercase-and-underscores property with type `phandle-array`
1550 * @param cell lowercase-and-underscores cell name within the specifier
1573 * @param pha lowercase-and-underscores property with type `phandle-array`
1575 * @param cell lowercase-and-underscores cell name within the specifier
1586 * @param pha lowercase-and-underscores property with type `phandle-array`
1587 * @param cell lowercase-and-underscores cell name
1601 * @param pha lowercase-and-underscores property with type `phandle-array`
1602 * @param cell lowercase-and-underscores cell name
1610 * @brief Get a value within a phandle-array specifier by name
1616 * `node->phandle_struct.name.cell`. That is, the cell value is in the
1624 * io-channels = <&adc1 10>, <&adc2 20>;
1625 * io-channel-names = "SENSOR", "BANDGAP";
1632 * io-channel-cells:
1633 * - input
1644 * @param pha lowercase-and-underscores property with type `phandle-array`
1645 * @param name lowercase-and-underscores name of a specifier in @p pha
1646 * @param cell lowercase-and-underscores cell name in the named specifier
1667 * @param pha lowercase-and-underscores property with type `phandle-array`
1668 * @param name lowercase-and-underscores name of a specifier in @p pha
1669 * @param cell lowercase-and-underscores cell name in the named specifier
1680 * `node->phandle_struct.name.phandle`. That is, the phandle array is
1696 * io-channels = <&adc1 10>, <&adc2 20>;
1697 * io-channel-names = "SENSOR", "BANDGAP";
1701 * Above, "io-channels" has two elements:
1703 * - the element named `"SENSOR"` has phandle `&adc1`
1704 * - the element named `"BANDGAP"` has phandle `&adc2`
1716 * non-alphanumeric characters are converted to underscores.
1719 * @param pha lowercase-and-underscores property with type `phandle-array`
1720 * @param name lowercase-and-underscores name of an element in @p pha
1739 * n1: node-1 {
1743 * n2: node-2 { ... };
1744 * n3: node-3 { ... };
1749 * - index 0 has phandle `&n2`, which is `node-2`'s phandle
1750 * - index 1 has phandle `&n3`, which is `node-3`'s phandle
1757 * DT_PHANDLE_BY_IDX(N1, foo, 0) // node identifier for node-2
1758 * DT_PHANDLE_BY_IDX(N1, foo, 1) // node identifier for node-3
1761 * Behavior is analogous for phandle-arrays.
1770 * @param prop lowercase-and-underscores property name in @p node_id
1771 * with type `phandle`, `phandles` or `phandle-array`
1785 * @param prop lowercase-and-underscores property of @p node_id
1796 * @defgroup devicetree-ranges-prop ranges property
1810 * compatible = "pcie-controller";
1812 * #address-cells = <3>;
1813 * #size-cells = <2>;
1855 * compatible = "pcie-controller";
1857 * #address-cells = <3>;
1858 * #size-cells = <2>;
1895 * @brief Does a ranges property have child bus flags at index?
1906 * #address-cells = <2>;
1909 * compatible = "pcie-controller";
1911 * #address-cells = <3>;
1912 * #size-cells = <2>;
1943 * @return 1 if @p idx is a valid child bus flags index,
1950 * @brief Get the ranges property child bus flags at index
1952 * When the node is a PCIe bus, the Child Bus Address has an extra cell used to store some
1953 * flags, thus this cell is extracted from the Child Bus Address as Child Bus Flags field.
1959 * #address-cells = <2>;
1962 * compatible = "pcie-controller";
1964 * #address-cells = <3>;
1965 * #size-cells = <2>;
1984 * @returns range child bus flags field at idx
1990 * @brief Get the ranges property child bus address at index
1992 * When the node is a PCIe bus, the Child Bus Address has an extra cell used to store some
1993 * flags, thus this cell is removed from the Child Bus Address.
1999 * #address-cells = <2>;
2002 * compatible = "pcie-controller";
2004 * #address-cells = <3>;
2005 * #size-cells = <2>;
2033 * @returns range child bus address field at idx
2042 * for child bus flags cells when the node is a PCIe bus.
2048 * #address-cells = <2>;
2051 * compatible = "pcie-controller";
2053 * #address-cells = <3>;
2054 * #size-cells = <2>;
2091 * for child bus flags cells when the node is a PCIe bus.
2097 * #address-cells = <2>;
2100 * compatible = "pcie-controller";
2102 * #address-cells = <3>;
2103 * #size-cells = <2>;
2183 * @defgroup devicetree-generic-vendor Vendor and model name helpers
2195 * Example vendor-prefixes.txt:
2197 * vnd A stand-in for a real vendor
2198 * zephyr Zephyr-specific binding
2203 * n1: node-1 {
2211 * DT_NODE_VENDOR_BY_IDX(DT_NODELABEL(n1), 0) // "A stand-in for a real vendor"
2212 * DT_NODE_VENDOR_BY_IDX(DT_NODELABEL(n1), 2) // "Zephyr-specific binding"
2221 * @return string literal of the idx-th vendor
2251 * @return string literal of the idx-th vendor
2253 * @return string literal of the idx-th vendor or "default_value"
2275 * Example vendor-prefixes.txt:
2277 * vnd A stand-in for a real vendor
2278 * zephyr Zephyr-specific binding
2282 * n1: node-1 {
2297 * @return string literal of the idx-th model
2327 * @return string literal of the idx-th model
2329 * @return string literal of the idx-th model or "default_value"
2351 * @defgroup devicetree-reg-prop reg property
2402 * @return address of the idx-th register block
2425 * @return address of the idx-th register block
2439 * @return size of the idx-th register block
2454 * @brief 64-bit version of DT_REG_ADDR()
2456 * This macro version adds the appropriate suffix for 64-bit unsigned
2477 * @param name lowercase-and-underscores register specifier name
2486 * @param name lowercase-and-underscores register specifier name
2496 * @brief 64-bit version of DT_REG_ADDR_BY_NAME()
2498 * This macro version adds the appropriate suffix for 64-bit unsigned
2504 * @param name lowercase-and-underscores register specifier name
2513 * @param name lowercase-and-underscores register specifier name
2522 * @param name lowercase-and-underscores register specifier name
2537 * @defgroup devicetree-interrupts-prop interrupts property
2626 * @param name lowercase-and-underscores interrupt specifier name
2637 * "node->interrupts[index].cell".
2645 * my-serial: serial@abcd1234 {
2650 * Assuming the node's interrupt domain has "#interrupt-cells = <2>;" and
2657 * ------------- -----
2675 * `node->interrupts.name.cell`.
2682 * @param name lowercase-and-underscores interrupt specifier name
2703 * interrupt-controller;
2704 * #interrupt-cells = <2>;
2708 * interrupt-parent = <&gpio0>;
2713 * interrupts-extended = <&gpio0 3 3>, <&pic0 4>;
2717 * interrupt-controller;
2718 * #interrupt-cells = <1>;
2722 * interrupt-names = "int1", "int2";
2748 * interrupt-controller;
2749 * #interrupt-cells = <2>;
2753 * interrupt-parent = <&gpio0>;
2755 * interrupt-names = "int1", "int2";
2759 * interrupts-extended = <&gpio0 3 3>, <&pic0 4>;
2760 * interrupt-names = "int1", "int2";
2764 * interrupt-controller;
2765 * #interrupt-cells = <1>;
2769 * interrupt-names = "int1", "int2";
2796 * interrupt-controller;
2797 * #interrupt-cells = <2>;
2801 * interrupt-parent = <&gpio0>;
2806 * interrupts-extended = <&gpio0 3 3>;
2810 * interrupt-controller;
2811 * #interrupt-cells = <1>;
2836 /* DT helper macro to encode a node's IRQN to level 1 according to the multi-level scheme */
2838 /* DT helper macro to encode a node's IRQN to level 2 according to the multi-level scheme */
2842 /* DT helper macro to encode a node's IRQN to level 3 according to the multi-level scheme */
2851 * DT helper macro to encode a node's interrupt number according to the Zephyr's multi-level scheme
2864 * multi-level encoded
2891 * @defgroup devicetree-generic-chosen Chosen nodes
2900 * @param prop lowercase-and-underscores property name for
2908 * @param prop lowercase-and-underscores devicetree property
2919 * @defgroup devicetree-generic-foreach "For-each" macros
2939 * identifier for the node. The remaining are passed-in by the caller.
2967 * identifier for the node. The remaining are passed-in by the caller.
2982 * of a child node of @p node_id to enable traversal of all ancestor nodes.
3028 * @brief Invokes @p fn for each child of @p node_id
3031 * identifier of a child node of @p node_id.
3040 * child-1 {
3043 * child-2 {
3074 * @brief Invokes @p fn for each child of @p node_id with a separator
3077 * identifier of a child node of @p node_id.
3083 * child-1 {
3086 * child-2 {
3104 * "child-1", "child-2"
3117 * @brief Invokes @p fn for each child of @p node_id with multiple arguments
3120 * identifier for the child node. The remaining are passed-in by the caller.
3135 * @brief Invokes @p fn for each child of @p node_id with separator and multiple
3139 * identifier for the child node. The remaining are passed-in by the caller.
3153 * @brief Call @p fn on the child nodes with status `okay`
3156 * identifier for the child node.
3171 * @brief Call @p fn on the child nodes with status `okay` with separator
3174 * identifier for the child node.
3190 * @brief Call @p fn on the child nodes with status `okay` with multiple
3194 * identifier for the child node. The remaining are passed-in by the caller.
3212 * @brief Call @p fn on the child nodes with status `okay` with separator and
3216 * identifier for the child node. The remaining are passed-in by the caller.
3247 * my-ints = <1 2 3>;
3272 * fn(node_id, prop, 0) fn(node_id, prop, 1) [...] fn(node_id, prop, n-1)
3278 * @param prop lowercase-and-underscores property name
3293 * my-gpios = <&gpioa 0 GPIO_ACTICE_HIGH>,
3320 * @param prop lowercase-and-underscores property name
3338 * remaining arguments are passed-in by the caller.
3344 * @param prop lowercase-and-underscores property name
3361 * @param prop lowercase-and-underscores property name
3422 * @param compat lowercase-and-underscores devicetree compatible
3470 * @param compat lowercase-and-underscores devicetree compatible
3486 * @param compat lowercase-and-underscores devicetree compatible
3509 * passed as tokens to @p fn as-is, without any lowercasing or
3585 * @defgroup devicetree-generic-exist Existence checks
3618 * - exists in the devicetree, and
3619 * - has a status property matching the second argument
3641 * - exists in the devicetree, and
3642 * - has a status property as `okay`
3668 * @param compat lowercase-and-underscores compatible, without quotes
3677 * @param compat lowercase-and-underscores compatible, without quotes
3691 * compatible = "vnd,specific-device", "generic-device";
3707 * @param compat lowercase-and-underscores compatible, without quotes
3725 * @param compat lowercase-and-underscores compatible, without quotes
3741 * @param prop lowercase-and-underscores property name
3751 * If this returns 1, then the phandle-array property @p pha has a cell
3757 * @param pha lowercase-and-underscores property with type `phandle-array`
3759 * @param cell lowercase-and-underscores cell name whose existence to check
3771 * @param pha lowercase-and-underscores property with type `phandle-array`
3772 * @param cell lowercase-and-underscores cell name whose existence to check
3785 * @defgroup devicetree-generic-bus Bus helpers
3804 * clock-frequency = < 100000 >;
3830 * temp: temperature-sensor@76 {
3831 * compatible = "vnd,some-sensor";
3846 * @param bus lowercase-and-underscores bus type as a C token (i.e.
3858 * @defgroup devicetree-inst Instance-based devicetree APIs
3890 * @brief Get a node identifier for a child node of DT_DRV_INST(inst)
3893 * @param child lowercase-and-underscores child node name
3894 * @return node identifier for the node with the name referred to by 'child'
3898 #define DT_INST_CHILD(inst, child) \
3899 DT_CHILD(DT_DRV_INST(inst), child)
3902 * @brief Get the number of child nodes of a given node
3908 * @return Number of child nodes
3913 * @brief Get the number of child nodes of a given node
3919 * @return Number of child nodes which status are okay
3945 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst).
3948 * identifier for the child node.
3954 * @param fn macro to invoke on each child node identifier
3962 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst) with a separator
3965 * identifier for the child node.
3968 * @param fn macro to invoke on each child node identifier
3978 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst).
3981 * identifier for the child node. The remaining are passed-in by the caller.
3987 * @param fn macro to invoke on each child node identifier
3996 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst) with separator.
3999 * identifier for the child node. The remaining are passed-in by the caller.
4002 * @param fn macro to invoke on each child node identifier
4013 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst) with status `okay`.
4016 * identifier for the child node.
4019 * @param fn macro to invoke on each child node identifier
4027 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst) with status `okay`
4031 * identifier for the child node.
4034 * @param fn macro to invoke on each child node identifier
4044 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst) with status `okay`
4048 * identifier for the child node. The remaining are passed-in by the caller.
4051 * @param fn macro to invoke on each child node identifier
4060 * @brief Call @p fn on all child nodes of DT_DRV_INST(inst) with status `okay`
4064 * identifier for the child node. The remaining are passed-in by the caller.
4067 * @param fn macro to invoke on each child node identifier
4080 * @param prop lowercase-and-underscores property name
4082 * @return zero-based index of the property's value in its enum: list
4090 * @param prop lowercase-and-underscores property name
4091 * @return zero-based index of the property's value in its enum: list
4099 * @param prop lowercase-and-underscores property name
4102 * @return zero-based index of the property's value in its enum if present,
4111 * @param prop lowercase-and-underscores property name
4113 * @return zero-based index of the property's value in its enum if present,
4122 * @param prop lowercase-and-underscores property name
4124 * @param value lowercase-and-underscores enumeration value
4125 * @return zero-based index of the property's value in its enum
4134 * @param prop lowercase-and-underscores property name
4135 * @param value lowercase-and-underscores enumeration value
4144 * @param prop lowercase-and-underscores property name
4152 * @param prop lowercase-and-underscores property name
4161 * @param prop lowercase-and-underscores property name
4170 * @brief Is name @p name available in a `foo-names` property?
4172 * @param prop a lowercase-and-underscores `prop-names` type property
4173 * @param name a lowercase-and-underscores name to check
4183 * @param prop lowercase-and-underscores property name
4185 * @return a representation of the idx-th element of the property
4193 * @param prop lowercase-and-underscores property name
4203 * @param prop lowercase-and-underscores property name
4215 * @param prop lowercase-and-underscores property name
4225 * @param prop lowercase-and-underscores property name
4237 * @param prop lowercase-and-underscores property name
4244 * @brief Get an element out of string-array property as a token.
4246 * @param prop lowercase-and-underscores property name
4256 * @param prop lowercase-and-underscores property name
4264 * @brief Get an element out of string-array property as an unquoted sequence of tokens.
4266 * @param prop lowercase-and-underscores property name
4276 * @param ph lowercase-and-underscores property of @p inst
4278 * @param prop lowercase-and-underscores property of the phandle's node
4288 * @param phs lowercase-and-underscores property with type `phandle`,
4289 * `phandles`, or `phandle-array`
4292 * @param prop lowercase-and-underscores property of the phandle's node
4299 * @brief Get a `DT_DRV_COMPAT` instance's phandle-array specifier value at an index
4301 * @param pha lowercase-and-underscores property with type `phandle-array`
4312 * @param pha lowercase-and-underscores property with type `phandle-array`
4322 * @brief Get a `DT_DRV_COMPAT` instance's phandle-array specifier value
4325 * @param pha lowercase-and-underscores property with type `phandle-array`
4334 * @param pha lowercase-and-underscores property with type `phandle-array`
4343 * @brief Get a `DT_DRV_COMPAT` instance's value within a phandle-array
4346 * @param pha lowercase-and-underscores property with type `phandle-array`
4347 * @param name lowercase-and-underscores name of a specifier in @p pha
4357 * @param pha lowercase-and-underscores property with type `phandle-array`
4358 * @param name lowercase-and-underscores name of a specifier in @p pha
4370 * @param pha lowercase-and-underscores property with type `phandle-array`
4371 * @param name lowercase-and-underscores name of an element in @p pha
4381 * @param prop lowercase-and-underscores property name in @p inst
4382 * with type `phandle`, `phandles` or `phandle-array`
4393 * @param prop lowercase-and-underscores property of @p inst
4418 * @brief Get a `DT_DRV_COMPAT` instance's idx-th register block's raw address
4421 * @return address of the instance's idx-th register block
4426 * @brief Get a `DT_DRV_COMPAT` instance's idx-th register block's address
4429 * @return address of the instance's idx-th register block
4434 * @brief Get a `DT_DRV_COMPAT` instance's idx-th register block's size
4437 * @return size of the instance's idx-th register block
4445 * @param name lowercase-and-underscores register specifier name
4454 * @param name lowercase-and-underscores register specifier name
4463 * @brief 64-bit version of DT_INST_REG_ADDR_BY_NAME()
4465 * This macro version adds the appropriate suffix for 64-bit unsigned
4471 * @param name lowercase-and-underscores register specifier name
4480 * @param name lowercase-and-underscores register specifier name
4489 * @param name lowercase-and-underscores register specifier name
4512 * @brief 64-bit version of DT_INST_REG_ADDR()
4514 * This macro version adds the appropriate suffix for 64-bit unsigned
4588 * @param name lowercase-and-underscores interrupt specifier name
4614 * @return the interrupt number for the node's idx-th interrupt
4637 * @param name lowercase-and-underscores property name
4650 * @param name lowercase-and-underscores property name
4661 * @param name lowercase-and-underscores property name
4679 * temp: temperature-sensor@76 {
4680 * compatible = "vnd,some-sensor";
4693 * @param compat lowercase-and-underscores compatible, without quotes
4705 * This is a special-purpose macro which can be useful when writing
4713 * temp: temperature-sensor@76 {
4714 * compatible = "vnd,some-sensor";
4740 * @param prop lowercase-and-underscores property name
4747 * compatible = "vnd,some-sensor";
4755 * compatible = "vnd,some-sensor";
4762 * compatible = "vnd,some-sensor";
4787 * @param compat lowercase-and-underscores devicetree compatible
4788 * @param prop lowercase-and-underscores property name
4795 * compatible = "vnd,some-sensor";
4803 * compatible = "vnd,some-sensor";
4810 * compatible = "vnd,some-sensor";
4834 * This differs from @ref DT_ANY_INST_HAS_PROP_STATUS_OKAY because even when not present
4837 * @param prop lowercase-and-underscores property name
4844 * compatible = "vnd,some-sensor";
4852 * compatible = "vnd,some-sensor";
4859 * compatible = "vnd,some-sensor";
5002 * @param prop lowercase-and-underscores property name
5015 * @param prop lowercase-and-underscores property name
5031 * @param prop lowercase-and-underscores property name
5049 * @param prop lowercase-and-underscores property name
5064 * @param prop lowercase-and-underscores property name
5073 * @param compat lowercase-and-underscores compatible, without quotes
5083 * @param pha lowercase-and-underscores property with type `phandle-array`
5096 * @param pha lowercase-and-underscores property with type `phandle-array`
5137 * @param name lowercase-and-underscores interrupt specifier name
5224 * since its macro-based API is fiddly and can be hard to get right.
5293 #include <zephyr/devicetree/io-channels.h>
5299 #include <zephyr/devicetree/fixed-partitions.h>
5305 #include <zephyr/devicetree/port-endpoint.h>