Skip to content

Commit 25a59e8

Browse files
alexelderdlan17
authored andcommitted
dt-bindings: soc: spacemit: define spacemit,k1-ccu resets
There are additional SpacemiT syscon CCUs whose registers control both clocks and resets: RCPU, RCPU2, and APBC2. Unlike those defined previously, these will (initially) support only resets. They do not incorporate power domain functionality. Previously the clock properties were required for all compatible nodes. Make that requirement only apply to the three existing CCUs (APBC, APMU, and MPMU), so that the new reset-only CCUs can go without specifying them. Define the index values for resets associated with all SpacemiT K1 syscon nodes, including those with clocks already defined, as well as the new ones (without clocks). Signed-off-by: Alex Elder <[email protected]> Reviewed-by: Krzysztof Kozlowski <[email protected]> Reviewed-by: Yixun Lan <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Yixun Lan <[email protected]>
1 parent 19272b3 commit 25a59e8

File tree

2 files changed

+162
-6
lines changed

2 files changed

+162
-6
lines changed

Documentation/devicetree/bindings/soc/spacemit/spacemit,k1-syscon.yaml

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ properties:
1919
- spacemit,k1-syscon-apbc
2020
- spacemit,k1-syscon-apmu
2121
- spacemit,k1-syscon-mpmu
22+
- spacemit,k1-syscon-rcpu
23+
- spacemit,k1-syscon-rcpu2
24+
- spacemit,k1-syscon-apbc2
2225

2326
reg:
2427
maxItems: 1
@@ -47,23 +50,35 @@ properties:
4750
required:
4851
- compatible
4952
- reg
50-
- clocks
51-
- clock-names
52-
- "#clock-cells"
5353
- "#reset-cells"
5454

5555
allOf:
5656
- if:
5757
properties:
5858
compatible:
5959
contains:
60-
const: spacemit,k1-syscon-apbc
60+
enum:
61+
- spacemit,k1-syscon-apmu
62+
- spacemit,k1-syscon-mpmu
6163
then:
64+
required:
65+
- "#power-domain-cells"
66+
else:
6267
properties:
6368
"#power-domain-cells": false
64-
else:
69+
- if:
70+
properties:
71+
compatible:
72+
contains:
73+
enum:
74+
- spacemit,k1-syscon-apbc
75+
- spacemit,k1-syscon-apmu
76+
- spacemit,k1-syscon-mpmu
77+
then:
6578
required:
66-
- "#power-domain-cells"
79+
- clocks
80+
- clock-names
81+
- "#clock-cells"
6782

6883
additionalProperties: false
6984

include/dt-bindings/clock/spacemit,k1-syscon.h

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,9 @@
7878
#define CLK_APB 31
7979
#define CLK_WDT_BUS 32
8080

81+
/* MPMU resets */
82+
#define RESET_WDT 0
83+
8184
/* APBC clocks */
8285
#define CLK_UART0 0
8386
#define CLK_UART2 1
@@ -180,6 +183,59 @@
180183
#define CLK_TSEN_BUS 98
181184
#define CLK_IPC_AP2AUD_BUS 99
182185

186+
/* APBC resets */
187+
#define RESET_UART0 0
188+
#define RESET_UART2 1
189+
#define RESET_UART3 2
190+
#define RESET_UART4 3
191+
#define RESET_UART5 4
192+
#define RESET_UART6 5
193+
#define RESET_UART7 6
194+
#define RESET_UART8 7
195+
#define RESET_UART9 8
196+
#define RESET_GPIO 9
197+
#define RESET_PWM0 10
198+
#define RESET_PWM1 11
199+
#define RESET_PWM2 12
200+
#define RESET_PWM3 13
201+
#define RESET_PWM4 14
202+
#define RESET_PWM5 15
203+
#define RESET_PWM6 16
204+
#define RESET_PWM7 17
205+
#define RESET_PWM8 18
206+
#define RESET_PWM9 19
207+
#define RESET_PWM10 20
208+
#define RESET_PWM11 21
209+
#define RESET_PWM12 22
210+
#define RESET_PWM13 23
211+
#define RESET_PWM14 24
212+
#define RESET_PWM15 25
213+
#define RESET_PWM16 26
214+
#define RESET_PWM17 27
215+
#define RESET_PWM18 28
216+
#define RESET_PWM19 29
217+
#define RESET_SSP3 30
218+
#define RESET_RTC 31
219+
#define RESET_TWSI0 32
220+
#define RESET_TWSI1 33
221+
#define RESET_TWSI2 34
222+
#define RESET_TWSI4 35
223+
#define RESET_TWSI5 36
224+
#define RESET_TWSI6 37
225+
#define RESET_TWSI7 38
226+
#define RESET_TWSI8 39
227+
#define RESET_TIMERS1 40
228+
#define RESET_TIMERS2 41
229+
#define RESET_AIB 42
230+
#define RESET_ONEWIRE 43
231+
#define RESET_SSPA0 44
232+
#define RESET_SSPA1 45
233+
#define RESET_DRO 46
234+
#define RESET_IR 47
235+
#define RESET_TSEN 48
236+
#define RESET_IPC_AP2AUD 49
237+
#define RESET_CAN0 50
238+
183239
/* APMU clocks */
184240
#define CLK_CCI550 0
185241
#define CLK_CPU_C0_HI 1
@@ -244,4 +300,89 @@
244300
#define CLK_V2D 60
245301
#define CLK_EMMC_BUS 61
246302

