Lines Matching +full:phandle +full:- +full:array +full:- +full:foos

2  * SPDX-License-Identifier: Apache-2.0
39 * -----------------
42 * part in DT_N_<path-id>_P_<property-id> macros, or the "prop-suf"
55 * _IDX_<i>_PH: phandle array's phandle by index (or phandle, phandles)
56 * _IDX_<i>_STRING_TOKEN: string array element value as a token
57 * _IDX_<i>_STRING_UPPER_TOKEN: string array element value as a uppercased token
58 * _IDX <i>_STRING_UNQUOTED: string array element value as a sequence of tokens, with no quotes
59 * _IDX_<i>_VAL_<val>: phandle array's specifier value by index
62 * _NAME_<name>_PH: phandle array's phandle by name
63 * _NAME_<name>_VAL_<val>: phandle array's property specifier by name
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
259 * instance numbers, which are zero-based indexes specific to that
262 * lowercase-and-underscores version of the compatible, @p compat.
266 * - for each compatible, instance numbers start at 0 and are contiguous
267 * - exactly one instance number is assigned for each node with a compatible,
269 * - enabled nodes (status property is `okay` or missing) are assigned the
275 * - instance numbers **in no way reflect** any numbering scheme that
279 * - there **is no general guarantee** that the same node will have
287 * compatible = "vnd,soc-serial";
289 * current-speed = <9600>;
294 * compatible = "vnd,soc-serial";
296 * current-speed = <57600>;
301 * compatible = "vnd,soc-serial";
302 * current-speed = <115200>;
308 * `"vnd,soc-serial"`, that compatible has nodes with instance numbers
322 * // have instance number 0, so this could be the current-speed
328 * // this expands to 115200, and vice-versa.
337 * Notice how `"vnd,soc-serial"` in the devicetree becomes `vnd_soc_serial`
338 * (without quotes) in the DT_INST() arguments. (As usual, `current-speed`
345 * @param compat lowercase-and-underscores compatible, without quotes
357 * parent: parent-node {
358 * child: child-node {
382 * gparent: grandparent-node {
383 * parent: parent-node {
384 * child: child-node { ... }
408 * soc-label: soc {
411 * current-speed = <115200>;
433 * @param child lowercase-and-underscores child node name
449 * node-a {
454 * node-b {
459 * node-c {
471 * This expands to a node identifier for either `node-a` or `node-b`.
472 * It will not expand to a node identifier for `node-c`, because that
475 * @param compat lowercase-and-underscores compatible, without quotes
495 * node: my-node@12345678 { ... };
503 * DT_NODE_PATH(DT_NODELABEL(node)) // "/soc/my-node@12345678"
514 * @brief Get a devicetree node's name with unit-address as a string literal
516 * This returns the node name and unit-address from a node identifier.
523 * node: my-node@12345678 { ... };
531 * DT_NODE_FULL_NAME(DT_NODELABEL(node)) // "my-node@12345678"
535 * @return the node's name with unit-address as a string in the devicetree
540 * @brief Get the node's full name, including the unit-address, as an unquoted
550 * node: my-node@12345678 { ... };
558 * DT_NODE_FULL_NAME_UNQUOTED(DT_NODELABEL(node)) // my-node@12345678
562 * @return the node's full name with unit-address as a sequence of tokens,
568 * @brief Get the node's full name, including the unit-address, as a token.
571 * converting any non-alphanumeric characters to underscores.
578 * node: my-node@12345678 { ... };
590 * @return the node's full name with unit-address as a token, i.e. without any quotes
599 * converting any non-alphanumeric characters to underscores, and
607 * node: my-node@12345678 { ... };
619 * @return the node's full name with unit-address as an uppercased token,
628 * Indexes are zero-based.
636 * c1: child-1 {};
637 * c2: child-2 {};
696 * @brief Get a devicetree node's node labels as an array of strings
717 * @return an array initializer for an array of the node's node labels as strings
727 * @defgroup devicetree-generic-prop Property accessors
738 * - string: a string literal
739 * - boolean: `0` if the property is false, or `1` if it is true
740 * - int: the property's value as an integer literal
741 * - array, uint8-array, string-array: an initializer expression in braces,
744 * - phandle: a node identifier for the node with that phandle
749 * type string-array, `status` has type string, and
750 * `interrupt-controller` has type boolean.
759 * @param prop lowercase-and-underscores property name
772 * - for types array, string-array, and uint8-array, this expands
773 * to the number of elements in the array
774 * - for type phandles, this expands to the number of phandles
775 * - for type phandle-array, this expands to the number of
776 * phandle and specifier blocks in the property
777 * - for type phandle, this expands to 1 (so that a phandle
779 * - for type string, this expands to 1 (so that a string can be
780 * treated as a degenerate case of string-array with length 1)
784 * - reg property: use `DT_NUM_REGS(node_id)` instead
785 * - interrupts property: use `DT_NUM_IRQS(node_id)` instead
787 * It is an error to use this macro with the `ranges`, `dma-ranges`, `reg`
793 * @param prop a lowercase-and-underscores property with a logical length
808 * @param prop a lowercase-and-underscores property with a logical length
817 * @brief Is index @p idx valid for an array type property?
825 * - `reg` property: use DT_REG_HAS_IDX(node_id, idx) instead
826 * - `interrupts` property: use DT_IRQ_HAS_IDX(node_id, idx) instead
831 * @param prop a lowercase-and-underscores property with a logical length
840 * @brief Is name @p name available in a `foo-names` property?
844 * - `interrupts` property: use DT_IRQ_HAS_NAME(node_id, idx) instead
851 * nx: node-x {
852 * foos = <&bar xx yy>, <&baz xx zz>;
853 * foo-names = "event", "error";
861 * DT_PROP_HAS_NAME(DT_NODELABEL(nx), foos, event) // 1
862 * DT_PROP_HAS_NAME(DT_NODELABEL(nx), foos, failure) // 0
866 * @param prop a lowercase-and-underscores `prop-names` type property
867 * @param name a lowercase-and-underscores name to check
875 * @brief Get the value at index @p idx in an array type property
878 * `node->property[index]`.
882 * - for types array, string-array, uint8-array, and phandles,
883 * this expands to the idx-th array element as an
887 * - for type phandle, idx must be 0 and the expansion is a node
888 * identifier (this treats phandle like a phandles of length 1)
890 * - for type string, idx must be 0 and the expansion is the
891 * entire string (this treats string like string-array of length 1)
895 * - `reg`: use DT_REG_ADDR_BY_IDX() or DT_REG_SIZE_BY_IDX() instead
896 * - `interrupts`: use DT_IRQ_BY_IDX()
897 * - `ranges`: use DT_NUM_RANGES()
898 * - `dma-ranges`: it is an error to use this property with
904 * @param prop lowercase-and-underscores property name
906 * @return a representation of the idx-th element of the property
912 * @brief Get the last element of an array type property
915 * @param prop lowercase-and-underscores property name
931 * @param prop lowercase-and-underscores property name
940 * @brief Get a property array value's index into its enumeration values
947 * some_node: some-node {
948 * compat = "vend,enum-string-array";
949 * foos =
950 * <&phandle val1>,
951 * <&phandle val2>,
952 * <&phandle val3>;
953 * foo-names = "default", "option3", "option1";
960 * compatible: vend,enum-string-array
962 * foos:
963 * type: phandle-array
965 * Explanation about what this phandle-array exactly is for.
967 * foo-names:
968 * type: string-array
976 * - default
977 * - option1
978 * - option2
979 * - option3
990 * @param prop lowercase-and-underscores property name
992 * @return zero-based index of the property's value in its enum: list
1000 * @param prop lowercase-and-underscores property name
1001 * @return zero-based index of the property's value in its enum: list
1014 * @param prop lowercase-and-underscores property name
1017 * @return zero-based index of the property's value in its enum if present,
1027 * @param prop lowercase-and-underscores property name
1029 * @return zero-based index of the property's value in its enum if present,
1036 * @brief Does a node enumeration property array have a given value?
1039 * @param prop lowercase-and-underscores property name
1041 * @param value lowercase-and-underscores enumeration value
1050 * @param prop lowercase-and-underscores property name
1051 * @param value lowercase-and-underscores enumeration value
1061 * converting any non-alphanumeric characters to underscores. This can
1072 * n1: node-1 {
1075 * n2: node-2 {
1078 * n3: node-3 {
1101 * - Unlike C identifiers, the property values may begin with a
1105 * - The uppercased `"FOO"` in the DTS remains `FOO` as a token. It is
1108 * - The whitespace in the DTS `"123 foo"` string is converted to
1112 * @param prop lowercase-and-underscores property name
1128 * @param prop lowercase-and-underscores property name
1140 * converting any non-alphanumeric characters to underscores, and
1151 * n1: node-1 {
1154 * n2: node-2 {
1177 * - Unlike C identifiers, the property values may begin with a
1181 * - The lowercased `"foo"` in the DTS becomes `FOO` as a token, i.e.
1184 * - The whitespace in the DTS `"123 foo"` string is converted to
1189 * @param prop lowercase-and-underscores property name
1205 * @param prop lowercase-and-underscores property name
1217 * This removes "the quotes" from string-valued properties.
1228 * n1: node-1 {
1231 * n2: node-2 {
1234 * n3: node-3 {
1251 * @param prop lowercase-and-underscores property name
1266 * @param prop lowercase-and-underscores property name
1276 * @brief Get an element out of a string-array property as a token.
1278 * This removes "the quotes" from an element in the array, and converts
1279 * non-alphanumeric characters to underscores. That can be useful, for example,
1283 * string-array type.
1290 * n1: node-1 {
1293 * n2: node-2 {
1303 * type: string-array
1318 * @param prop lowercase-and-underscores property name
1328 * This removes "the quotes" and capitalizes an element in the array, and
1329 * converts non-alphanumeric characters to underscores. That can be useful, for
1333 * string-array type.
1340 * n1: node-1 {
1343 * n2: node-2 {
1353 * type: string-array
1368 * @param prop lowercase-and-underscores property name
1376 * @brief Get a string array item value as an unquoted sequence of tokens.
1378 * This removes "the quotes" from string-valued item.
1384 * string-array type.
1390 * n1: node-1 {
1393 * n2: node-2 {
1401 * type: string-array
1411 * @param prop lowercase-and-underscores property name
1419 * phandle properties
1421 * These are special-cased to manage the impedance mismatch between
1427 * @brief Get a property value from a phandle in a property.
1435 * That is, @p prop is a property of the phandle's node, not a
1441 * n1: node-1 {
1445 * n2: node-2 {
1449 * n3: node-3 {
1464 * @param phs lowercase-and-underscores property with type `phandle`,
1465 * `phandles`, or `phandle-array`
1467 * has type `phandle`
1468 * @param prop lowercase-and-underscores property of the phandle's node
1485 * @param phs lowercase-and-underscores property with type `phandle`,
1486 * `phandles`, or `phandle-array`
1488 * has type `phandle`
1489 * @param prop lowercase-and-underscores property of the phandle's node
1497 * @brief Get a property value from a phandle's node
1502 * @param ph lowercase-and-underscores property of @p node_id
1503 * with type `phandle`
1504 * @param prop lowercase-and-underscores property of the phandle's node
1511 * @brief Get a phandle-array specifier cell value at an index
1514 * `node->phandle_array[index].cell`. That is, the cell value is in
1522 * #gpio-cells = <2>;
1526 * #gpio-cells = <2>;
1537 * gpio-cells:
1538 * - pin
1539 * - flags
1544 * - index 0 has specifier <17 0x1>, so its `pin` cell is 17, and its
1546 * - index 1 has specifier <5 0x3>, so `pin` is 5 and `flags` is 0x3
1558 * @param pha lowercase-and-underscores property with type `phandle-array`
1560 * @param cell lowercase-and-underscores cell name within the specifier
1583 * @param pha lowercase-and-underscores property with type `phandle-array`
1585 * @param cell lowercase-and-underscores cell name within the specifier
1596 * @param pha lowercase-and-underscores property with type `phandle-array`
1597 * @param cell lowercase-and-underscores cell name
1611 * @param pha lowercase-and-underscores property with type `phandle-array`
1612 * @param cell lowercase-and-underscores cell name
1620 * @brief Get a value within a phandle-array specifier by name
1623 * where each array element has a name.
1626 * `node->phandle_struct.name.cell`. That is, the cell value is in the
1628 * each array element has a name.
1634 * io-channels = <&adc1 10>, <&adc2 20>;
1635 * io-channel-names = "SENSOR", "BANDGAP";
1642 * io-channel-cells:
1643 * - input
1654 * @param pha lowercase-and-underscores property with type `phandle-array`
1655 * @param name lowercase-and-underscores name of a specifier in @p pha
1656 * @param cell lowercase-and-underscores cell name in the named specifier
1677 * @param pha lowercase-and-underscores property with type `phandle-array`
1678 * @param name lowercase-and-underscores name of a specifier in @p pha
1679 * @param cell lowercase-and-underscores cell name in the named specifier
1687 * @brief Get a phandle's node identifier from a phandle array by @p name
1690 * `node->phandle_struct.name.phandle`. That is, the phandle array is
1692 * the node identifier for a phandle inside the structure.
1706 * io-channels = <&adc1 10>, <&adc2 20>;
1707 * io-channel-names = "SENSOR", "BANDGAP";
1711 * Above, "io-channels" has two elements:
1713 * - the element named `"SENSOR"` has phandle `&adc1`
1714 * - the element named `"BANDGAP"` has phandle `&adc2`
1726 * non-alphanumeric characters are converted to underscores.
1729 * @param pha lowercase-and-underscores property with type `phandle-array`
1730 * @param name lowercase-and-underscores name of an element in @p pha
1731 * @return a node identifier for the node with that phandle
1737 * @brief Get a node identifier for a phandle in a property.
1739 * When a node's value at a logical index contains a phandle, this
1740 * macro returns a node identifier for the node with that phandle.
1742 * Therefore, if @p prop has type `phandle`, @p idx must be zero. (A
1743 * `phandle` type is treated as a `phandles` with a fixed length of
1749 * n1: node-1 {
1753 * n2: node-2 { ... };
1754 * n3: node-3 { ... };
1759 * - index 0 has phandle `&n2`, which is `node-2`'s phandle
1760 * - index 1 has phandle `&n3`, which is `node-3`'s phandle
1767 * DT_PHANDLE_BY_IDX(N1, foo, 0) // node identifier for node-2
1768 * DT_PHANDLE_BY_IDX(N1, foo, 1) // node identifier for node-3
1771 * Behavior is analogous for phandle-arrays.
1780 * @param prop lowercase-and-underscores property name in @p node_id
1781 * with type `phandle`, `phandles` or `phandle-array`
1783 * @return node identifier for the node with the phandle at that index
1789 * @brief Get a node identifier for a phandle property's value
1792 * benefit is readability when @p prop has type `phandle`.
1795 * @param prop lowercase-and-underscores property of @p node_id
1796 * with type `phandle`
1806 * @defgroup devicetree-ranges-prop ranges property
1820 * compatible = "pcie-controller";
1822 * #address-cells = <3>;
1823 * #size-cells = <2>;
1865 * compatible = "pcie-controller";
1867 * #address-cells = <3>;
1868 * #size-cells = <2>;
1916 * #address-cells = <2>;
1919 * compatible = "pcie-controller";
1921 * #address-cells = <3>;
1922 * #size-cells = <2>;
1952 * @param idx logical index into the ranges array
1969 * #address-cells = <2>;
1972 * compatible = "pcie-controller";
1974 * #address-cells = <3>;
1975 * #size-cells = <2>;
1993 * @param idx logical index into the ranges array
2009 * #address-cells = <2>;
2012 * compatible = "pcie-controller";
2014 * #address-cells = <3>;
2015 * #size-cells = <2>;
2042 * @param idx logical index into the ranges array
2058 * #address-cells = <2>;
2061 * compatible = "pcie-controller";
2063 * #address-cells = <3>;
2064 * #size-cells = <2>;
2091 * @param idx logical index into the ranges array
2107 * #address-cells = <2>;
2110 * compatible = "pcie-controller";
2112 * #address-cells = <3>;
2113 * #size-cells = <2>;
2140 * @param idx logical index into the ranges array
2193 * @defgroup devicetree-generic-vendor Vendor and model name helpers
2205 * Example vendor-prefixes.txt:
2207 * vnd A stand-in for a real vendor
2208 * zephyr Zephyr-specific binding
2213 * n1: node-1 {
2221 * DT_NODE_VENDOR_BY_IDX(DT_NODELABEL(n1), 0) // "A stand-in for a real vendor"
2222 * DT_NODE_VENDOR_BY_IDX(DT_NODELABEL(n1), 2) // "Zephyr-specific binding"
2231 * @return string literal of the idx-th vendor
2261 * @return string literal of the idx-th vendor
2263 * @return string literal of the idx-th vendor or "default_value"
2285 * Example vendor-prefixes.txt:
2287 * vnd A stand-in for a real vendor
2288 * zephyr Zephyr-specific binding
2292 * n1: node-1 {
2307 * @return string literal of the idx-th model
2337 * @return string literal of the idx-th model
2339 * @return string literal of the idx-th model or "default_value"
2361 * @defgroup devicetree-reg-prop reg property
2412 * @return address of the idx-th register block
2435 * @return address of the idx-th register block
2449 * @return size of the idx-th register block
2464 * @brief 64-bit version of DT_REG_ADDR()
2466 * This macro version adds the appropriate suffix for 64-bit unsigned
2487 * @param name lowercase-and-underscores register specifier name
2496 * @param name lowercase-and-underscores register specifier name
2506 * @brief 64-bit version of DT_REG_ADDR_BY_NAME()
2508 * This macro version adds the appropriate suffix for 64-bit unsigned
2514 * @param name lowercase-and-underscores register specifier name
2523 * @param name lowercase-and-underscores register specifier name
2532 * @param name lowercase-and-underscores register specifier name
2547 * @defgroup devicetree-interrupts-prop interrupts property
2636 * @param name lowercase-and-underscores interrupt specifier name
2647 * "node->interrupts[index].cell".
2655 * my-serial: serial@abcd1234 {
2660 * Assuming the node's interrupt domain has "#interrupt-cells = <2>;" and
2667 * ------------- -----
2674 * @param idx logical index into the interrupt specifier array
2685 * `node->interrupts.name.cell`.
2692 * @param name lowercase-and-underscores interrupt specifier name
2713 * interrupt-controller;
2714 * #interrupt-cells = <2>;
2718 * interrupt-parent = <&gpio0>;
2723 * interrupts-extended = <&gpio0 3 3>, <&pic0 4>;
2727 * interrupt-controller;
2728 * #interrupt-cells = <1>;
2732 * interrupt-names = "int1", "int2";
2758 * interrupt-controller;
2759 * #interrupt-cells = <2>;
2763 * interrupt-parent = <&gpio0>;
2765 * interrupt-names = "int1", "int2";
2769 * interrupts-extended = <&gpio0 3 3>, <&pic0 4>;
2770 * interrupt-names = "int1", "int2";
2774 * interrupt-controller;
2775 * #interrupt-cells = <1>;
2779 * interrupt-names = "int1", "int2";
2806 * interrupt-controller;
2807 * #interrupt-cells = <2>;
2811 * interrupt-parent = <&gpio0>;
2816 * interrupts-extended = <&gpio0 3 3>;
2820 * interrupt-controller;
2821 * #interrupt-cells = <1>;
2846 /* DT helper macro to encode a node's IRQN to level 1 according to the multi-level scheme */
2848 /* DT helper macro to encode a node's IRQN to level 2 according to the multi-level scheme */
2852 /* DT helper macro to encode a node's IRQN to level 3 according to the multi-level scheme */
2861 * DT helper macro to encode a node's interrupt number according to the Zephyr's multi-level scheme
2874 * multi-level encoded
2876 * @param idx logical index into the interrupt specifier array
2901 * @defgroup devicetree-generic-chosen Chosen nodes
2910 * @param prop lowercase-and-underscores property name for
2918 * @param prop lowercase-and-underscores devicetree property
2929 * @defgroup devicetree-generic-foreach "For-each" macros
2933 * IMPORTANT: you can't use the DT for-each macros in their own expansions.
2979 * identifier for the node. The remaining are passed-in by the caller.
3007 * identifier for the node. The remaining are passed-in by the caller.
3080 * child-1 {
3083 * child-2 {
3123 * child-1 {
3126 * child-2 {
3144 * "child-1", "child-2"
3160 * identifier for the child node. The remaining are passed-in by the caller.
3179 * identifier for the child node. The remaining are passed-in by the caller.
3234 * identifier for the child node. The remaining are passed-in by the caller.
3256 * identifier for the child node. The remaining are passed-in by the caller.
3277 * DT_FOREACH_PROP_ELEM(), and @p idx is the current index into the array.
3287 * my-ints = <1 2 3>;
3297 * int array[] = {
3305 * int array[] = {
3312 * fn(node_id, prop, 0) fn(node_id, prop, 1) [...] fn(node_id, prop, n-1)
3318 * @param prop lowercase-and-underscores property name
3333 * my-gpios = <&gpioa 0 GPIO_ACTICE_HIGH>,
3360 * @param prop lowercase-and-underscores property name
3377 * the array. The @p idx values are integer literals starting from 0. The
3378 * remaining arguments are passed-in by the caller.
3384 * @param prop lowercase-and-underscores property name
3401 * @param prop lowercase-and-underscores property name
3462 * @param compat lowercase-and-underscores devicetree compatible
3510 * @param compat lowercase-and-underscores devicetree compatible
3526 * @param compat lowercase-and-underscores devicetree compatible
3549 * passed as tokens to @p fn as-is, without any lowercasing or
3625 * @defgroup devicetree-generic-exist Existence checks
3658 * - exists in the devicetree, and
3659 * - has a status property matching the second argument
3681 * - exists in the devicetree, and
3682 * - has a status property as `okay`
3708 * @param compat lowercase-and-underscores compatible, without quotes
3717 * @param compat lowercase-and-underscores compatible, without quotes
3731 * compatible = "vnd,specific-device", "generic-device";
3747 * @param compat lowercase-and-underscores compatible, without quotes
3765 * @param compat lowercase-and-underscores compatible, without quotes
3781 * @param prop lowercase-and-underscores property name
3789 * @brief Does a phandle array have a named cell specifier at an index?
3791 * If this returns 1, then the phandle-array property @p pha has a cell
3797 * @param pha lowercase-and-underscores property with type `phandle-array`
3799 * @param cell lowercase-and-underscores cell name whose existence to check
3811 * @param pha lowercase-and-underscores property with type `phandle-array`
3812 * @param cell lowercase-and-underscores cell name whose existence to check
3825 * @defgroup devicetree-generic-bus Bus helpers
3844 * clock-frequency = < 100000 >;
3870 * temp: temperature-sensor@76 {
3871 * compatible = "vnd,some-sensor";
3886 * @param bus lowercase-and-underscores bus type as a C token (i.e.
3898 * @defgroup devicetree-inst Instance-based devicetree APIs
3933 * @param child lowercase-and-underscores child node name
3965 * @brief Get a string array of DT_DRV_INST(inst)'s node labels
3970 * @return an array initializer for an array of the instance's node labels as strings
4021 * identifier for the child node. The remaining are passed-in by the caller.
4039 * identifier for the child node. The remaining are passed-in by the caller.
4088 * identifier for the child node. The remaining are passed-in by the caller.
4104 * identifier for the child node. The remaining are passed-in by the caller.
4118 * @brief Get a `DT_DRV_COMPAT` property array value's index into its enumeration values
4120 * @param prop lowercase-and-underscores property name
4122 * @return zero-based index of the property's value in its enum: list
4130 * @param prop lowercase-and-underscores property name
4131 * @return zero-based index of the property's value in its enum: list
4139 * @param prop lowercase-and-underscores property name
4142 * @return zero-based index of the property's value in its enum if present,
4151 * @param prop lowercase-and-underscores property name
4153 * @return zero-based index of the property's value in its enum if present,
4162 * @param prop lowercase-and-underscores property name
4164 * @param value lowercase-and-underscores enumeration value
4165 * @return zero-based index of the property's value in its enum
4174 * @param prop lowercase-and-underscores property name
4175 * @param value lowercase-and-underscores enumeration value
4184 * @param prop lowercase-and-underscores property name
4192 * @param prop lowercase-and-underscores property name
4198 * @brief Is index @p idx valid for an array type property
4201 * @param prop lowercase-and-underscores property name
4210 * @brief Is name @p name available in a `foo-names` property?
4212 * @param prop a lowercase-and-underscores `prop-names` type property
4213 * @param name a lowercase-and-underscores name to check
4221 * @brief Get a `DT_DRV_COMPAT` element value in an array property
4223 * @param prop lowercase-and-underscores property name
4225 * @return a representation of the idx-th element of the property
4233 * @param prop lowercase-and-underscores property name
4243 * @param prop lowercase-and-underscores property name
4255 * @param prop lowercase-and-underscores property name
4265 * @param prop lowercase-and-underscores property name
4277 * @param prop lowercase-and-underscores property name
4284 * @brief Get an element out of string-array property as a token.
4286 * @param prop lowercase-and-underscores property name
4296 * @param prop lowercase-and-underscores property name
4304 * @brief Get an element out of string-array property as an unquoted sequence of tokens.
4306 * @param prop lowercase-and-underscores property name
4314 * @brief Get a `DT_DRV_COMPAT` instance's property value from a phandle's node
4316 * @param ph lowercase-and-underscores property of @p inst
4317 * with type `phandle`
4318 * @param prop lowercase-and-underscores property of the phandle's node
4325 * @brief Get a `DT_DRV_COMPAT` instance's property value from a phandle in a
4328 * @param phs lowercase-and-underscores property with type `phandle`,
4329 * `phandles`, or `phandle-array`
4331 * has type `phandle`
4332 * @param prop lowercase-and-underscores property of the phandle's node
4339 * @brief Get a `DT_DRV_COMPAT` instance's phandle-array specifier value at an index
4341 * @param pha lowercase-and-underscores property with type `phandle-array`
4352 * @param pha lowercase-and-underscores property with type `phandle-array`
4362 * @brief Get a `DT_DRV_COMPAT` instance's phandle-array specifier value
4365 * @param pha lowercase-and-underscores property with type `phandle-array`
4374 * @param pha lowercase-and-underscores property with type `phandle-array`
4383 * @brief Get a `DT_DRV_COMPAT` instance's value within a phandle-array
4386 * @param pha lowercase-and-underscores property with type `phandle-array`
4387 * @param name lowercase-and-underscores name of a specifier in @p pha
4397 * @param pha lowercase-and-underscores property with type `phandle-array`
4398 * @param name lowercase-and-underscores name of a specifier in @p pha
4407 * @brief Get a `DT_DRV_COMPAT` instance's phandle node identifier from a
4408 * phandle array by name
4410 * @param pha lowercase-and-underscores property with type `phandle-array`
4411 * @param name lowercase-and-underscores name of an element in @p pha
4412 * @return node identifier for the phandle at the element named "name"
4418 * @brief Get a `DT_DRV_COMPAT` instance's node identifier for a phandle in
4421 * @param prop lowercase-and-underscores property name in @p inst
4422 * with type `phandle`, `phandles` or `phandle-array`
4424 * @return a node identifier for the phandle at index @p idx in @p prop
4430 * @brief Get a `DT_DRV_COMPAT` instance's node identifier for a phandle
4433 * @param prop lowercase-and-underscores property of @p inst
4434 * with type `phandle`
4458 * @brief Get a `DT_DRV_COMPAT` instance's idx-th register block's raw address
4461 * @return address of the instance's idx-th register block
4466 * @brief Get a `DT_DRV_COMPAT` instance's idx-th register block's address
4469 * @return address of the instance's idx-th register block
4474 * @brief Get a `DT_DRV_COMPAT` instance's idx-th register block's size
4477 * @return size of the instance's idx-th register block
4485 * @param name lowercase-and-underscores register specifier name
4494 * @param name lowercase-and-underscores register specifier name
4503 * @brief 64-bit version of DT_INST_REG_ADDR_BY_NAME()
4505 * This macro version adds the appropriate suffix for 64-bit unsigned
4511 * @param name lowercase-and-underscores register specifier name
4520 * @param name lowercase-and-underscores register specifier name
4529 * @param name lowercase-and-underscores register specifier name
4552 * @brief 64-bit version of DT_INST_REG_ADDR()
4554 * This macro version adds the appropriate suffix for 64-bit unsigned
4590 * @param idx logical index into the interrupt specifier array
4628 * @param name lowercase-and-underscores interrupt specifier name
4653 * @param idx logical index into the interrupt specifier array
4654 * @return the interrupt number for the node's idx-th interrupt
4677 * @param name lowercase-and-underscores property name
4690 * @param name lowercase-and-underscores property name
4701 * @param name lowercase-and-underscores property name
4719 * temp: temperature-sensor@76 {
4720 * compatible = "vnd,some-sensor";
4733 * @param compat lowercase-and-underscores compatible, without quotes
4745 * This is a special-purpose macro which can be useful when writing
4753 * temp: temperature-sensor@76 {
4754 * compatible = "vnd,some-sensor";
4780 * @param prop lowercase-and-underscores property name
4787 * compatible = "vnd,some-sensor";
4795 * compatible = "vnd,some-sensor";
4802 * compatible = "vnd,some-sensor";
4827 * @param compat lowercase-and-underscores devicetree compatible
4828 * @param prop lowercase-and-underscores property name
4835 * compatible = "vnd,some-sensor";
4843 * compatible = "vnd,some-sensor";
4850 * compatible = "vnd,some-sensor";
4877 * @param prop lowercase-and-underscores property name
4884 * compatible = "vnd,some-sensor";
4892 * compatible = "vnd,some-sensor";
4899 * compatible = "vnd,some-sensor";
5042 * @param prop lowercase-and-underscores property name
5055 * @param prop lowercase-and-underscores property name
5071 * @param prop lowercase-and-underscores property name
5089 * @param prop lowercase-and-underscores property name
5104 * @param prop lowercase-and-underscores property name
5113 * @param compat lowercase-and-underscores compatible, without quotes
5120 * @brief Does a phandle array have a named cell specifier at an index
5123 * @param pha lowercase-and-underscores property with type `phandle-array`
5133 * @brief Does a phandle array have a named cell specifier at index 0
5136 * @param pha lowercase-and-underscores property with type `phandle-array`
5147 * @param idx logical index into the interrupt specifier array
5177 * @param name lowercase-and-underscores interrupt specifier name
5264 * since its macro-based API is fiddly and can be hard to get right.
5333 #include <zephyr/devicetree/io-channels.h>
5339 #include <zephyr/devicetree/fixed-partitions.h>
5345 #include <zephyr/devicetree/port-endpoint.h>