/* * Copyright 2022-2024 NXP * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_SOC_NXP_S32_COMMON_SIUL2_PINCTRL_H_ #define ZEPHYR_SOC_NXP_S32_COMMON_SIUL2_PINCTRL_H_ #include #include /** @cond INTERNAL_HIDDEN */ struct pinctrl_soc_reg { uint8_t inst; uint16_t idx; uint32_t val; }; /** @brief Type for NXP SIUL2 pin configuration. */ typedef struct { struct pinctrl_soc_reg mscr; struct pinctrl_soc_reg imcr; } pinctrl_soc_pin_t; /** * @brief Utility macro to initialize each pin. * * * @param group Group node identifier. * @param prop Property name. * @param idx Property entry index. */ #define Z_PINCTRL_STATE_PIN_INIT(group, prop, idx) \ {NXP_S32_PINMUX_INIT(group, DT_PROP_BY_IDX(group, prop, idx))}, /** * @brief Utility macro to initialize state pins contained in a given property. * * @param node_id Node identifier. * @param prop Property name describing state pins. */ #define Z_PINCTRL_STATE_PINS_INIT(node_id, prop) \ { \ DT_FOREACH_CHILD_VARGS(DT_PHANDLE(node_id, prop), DT_FOREACH_PROP_ELEM, pinmux, \ Z_PINCTRL_STATE_PIN_INIT) \ } /** @endcond */ #endif /* ZEPHYR_SOC_NXP_S32_COMMON_SIUL2_PINCTRL_H_ */