Lines Matching +full:phs +full:- +full:or
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)
71 * @defgroup devicetree-generic-id Node identifiers and helpers
80 * devicetree data may or may not be available. It is a preprocessor identifier
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
276 * might exist in SoC documentation, node labels or unit addresses,
277 * or properties of the /aliases node (use DT_NODELABEL() or DT_ALIAS()
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
320 * // Could be 57600 or 115200. There is no way to be sure:
321 * // either serial@40002000 or serial@40003000 could
322 * // have instance number 0, so this could be the current-speed
326 * // Could be 57600 or 115200, for the same reason.
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
476 * @return node identifier for a node with that compatible, or
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 {};
679 * The expansion evaluates to 0 or 1, but may not be a literal integer
680 * 0 or 1.
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,
742 * whose elements are integer or string literals (like `{0, 1, 2}`,
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.
752 * For other properties or properties with unknown type due to a
759 * @param prop lowercase-and-underscores property name
772 * - for types array, string-array, and uint8-array, this expands
774 * - for type phandles, this expands to the number of phandles
775 * - for type phandle-array, this expands to the number of
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`
788 * or `interrupts` properties.
793 * @param prop a lowercase-and-underscores property with a logical length
808 * @param prop a lowercase-and-underscores property with a logical length
810 * @return the property's length or the given default value
819 * If this returns 1, then DT_PROP_BY_IDX(node_id, prop, idx) or
825 * - `reg` property: use DT_REG_HAS_IDX(node_id, idx) instead
826 * - `interrupts` property: use DT_IRQ_HAS_IDX(node_id, idx) instead
828 * It is an error to use this macro with the `reg` or `interrupts` properties.
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 {
853 * foo-names = "event", "error";
866 * @param prop a lowercase-and-underscores `prop-names` type property
867 * @param name a lowercase-and-underscores name to check
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
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
915 * @param prop lowercase-and-underscores property name
931 * @param prop lowercase-and-underscores property name
933 * @return the property's value or @p default_value
947 * some_node: some-node {
948 * compat = "vend,enum-string-array";
953 * foo-names = "default", "option3", "option1";
960 * compatible: vend,enum-string-array
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,
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
1063 * form a C variable or code.
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
1130 * @return the property's value as a token, or @p default_value
1140 * converting any non-alphanumeric characters to underscores, and
1142 * programmatically using the value to form a C variable or code.
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
1208 * or @p default_value
1217 * This removes "the quotes" from string-valued properties.
1220 * that you would like to use to initialize a float or double variable in C.
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
1269 * or @p default_value
1276 * @brief Get an element out of a string-array property as a token.
1279 * non-alphanumeric characters to underscores. That can be useful, for example,
1280 * when programmatically using the value to form a C variable or code.
1283 * string-array type.
1290 * n1: node-1 {
1293 * n2: node-2 {
1303 * type: string-array
1318 * @param prop lowercase-and-underscores property name
1329 * converts non-alphanumeric characters to underscores. That can be useful, for
1330 * example, when programmatically using the value to form a C variable or code.
1333 * string-array type.
1340 * n1: node-1 {
1343 * n2: node-2 {
1353 * type: string-array
1368 * @param prop lowercase-and-underscores property name
1378 * This removes "the quotes" from string-valued item.
1381 * that you would like to use to initialize a float or double variable in C.
1384 * string-array type.
1390 * n1: node-1 {
1393 * n2: node-2 {
1401 * type: string-array
1411 * @param prop lowercase-and-underscores property name
1421 * These are special-cased to manage the impedance mismatch between
1432 * DT_PROP(DT_PHANDLE_BY_IDX(node_id, phs, idx), prop)
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`
1466 * @param idx logical index into @p phs, which must be zero if @p phs
1468 * @param prop lowercase-and-underscores property of the phandle's node
1471 #define DT_PROP_BY_PHANDLE_IDX(node_id, phs, idx, prop) \ argument
1472 DT_PROP(DT_PHANDLE_BY_IDX(node_id, phs, idx), prop)
1478 * If the value exists, this expands to DT_PROP_BY_PHANDLE_IDX(node_id, phs,
1485 * @param phs lowercase-and-underscores property with type `phandle`,
1486 * `phandles`, or `phandle-array`
1487 * @param idx logical index into @p phs, which must be zero if @p phs
1489 * @param prop lowercase-and-underscores property of the phandle's node
1493 #define DT_PROP_BY_PHANDLE_IDX_OR(node_id, phs, idx, prop, default_value) \ argument
1494 DT_PROP_OR(DT_PHANDLE_BY_IDX(node_id, phs, idx), prop, default_value)
1502 * @param ph lowercase-and-underscores property of @p node_id
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
1588 * @return the cell's value or @p default_value
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
1614 * @return the cell's value or @p default_value
1620 * @brief Get a value within a phandle-array specifier by name
1626 * `node->phandle_struct.name.cell`. That is, the cell value is in the
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
1681 * @return the cell's value or @p default_value
1690 * `node->phandle_struct.name.phandle`. That is, the phandle array is
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
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`
1795 * @param prop lowercase-and-underscores property of @p node_id
1806 * @defgroup devicetree-ranges-prop ranges property
1820 * compatible = "pcie-controller";
1822 * #address-cells = <3>;
1823 * #size-cells = <2>;
1853 * DT_RANGES_PARENT_BUS_ADDRESS_BY_IDX(node_id, idx) or
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>;
1969 * #address-cells = <2>;
1972 * compatible = "pcie-controller";
1974 * #address-cells = <3>;
1975 * #size-cells = <2>;
2009 * #address-cells = <2>;
2012 * compatible = "pcie-controller";
2014 * #address-cells = <3>;
2015 * #size-cells = <2>;
2058 * #address-cells = <2>;
2061 * compatible = "pcie-controller";
2063 * #address-cells = <3>;
2064 * #size-cells = <2>;
2107 * #address-cells = <2>;
2110 * compatible = "pcie-controller";
2112 * #address-cells = <3>;
2113 * #size-cells = <2>;
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
2378 * If this returns 1, then DT_REG_ADDR_BY_IDX(node_id, idx) or
2392 * If this returns 1, then DT_REG_ADDR_BY_NAME(node_id, name) or
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 * ------------- -----
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
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"
3150 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
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.
3183 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
3221 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
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.
3263 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
3287 * my-ints = <1 2 3>;
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
3362 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
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
3403 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
3460 * or other terminators as needed.
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
3636 * It doesn't matter whether or not the node has a matching binding,
3637 * or what the node's status value is. This is purely a check of
3658 * - exists in the devicetree, and
3659 * - has a status property matching the second argument
3660 * (except that either a missing status or an `ok` status
3664 * @param status a status as one of the tokens okay or disabled, not a string
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";
3743 * or not a particular compatible has a matching binding has no effect
3747 * @param compat lowercase-and-underscores compatible, without quotes
3765 * @param compat lowercase-and-underscores compatible, without quotes
3766 * @param status okay or disabled as a token, not a string
3777 * boolean property is true or false. To get a boolean property's
3781 * @param prop lowercase-and-underscores property name
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
4009 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
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.
4043 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
4075 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
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.
4108 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
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
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
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
4235 * @return DT_INST_PROP(inst, prop) or @p default_value
4243 * @param prop lowercase-and-underscores property name
4245 * @return DT_INST_PROP_LEN(inst, prop) or @p default_value
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
4316 * @param ph lowercase-and-underscores property of @p inst
4318 * @param prop lowercase-and-underscores property of the phandle's node
4328 * @param phs lowercase-and-underscores property with type `phandle`,
4329 * `phandles`, or `phandle-array`
4330 * @param idx logical index into "phs", which must be zero if "phs"
4332 * @param prop lowercase-and-underscores property of the phandle's node
4335 #define DT_INST_PROP_BY_PHANDLE_IDX(inst, phs, idx, prop) \ argument
4336 DT_PROP_BY_PHANDLE_IDX(DT_DRV_INST(inst), phs, idx, prop)
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`
4356 * @return DT_INST_PHA_BY_IDX(inst, pha, idx, cell) or default_value
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`
4377 * @return DT_INST_PHA(inst, pha, cell) or default_value
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
4401 * @return DT_INST_PHA_BY_NAME(inst, pha, name, cell) or default_value
4410 * @param pha lowercase-and-underscores property with type `phandle-array`
4411 * @param name lowercase-and-underscores name of an element in @p pha
4421 * @param prop lowercase-and-underscores property name in @p inst
4422 * with type `phandle`, `phandles` or `phandle-array`
4433 * @param prop lowercase-and-underscores property of @p inst
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
4628 * @param name lowercase-and-underscores interrupt specifier name
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
4692 * @return the property's value as an uppercased token, or @p default_value
4701 * @param name lowercase-and-underscores property name
4703 * @return the property's value as a sequence of tokens, with no quotes, or @p default_value
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
4747 * is a sensor device which may be wired on an I2C or SPI bus.
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";
4968 * or this:
4975 * Note that @p fn is responsible for adding commas, semicolons, or
4976 * other separators or terminators.
5042 * @param prop lowercase-and-underscores property name
5055 * @param prop lowercase-and-underscores property name
5057 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
5071 * @param prop lowercase-and-underscores property name
5089 * @param prop lowercase-and-underscores property name
5091 * @param sep Separator (e.g. comma or semicolon). Must be in parentheses;
5104 * @param prop lowercase-and-underscores property name
5113 * @param compat lowercase-and-underscores compatible, without quotes
5123 * @param pha lowercase-and-underscores property with type `phandle-array`
5136 * @param pha lowercase-and-underscores property with type `phandle-array`
5177 * @param name lowercase-and-underscores interrupt specifier name
5212 * @return Evaluates to list of 1s (e.g: 1,1,1,) or nothing.
5241 * @return Evaluates to list of 1s (e.g: 1,1,1,) or nothing.
5264 * since its macro-based API is fiddly and can be hard to get right.
5297 /** @brief Helper macro to OR multiple has property checks in a loop macro
5333 #include <zephyr/devicetree/io-channels.h>
5339 #include <zephyr/devicetree/fixed-partitions.h>
5345 #include <zephyr/devicetree/port-endpoint.h>