1 /* SPDX-License-Identifier: GPL-2.0 OR MIT */
3 * Copyright (C) 2021 Emil Renner Berthing <kernel@esmil.dk>
6 #ifndef __DT_BINDINGS_PINCTRL_STARFIVE_H__
7 #define __DT_BINDINGS_PINCTRL_STARFIVE_H__
9 #define PAD_GPIO_OFFSET 0
10 #define PAD_FUNC_SHARE_OFFSET 64
11 #define PAD_GPIO(x) (PAD_GPIO_OFFSET + (x))
12 #define PAD_FUNC_SHARE(x) (PAD_FUNC_SHARE_OFFSET + (x))
16 * | 31 - 24 | 23 - 16 | 15 - 8 | 7 | 6 | 5 - 0 |
17 * | dout | doen | din | dout rev | doen rev | gpio nr |
20 * doen: output enable signal
21 * din: optional input signal, 0xff = none
22 * dout rev: output signal reverse bit
23 * doen rev: output enable signal reverse bit
24 * gpio nr: gpio number, 0 - 63
26 #define GPIOMUX(n, dout, doen, din) ( \
27 (((dout) & 0x80000000) >> (31 - 7)) | (((dout) & 0xff) << 24) | \
28 (((doen) & 0x80000000) >> (31 - 6)) | (((doen) & 0xff) << 16) | \
29 (((din) & 0xff) << 8) | \
32 #define GPO_REVERSE 0x80000000
38 #define GPO_CLK_GMAC_PAPHYREF 2
39 #define GPO_JTAG_TDO 3
40 #define GPO_JTAG_TDO_OEN 4
41 #define GPO_DMIC_CLK_OUT 5
42 #define GPO_DSP_JTDOEN_PAD 6
43 #define GPO_DSP_JTDO_PAD 7
44 #define GPO_I2C0_PAD_SCK_OE 8
45 #define GPO_I2C0_PAD_SCK_OEN (GPO_I2C0_PAD_SCK_OE | GPO_REVERSE)
46 #define GPO_I2C0_PAD_SDA_OE 9
47 #define GPO_I2C0_PAD_SDA_OEN (GPO_I2C0_PAD_SDA_OE | GPO_REVERSE)
48 #define GPO_I2C1_PAD_SCK_OE 10
49 #define GPO_I2C1_PAD_SCK_OEN (GPO_I2C1_PAD_SCK_OE | GPO_REVERSE)
50 #define GPO_I2C1_PAD_SDA_OE 11
51 #define GPO_I2C1_PAD_SDA_OEN (GPO_I2C1_PAD_SDA_OE | GPO_REVERSE)
52 #define GPO_I2C2_PAD_SCK_OE 12
53 #define GPO_I2C2_PAD_SCK_OEN (GPO_I2C2_PAD_SCK_OE | GPO_REVERSE)
54 #define GPO_I2C2_PAD_SDA_OE 13
55 #define GPO_I2C2_PAD_SDA_OEN (GPO_I2C2_PAD_SDA_OE | GPO_REVERSE)
56 #define GPO_I2C3_PAD_SCK_OE 14
57 #define GPO_I2C3_PAD_SCK_OEN (GPO_I2C3_PAD_SCK_OE | GPO_REVERSE)
58 #define GPO_I2C3_PAD_SDA_OE 15
59 #define GPO_I2C3_PAD_SDA_OEN (GPO_I2C3_PAD_SDA_OE | GPO_REVERSE)
60 #define GPO_I2SRX_BCLK_OUT 16
61 #define GPO_I2SRX_BCLK_OUT_OEN 17
62 #define GPO_I2SRX_LRCK_OUT 18
63 #define GPO_I2SRX_LRCK_OUT_OEN 19
64 #define GPO_I2SRX_MCLK_OUT 20
65 #define GPO_I2STX_BCLK_OUT 21
66 #define GPO_I2STX_BCLK_OUT_OEN 22
67 #define GPO_I2STX_LRCK_OUT 23
68 #define GPO_I2STX_LRCK_OUT_OEN 24
69 #define GPO_I2STX_MCLK_OUT 25
70 #define GPO_I2STX_SDOUT0 26
71 #define GPO_I2STX_SDOUT1 27
72 #define GPO_LCD_PAD_CSM_N 28
73 #define GPO_PWM_PAD_OE_N_BIT0 29
74 #define GPO_PWM_PAD_OE_N_BIT1 30
75 #define GPO_PWM_PAD_OE_N_BIT2 31
76 #define GPO_PWM_PAD_OE_N_BIT3 32
77 #define GPO_PWM_PAD_OE_N_BIT4 33
78 #define GPO_PWM_PAD_OE_N_BIT5 34
79 #define GPO_PWM_PAD_OE_N_BIT6 35
80 #define GPO_PWM_PAD_OE_N_BIT7 36
81 #define GPO_PWM_PAD_OUT_BIT0 37
82 #define GPO_PWM_PAD_OUT_BIT1 38
83 #define GPO_PWM_PAD_OUT_BIT2 39
84 #define GPO_PWM_PAD_OUT_BIT3 40
85 #define GPO_PWM_PAD_OUT_BIT4 41
86 #define GPO_PWM_PAD_OUT_BIT5 42
87 #define GPO_PWM_PAD_OUT_BIT6 43
88 #define GPO_PWM_PAD_OUT_BIT7 44
89 #define GPO_PWMDAC_LEFT_OUT 45
90 #define GPO_PWMDAC_RIGHT_OUT 46
91 #define GPO_QSPI_CSN1_OUT 47
92 #define GPO_QSPI_CSN2_OUT 48
93 #define GPO_QSPI_CSN3_OUT 49
94 #define GPO_REGISTER23_SCFG_CMSENSOR_RST0 50
95 #define GPO_REGISTER23_SCFG_CMSENSOR_RST1 51
96 #define GPO_REGISTER32_SCFG_GMAC_PHY_RSTN 52
97 #define GPO_SDIO0_PAD_CARD_POWER_EN 53
98 #define GPO_SDIO0_PAD_CCLK_OUT 54
99 #define GPO_SDIO0_PAD_CCMD_OE 55
100 #define GPO_SDIO0_PAD_CCMD_OEN (GPO_SDIO0_PAD_CCMD_OE | GPO_REVERSE)
101 #define GPO_SDIO0_PAD_CCMD_OUT 56
102 #define GPO_SDIO0_PAD_CDATA_OE_BIT0 57
103 #define GPO_SDIO0_PAD_CDATA_OEN_BIT0 (GPO_SDIO0_PAD_CDATA_OE_BIT0 | GPO_REVERSE)
104 #define GPO_SDIO0_PAD_CDATA_OE_BIT1 58
105 #define GPO_SDIO0_PAD_CDATA_OEN_BIT1 (GPO_SDIO0_PAD_CDATA_OE_BIT1 | GPO_REVERSE)
106 #define GPO_SDIO0_PAD_CDATA_OE_BIT2 59
107 #define GPO_SDIO0_PAD_CDATA_OEN_BIT2 (GPO_SDIO0_PAD_CDATA_OE_BIT2 | GPO_REVERSE)
108 #define GPO_SDIO0_PAD_CDATA_OE_BIT3 60
109 #define GPO_SDIO0_PAD_CDATA_OEN_BIT3 (GPO_SDIO0_PAD_CDATA_OE_BIT3 | GPO_REVERSE)
110 #define GPO_SDIO0_PAD_CDATA_OE_BIT4 61
111 #define GPO_SDIO0_PAD_CDATA_OEN_BIT4 (GPO_SDIO0_PAD_CDATA_OE_BIT4 | GPO_REVERSE)
112 #define GPO_SDIO0_PAD_CDATA_OE_BIT5 62
113 #define GPO_SDIO0_PAD_CDATA_OEN_BIT5 (GPO_SDIO0_PAD_CDATA_OE_BIT5 | GPO_REVERSE)
114 #define GPO_SDIO0_PAD_CDATA_OE_BIT6 63
115 #define GPO_SDIO0_PAD_CDATA_OEN_BIT6 (GPO_SDIO0_PAD_CDATA_OE_BIT6 | GPO_REVERSE)
116 #define GPO_SDIO0_PAD_CDATA_OE_BIT7 64
117 #define GPO_SDIO0_PAD_CDATA_OEN_BIT7 (GPO_SDIO0_PAD_CDATA_OE_BIT7 | GPO_REVERSE)
118 #define GPO_SDIO0_PAD_CDATA_OUT_BIT0 65
119 #define GPO_SDIO0_PAD_CDATA_OUT_BIT1 66
120 #define GPO_SDIO0_PAD_CDATA_OUT_BIT2 67
121 #define GPO_SDIO0_PAD_CDATA_OUT_BIT3 68
122 #define GPO_SDIO0_PAD_CDATA_OUT_BIT4 69
123 #define GPO_SDIO0_PAD_CDATA_OUT_BIT5 70
124 #define GPO_SDIO0_PAD_CDATA_OUT_BIT6 71
125 #define GPO_SDIO0_PAD_CDATA_OUT_BIT7 72
126 #define GPO_SDIO0_PAD_RST_N 73
127 #define GPO_SDIO1_PAD_CARD_POWER_EN 74
128 #define GPO_SDIO1_PAD_CCLK_OUT 75
129 #define GPO_SDIO1_PAD_CCMD_OE 76
130 #define GPO_SDIO1_PAD_CCMD_OEN (GPO_SDIO1_PAD_CCMD_OE | GPO_REVERSE)
131 #define GPO_SDIO1_PAD_CCMD_OUT 77
132 #define GPO_SDIO1_PAD_CDATA_OE_BIT0 78
133 #define GPO_SDIO1_PAD_CDATA_OEN_BIT0 (GPO_SDIO1_PAD_CDATA_OE_BIT0 | GPO_REVERSE)
134 #define GPO_SDIO1_PAD_CDATA_OE_BIT1 79
135 #define GPO_SDIO1_PAD_CDATA_OEN_BIT1 (GPO_SDIO1_PAD_CDATA_OE_BIT1 | GPO_REVERSE)
136 #define GPO_SDIO1_PAD_CDATA_OE_BIT2 80
137 #define GPO_SDIO1_PAD_CDATA_OEN_BIT2 (GPO_SDIO1_PAD_CDATA_OE_BIT2 | GPO_REVERSE)
138 #define GPO_SDIO1_PAD_CDATA_OE_BIT3 81
139 #define GPO_SDIO1_PAD_CDATA_OEN_BIT3 (GPO_SDIO1_PAD_CDATA_OE_BIT3 | GPO_REVERSE)
140 #define GPO_SDIO1_PAD_CDATA_OE_BIT4 82
141 #define GPO_SDIO1_PAD_CDATA_OEN_BIT4 (GPO_SDIO1_PAD_CDATA_OE_BIT4 | GPO_REVERSE)
142 #define GPO_SDIO1_PAD_CDATA_OE_BIT5 83
143 #define GPO_SDIO1_PAD_CDATA_OEN_BIT5 (GPO_SDIO1_PAD_CDATA_OE_BIT5 | GPO_REVERSE)
144 #define GPO_SDIO1_PAD_CDATA_OE_BIT6 84
145 #define GPO_SDIO1_PAD_CDATA_OEN_BIT6 (GPO_SDIO1_PAD_CDATA_OE_BIT6 | GPO_REVERSE)
146 #define GPO_SDIO1_PAD_CDATA_OE_BIT7 85
147 #define GPO_SDIO1_PAD_CDATA_OEN_BIT7 (GPO_SDIO1_PAD_CDATA_OE_BIT7 | GPO_REVERSE)
148 #define GPO_SDIO1_PAD_CDATA_OUT_BIT0 86
149 #define GPO_SDIO1_PAD_CDATA_OUT_BIT1 87
150 #define GPO_SDIO1_PAD_CDATA_OUT_BIT2 88
151 #define GPO_SDIO1_PAD_CDATA_OUT_BIT3 89
152 #define GPO_SDIO1_PAD_CDATA_OUT_BIT4 90
153 #define GPO_SDIO1_PAD_CDATA_OUT_BIT5 91
154 #define GPO_SDIO1_PAD_CDATA_OUT_BIT6 92
155 #define GPO_SDIO1_PAD_CDATA_OUT_BIT7 93
156 #define GPO_SDIO1_PAD_RST_N 94
157 #define GPO_SPDIF_TX_SDOUT 95
158 #define GPO_SPDIF_TX_SDOUT_OEN 96
159 #define GPO_SPI0_PAD_OE_N 97
160 #define GPO_SPI0_PAD_SCK_OUT 98
161 #define GPO_SPI0_PAD_SS_0_N 99
162 #define GPO_SPI0_PAD_SS_1_N 100
163 #define GPO_SPI0_PAD_TXD 101
164 #define GPO_SPI1_PAD_OE_N 102
165 #define GPO_SPI1_PAD_SCK_OUT 103
166 #define GPO_SPI1_PAD_SS_0_N 104
167 #define GPO_SPI1_PAD_SS_1_N 105
168 #define GPO_SPI1_PAD_TXD 106
169 #define GPO_SPI2_PAD_OE_N 107
170 #define GPO_SPI2_PAD_SCK_OUT 108
171 #define GPO_SPI2_PAD_SS_0_N 109
172 #define GPO_SPI2_PAD_SS_1_N 110
173 #define GPO_SPI2_PAD_TXD 111
174 #define GPO_SPI2AHB_PAD_OE_N_BIT0 112
175 #define GPO_SPI2AHB_PAD_OE_N_BIT1 113
176 #define GPO_SPI2AHB_PAD_OE_N_BIT2 114
177 #define GPO_SPI2AHB_PAD_OE_N_BIT3 115
178 #define GPO_SPI2AHB_PAD_TXD_BIT0 116
179 #define GPO_SPI2AHB_PAD_TXD_BIT1 117
180 #define GPO_SPI2AHB_PAD_TXD_BIT2 118
181 #define GPO_SPI2AHB_PAD_TXD_BIT3 119
182 #define GPO_SPI3_PAD_OE_N 120
183 #define GPO_SPI3_PAD_SCK_OUT 121
184 #define GPO_SPI3_PAD_SS_0_N 122
185 #define GPO_SPI3_PAD_SS_1_N 123
186 #define GPO_SPI3_PAD_TXD 124
187 #define GPO_UART0_PAD_DTRN 125
188 #define GPO_UART0_PAD_RTSN 126
189 #define GPO_UART0_PAD_SOUT 127
190 #define GPO_UART1_PAD_SOUT 128
191 #define GPO_UART2_PAD_DTR_N 129
192 #define GPO_UART2_PAD_RTS_N 130
193 #define GPO_UART2_PAD_SOUT 131
194 #define GPO_UART3_PAD_SOUT 132
195 #define GPO_USB_DRV_BUS 133
197 #define GPI_CPU_JTAG_TCK 0
198 #define GPI_CPU_JTAG_TDI 1
199 #define GPI_CPU_JTAG_TMS 2
200 #define GPI_CPU_JTAG_TRST 3
201 #define GPI_DMIC_SDIN_BIT0 4
202 #define GPI_DMIC_SDIN_BIT1 5
203 #define GPI_DSP_JTCK_PAD 6
204 #define GPI_DSP_JTDI_PAD 7
205 #define GPI_DSP_JTMS_PAD 8
206 #define GPI_DSP_TRST_PAD 9
207 #define GPI_I2C0_PAD_SCK_IN 10
208 #define GPI_I2C0_PAD_SDA_IN 11
209 #define GPI_I2C1_PAD_SCK_IN 12
210 #define GPI_I2C1_PAD_SDA_IN 13
211 #define GPI_I2C2_PAD_SCK_IN 14
212 #define GPI_I2C2_PAD_SDA_IN 15
213 #define GPI_I2C3_PAD_SCK_IN 16
214 #define GPI_I2C3_PAD_SDA_IN 17
215 #define GPI_I2SRX_BCLK_IN 18
216 #define GPI_I2SRX_LRCK_IN 19
217 #define GPI_I2SRX_SDIN_BIT0 20
218 #define GPI_I2SRX_SDIN_BIT1 21
219 #define GPI_I2SRX_SDIN_BIT2 22
220 #define GPI_I2STX_BCLK_IN 23
221 #define GPI_I2STX_LRCK_IN 24
222 #define GPI_SDIO0_PAD_CARD_DETECT_N 25
223 #define GPI_SDIO0_PAD_CARD_WRITE_PRT 26
224 #define GPI_SDIO0_PAD_CCMD_IN 27
225 #define GPI_SDIO0_PAD_CDATA_IN_BIT0 28
226 #define GPI_SDIO0_PAD_CDATA_IN_BIT1 29
227 #define GPI_SDIO0_PAD_CDATA_IN_BIT2 30
228 #define GPI_SDIO0_PAD_CDATA_IN_BIT3 31
229 #define GPI_SDIO0_PAD_CDATA_IN_BIT4 32
230 #define GPI_SDIO0_PAD_CDATA_IN_BIT5 33
231 #define GPI_SDIO0_PAD_CDATA_IN_BIT6 34
232 #define GPI_SDIO0_PAD_CDATA_IN_BIT7 35
233 #define GPI_SDIO1_PAD_CARD_DETECT_N 36
234 #define GPI_SDIO1_PAD_CARD_WRITE_PRT 37
235 #define GPI_SDIO1_PAD_CCMD_IN 38
236 #define GPI_SDIO1_PAD_CDATA_IN_BIT0 39
237 #define GPI_SDIO1_PAD_CDATA_IN_BIT1 40
238 #define GPI_SDIO1_PAD_CDATA_IN_BIT2 41
239 #define GPI_SDIO1_PAD_CDATA_IN_BIT3 42
240 #define GPI_SDIO1_PAD_CDATA_IN_BIT4 43
241 #define GPI_SDIO1_PAD_CDATA_IN_BIT5 44
242 #define GPI_SDIO1_PAD_CDATA_IN_BIT6 45
243 #define GPI_SDIO1_PAD_CDATA_IN_BIT7 46
244 #define GPI_SPDIF_RX_SDIN 47
245 #define GPI_SPI0_PAD_RXD 48
246 #define GPI_SPI0_PAD_SS_IN_N 49
247 #define GPI_SPI1_PAD_RXD 50
248 #define GPI_SPI1_PAD_SS_IN_N 51
249 #define GPI_SPI2_PAD_RXD 52
250 #define GPI_SPI2_PAD_SS_IN_N 53
251 #define GPI_SPI2AHB_PAD_RXD_BIT0 54
252 #define GPI_SPI2AHB_PAD_RXD_BIT1 55
253 #define GPI_SPI2AHB_PAD_RXD_BIT2 56
254 #define GPI_SPI2AHB_PAD_RXD_BIT3 57
255 #define GPI_SPI2AHB_PAD_SS_N 58
256 #define GPI_SPI2AHB_SLV_SCLKIN 59
257 #define GPI_SPI3_PAD_RXD 60
258 #define GPI_SPI3_PAD_SS_IN_N 61
259 #define GPI_UART0_PAD_CTSN 62
260 #define GPI_UART0_PAD_DCDN 63
261 #define GPI_UART0_PAD_DSRN 64
262 #define GPI_UART0_PAD_RIN 65
263 #define GPI_UART0_PAD_SIN 66
264 #define GPI_UART1_PAD_SIN 67
265 #define GPI_UART2_PAD_CTS_N 68
266 #define GPI_UART2_PAD_DCD_N 69
267 #define GPI_UART2_PAD_DSR_N 70
268 #define GPI_UART2_PAD_RI_N 71
269 #define GPI_UART2_PAD_SIN 72
270 #define GPI_UART3_PAD_SIN 73
271 #define GPI_USB_OVER_CURRENT 74
273 #define GPI_NONE 0xff
275 #endif /* __DT_BINDINGS_PINCTRL_STARFIVE_H__ */