Line data Source code
1 0 : /*
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 0 : #define NUMICRO_MFP_SHIFT 0U
11 0 : #define NUMICRO_MFP_MASK 0xFU
12 0 : #define NUMICRO_PIN_SHIFT 4U
13 0 : #define NUMICRO_PIN_MASK 0xFU
14 0 : #define NUMICRO_PORT_SHIFT 8U
15 0 : #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 1 : #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 0 : #define NUMICRO_PORT(pinmux) \
36 : (((pinmux) >> NUMICRO_PORT_SHIFT) & NUMICRO_PORT_MASK)
37 0 : #define NUMICRO_PIN(pinmux) \
38 : (((pinmux) >> NUMICRO_PIN_SHIFT) & NUMICRO_PIN_MASK)
39 0 : #define NUMICRO_MFP(pinmux) \
40 : (((pinmux) >> NUMICRO_MFP_SHIFT) & NUMICRO_MFP_MASK)
41 :
42 : #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_NUMICRO_PINCTRL_H_ */
|