Skip to content

Commit 2f8b5eb

Browse files
ychuang3arndb
authored andcommitted
dt-bindings: clock: nuvoton: add binding for ma35d1 clock controller
Add the dt-bindings header for Nuvoton ma35d1, that gets shared between the clock controller and clock references in the dts. Add documentation to describe nuvoton ma35d1 clock driver. Signed-off-by: Jacky Huang <ychuang3@nuvoton.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
1 parent 4cc2272 commit 2f8b5eb

2 files changed

Lines changed: 316 additions & 0 deletions

File tree

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/clock/nuvoton,ma35d1-clk.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Nuvoton MA35D1 Clock Controller Module
8+
9+
maintainers:
10+
- Chi-Fang Li <cfli0@nuvoton.com>
11+
- Jacky Huang <ychuang3@nuvoton.com>
12+
13+
description: |
14+
The MA35D1 clock controller generates clocks for the whole chip,
15+
including system clocks and all peripheral clocks.
16+
17+
See also:
18+
include/dt-bindings/clock/ma35d1-clk.h
19+
20+
properties:
21+
compatible:
22+
items:
23+
- const: nuvoton,ma35d1-clk
24+
25+
reg:
26+
maxItems: 1
27+
28+
"#clock-cells":
29+
const: 1
30+
31+
clocks:
32+
maxItems: 1
33+
34+
nuvoton,pll-mode:
35+
description:
36+
A list of PLL operation mode corresponding to CAPLL, DDRPLL, APLL,
37+
EPLL, and VPLL in sequential.
38+
maxItems: 5
39+
items:
40+
enum:
41+
- integer
42+
- fractional
43+
- spread-spectrum
44+
$ref: /schemas/types.yaml#/definitions/non-unique-string-array
45+
46+
required:
47+
- compatible
48+
- reg
49+
- "#clock-cells"
50+
- clocks
51+
52+
additionalProperties: false
53+
54+
examples:
55+
- |
56+
57+
clock-controller@40460200 {
58+
compatible = "nuvoton,ma35d1-clk";
59+
reg = <0x40460200 0x100>;
60+
#clock-cells = <1>;
61+
clocks = <&clk_hxt>;
62+
};
63+
...
Lines changed: 253 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,253 @@
1+
/* SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) */
2+
/*
3+
* Copyright (C) 2023 Nuvoton Technologies.
4+
*/
5+
6+
#ifndef __DT_BINDINGS_CLOCK_NUVOTON_MA35D1_CLK_H
7+
#define __DT_BINDINGS_CLOCK_NUVOTON_MA35D1_CLK_H
8+
9+
/* external and internal oscillator clocks */
10+
#define HXT 0
11+
#define HXT_GATE 1
12+
#define LXT 2
13+
#define LXT_GATE 3
14+
#define HIRC 4
15+
#define HIRC_GATE 5
16+
#define LIRC 6
17+
#define LIRC_GATE 7
18+
/* PLLs */
19+
#define CAPLL 8
20+
#define SYSPLL 9
21+
#define DDRPLL 10
22+
#define APLL 11
23+
#define EPLL 12
24+
#define VPLL 13
25+
/* EPLL divider */
26+
#define EPLL_DIV2 14
27+
#define EPLL_DIV4 15
28+
#define EPLL_DIV8 16
29+
/* CPU clock, system clock, AXI, HCLK and PCLK */
30+
#define CA35CLK_MUX 17
31+
#define AXICLK_DIV2 18
32+
#define AXICLK_DIV4 19
33+
#define AXICLK_MUX 20
34+
#define SYSCLK0_MUX 21
35+
#define SYSCLK1_MUX 22
36+
#define SYSCLK1_DIV2 23
37+
#define HCLK0 24
38+
#define HCLK1 25
39+
#define HCLK2 26
40+
#define PCLK0 27
41+
#define PCLK1 28
42+
#define PCLK2 29
43+
#define HCLK3 30
44+
#define PCLK3 31
45+
#define PCLK4 32
46+
/* AXI and AHB peripheral clocks */
47+
#define USBPHY0 33
48+
#define USBPHY1 34
49+
#define DDR0_GATE 35
50+
#define DDR6_GATE 36
51+
#define CAN0_MUX 37
52+
#define CAN0_DIV 38
53+
#define CAN0_GATE 39
54+
#define CAN1_MUX 40
55+
#define CAN1_DIV 41
56+
#define CAN1_GATE 42
57+
#define CAN2_MUX 43
58+
#define CAN2_DIV 44
59+
#define CAN2_GATE 45
60+
#define CAN3_MUX 46
61+
#define CAN3_DIV 47
62+
#define CAN3_GATE 48
63+
#define SDH0_MUX 49
64+
#define SDH0_GATE 50
65+
#define SDH1_MUX 51
66+
#define SDH1_GATE 52
67+
#define NAND_GATE 53
68+
#define USBD_GATE 54
69+
#define USBH_GATE 55
70+
#define HUSBH0_GATE 56
71+
#define HUSBH1_GATE 57
72+
#define GFX_MUX 58
73+
#define GFX_GATE 59
74+
#define VC8K_GATE 60
75+
#define DCU_MUX 61
76+
#define DCU_GATE 62
77+
#define DCUP_DIV 63
78+
#define EMAC0_GATE 64
79+
#define EMAC1_GATE 65
80+
#define CCAP0_MUX 66
81+
#define CCAP0_DIV 67
82+
#define CCAP0_GATE 68
83+
#define CCAP1_MUX 69
84+
#define CCAP1_DIV 70
85+
#define CCAP1_GATE 71
86+
#define PDMA0_GATE 72
87+
#define PDMA1_GATE 73
88+
#define PDMA2_GATE 74
89+
#define PDMA3_GATE 75
90+
#define WH0_GATE 76
91+
#define WH1_GATE 77
92+
#define HWS_GATE 78
93+
#define EBI_GATE 79
94+
#define SRAM0_GATE 80
95+
#define SRAM1_GATE 81
96+
#define ROM_GATE 82
97+
#define TRA_GATE 83
98+
#define DBG_MUX 84
99+
#define DBG_GATE 85
100+
#define CKO_MUX 86
101+
#define CKO_DIV 87
102+
#define CKO_GATE 88
103+
#define GTMR_GATE 89
104+
#define GPA_GATE 90
105+
#define GPB_GATE 91
106+
#define GPC_GATE 92
107+
#define GPD_GATE 93
108+
#define GPE_GATE 94
109+
#define GPF_GATE 95
110+
#define GPG_GATE 96
111+
#define GPH_GATE 97
112+
#define GPI_GATE 98
113+
#define GPJ_GATE 99
114+
#define GPK_GATE 100
115+
#define GPL_GATE 101
116+
#define GPM_GATE 102
117+
#define GPN_GATE 103
118+
/* APB peripheral clocks */
119+
#define TMR0_MUX 104
120+
#define TMR0_GATE 105
121+
#define TMR1_MUX 106
122+
#define TMR1_GATE 107
123+
#define TMR2_MUX 108
124+
#define TMR2_GATE 109
125+
#define TMR3_MUX 110
126+
#define TMR3_GATE 111
127+
#define TMR4_MUX 112
128+
#define TMR4_GATE 113
129+
#define TMR5_MUX 114
130+
#define TMR5_GATE 115
131+
#define TMR6_MUX 116
132+
#define TMR6_GATE 117
133+
#define TMR7_MUX 118
134+
#define TMR7_GATE 119
135+
#define TMR8_MUX 120
136+
#define TMR8_GATE 121
137+
#define TMR9_MUX 122
138+
#define TMR9_GATE 123
139+
#define TMR10_MUX 124
140+
#define TMR10_GATE 125
141+
#define TMR11_MUX 126
142+
#define TMR11_GATE 127
143+
#define UART0_MUX 128
144+
#define UART0_DIV 129
145+
#define UART0_GATE 130
146+
#define UART1_MUX 131
147+
#define UART1_DIV 132
148+
#define UART1_GATE 133
149+
#define UART2_MUX 134
150+
#define UART2_DIV 135
151+
#define UART2_GATE 136
152+
#define UART3_MUX 137
153+
#define UART3_DIV 138
154+
#define UART3_GATE 139
155+
#define UART4_MUX 140
156+
#define UART4_DIV 141
157+
#define UART4_GATE 142
158+
#define UART5_MUX 143
159+
#define UART5_DIV 144
160+
#define UART5_GATE 145
161+
#define UART6_MUX 146
162+
#define UART6_DIV 147
163+
#define UART6_GATE 148
164+
#define UART7_MUX 149
165+
#define UART7_DIV 150
166+
#define UART7_GATE 151
167+
#define UART8_MUX 152
168+
#define UART8_DIV 153
169+
#define UART8_GATE 154
170+
#define UART9_MUX 155
171+
#define UART9_DIV 156
172+
#define UART9_GATE 157
173+
#define UART10_MUX 158
174+
#define UART10_DIV 159
175+
#define UART10_GATE 160
176+
#define UART11_MUX 161
177+
#define UART11_DIV 162
178+
#define UART11_GATE 163
179+
#define UART12_MUX 164
180+
#define UART12_DIV 165
181+
#define UART12_GATE 166
182+
#define UART13_MUX 167
183+
#define UART13_DIV 168
184+
#define UART13_GATE 169
185+
#define UART14_MUX 170
186+
#define UART14_DIV 171
187+
#define UART14_GATE 172
188+
#define UART15_MUX 173
189+
#define UART15_DIV 174
190+
#define UART15_GATE 175
191+
#define UART16_MUX 176
192+
#define UART16_DIV 177
193+
#define UART16_GATE 178
194+
#define RTC_GATE 179
195+
#define DDR_GATE 180
196+
#define KPI_MUX 181
197+
#define KPI_DIV 182
198+
#define KPI_GATE 183
199+
#define I2C0_GATE 184
200+
#define I2C1_GATE 185
201+
#define I2C2_GATE 186
202+
#define I2C3_GATE 187
203+
#define I2C4_GATE 188
204+
#define I2C5_GATE 189
205+
#define QSPI0_MUX 190
206+
#define QSPI0_GATE 191
207+
#define QSPI1_MUX 192
208+
#define QSPI1_GATE 193
209+
#define SMC0_MUX 194
210+
#define SMC0_DIV 195
211+
#define SMC0_GATE 196
212+
#define SMC1_MUX 197
213+
#define SMC1_DIV 198
214+
#define SMC1_GATE 199
215+
#define WDT0_MUX 200
216+
#define WDT0_GATE 201
217+
#define WDT1_MUX 202
218+
#define WDT1_GATE 203
219+
#define WDT2_MUX 204
220+
#define WDT2_GATE 205
221+
#define WWDT0_MUX 206
222+
#define WWDT1_MUX 207
223+
#define WWDT2_MUX 208
224+
#define EPWM0_GATE 209
225+
#define EPWM1_GATE 210
226+
#define EPWM2_GATE 211
227+
#define I2S0_MUX 212
228+
#define I2S0_GATE 213
229+
#define I2S1_MUX 214
230+
#define I2S1_GATE 215
231+
#define SSMCC_GATE 216
232+
#define SSPCC_GATE 217
233+
#define SPI0_MUX 218
234+
#define SPI0_GATE 219
235+
#define SPI1_MUX 220
236+
#define SPI1_GATE 221
237+
#define SPI2_MUX 222
238+
#define SPI2_GATE 223
239+
#define SPI3_MUX 224
240+
#define SPI3_GATE 225
241+
#define ECAP0_GATE 226
242+
#define ECAP1_GATE 227
243+
#define ECAP2_GATE 228
244+
#define QEI0_GATE 229
245+
#define QEI1_GATE 230
246+
#define QEI2_GATE 231
247+
#define ADC_DIV 232
248+
#define ADC_GATE 233
249+
#define EADC_DIV 234
250+
#define EADC_GATE 235
251+
#define CLK_MAX_IDX 236
252+
253+
#endif /* __DT_BINDINGS_CLOCK_NUVOTON_MA35D1_CLK_H */

0 commit comments

Comments
 (0)