1 /* 2 * Copyright (c) 2022 SEAL AG 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_NUMICRO_PINCTRL_H_ 8 #define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_NUMICRO_PINCTRL_H_ 9 10 #define NUMICRO_MFP_SHIFT 0U 11 #define NUMICRO_MFP_MASK 0xFU 12 #define NUMICRO_PIN_SHIFT 4U 13 #define NUMICRO_PIN_MASK 0xFU 14 #define NUMICRO_PORT_SHIFT 8U 15 #define NUMICRO_PORT_MASK 0xFU 16 17 /** 18 * @brief Pin configuration configuration bit field. 19 * 20 * Fields: 21 * 22 * - mfp [ 0 : 3 ] 23 * - pin [ 4 : 7 ] 24 * - port [ 8 : 11 ] 25 * 26 * @param port Port ('A'..'H') 27 * @param pin Pin (0..15) 28 * @param mfp Multi-function value (0..15) 29 */ 30 #define NUMICRO_PINMUX(port, pin, mfp) \ 31 (((((port) - 'A') & NUMICRO_PORT_MASK) << NUMICRO_PORT_SHIFT) | \ 32 (((pin) & NUMICRO_PIN_MASK) << NUMICRO_PIN_SHIFT) | \ 33 (((mfp) & NUMICRO_MFP_MASK) << NUMICRO_MFP_SHIFT)) 34 35 #define NUMICRO_PORT(pinmux) \ 36 (((pinmux) >> NUMICRO_PORT_SHIFT) & NUMICRO_PORT_MASK) 37 #define NUMICRO_PIN(pinmux) \ 38 (((pinmux) >> NUMICRO_PIN_SHIFT) & NUMICRO_PIN_MASK) 39 #define NUMICRO_MFP(pinmux) \ 40 (((pinmux) >> NUMICRO_MFP_SHIFT) & NUMICRO_MFP_MASK) 41 42 #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_NUMICRO_PINCTRL_H_ */ 43