blob: efab9a37e845e5ba6475ac9f36d753b97a7ac42d [file] [log] [blame]
/*
* 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_
/**
* @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_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
#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_ */