/*
 * 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_ */
