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