Skip to content

Commit 3021114

Browse files
committed
dt-bindings: pinctrl: Add StarFive pinctrl definitions
Add definitons for pins and GPIO input, output and output enable signals on the StarFive JH7100 SoC. Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Emil Renner Berthing <kernel@esmil.dk>
1 parent 0be3a15 commit 3021114

File tree

1 file changed

+275
-0
lines changed

1 file changed

+275
-0
lines changed
Lines changed: 275 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,275 @@
1+
/* SPDX-License-Identifier: GPL-2.0 OR MIT */
2+
/*
3+
* Copyright (C) 2021 Emil Renner Berthing <kernel@esmil.dk>
4+
*/
5+
6+
#ifndef __DT_BINDINGS_PINCTRL_STARFIVE_H__
7+
#define __DT_BINDINGS_PINCTRL_STARFIVE_H__
8+
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))
13+
14+
/*
15+
* GPIOMUX bits:
16+
* | 31 - 24 | 23 - 16 | 15 - 8 | 7 | 6 | 5 - 0 |
17+
* | dout | doen | din | dout rev | doen rev | gpio nr |
18+
*
19+
* dout: output signal
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
25+
*/
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) | \
30+
((n) & 0x3f))
31+
32+
#define GPO_REVERSE 0x80000000
33+
34+
#define GPO_LOW 0
35+
#define GPO_HIGH 1
36+
#define GPO_ENABLE 0
37+
#define GPO_DISABLE 1
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
196+
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
272+
273+
#define GPI_NONE 0xff
274+
275+
#endif /* __DT_BINDINGS_PINCTRL_STARFIVE_H__ */

0 commit comments

Comments
 (0)