19#include <devicetree_generated.h> 
   77#define DT_INVALID_NODE _ 
  134#define DT_PATH(...) DT_PATH_INTERNAL(__VA_ARGS__) 
  190#define DT_NODELABEL(label) DT_CAT(DT_N_NODELABEL_, label) 
  230#define DT_ALIAS(alias) DT_CAT(DT_N_ALIAS_, alias) 
  326#define DT_INST(inst, compat) UTIL_CAT(DT_N_INST, DT_DASH(inst, compat)) 
  351#define DT_PARENT(node_id) UTIL_CAT(node_id, _PARENT) 
  376#define DT_GPARENT(node_id) DT_PARENT(DT_PARENT(node_id)) 
  413#define DT_CHILD(node_id, child) UTIL_CAT(node_id, DT_S_PREFIX(child)) 
  456#define DT_COMPAT_GET_ANY_STATUS_OKAY(compat)                   \ 
  457        COND_CODE_1(DT_HAS_COMPAT_STATUS_OKAY(compat),  \ 
  458                    (DT_INST(0, compat)),               \ 
  488#define DT_NODE_PATH(node_id) DT_CAT(node_id, _PATH) 
  514#define DT_NODE_FULL_NAME(node_id) DT_CAT(node_id, _FULL_NAME) 
  542#define DT_NODE_CHILD_IDX(node_id) DT_CAT(node_id, _CHILD_IDX) 
  564#define DT_SAME_NODE(node_id1, node_id2) \ 
  565        (DT_DEP_ORD(node_id1) == (DT_DEP_ORD(node_id2))) 
  607#define DT_PROP(node_id, prop) DT_CAT3(node_id, _P_, prop) 
  637#define DT_PROP_LEN(node_id, prop) DT_CAT4(node_id, _P_, prop, _LEN) 
  653#define DT_PROP_LEN_OR(node_id, prop, default_value) \ 
  654        COND_CODE_1(DT_NODE_HAS_PROP(node_id, prop), \ 
  655                    (DT_PROP_LEN(node_id, prop)), (default_value)) 
  677#define DT_PROP_HAS_IDX(node_id, prop, idx) \ 
  678        IS_ENABLED(DT_CAT6(node_id, _P_, prop, _IDX_, idx, _EXISTS)) 
  712#define DT_PROP_HAS_NAME(node_id, prop, name) \ 
  713        IS_ENABLED(DT_CAT6(node_id, _P_, prop, _NAME_, name, _EXISTS)) 
  737#define DT_PROP_BY_IDX(node_id, prop, idx) \ 
  738        DT_CAT5(node_id, _P_, prop, _IDX_, idx) 
  753#define DT_PROP_OR(node_id, prop, default_value) \ 
  754        COND_CODE_1(DT_NODE_HAS_PROP(node_id, prop), \ 
  755                    (DT_PROP(node_id, prop)), (default_value)) 
  766#define DT_LABEL(node_id) DT_PROP(node_id, label) __DEPRECATED_MACRO 
  808#define DT_ENUM_IDX(node_id, prop) DT_CAT4(node_id, _P_, prop, _ENUM_IDX) 
  824#define DT_ENUM_IDX_OR(node_id, prop, default_idx_value) \ 
  825        COND_CODE_1(DT_NODE_HAS_PROP(node_id, prop), \ 
  826                    (DT_ENUM_IDX(node_id, prop)), (default_idx_value)) 
  887#define DT_STRING_TOKEN(node_id, prop) \ 
  888        DT_CAT4(node_id, _P_, prop, _STRING_TOKEN) 
  903#define DT_STRING_TOKEN_OR(node_id, prop, default_value) \ 
  904        COND_CODE_1(DT_NODE_HAS_PROP(node_id, prop), \ 
  905                (DT_STRING_TOKEN(node_id, prop)), (default_value)) 
  964#define DT_STRING_UPPER_TOKEN(node_id, prop) \ 
  965        DT_CAT4(node_id, _P_, prop, _STRING_UPPER_TOKEN) 
  981#define DT_STRING_UPPER_TOKEN_OR(node_id, prop, default_value) \ 
  982        COND_CODE_1(DT_NODE_HAS_PROP(node_id, prop), \ 
  983                (DT_STRING_UPPER_TOKEN(node_id, prop)), (default_value)) 
 1032#define DT_STRING_TOKEN_BY_IDX(node_id, prop, idx) \ 
 1033        DT_CAT6(node_id, _P_, prop, _IDX_, idx, _STRING_TOKEN) 
 1082#define DT_STRING_UPPER_TOKEN_BY_IDX(node_id, prop, idx) \ 
 1083        DT_CAT6(node_id, _P_, prop, _IDX_, idx, _STRING_UPPER_TOKEN) 
 1138#define DT_PROP_BY_PHANDLE_IDX(node_id, phs, idx, prop) \ 
 1139        DT_PROP(DT_PHANDLE_BY_IDX(node_id, phs, idx), prop) 
 1160#define DT_PROP_BY_PHANDLE_IDX_OR(node_id, phs, idx, prop, default_value) \ 
 1161        DT_PROP_OR(DT_PHANDLE_BY_IDX(node_id, phs, idx), prop, default_value) 
 1174#define DT_PROP_BY_PHANDLE(node_id, ph, prop) \ 
 1175        DT_PROP_BY_PHANDLE_IDX(node_id, ph, 0, prop) 
 1231#define DT_PHA_BY_IDX(node_id, pha, idx, cell) \ 
 1232        DT_CAT7(node_id, _P_, pha, _IDX_, idx, _VAL_, cell) 
 1257#define DT_PHA_BY_IDX_OR(node_id, pha, idx, cell, default_value) \ 
 1258        DT_PROP_OR(node_id, pha##_IDX_##idx##_VAL_##cell, default_value) 
 1267#define DT_PHA(node_id, pha, cell) DT_PHA_BY_IDX(node_id, pha, 0, cell) 
 1283#define DT_PHA_OR(node_id, pha, cell, default_value) \ 
 1284        DT_PHA_BY_IDX_OR(node_id, pha, 0, cell, default_value) 
 1326#define DT_PHA_BY_NAME(node_id, pha, name, cell) \ 
 1327        DT_CAT7(node_id, _P_, pha, _NAME_, name, _VAL_, cell) 
 1350#define DT_PHA_BY_NAME_OR(node_id, pha, name, cell, default_value) \ 
 1351        DT_PROP_OR(node_id, pha##_NAME_##name##_VAL_##cell, default_value) 
 1400#define DT_PHANDLE_BY_NAME(node_id, pha, name) \ 
 1401        DT_CAT6(node_id, _P_, pha, _NAME_, name, _PH) 
 1452#define DT_PHANDLE_BY_IDX(node_id, prop, idx) \ 
 1453        DT_CAT6(node_id, _P_, prop, _IDX_, idx, _PH) 
 1466#define DT_PHANDLE(node_id, prop) DT_PHANDLE_BY_IDX(node_id, prop, 0) 
 1514#define DT_NUM_RANGES(node_id) DT_CAT(node_id, _RANGES_NUM) 
 1568#define DT_RANGES_HAS_IDX(node_id, idx) \ 
 1569        IS_ENABLED(DT_CAT4(node_id, _RANGES_IDX_, idx, _EXISTS)) 
 1623#define DT_RANGES_HAS_CHILD_BUS_FLAGS_AT_IDX(node_id, idx) \ 
 1624        IS_ENABLED(DT_CAT4(node_id, _RANGES_IDX_, idx, _VAL_CHILD_BUS_FLAGS_EXISTS)) 
 1663#define DT_RANGES_CHILD_BUS_FLAGS_BY_IDX(node_id, idx) \ 
 1664        DT_CAT4(node_id, _RANGES_IDX_, idx, _VAL_CHILD_BUS_FLAGS) 
 1712#define DT_RANGES_CHILD_BUS_ADDRESS_BY_IDX(node_id, idx) \ 
 1713        DT_CAT4(node_id, _RANGES_IDX_, idx, _VAL_CHILD_BUS_ADDRESS) 
 1761#define DT_RANGES_PARENT_BUS_ADDRESS_BY_IDX(node_id, idx) \ 
 1762        DT_CAT4(node_id, _RANGES_IDX_, idx, _VAL_PARENT_BUS_ADDRESS) 
 1810#define DT_RANGES_LENGTH_BY_IDX(node_id, idx) \ 
 1811        DT_CAT4(node_id, _RANGES_IDX_, idx, _VAL_LENGTH) 
 1852#define DT_FOREACH_RANGE(node_id, fn) \ 
 1853        DT_CAT(node_id, _FOREACH_RANGE)(fn) 
 1900#define DT_NODE_VENDOR_BY_IDX(node_id, idx) \ 
 1901        DT_CAT3(node_id, _COMPAT_VENDOR_IDX_, idx) 
 1915#define DT_NODE_VENDOR_HAS_IDX(node_id, idx) \ 
 1916        IS_ENABLED(DT_CAT4(node_id, _COMPAT_VENDOR_IDX_, idx, _EXISTS)) 
 1932#define DT_NODE_VENDOR_BY_IDX_OR(node_id, idx, default_value) \ 
 1933        COND_CODE_1(DT_NODE_VENDOR_HAS_IDX(node_id, idx), \ 
 1934                    (DT_NODE_VENDOR_BY_IDX(node_id, idx)), (default_value)) 
 1944#define DT_NODE_VENDOR_OR(node_id, default_value) \ 
 1945        DT_NODE_VENDOR_BY_IDX_OR(node_id, 0, default_value) 
 1976#define DT_NODE_MODEL_BY_IDX(node_id, idx) \ 
 1977        DT_CAT3(node_id, _COMPAT_MODEL_IDX_, idx) 
 1991#define DT_NODE_MODEL_HAS_IDX(node_id, idx) \ 
 1992        IS_ENABLED(DT_CAT4(node_id, _COMPAT_MODEL_IDX_, idx, _EXISTS)) 
 2008#define DT_NODE_MODEL_BY_IDX_OR(node_id, idx, default_value) \ 
 2009        COND_CODE_1(DT_NODE_MODEL_HAS_IDX(node_id, idx), \ 
 2010                    (DT_NODE_MODEL_BY_IDX(node_id, idx)), (default_value)) 
 2020#define DT_NODE_MODEL_OR(node_id, default_value) \ 
 2021        DT_NODE_MODEL_BY_IDX_OR(node_id, 0, default_value) 
 2040#define DT_NUM_REGS(node_id) DT_CAT(node_id, _REG_NUM) 
 2053#define DT_REG_HAS_IDX(node_id, idx) \ 
 2054        IS_ENABLED(DT_CAT4(node_id, _REG_IDX_, idx, _EXISTS)) 
 2062#define DT_REG_ADDR_BY_IDX(node_id, idx) \ 
 2063        DT_CAT4(node_id, _REG_IDX_, idx, _VAL_ADDRESS) 
 2076#define DT_REG_SIZE_BY_IDX(node_id, idx) \ 
 2077        DT_CAT4(node_id, _REG_IDX_, idx, _VAL_SIZE) 
 2086#define DT_REG_ADDR(node_id) DT_REG_ADDR_BY_IDX(node_id, 0) 
 2095#define DT_REG_SIZE(node_id) DT_REG_SIZE_BY_IDX(node_id, 0) 
 2103#define DT_REG_ADDR_BY_NAME(node_id, name) \ 
 2104        DT_CAT4(node_id, _REG_NAME_, name, _VAL_ADDRESS) 
 2112#define DT_REG_SIZE_BY_NAME(node_id, name) \ 
 2113        DT_CAT4(node_id, _REG_NAME_, name, _VAL_SIZE) 
 2133#define DT_NUM_IRQS(node_id) DT_CAT(node_id, _IRQ_NUM) 
 2145#define DT_IRQ_HAS_IDX(node_id, idx) \ 
 2146        IS_ENABLED(DT_CAT4(node_id, _IRQ_IDX_, idx, _EXISTS)) 
 2158#define DT_IRQ_HAS_CELL_AT_IDX(node_id, idx, cell) \ 
 2159        IS_ENABLED(DT_CAT6(node_id, _IRQ_IDX_, idx, _VAL_, cell, _EXISTS)) 
 2168#define DT_IRQ_HAS_CELL(node_id, cell) DT_IRQ_HAS_CELL_AT_IDX(node_id, 0, cell) 
 2179#define DT_IRQ_HAS_NAME(node_id, name) \ 
 2180        IS_ENABLED(DT_CAT4(node_id, _IRQ_NAME_, name, _VAL_irq_EXISTS)) 
 2217#define DT_IRQ_BY_IDX(node_id, idx, cell)   \ 
 2218        DT_CAT5(node_id, _IRQ_IDX_, idx, _VAL_, cell) 
 2235#define DT_IRQ_BY_NAME(node_id, name, cell) \ 
 2236        DT_CAT5(node_id, _IRQ_NAME_, name, _VAL_, cell) 
 2245#define DT_IRQ(node_id, cell) DT_IRQ_BY_IDX(node_id, 0, cell) 
 2257#define DT_IRQN(node_id) DT_IRQ(node_id, irq) 
 2277#define DT_CHOSEN(prop) DT_CAT(DT_CHOSEN_, prop) 
 2285#define DT_HAS_CHOSEN(prop) IS_ENABLED(DT_CAT3(DT_CHOSEN_, prop, _EXISTS)) 
 2306#define DT_FOREACH_NODE(fn) DT_FOREACH_HELPER(fn) 
 2319#define DT_FOREACH_STATUS_OKAY_NODE(fn) DT_FOREACH_OKAY_HELPER(fn) 
 2364#define DT_FOREACH_CHILD(node_id, fn) \ 
 2365        DT_CAT(node_id, _FOREACH_CHILD)(fn) 
 2407#define DT_FOREACH_CHILD_SEP(node_id, fn, sep) \ 
 2408        DT_CAT(node_id, _FOREACH_CHILD_SEP)(fn, sep) 
 2425#define DT_FOREACH_CHILD_VARGS(node_id, fn, ...) \ 
 2426        DT_CAT(node_id, _FOREACH_CHILD_VARGS)(fn, __VA_ARGS__) 
 2443#define DT_FOREACH_CHILD_SEP_VARGS(node_id, fn, sep, ...) \ 
 2444        DT_CAT(node_id, _FOREACH_CHILD_SEP_VARGS)(fn, sep, __VA_ARGS__) 
 2461#define DT_FOREACH_CHILD_STATUS_OKAY(node_id, fn) \ 
 2462        DT_CAT(node_id, _FOREACH_CHILD_STATUS_OKAY)(fn) 
 2480#define DT_FOREACH_CHILD_STATUS_OKAY_SEP(node_id, fn, sep) \ 
 2481        DT_CAT(node_id, _FOREACH_CHILD_STATUS_OKAY_SEP)(fn, sep) 
 2502#define DT_FOREACH_CHILD_STATUS_OKAY_VARGS(node_id, fn, ...) \ 
 2503        DT_CAT(node_id, _FOREACH_CHILD_STATUS_OKAY_VARGS)(fn, __VA_ARGS__) 
 2523#define DT_FOREACH_CHILD_STATUS_OKAY_SEP_VARGS(node_id, fn, sep, ...) \ 
 2524        DT_CAT(node_id, _FOREACH_CHILD_STATUS_OKAY_SEP_VARGS)(fn, sep, __VA_ARGS__) 
 2576#define DT_FOREACH_PROP_ELEM(node_id, prop, fn)         \ 
 2577        DT_CAT4(node_id, _P_, prop, _FOREACH_PROP_ELEM)(fn) 
 2623#define DT_FOREACH_PROP_ELEM_SEP(node_id, prop, fn, sep) \ 
 2624        DT_CAT4(node_id, _P_, prop, _FOREACH_PROP_ELEM_SEP)(fn, sep) 
 2643#define DT_FOREACH_PROP_ELEM_VARGS(node_id, prop, fn, ...)              \ 
 2644        DT_CAT4(node_id, _P_, prop, _FOREACH_PROP_ELEM_VARGS)(fn, __VA_ARGS__) 
 2659#define DT_FOREACH_PROP_ELEM_SEP_VARGS(node_id, prop, fn, sep, ...)     \ 
 2660        DT_CAT4(node_id, _P_, prop, _FOREACH_PROP_ELEM_SEP_VARGS)(      \ 
 2661                fn, sep, __VA_ARGS__) 
 2716#define DT_FOREACH_STATUS_OKAY(compat, fn)                              \ 
 2717        COND_CODE_1(DT_HAS_COMPAT_STATUS_OKAY(compat),                  \ 
 2718                    (UTIL_CAT(DT_FOREACH_OKAY_, compat)(fn)),   \ 
 2765#define DT_FOREACH_STATUS_OKAY_VARGS(compat, fn, ...)                   \ 
 2766        COND_CODE_1(DT_HAS_COMPAT_STATUS_OKAY(compat),                  \ 
 2767                    (UTIL_CAT(DT_FOREACH_OKAY_VARGS_,                   \ 
 2768                              compat)(fn, __VA_ARGS__)),                \ 
 2795#define DT_NODE_EXISTS(node_id) IS_ENABLED(DT_CAT(node_id, _EXISTS)) 
 2818#define DT_NODE_HAS_STATUS(node_id, status) \ 
 2819        DT_NODE_HAS_STATUS_INTERNAL(node_id, status) 
 2840#define DT_HAS_COMPAT_STATUS_OKAY(compat) \ 
 2841        IS_ENABLED(DT_CAT(DT_COMPAT_HAS_OKAY_, compat)) 
 2849#define DT_NUM_INST_STATUS_OKAY(compat)                 \ 
 2850        UTIL_AND(DT_HAS_COMPAT_STATUS_OKAY(compat),             \ 
 2851                 UTIL_CAT(DT_N_INST, DT_DASH(compat, NUM_OKAY))) 
 2880#define DT_NODE_HAS_COMPAT(node_id, compat) \ 
 2881        IS_ENABLED(DT_CAT3(node_id, _COMPAT_MATCHES_, compat)) 
 2897#define DT_NODE_HAS_COMPAT_STATUS(node_id, compat, status) \ 
 2898        DT_NODE_HAS_COMPAT(node_id, compat) && DT_NODE_HAS_STATUS(node_id, status) 
 2913#define DT_NODE_HAS_PROP(node_id, prop) \ 
 2914        IS_ENABLED(DT_CAT4(node_id, _P_, prop, _EXISTS)) 
 2933#define DT_PHA_HAS_CELL_AT_IDX(node_id, pha, idx, cell)             \ 
 2934        IS_ENABLED(DT_CAT8(node_id, _P_, pha,                       \ 
 2935                           _IDX_, idx, _VAL_, cell, _EXISTS)) 
 2946#define DT_PHA_HAS_CELL(node_id, pha, cell) \ 
 2947        DT_PHA_HAS_CELL_AT_IDX(node_id, pha, 0, cell) 
 2990#define DT_BUS(node_id) DT_CAT(node_id, _BUS) 
 3000#define DT_BUS_LABEL(node_id) DT_PROP(DT_BUS(node_id), label) __DEPRECATED_MACRO 
 3030#define DT_ON_BUS(node_id, bus) IS_ENABLED(DT_CAT3(node_id, _BUS_, bus)) 
 3048#define DT_DRV_INST(inst) DT_INST(inst, DT_DRV_COMPAT) 
 3057#define DT_INST_PARENT(inst) DT_PARENT(DT_DRV_INST(inst)) 
 3066#define DT_INST_GPARENT(inst) DT_GPARENT(DT_DRV_INST(inst)) 
 3077#define DT_INST_CHILD(inst, child) \ 
 3078        DT_CHILD(DT_DRV_INST(inst), child) 
 3094#define DT_INST_FOREACH_CHILD(inst, fn) \ 
 3095        DT_FOREACH_CHILD(DT_DRV_INST(inst), fn) 
 3110#define DT_INST_FOREACH_CHILD_SEP(inst, fn, sep) \ 
 3111        DT_FOREACH_CHILD_SEP(DT_DRV_INST(inst), fn, sep) 
 3128#define DT_INST_FOREACH_CHILD_VARGS(inst, fn, ...) \ 
 3129        DT_FOREACH_CHILD_VARGS(DT_DRV_INST(inst), fn, __VA_ARGS__) 
 3145#define DT_INST_FOREACH_CHILD_SEP_VARGS(inst, fn, sep, ...) \ 
 3146        DT_FOREACH_CHILD_SEP_VARGS(DT_DRV_INST(inst), fn, sep, __VA_ARGS__) 
 3159#define DT_INST_FOREACH_CHILD_STATUS_OKAY(inst, fn) \ 
 3160        DT_FOREACH_CHILD_STATUS_OKAY(DT_DRV_INST(inst), fn) 
 3176#define DT_INST_FOREACH_CHILD_STATUS_OKAY_SEP(inst, fn, sep) \ 
 3177        DT_FOREACH_CHILD_STATUS_OKAY_SEP(DT_DRV_INST(inst), fn, sep) 
 3192#define DT_INST_FOREACH_CHILD_STATUS_OKAY_VARGS(inst, fn, ...) \ 
 3193        DT_FOREACH_CHILD_STATUS_OKAY_VARGS(DT_DRV_INST(inst), fn, __VA_ARGS__) 
 3210#define DT_INST_FOREACH_CHILD_STATUS_OKAY_SEP_VARGS(inst, fn, sep, ...) \ 
 3211        DT_FOREACH_CHILD_STATUS_OKAY_SEP_VARGS(DT_DRV_INST(inst), fn, sep, __VA_ARGS__) 
 3219#define DT_INST_ENUM_IDX(inst, prop) \ 
 3220        DT_ENUM_IDX(DT_DRV_INST(inst), prop) 
 3230#define DT_INST_ENUM_IDX_OR(inst, prop, default_idx_value) \ 
 3231        DT_ENUM_IDX_OR(DT_DRV_INST(inst), prop, default_idx_value) 
 3239#define DT_INST_PROP(inst, prop) DT_PROP(DT_DRV_INST(inst), prop) 
 3247#define DT_INST_PROP_LEN(inst, prop) DT_PROP_LEN(DT_DRV_INST(inst), prop) 
 3258#define DT_INST_PROP_HAS_IDX(inst, prop, idx) \ 
 3259        DT_PROP_HAS_IDX(DT_DRV_INST(inst), prop, idx) 
 3269#define DT_INST_PROP_HAS_NAME(inst, prop, name) \ 
 3270        DT_PROP_HAS_NAME(DT_DRV_INST(inst), prop, name) 
 3279#define DT_INST_PROP_BY_IDX(inst, prop, idx) \ 
 3280        DT_PROP_BY_IDX(DT_DRV_INST(inst), prop, idx) 
 3289#define DT_INST_PROP_OR(inst, prop, default_value) \ 
 3290        DT_PROP_OR(DT_DRV_INST(inst), prop, default_value) 
 3298#define DT_INST_LABEL(inst) DT_INST_PROP(inst, label) __DEPRECATED_MACRO 
 3309#define DT_INST_STRING_TOKEN(inst, prop) \ 
 3310        DT_STRING_TOKEN(DT_DRV_INST(inst), prop) 
 3319#define DT_INST_STRING_UPPER_TOKEN(inst, prop) \ 
 3320        DT_STRING_UPPER_TOKEN(DT_DRV_INST(inst), prop) 
 3329#define DT_INST_STRING_TOKEN_BY_IDX(inst, prop, idx) \ 
 3330        DT_STRING_TOKEN_BY_IDX(DT_DRV_INST(inst), prop, idx) 
 3339#define DT_INST_STRING_UPPER_TOKEN_BY_IDX(inst, prop, idx) \ 
 3340        DT_STRING_UPPER_TOKEN_BY_IDX(DT_DRV_INST(inst), prop, idx) 
 3350#define DT_INST_PROP_BY_PHANDLE(inst, ph, prop) \ 
 3351        DT_INST_PROP_BY_PHANDLE_IDX(inst, ph, 0, prop) 
 3364#define DT_INST_PROP_BY_PHANDLE_IDX(inst, phs, idx, prop) \ 
 3365        DT_PROP_BY_PHANDLE_IDX(DT_DRV_INST(inst), phs, idx, prop) 
 3375#define DT_INST_PHA_BY_IDX(inst, pha, idx, cell) \ 
 3376        DT_PHA_BY_IDX(DT_DRV_INST(inst), pha, idx, cell) 
 3387#define DT_INST_PHA_BY_IDX_OR(inst, pha, idx, cell, default_value) \ 
 3388        DT_PHA_BY_IDX_OR(DT_DRV_INST(inst), pha, idx, cell, default_value) 
 3398#define DT_INST_PHA(inst, pha, cell) DT_INST_PHA_BY_IDX(inst, pha, 0, cell) 
 3408#define DT_INST_PHA_OR(inst, pha, cell, default_value) \ 
 3409        DT_INST_PHA_BY_IDX_OR(inst, pha, 0, cell, default_value) 
 3420#define DT_INST_PHA_BY_NAME(inst, pha, name, cell) \ 
 3421        DT_PHA_BY_NAME(DT_DRV_INST(inst), pha, name, cell) 
 3432#define DT_INST_PHA_BY_NAME_OR(inst, pha, name, cell, default_value) \ 
 3433        DT_PHA_BY_NAME_OR(DT_DRV_INST(inst), pha, name, cell, default_value) 
 3443#define DT_INST_PHANDLE_BY_NAME(inst, pha, name) \ 
 3444        DT_PHANDLE_BY_NAME(DT_DRV_INST(inst), pha, name) \ 
 3455#define DT_INST_PHANDLE_BY_IDX(inst, prop, idx) \ 
 3456        DT_PHANDLE_BY_IDX(DT_DRV_INST(inst), prop, idx) 
 3466#define DT_INST_PHANDLE(inst, prop) DT_INST_PHANDLE_BY_IDX(inst, prop, 0) 
 3475#define DT_INST_REG_HAS_IDX(inst, idx) DT_REG_HAS_IDX(DT_DRV_INST(inst), idx) 
 3483#define DT_INST_REG_ADDR_BY_IDX(inst, idx) DT_REG_ADDR_BY_IDX(DT_DRV_INST(inst), idx) 
 3491#define DT_INST_REG_SIZE_BY_IDX(inst, idx) \ 
 3492        DT_REG_SIZE_BY_IDX(DT_DRV_INST(inst), idx) 
 3500#define DT_INST_REG_ADDR_BY_NAME(inst, name) \ 
 3501        DT_REG_ADDR_BY_NAME(DT_DRV_INST(inst), name) 
 3509#define DT_INST_REG_SIZE_BY_NAME(inst, name) \ 
 3510        DT_REG_SIZE_BY_NAME(DT_DRV_INST(inst), name) 
 3517#define DT_INST_REG_ADDR(inst) DT_INST_REG_ADDR_BY_IDX(inst, 0) 
 3524#define DT_INST_REG_SIZE(inst) DT_INST_REG_SIZE_BY_IDX(inst, 0) 
 3533#define DT_INST_IRQ_BY_IDX(inst, idx, cell) \ 
 3534        DT_IRQ_BY_IDX(DT_DRV_INST(inst), idx, cell) 
 3543#define DT_INST_IRQ_BY_NAME(inst, name, cell) \ 
 3544        DT_IRQ_BY_NAME(DT_DRV_INST(inst), name, cell) 
 3552#define DT_INST_IRQ(inst, cell) DT_INST_IRQ_BY_IDX(inst, 0, cell) 
 3559#define DT_INST_IRQN(inst) DT_INST_IRQ(inst, irq) 
 3566#define DT_INST_BUS(inst) DT_BUS(DT_DRV_INST(inst)) 
 3576#define DT_INST_BUS_LABEL(inst) DT_BUS_LABEL(DT_DRV_INST(inst)) __DEPRECATED_MACRO 
 3585#define DT_INST_ON_BUS(inst, bus) DT_ON_BUS(DT_DRV_INST(inst), bus) 
 3596#define DT_INST_STRING_TOKEN_OR(inst, name, default_value) \ 
 3597        DT_STRING_TOKEN_OR(DT_DRV_INST(inst), name, default_value) 
 3607#define DT_INST_STRING_UPPER_TOKEN_OR(inst, name, default_value) \ 
 3608        DT_STRING_UPPER_TOKEN_OR(DT_DRV_INST(inst), name, default_value) 
 3642#define DT_ANY_INST_ON_BUS_STATUS_OKAY(bus) \ 
 3643        DT_COMPAT_ON_BUS_INTERNAL(DT_DRV_COMPAT, bus) 
 3710#define DT_INST_FOREACH_STATUS_OKAY(fn) \ 
 3711        COND_CODE_1(DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT),   \ 
 3712                    (UTIL_CAT(DT_FOREACH_OKAY_INST_,            \ 
 3713                              DT_DRV_COMPAT)(fn)),              \ 
 3727#define DT_INST_FOREACH_STATUS_OKAY_VARGS(fn, ...) \ 
 3728        COND_CODE_1(DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT),   \ 
 3729                    (UTIL_CAT(DT_FOREACH_OKAY_INST_VARGS_,      \ 
 3730                              DT_DRV_COMPAT)(fn, __VA_ARGS__)), \ 
 3743#define DT_INST_FOREACH_PROP_ELEM(inst, prop, fn) \ 
 3744        DT_FOREACH_PROP_ELEM(DT_DRV_INST(inst), prop, fn) 
 3758#define DT_INST_FOREACH_PROP_ELEM_SEP(inst, prop, fn, sep) \ 
 3759        DT_FOREACH_PROP_ELEM_SEP(DT_DRV_INST(inst), prop, fn, sep) 
 3775#define DT_INST_FOREACH_PROP_ELEM_VARGS(inst, prop, fn, ...) \ 
 3776        DT_FOREACH_PROP_ELEM_VARGS(DT_DRV_INST(inst), prop, fn, __VA_ARGS__) 
 3795#define DT_INST_FOREACH_PROP_ELEM_SEP_VARGS(inst, prop, fn, sep, ...)           \ 
 3796        DT_FOREACH_PROP_ELEM_SEP_VARGS(DT_DRV_INST(inst), prop, fn, sep,        \ 
 3805#define DT_INST_NODE_HAS_PROP(inst, prop) \ 
 3806        DT_NODE_HAS_PROP(DT_DRV_INST(inst), prop) 
 3818#define DT_INST_PHA_HAS_CELL_AT_IDX(inst, pha, idx, cell) \ 
 3819        DT_PHA_HAS_CELL_AT_IDX(DT_DRV_INST(inst), pha, idx, cell) 
 3830#define DT_INST_PHA_HAS_CELL(inst, pha, cell) \ 
 3831        DT_INST_PHA_HAS_CELL_AT_IDX(inst, pha, 0, cell) 
 3840#define DT_INST_IRQ_HAS_IDX(inst, idx) DT_IRQ_HAS_IDX(DT_DRV_INST(inst), idx) 
 3850#define DT_INST_IRQ_HAS_CELL_AT_IDX(inst, idx, cell) \ 
 3851        DT_IRQ_HAS_CELL_AT_IDX(DT_DRV_INST(inst), idx, cell) 
 3860#define DT_INST_IRQ_HAS_CELL(inst, cell) \ 
 3861        DT_INST_IRQ_HAS_CELL_AT_IDX(inst, 0, cell) 
 3869#define DT_INST_IRQ_HAS_NAME(inst, name) \ 
 3870        DT_IRQ_HAS_NAME(DT_DRV_INST(inst), name) 
 3878#define DT_PATH_INTERNAL(...) \ 
 3879        UTIL_CAT(DT_ROOT, MACRO_MAP_CAT(DT_S_PREFIX, __VA_ARGS__)) 
 3885#define DT_S_PREFIX(name) _S_##name 
 3901#define DT_CAT(a1, a2) a1 ## a2 
 3903#define DT_CAT3(a1, a2, a3) a1 ## a2 ## a3 
 3905#define DT_CAT4(a1, a2, a3, a4) a1 ## a2 ## a3 ## a4 
 3907#define DT_CAT5(a1, a2, a3, a4, a5) a1 ## a2 ## a3 ## a4 ## a5 
 3909#define DT_CAT6(a1, a2, a3, a4, a5, a6) a1 ## a2 ## a3 ## a4 ## a5 ## a6 
 3911#define DT_CAT7(a1, a2, a3, a4, a5, a6, a7) \ 
 3912        a1 ## a2 ## a3 ## a4 ## a5 ## a6 ## a7 
 3914#define DT_CAT8(a1, a2, a3, a4, a5, a6, a7, a8) \ 
 3915        a1 ## a2 ## a3 ## a4 ## a5 ## a6 ## a7 ## a8 
 3922#define DT_DASH(...) MACRO_MAP_CAT(DT_DASH_PREFIX, __VA_ARGS__) 
 3924#define DT_DASH_PREFIX(name) _##name 
 3926#define DT_NODE_HAS_STATUS_INTERNAL(node_id, status) \ 
 3927        IS_ENABLED(DT_CAT3(node_id, _STATUS_, status)) 
 3929#define DT_COMPAT_ON_BUS_INTERNAL(compat, bus) \ 
 3930        IS_ENABLED(UTIL_CAT(DT_CAT(DT_COMPAT_, compat), _BUS_##bus)) 
Clocks Devicetree macro public API header file.
 
CAN devicetree macro public API header file.
 
DMA Devicetree macro public API header file.
 
GPIO Devicetree macro public API header file.
 
MBOX Devicetree macro public API header file.
 
Devicetree pin control helpers.
 
Reset Controller Devicetree macro public API header file.
 
SPI Devicetree macro public API header file.
 
Flash Devicetree macro public API header file.
 
IO channels devicetree macro public API header file.
 
Devicetree node dependency ordinals.
 
PWMs Devicetree macro public API header file.