xref: /freebsd/sys/contrib/device-tree/include/dt-bindings/clock/pistachio-clk.h (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot /* SPDX-License-Identifier: GPL-2.0-only */
2*c66ec88fSEmmanuel Vadot /*
3*c66ec88fSEmmanuel Vadot  * Copyright (C) 2014 Google, Inc.
4*c66ec88fSEmmanuel Vadot  */
5*c66ec88fSEmmanuel Vadot 
6*c66ec88fSEmmanuel Vadot #ifndef _DT_BINDINGS_CLOCK_PISTACHIO_H
7*c66ec88fSEmmanuel Vadot #define _DT_BINDINGS_CLOCK_PISTACHIO_H
8*c66ec88fSEmmanuel Vadot 
9*c66ec88fSEmmanuel Vadot /* PLLs */
10*c66ec88fSEmmanuel Vadot #define CLK_MIPS_PLL			0
11*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_PLL			1
12*c66ec88fSEmmanuel Vadot #define CLK_RPU_V_PLL			2
13*c66ec88fSEmmanuel Vadot #define CLK_RPU_L_PLL			3
14*c66ec88fSEmmanuel Vadot #define CLK_SYS_PLL			4
15*c66ec88fSEmmanuel Vadot #define CLK_WIFI_PLL			5
16*c66ec88fSEmmanuel Vadot #define CLK_BT_PLL			6
17*c66ec88fSEmmanuel Vadot 
18*c66ec88fSEmmanuel Vadot /* Fixed-factor clocks */
19*c66ec88fSEmmanuel Vadot #define CLK_WIFI_DIV4			16
20*c66ec88fSEmmanuel Vadot #define CLK_WIFI_DIV8			17
21*c66ec88fSEmmanuel Vadot 
22*c66ec88fSEmmanuel Vadot /* Gate clocks */
23*c66ec88fSEmmanuel Vadot #define CLK_MIPS			32
24*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_IN			33
25*c66ec88fSEmmanuel Vadot #define CLK_AUDIO			34
26*c66ec88fSEmmanuel Vadot #define CLK_I2S				35
27*c66ec88fSEmmanuel Vadot #define CLK_SPDIF			36
28*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_DAC			37
29*c66ec88fSEmmanuel Vadot #define CLK_RPU_V			38
30*c66ec88fSEmmanuel Vadot #define CLK_RPU_L			39
31*c66ec88fSEmmanuel Vadot #define CLK_RPU_SLEEP			40
32*c66ec88fSEmmanuel Vadot #define CLK_WIFI_PLL_GATE		41
33*c66ec88fSEmmanuel Vadot #define CLK_RPU_CORE			42
34*c66ec88fSEmmanuel Vadot #define CLK_WIFI_ADC			43
35*c66ec88fSEmmanuel Vadot #define CLK_WIFI_DAC			44
36*c66ec88fSEmmanuel Vadot #define CLK_USB_PHY			45
37*c66ec88fSEmmanuel Vadot #define CLK_ENET_IN			46
38*c66ec88fSEmmanuel Vadot #define CLK_ENET			47
39*c66ec88fSEmmanuel Vadot #define CLK_UART0			48
40*c66ec88fSEmmanuel Vadot #define CLK_UART1			49
41*c66ec88fSEmmanuel Vadot #define CLK_PERIPH_SYS			50
42*c66ec88fSEmmanuel Vadot #define CLK_SPI0			51
43*c66ec88fSEmmanuel Vadot #define CLK_SPI1			52
44*c66ec88fSEmmanuel Vadot #define CLK_EVENT_TIMER			53
45*c66ec88fSEmmanuel Vadot #define CLK_AUX_ADC_INTERNAL		54
46*c66ec88fSEmmanuel Vadot #define CLK_AUX_ADC			55
47*c66ec88fSEmmanuel Vadot #define CLK_SD_HOST			56
48*c66ec88fSEmmanuel Vadot #define CLK_BT				57
49*c66ec88fSEmmanuel Vadot #define CLK_BT_DIV4			58
50*c66ec88fSEmmanuel Vadot #define CLK_BT_DIV8			59
51*c66ec88fSEmmanuel Vadot #define CLK_BT_1MHZ			60
52*c66ec88fSEmmanuel Vadot 
53*c66ec88fSEmmanuel Vadot /* Divider clocks */
54*c66ec88fSEmmanuel Vadot #define CLK_MIPS_INTERNAL_DIV		64
55*c66ec88fSEmmanuel Vadot #define CLK_MIPS_DIV			65
56*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_DIV			66
57*c66ec88fSEmmanuel Vadot #define CLK_I2S_DIV			67
58*c66ec88fSEmmanuel Vadot #define CLK_SPDIF_DIV			68
59*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_DAC_DIV		69
60*c66ec88fSEmmanuel Vadot #define CLK_RPU_V_DIV			70
61*c66ec88fSEmmanuel Vadot #define CLK_RPU_L_DIV			71
62*c66ec88fSEmmanuel Vadot #define CLK_RPU_SLEEP_DIV		72
63*c66ec88fSEmmanuel Vadot #define CLK_RPU_CORE_DIV		73
64*c66ec88fSEmmanuel Vadot #define CLK_USB_PHY_DIV			74
65*c66ec88fSEmmanuel Vadot #define CLK_ENET_DIV			75
66*c66ec88fSEmmanuel Vadot #define CLK_UART0_INTERNAL_DIV		76
67*c66ec88fSEmmanuel Vadot #define CLK_UART0_DIV			77
68*c66ec88fSEmmanuel Vadot #define CLK_UART1_INTERNAL_DIV		78
69*c66ec88fSEmmanuel Vadot #define CLK_UART1_DIV			79
70*c66ec88fSEmmanuel Vadot #define CLK_SYS_INTERNAL_DIV		80
71*c66ec88fSEmmanuel Vadot #define CLK_SPI0_INTERNAL_DIV		81
72*c66ec88fSEmmanuel Vadot #define CLK_SPI0_DIV			82
73*c66ec88fSEmmanuel Vadot #define CLK_SPI1_INTERNAL_DIV		83
74*c66ec88fSEmmanuel Vadot #define CLK_SPI1_DIV			84
75*c66ec88fSEmmanuel Vadot #define CLK_EVENT_TIMER_INTERNAL_DIV	85
76*c66ec88fSEmmanuel Vadot #define CLK_EVENT_TIMER_DIV		86
77*c66ec88fSEmmanuel Vadot #define CLK_AUX_ADC_INTERNAL_DIV	87
78*c66ec88fSEmmanuel Vadot #define CLK_AUX_ADC_DIV			88
79*c66ec88fSEmmanuel Vadot #define CLK_SD_HOST_DIV			89
80*c66ec88fSEmmanuel Vadot #define CLK_BT_DIV			90
81*c66ec88fSEmmanuel Vadot #define CLK_BT_DIV4_DIV			91
82*c66ec88fSEmmanuel Vadot #define CLK_BT_DIV8_DIV			92
83*c66ec88fSEmmanuel Vadot #define CLK_BT_1MHZ_INTERNAL_DIV	93
84*c66ec88fSEmmanuel Vadot #define CLK_BT_1MHZ_DIV			94
85*c66ec88fSEmmanuel Vadot 
86*c66ec88fSEmmanuel Vadot /* Mux clocks */
87*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_REF_MUX		96
88*c66ec88fSEmmanuel Vadot #define CLK_MIPS_PLL_MUX		97
89*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_PLL_MUX		98
90*c66ec88fSEmmanuel Vadot #define CLK_AUDIO_MUX			99
91*c66ec88fSEmmanuel Vadot #define CLK_RPU_V_PLL_MUX		100
92*c66ec88fSEmmanuel Vadot #define CLK_RPU_L_PLL_MUX		101
93*c66ec88fSEmmanuel Vadot #define CLK_RPU_L_MUX			102
94*c66ec88fSEmmanuel Vadot #define CLK_WIFI_PLL_MUX		103
95*c66ec88fSEmmanuel Vadot #define CLK_WIFI_DIV4_MUX		104
96*c66ec88fSEmmanuel Vadot #define CLK_WIFI_DIV8_MUX		105
97*c66ec88fSEmmanuel Vadot #define CLK_RPU_CORE_MUX		106
98*c66ec88fSEmmanuel Vadot #define CLK_SYS_PLL_MUX			107
99*c66ec88fSEmmanuel Vadot #define CLK_ENET_MUX			108
100*c66ec88fSEmmanuel Vadot #define CLK_EVENT_TIMER_MUX		109
101*c66ec88fSEmmanuel Vadot #define CLK_SD_HOST_MUX			110
102*c66ec88fSEmmanuel Vadot #define CLK_BT_PLL_MUX			111
103*c66ec88fSEmmanuel Vadot #define CLK_DEBUG_MUX			112
104*c66ec88fSEmmanuel Vadot 
105*c66ec88fSEmmanuel Vadot #define CLK_NR_CLKS			113
106*c66ec88fSEmmanuel Vadot 
107*c66ec88fSEmmanuel Vadot /* Peripheral gate clocks */
108*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_SYS			0
109*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_SYS_BUS		1
110*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_DDR			2
111*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_ROM			3
112*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_COUNTER_FAST		4
113*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_COUNTER_SLOW		5
114*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_IR			6
115*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_WD			7
116*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_PDM			8
117*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_PWM			9
118*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C0			10
119*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C1			11
120*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C2			12
121*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C3			13
122*c66ec88fSEmmanuel Vadot 
123*c66ec88fSEmmanuel Vadot /* Peripheral divider clocks */
124*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_ROM_DIV		32
125*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_COUNTER_FAST_DIV	33
126*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_COUNTER_SLOW_PRE_DIV	34
127*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_COUNTER_SLOW_DIV	35
128*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_IR_PRE_DIV		36
129*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_IR_DIV		37
130*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_WD_PRE_DIV		38
131*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_WD_DIV		39
132*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_PDM_PRE_DIV		40
133*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_PDM_DIV		41
134*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_PWM_PRE_DIV		42
135*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_PWM_DIV		43
136*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C0_PRE_DIV		44
137*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C0_DIV		45
138*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C1_PRE_DIV		46
139*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C1_DIV		47
140*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C2_PRE_DIV		48
141*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C2_DIV		49
142*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C3_PRE_DIV		50
143*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_I2C3_DIV		51
144*c66ec88fSEmmanuel Vadot 
145*c66ec88fSEmmanuel Vadot #define PERIPH_CLK_NR_CLKS		52
146*c66ec88fSEmmanuel Vadot 
147*c66ec88fSEmmanuel Vadot /* System gate clocks */
148*c66ec88fSEmmanuel Vadot #define SYS_CLK_I2C0			0
149*c66ec88fSEmmanuel Vadot #define SYS_CLK_I2C1			1
150*c66ec88fSEmmanuel Vadot #define SYS_CLK_I2C2			2
151*c66ec88fSEmmanuel Vadot #define SYS_CLK_I2C3			3
152*c66ec88fSEmmanuel Vadot #define SYS_CLK_I2S_IN			4
153*c66ec88fSEmmanuel Vadot #define SYS_CLK_PAUD_OUT		5
154*c66ec88fSEmmanuel Vadot #define SYS_CLK_SPDIF_OUT		6
155*c66ec88fSEmmanuel Vadot #define SYS_CLK_SPI0_MASTER		7
156*c66ec88fSEmmanuel Vadot #define SYS_CLK_SPI0_SLAVE		8
157*c66ec88fSEmmanuel Vadot #define SYS_CLK_PWM			9
158*c66ec88fSEmmanuel Vadot #define SYS_CLK_UART0			10
159*c66ec88fSEmmanuel Vadot #define SYS_CLK_UART1			11
160*c66ec88fSEmmanuel Vadot #define SYS_CLK_SPI1			12
161*c66ec88fSEmmanuel Vadot #define SYS_CLK_MDC			13
162*c66ec88fSEmmanuel Vadot #define SYS_CLK_SD_HOST			14
163*c66ec88fSEmmanuel Vadot #define SYS_CLK_ENET			15
164*c66ec88fSEmmanuel Vadot #define SYS_CLK_IR			16
165*c66ec88fSEmmanuel Vadot #define SYS_CLK_WD			17
166*c66ec88fSEmmanuel Vadot #define SYS_CLK_TIMER			18
167*c66ec88fSEmmanuel Vadot #define SYS_CLK_I2S_OUT			24
168*c66ec88fSEmmanuel Vadot #define SYS_CLK_SPDIF_IN		25
169*c66ec88fSEmmanuel Vadot #define SYS_CLK_EVENT_TIMER		26
170*c66ec88fSEmmanuel Vadot #define SYS_CLK_HASH			27
171*c66ec88fSEmmanuel Vadot 
172*c66ec88fSEmmanuel Vadot #define SYS_CLK_NR_CLKS			28
173*c66ec88fSEmmanuel Vadot 
174*c66ec88fSEmmanuel Vadot /* Gates for external input clocks */
175*c66ec88fSEmmanuel Vadot #define EXT_CLK_AUDIO_IN		0
176*c66ec88fSEmmanuel Vadot #define EXT_CLK_ENET_IN			1
177*c66ec88fSEmmanuel Vadot 
178*c66ec88fSEmmanuel Vadot #define EXT_CLK_NR_CLKS			2
179*c66ec88fSEmmanuel Vadot 
180*c66ec88fSEmmanuel Vadot #endif /* _DT_BINDINGS_CLOCK_PISTACHIO_H */
181