303+
/* APMU resets */
304+
#define RESET_CCIC_4X 0
305+
#define RESET_CCIC1_PHY 1
306+
#define RESET_SDH_AXI 2
307+
#define RESET_SDH0 3
308+
#define RESET_SDH1 4
309+
#define RESET_SDH2 5
310+
#define RESET_USBP1_AXI 6
311+
#define RESET_USB_AXI 7
312+
#define RESET_USB30_AHB 8
313+
#define RESET_USB30_VCC 9
314+
#define RESET_USB30_PHY 10
315+
#define RESET_QSPI 11
316+
#define RESET_QSPI_BUS 12
317+
#define RESET_DMA 13
318+
#define RESET_AES 14
319+
#define RESET_VPU 15
320+
#define RESET_GPU 16
321+
#define RESET_EMMC 17
322+
#define RESET_EMMC_X 18
323+
#define RESET_AUDIO_SYS 19
324+
#define RESET_AUDIO_MCU 20
325+
#define RESET_AUDIO_APMU 21
326+
#define RESET_HDMI 22
327+
#define RESET_PCIE0_MASTER 23
328+
#define RESET_PCIE0_SLAVE 24
329+
#define RESET_PCIE0_DBI 25
330+
#define RESET_PCIE0_GLOBAL 26
331+
#define RESET_PCIE1_MASTER 27
332+
#define RESET_PCIE1_SLAVE 28
333+
#define RESET_PCIE1_DBI 29
334+
#define RESET_PCIE1_GLOBAL 30
335+
#define RESET_PCIE2_MASTER 31
336+
#define RESET_PCIE2_SLAVE 32
337+
#define RESET_PCIE2_DBI 33
338+
#define RESET_PCIE2_GLOBAL 34
339+
#define RESET_EMAC0 35
340+
#define RESET_EMAC1 36
341+
#define RESET_JPG 37
342+
#define RESET_CCIC2PHY 38
343+
#define RESET_CCIC3PHY 39
344+
#define RESET_CSI 40
345+
#define RESET_ISP_CPP 41
346+
#define RESET_ISP_BUS 42
347+
#define RESET_ISP 43
348+
#define RESET_ISP_CI 44
349+
#define RESET_DPU_MCLK 45
350+
#define RESET_DPU_ESC 46
351+
#define RESET_DPU_HCLK 47
352+
#define RESET_DPU_SPIBUS 48
353+
#define RESET_DPU_SPI_HBUS 49
354+
#define RESET_V2D 50
355+
#define RESET_MIPI 51
356+
#define RESET_MC 52
357+
358+
/* RCPU resets */
359+
#define RESET_RCPU_SSP0 0
360+
#define RESET_RCPU_I2C0 1
361+
#define RESET_RCPU_UART1 2
362+
#define RESET_RCPU_IR 3
363+
#define RESET_RCPU_CAN 4
364+
#define RESET_RCPU_UART0 5
365+
#define RESET_RCPU_HDMI_AUDIO 6
366+
367+
/* RCPU2 resets */
368+
#define RESET_RCPU2_PWM0 0
369+
#define RESET_RCPU2_PWM1 1
370+
#define RESET_RCPU2_PWM2 2
371+
#define RESET_RCPU2_PWM3 3
372+
#define RESET_RCPU2_PWM4 4
373+
#define RESET_RCPU2_PWM5 5
374+
#define RESET_RCPU2_PWM6 6
375+
#define RESET_RCPU2_PWM7 7
376+
#define RESET_RCPU2_PWM8 8
377+
#define RESET_RCPU2_PWM9 9
378+
379+
/* APBC2 resets */
380+
#define RESET_APBC2_UART1 0
381+
#define RESET_APBC2_SSP2 1
382+
#define RESET_APBC2_TWSI3 2
383+
#define RESET_APBC2_RTC 3
384+
#define RESET_APBC2_TIMERS0 4
385+
#define RESET_APBC2_KPC 5
386+
#define RESET_APBC2_GPIO 6
387+
247388
#endif /* _DT_BINDINGS_SPACEMIT_CCU_H_ */

0 commit comments

Comments
 (0)