Skip to content

Commit e22f09e

Browse files
jianlonghuangConchuOD
authored andcommitted
riscv: dts: starfive: Add StarFive JH7110 pin function definitions
Add pin function definitions for StarFive JH7110 SoC. Tested-by: Tommaso Merciai <tomm.merciai@gmail.com> Co-developed-by: Emil Renner Berthing <kernel@esmil.dk> Signed-off-by: Emil Renner Berthing <kernel@esmil.dk> Signed-off-by: Jianlong Huang <jianlong.huang@starfivetech.com> Signed-off-by: Hal Feng <hal.feng@starfivetech.com> Reviewed-by: Emil Renner Berthing <emil.renner.berthing@canonical.com> Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
1 parent 60bf0a3 commit e22f09e

1 file changed

Lines changed: 308 additions & 0 deletions

File tree

Lines changed: 308 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,308 @@
1+
/* SPDX-License-Identifier: GPL-2.0 OR MIT */
2+
/*
3+
* Copyright (C) 2022 Emil Renner Berthing <kernel@esmil.dk>
4+
* Copyright (C) 2022 StarFive Technology Co., Ltd.
5+
*/
6+
7+
#ifndef __JH7110_PINFUNC_H__
8+
#define __JH7110_PINFUNC_H__
9+
10+
/*
11+
* mux bits:
12+
* | 31 - 24 | 23 - 16 | 15 - 10 | 9 - 8 | 7 - 0 |
13+
* | din | dout | doen | function | gpio nr |
14+
*
15+
* dout: output signal
16+
* doen: output enable signal
17+
* din: optional input signal, 0xff = none
18+
* function: function selector
19+
* gpio nr: gpio number, 0 - 63
20+
*/
21+
#define GPIOMUX(n, dout, doen, din) ( \
22+
(((din) & 0xff) << 24) | \
23+
(((dout) & 0xff) << 16) | \
24+
(((doen) & 0x3f) << 10) | \
25+
((n) & 0x3f))
26+
27+
#define PINMUX(n, func) ((1 << 10) | (((func) & 0x3) << 8) | ((n) & 0xff))
28+
29+
/* sys_iomux dout */
30+
#define GPOUT_LOW 0
31+
#define GPOUT_HIGH 1
32+
#define GPOUT_SYS_WAVE511_UART_TX 2
33+
#define GPOUT_SYS_CAN0_STBY 3
34+
#define GPOUT_SYS_CAN0_TST_NEXT_BIT 4
35+
#define GPOUT_SYS_CAN0_TST_SAMPLE_POINT 5
36+
#define GPOUT_SYS_CAN0_TXD 6
37+
#define GPOUT_SYS_USB_DRIVE_VBUS 7
38+
#define GPOUT_SYS_QSPI_CS1 8
39+
#define GPOUT_SYS_SPDIF 9
40+
#define GPOUT_SYS_HDMI_CEC_SDA 10
41+
#define GPOUT_SYS_HDMI_DDC_SCL 11
42+
#define GPOUT_SYS_HDMI_DDC_SDA 12
43+
#define GPOUT_SYS_WATCHDOG 13
44+
#define GPOUT_SYS_I2C0_CLK 14
45+
#define GPOUT_SYS_I2C0_DATA 15
46+
#define GPOUT_SYS_SDIO0_BACK_END_POWER 16
47+
#define GPOUT_SYS_SDIO0_CARD_POWER_EN 17
48+
#define GPOUT_SYS_SDIO0_CCMD_OD_PULLUP_EN 18
49+
#define GPOUT_SYS_SDIO0_RST 19
50+
#define GPOUT_SYS_UART0_TX 20
51+
#define GPOUT_SYS_HIFI4_JTAG_TDO 21
52+
#define GPOUT_SYS_JTAG_TDO 22
53+
#define GPOUT_SYS_PDM_MCLK 23
54+
#define GPOUT_SYS_PWM_CHANNEL0 24
55+
#define GPOUT_SYS_PWM_CHANNEL1 25
56+
#define GPOUT_SYS_PWM_CHANNEL2 26
57+
#define GPOUT_SYS_PWM_CHANNEL3 27
58+
#define GPOUT_SYS_PWMDAC_LEFT 28
59+
#define GPOUT_SYS_PWMDAC_RIGHT 29
60+
#define GPOUT_SYS_SPI0_CLK 30
61+
#define GPOUT_SYS_SPI0_FSS 31
62+
#define GPOUT_SYS_SPI0_TXD 32
63+
#define GPOUT_SYS_GMAC_PHYCLK 33
64+
#define GPOUT_SYS_I2SRX_BCLK 34
65+
#define GPOUT_SYS_I2SRX_LRCK 35
66+
#define GPOUT_SYS_I2STX0_BCLK 36
67+
#define GPOUT_SYS_I2STX0_LRCK 37
68+
#define GPOUT_SYS_MCLK 38
69+
#define GPOUT_SYS_TDM_CLK 39
70+
#define GPOUT_SYS_TDM_SYNC 40
71+
#define GPOUT_SYS_TDM_TXD 41
72+
#define GPOUT_SYS_TRACE_DATA0 42
73+
#define GPOUT_SYS_TRACE_DATA1 43
74+
#define GPOUT_SYS_TRACE_DATA2 44
75+
#define GPOUT_SYS_TRACE_DATA3 45
76+
#define GPOUT_SYS_TRACE_REF 46
77+
#define GPOUT_SYS_CAN1_STBY 47
78+
#define GPOUT_SYS_CAN1_TST_NEXT_BIT 48
79+
#define GPOUT_SYS_CAN1_TST_SAMPLE_POINT 49
80+
#define GPOUT_SYS_CAN1_TXD 50
81+
#define GPOUT_SYS_I2C1_CLK 51
82+
#define GPOUT_SYS_I2C1_DATA 52
83+
#define GPOUT_SYS_SDIO1_BACK_END_POWER 53
84+
#define GPOUT_SYS_SDIO1_CARD_POWER_EN 54
85+
#define GPOUT_SYS_SDIO1_CLK 55
86+
#define GPOUT_SYS_SDIO1_CMD_OD_PULLUP_EN 56
87+
#define GPOUT_SYS_SDIO1_CMD 57
88+
#define GPOUT_SYS_SDIO1_DATA0 58
89+
#define GPOUT_SYS_SDIO1_DATA1 59
90+
#define GPOUT_SYS_SDIO1_DATA2 60
91+
#define GPOUT_SYS_SDIO1_DATA3 61
92+
#define GPOUT_SYS_SDIO1_DATA4 63
93+
#define GPOUT_SYS_SDIO1_DATA5 63
94+
#define GPOUT_SYS_SDIO1_DATA6 64
95+
#define GPOUT_SYS_SDIO1_DATA7 65
96+
#define GPOUT_SYS_SDIO1_RST 66
97+
#define GPOUT_SYS_UART1_RTS 67
98+
#define GPOUT_SYS_UART1_TX 68
99+
#define GPOUT_SYS_I2STX1_SDO0 69
100+
#define GPOUT_SYS_I2STX1_SDO1 70
101+
#define GPOUT_SYS_I2STX1_SDO2 71
102+
#define GPOUT_SYS_I2STX1_SDO3 72
103+
#define GPOUT_SYS_SPI1_CLK 73
104+
#define GPOUT_SYS_SPI1_FSS 74
105+
#define GPOUT_SYS_SPI1_TXD 75
106+
#define GPOUT_SYS_I2C2_CLK 76
107+
#define GPOUT_SYS_I2C2_DATA 77
108+
#define GPOUT_SYS_UART2_RTS 78
109+
#define GPOUT_SYS_UART2_TX 79
110+
#define GPOUT_SYS_SPI2_CLK 80
111+
#define GPOUT_SYS_SPI2_FSS 81
112+
#define GPOUT_SYS_SPI2_TXD 82
113+
#define GPOUT_SYS_I2C3_CLK 83
114+
#define GPOUT_SYS_I2C3_DATA 84
115+
#define GPOUT_SYS_UART3_TX 85
116+
#define GPOUT_SYS_SPI3_CLK 86
117+
#define GPOUT_SYS_SPI3_FSS 87
118+
#define GPOUT_SYS_SPI3_TXD 88
119+
#define GPOUT_SYS_I2C4_CLK 89
120+
#define GPOUT_SYS_I2C4_DATA 90
121+
#define GPOUT_SYS_UART4_RTS 91
122+
#define GPOUT_SYS_UART4_TX 92
123+
#define GPOUT_SYS_SPI4_CLK 93
124+
#define GPOUT_SYS_SPI4_FSS 94
125+
#define GPOUT_SYS_SPI4_TXD 95
126+
#define GPOUT_SYS_I2C5_CLK 96
127+
#define GPOUT_SYS_I2C5_DATA 97
128+
#define GPOUT_SYS_UART5_RTS 98
129+
#define GPOUT_SYS_UART5_TX 99
130+
#define GPOUT_SYS_SPI5_CLK 100
131+
#define GPOUT_SYS_SPI5_FSS 101
132+
#define GPOUT_SYS_SPI5_TXD 102
133+
#define GPOUT_SYS_I2C6_CLK 103
134+
#define GPOUT_SYS_I2C6_DATA 104
135+
#define GPOUT_SYS_SPI6_CLK 105
136+
#define GPOUT_SYS_SPI6_FSS 106
137+
#define GPOUT_SYS_SPI6_TXD 107
138+
139+
/* aon_iomux dout */
140+
#define GPOUT_AON_CLK_32K_OUT 2
141+
#define GPOUT_AON_PTC0_PWM4 3
142+
#define GPOUT_AON_PTC0_PWM5 4
143+
#define GPOUT_AON_PTC0_PWM6 5
144+
#define GPOUT_AON_PTC0_PWM7 6
145+
#define GPOUT_AON_CLK_GCLK0 7
146+
#define GPOUT_AON_CLK_GCLK1 8
147+
#define GPOUT_AON_CLK_GCLK2 9
148+
149+
/* sys_iomux doen */
150+
#define GPOEN_ENABLE 0
151+
#define GPOEN_DISABLE 1
152+
#define GPOEN_SYS_HDMI_CEC_SDA 2
153+
#define GPOEN_SYS_HDMI_DDC_SCL 3
154+
#define GPOEN_SYS_HDMI_DDC_SDA 4
155+
#define GPOEN_SYS_I2C0_CLK 5
156+
#define GPOEN_SYS_I2C0_DATA 6
157+
#define GPOEN_SYS_HIFI4_JTAG_TDO 7
158+
#define GPOEN_SYS_JTAG_TDO 8
159+
#define GPOEN_SYS_PWM0_CHANNEL0 9
160+
#define GPOEN_SYS_PWM0_CHANNEL1 10
161+
#define GPOEN_SYS_PWM0_CHANNEL2 11
162+
#define GPOEN_SYS_PWM0_CHANNEL3 12
163+
#define GPOEN_SYS_SPI0_NSSPCTL 13
164+
#define GPOEN_SYS_SPI0_NSSP 14
165+
#define GPOEN_SYS_TDM_SYNC 15
166+
#define GPOEN_SYS_TDM_TXD 16
167+
#define GPOEN_SYS_I2C1_CLK 17
168+
#define GPOEN_SYS_I2C1_DATA 18
169+
#define GPOEN_SYS_SDIO1_CMD 19
170+
#define GPOEN_SYS_SDIO1_DATA0 20
171+
#define GPOEN_SYS_SDIO1_DATA1 21
172+
#define GPOEN_SYS_SDIO1_DATA2 22
173+
#define GPOEN_SYS_SDIO1_DATA3 23
174+
#define GPOEN_SYS_SDIO1_DATA4 24
175+
#define GPOEN_SYS_SDIO1_DATA5 25
176+
#define GPOEN_SYS_SDIO1_DATA6 26
177+
#define GPOEN_SYS_SDIO1_DATA7 27
178+
#define GPOEN_SYS_SPI1_NSSPCTL 28
179+
#define GPOEN_SYS_SPI1_NSSP 29
180+
#define GPOEN_SYS_I2C2_CLK 30
181+
#define GPOEN_SYS_I2C2_DATA 31
182+
#define GPOEN_SYS_SPI2_NSSPCTL 32
183+
#define GPOEN_SYS_SPI2_NSSP 33
184+
#define GPOEN_SYS_I2C3_CLK 34
185+
#define GPOEN_SYS_I2C3_DATA 35
186+
#define GPOEN_SYS_SPI3_NSSPCTL 36
187+
#define GPOEN_SYS_SPI3_NSSP 37
188+
#define GPOEN_SYS_I2C4_CLK 38
189+
#define GPOEN_SYS_I2C4_DATA 39
190+
#define GPOEN_SYS_SPI4_NSSPCTL 40
191+
#define GPOEN_SYS_SPI4_NSSP 41
192+
#define GPOEN_SYS_I2C5_CLK 42
193+
#define GPOEN_SYS_I2C5_DATA 43
194+
#define GPOEN_SYS_SPI5_NSSPCTL 44
195+
#define GPOEN_SYS_SPI5_NSSP 45
196+
#define GPOEN_SYS_I2C6_CLK 46
197+
#define GPOEN_SYS_I2C6_DATA 47
198+
#define GPOEN_SYS_SPI6_NSSPCTL 48
199+
#define GPOEN_SYS_SPI6_NSSP 49
200+
201+
/* aon_iomux doen */
202+
#define GPOEN_AON_PTC0_OE_N_4 2
203+
#define GPOEN_AON_PTC0_OE_N_5 3
204+
#define GPOEN_AON_PTC0_OE_N_6 4
205+
#define GPOEN_AON_PTC0_OE_N_7 5
206+
207+
/* sys_iomux gin */
208+
#define GPI_NONE 255
209+
210+
#define GPI_SYS_WAVE511_UART_RX 0
211+
#define GPI_SYS_CAN0_RXD 1
212+
#define GPI_SYS_USB_OVERCURRENT 2
213+
#define GPI_SYS_SPDIF 3
214+
#define GPI_SYS_JTAG_RST 4
215+
#define GPI_SYS_HDMI_CEC_SDA 5
216+
#define GPI_SYS_HDMI_DDC_SCL 6
217+
#define GPI_SYS_HDMI_DDC_SDA 7
218+
#define GPI_SYS_HDMI_HPD 8
219+
#define GPI_SYS_I2C0_CLK 9
220+
#define GPI_SYS_I2C0_DATA 10
221+
#define GPI_SYS_SDIO0_CD 11
222+
#define GPI_SYS_SDIO0_INT 12
223+
#define GPI_SYS_SDIO0_WP 13
224+
#define GPI_SYS_UART0_RX 14
225+
#define GPI_SYS_HIFI4_JTAG_TCK 15
226+
#define GPI_SYS_HIFI4_JTAG_TDI 16
227+
#define GPI_SYS_HIFI4_JTAG_TMS 17
228+
#define GPI_SYS_HIFI4_JTAG_RST 18
229+
#define GPI_SYS_JTAG_TDI 19
230+
#define GPI_SYS_JTAG_TMS 20
231+
#define GPI_SYS_PDM_DMIC0 21
232+
#define GPI_SYS_PDM_DMIC1 22
233+
#define GPI_SYS_I2SRX_SDIN0 23
234+
#define GPI_SYS_I2SRX_SDIN1 24
235+
#define GPI_SYS_I2SRX_SDIN2 25
236+
#define GPI_SYS_SPI0_CLK 26
237+
#define GPI_SYS_SPI0_FSS 27
238+
#define GPI_SYS_SPI0_RXD 28
239+
#define GPI_SYS_JTAG_TCK 29
240+
#define GPI_SYS_MCLK_EXT 30
241+
#define GPI_SYS_I2SRX_BCLK 31
242+
#define GPI_SYS_I2SRX_LRCK 32
243+
#define GPI_SYS_I2STX0_BCLK 33
244+
#define GPI_SYS_I2STX0_LRCK 34
245+
#define GPI_SYS_TDM_CLK 35
246+
#define GPI_SYS_TDM_RXD 36
247+
#define GPI_SYS_TDM_SYNC 37
248+
#define GPI_SYS_CAN1_RXD 38
249+
#define GPI_SYS_I2C1_CLK 39
250+
#define GPI_SYS_I2C1_DATA 40
251+
#define GPI_SYS_SDIO1_CD 41
252+
#define GPI_SYS_SDIO1_INT 42
253+
#define GPI_SYS_SDIO1_WP 43
254+
#define GPI_SYS_SDIO1_CMD 44
255+
#define GPI_SYS_SDIO1_DATA0 45
256+
#define GPI_SYS_SDIO1_DATA1 46
257+
#define GPI_SYS_SDIO1_DATA2 47
258+
#define GPI_SYS_SDIO1_DATA3 48
259+
#define GPI_SYS_SDIO1_DATA4 49
260+
#define GPI_SYS_SDIO1_DATA5 50
261+
#define GPI_SYS_SDIO1_DATA6 51
262+
#define GPI_SYS_SDIO1_DATA7 52
263+
#define GPI_SYS_SDIO1_STRB 53
264+
#define GPI_SYS_UART1_CTS 54
265+
#define GPI_SYS_UART1_RX 55
266+
#define GPI_SYS_SPI1_CLK 56
267+
#define GPI_SYS_SPI1_FSS 57
268+
#define GPI_SYS_SPI1_RXD 58
269+
#define GPI_SYS_I2C2_CLK 59
270+
#define GPI_SYS_I2C2_DATA 60
271+
#define GPI_SYS_UART2_CTS 61
272+
#define GPI_SYS_UART2_RX 62
273+
#define GPI_SYS_SPI2_CLK 63
274+
#define GPI_SYS_SPI2_FSS 64
275+
#define GPI_SYS_SPI2_RXD 65
276+
#define GPI_SYS_I2C3_CLK 66
277+
#define GPI_SYS_I2C3_DATA 67
278+
#define GPI_SYS_UART3_RX 68
279+
#define GPI_SYS_SPI3_CLK 69
280+
#define GPI_SYS_SPI3_FSS 70
281+
#define GPI_SYS_SPI3_RXD 71
282+
#define GPI_SYS_I2C4_CLK 72
283+
#define GPI_SYS_I2C4_DATA 73
284+
#define GPI_SYS_UART4_CTS 74
285+
#define GPI_SYS_UART4_RX 75
286+
#define GPI_SYS_SPI4_CLK 76
287+
#define GPI_SYS_SPI4_FSS 77
288+
#define GPI_SYS_SPI4_RXD 78
289+
#define GPI_SYS_I2C5_CLK 79
290+
#define GPI_SYS_I2C5_DATA 80
291+
#define GPI_SYS_UART5_CTS 81
292+
#define GPI_SYS_UART5_RX 82
293+
#define GPI_SYS_SPI5_CLK 83
294+
#define GPI_SYS_SPI5_FSS 84
295+
#define GPI_SYS_SPI5_RXD 85
296+
#define GPI_SYS_I2C6_CLK 86
297+
#define GPI_SYS_I2C6_DATA 87
298+
#define GPI_SYS_SPI6_CLK 88
299+
#define GPI_SYS_SPI6_FSS 89
300+
#define GPI_SYS_SPI6_RXD 90
301+
302+
/* aon_iomux gin */
303+
#define GPI_AON_PMU_GPIO_WAKEUP_0 0
304+
#define GPI_AON_PMU_GPIO_WAKEUP_1 1
305+
#define GPI_AON_PMU_GPIO_WAKEUP_2 2
306+
#define GPI_AON_PMU_GPIO_WAKEUP_3 3
307+
308+
#endif

0 commit comments

Comments
 (0)