| /* |
| * Copyright (c) 2022, Renesas Electronics Corporation |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_SMARTBOND_PINCTRL_H_ |
| #define ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_SMARTBOND_PINCTRL_H_ |
| |
| /** Definitions of pin functions */ |
| #define SMARTBOND_FUNC_GPIO 0 |
| #define SMARTBOND_FUNC_UART_RX 1 |
| #define SMARTBOND_FUNC_UART_TX 2 |
| #define SMARTBOND_FUNC_UART2_RX 3 |
| #define SMARTBOND_FUNC_UART2_TX 4 |
| #define SMARTBOND_FUNC_UART2_CTSN 5 |
| #define SMARTBOND_FUNC_UART2_RTSN 6 |
| #define SMARTBOND_FUNC_UART3_RX 7 |
| #define SMARTBOND_FUNC_UART3_TX 8 |
| #define SMARTBOND_FUNC_UART3_CTSN 9 |
| #define SMARTBOND_FUNC_UART3_RTSN 10 |
| #define SMARTBOND_FUNC_ISO_CLK 11 |
| #define SMARTBOND_FUNC_ISO_DATA 12 |
| #define SMARTBOND_FUNC_SPI_DI 13 |
| #define SMARTBOND_FUNC_SPI_DO 14 |
| #define SMARTBOND_FUNC_SPI_CLK 15 |
| #define SMARTBOND_FUNC_SPI_EN 16 |
| #define SMARTBOND_FUNC_SPI2_DI 17 |
| #define SMARTBOND_FUNC_SPI2_DO 18 |
| #define SMARTBOND_FUNC_SPI2_CLK 19 |
| #define SMARTBOND_FUNC_SPI2_EN 20 |
| #define SMARTBOND_FUNC_I2C_SCL 21 |
| #define SMARTBOND_FUNC_I2C_SDA 22 |
| #define SMARTBOND_FUNC_I2C2_SCL 23 |
| #define SMARTBOND_FUNC_I2C2_SDA 24 |
| #define SMARTBOND_FUNC_USB_SOF 25 |
| #define SMARTBOND_FUNC_ADC 26 |
| #define SMARTBOND_FUNC_USB 27 |
| #define SMARTBOND_FUNC_PCM_DI 28 |
| #define SMARTBOND_FUNC_PCM_DO 29 |
| #define SMARTBOND_FUNC_PCM_FSC 30 |
| #define SMARTBOND_FUNC_PCM_CLK 31 |
| #define SMARTBOND_FUNC_PDM_DATA 32 |
| #define SMARTBOND_FUNC_PDM_CLK 33 |
| #define SMARTBOND_FUNC_COEX_EXT_ACT 34 |
| #define SMARTBOND_FUNC_COEX_SMART_ACT 35 |
| #define SMARTBOND_FUNC_COEX_SMART_PRI 36 |
| #define SMARTBOND_FUNC_PORT0_DCF 37 |
| #define SMARTBOND_FUNC_PORT1_DCF 38 |
| #define SMARTBOND_FUNC_PORT2_DCF 39 |
| #define SMARTBOND_FUNC_PORT3_DCF 40 |
| #define SMARTBOND_FUNC_PORT4_DCF 41 |
| #define SMARTBOND_FUNC_CLOCK 42 |
| #define SMARTBOND_FUNC_PG 43 |
| #define SMARTBOND_FUNC_LCD 44 |
| #define SMARTBOND_FUNC_LCD_SPI_DC 45 |
| #define SMARTBOND_FUNC_LCD_SPI_DO 46 |
| #define SMARTBOND_FUNC_LCD_SPI_CLK 47 |
| #define SMARTBOND_FUNC_LCD_SPI_EN 48 |
| #define SMARTBOND_FUNC_TIM_PWM 49 |
| #define SMARTBOND_FUNC_TIM2_PWM 50 |
| #define SMARTBOND_FUNC_TIM_1SHOT 51 |
| #define SMARTBOND_FUNC_TIM2_1SHOT 52 |
| #define SMARTBOND_FUNC_TIM3_PWM 53 |
| #define SMARTBOND_FUNC_TIM4_PWM 54 |
| |
| /** Definitions of bit positions and bit masks in pinmux */ |
| #define SMARTBOND_PINMUX_PIN_POS 0 |
| #define SMARTBOND_PINMUX_PIN_MASK 0x1f |
| #define SMARTBOND_PINMUX_PORT_POS 5 |
| #define SMARTBOND_PINMUX_PORT_MASK 0x01 |
| #define SMARTBOND_PINMUX_FUNC_POS 6 |
| #define SMARTBOND_PINMUX_FUNC_MASK 0xff |
| |
| /** Utility macro to create pinmux */ |
| #define SMARTBOND_PINMUX(func, port, pin) \ |
| (((SMARTBOND_FUNC_ ## func) << SMARTBOND_PINMUX_FUNC_POS) | \ |
| ((port) << SMARTBOND_PINMUX_PORT_POS) | \ |
| (pin) << SMARTBOND_PINMUX_PIN_POS) |
| |
| #endif /* ZEPHYR_INCLUDE_DT_BINDINGS_PINCTRL_SMARTBOND_PINCTRL_H_ */ |