| /* |
| * Copyright (c) 2022 SEAL AG |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_NUMICRO_PINCTRL_H_ |
| #define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_NUMICRO_PINCTRL_H_ |
| |
| #define NUMICRO_MFP_SHIFT 0U |
| #define NUMICRO_MFP_MASK 0xFU |
| #define NUMICRO_PIN_SHIFT 4U |
| #define NUMICRO_PIN_MASK 0xFU |
| #define NUMICRO_PORT_SHIFT 8U |
| #define NUMICRO_PORT_MASK 0xFU |
| |
| /** |
| * @brief Pin configuration configuration bit field. |
| * |
| * Fields: |
| * |
| * - mfp [ 0 : 3 ] |
| * - pin [ 4 : 7 ] |
| * - port [ 8 : 11 ] |
| * |
| * @param port Port ('A'..'H') |
| * @param pin Pin (0..15) |
| * @param mfp Multi-function value (0..15) |
| */ |
| #define NUMICRO_PINMUX(port, pin, mfp) \ |
| (((((port) - 'A') & NUMICRO_PORT_MASK) << NUMICRO_PORT_SHIFT) | \ |
| (((pin) & NUMICRO_PIN_MASK) << NUMICRO_PIN_SHIFT) | \ |
| (((mfp) & NUMICRO_MFP_MASK) << NUMICRO_MFP_SHIFT)) |
| |
| #define NUMICRO_PORT(pinmux) \ |
| (((pinmux) >> NUMICRO_PORT_SHIFT) & NUMICRO_PORT_MASK) |
| #define NUMICRO_PIN(pinmux) \ |
| (((pinmux) >> NUMICRO_PIN_SHIFT) & NUMICRO_PIN_MASK) |
| #define NUMICRO_MFP(pinmux) \ |
| (((pinmux) >> NUMICRO_MFP_SHIFT) & NUMICRO_MFP_MASK) |
| |
| #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_NUMICRO_PINCTRL_H_ */ |