hi3660-clock.h revision 1.1.1.3
1/*	$NetBSD: hi3660-clock.h,v 1.1.1.3 2018/04/28 18:25:53 jmcneill Exp $	*/
2
3/*
4 * Copyright (c) 2016-2017 Linaro Ltd.
5 * Copyright (c) 2016-2017 HiSilicon Technologies Co., Ltd.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 */
12
13#ifndef __DTS_HI3660_CLOCK_H
14#define __DTS_HI3660_CLOCK_H
15
16/* fixed rate clocks */
17#define HI3660_CLKIN_SYS		0
18#define HI3660_CLKIN_REF		1
19#define HI3660_CLK_FLL_SRC		2
20#define HI3660_CLK_PPLL0		3
21#define HI3660_CLK_PPLL1		4
22#define HI3660_CLK_PPLL2		5
23#define HI3660_CLK_PPLL3		6
24#define HI3660_CLK_SCPLL		7
25#define HI3660_PCLK			8
26#define HI3660_CLK_UART0_DBG		9
27#define HI3660_CLK_UART6		10
28#define HI3660_OSC32K			11
29#define HI3660_OSC19M			12
30#define HI3660_CLK_480M			13
31#define HI3660_CLK_INV			14
32
33/* clk in crgctrl */
34#define HI3660_FACTOR_UART3		15
35#define HI3660_CLK_FACTOR_MMC		16
36#define HI3660_CLK_GATE_I2C0		17
37#define HI3660_CLK_GATE_I2C1		18
38#define HI3660_CLK_GATE_I2C2		19
39#define HI3660_CLK_GATE_I2C6		20
40#define HI3660_CLK_DIV_SYSBUS		21
41#define HI3660_CLK_DIV_320M		22
42#define HI3660_CLK_DIV_A53		23
43#define HI3660_CLK_GATE_SPI0		24
44#define HI3660_CLK_GATE_SPI2		25
45#define HI3660_PCIEPHY_REF		26
46#define HI3660_CLK_ABB_USB		27
47#define HI3660_HCLK_GATE_SDIO0		28
48#define HI3660_HCLK_GATE_SD		29
49#define HI3660_CLK_GATE_AOMM		30
50#define HI3660_PCLK_GPIO0		31
51#define HI3660_PCLK_GPIO1		32
52#define HI3660_PCLK_GPIO2		33
53#define HI3660_PCLK_GPIO3		34
54#define HI3660_PCLK_GPIO4		35
55#define HI3660_PCLK_GPIO5		36
56#define HI3660_PCLK_GPIO6		37
57#define HI3660_PCLK_GPIO7		38
58#define HI3660_PCLK_GPIO8		39
59#define HI3660_PCLK_GPIO9		40
60#define HI3660_PCLK_GPIO10		41
61#define HI3660_PCLK_GPIO11		42
62#define HI3660_PCLK_GPIO12		43
63#define HI3660_PCLK_GPIO13		44
64#define HI3660_PCLK_GPIO14		45
65#define HI3660_PCLK_GPIO15		46
66#define HI3660_PCLK_GPIO16		47
67#define HI3660_PCLK_GPIO17		48
68#define HI3660_PCLK_GPIO18		49
69#define HI3660_PCLK_GPIO19		50
70#define HI3660_PCLK_GPIO20		51
71#define HI3660_PCLK_GPIO21		52
72#define HI3660_CLK_GATE_SPI3		53
73#define HI3660_CLK_GATE_I2C7		54
74#define HI3660_CLK_GATE_I2C3		55
75#define HI3660_CLK_GATE_SPI1		56
76#define HI3660_CLK_GATE_UART1		57
77#define HI3660_CLK_GATE_UART2		58
78#define HI3660_CLK_GATE_UART4		59
79#define HI3660_CLK_GATE_UART5		60
80#define HI3660_CLK_GATE_I2C4		61
81#define HI3660_CLK_GATE_DMAC		62
82#define HI3660_PCLK_GATE_DSS		63
83#define HI3660_ACLK_GATE_DSS		64
84#define HI3660_CLK_GATE_LDI1		65
85#define HI3660_CLK_GATE_LDI0		66
86#define HI3660_CLK_GATE_VIVOBUS		67
87#define HI3660_CLK_GATE_EDC0		68
88#define HI3660_CLK_GATE_TXDPHY0_CFG	69
89#define HI3660_CLK_GATE_TXDPHY0_REF	70
90#define HI3660_CLK_GATE_TXDPHY1_CFG	71
91#define HI3660_CLK_GATE_TXDPHY1_REF	72
92#define HI3660_ACLK_GATE_USB3OTG	73
93#define HI3660_CLK_GATE_SPI4		74
94#define HI3660_CLK_GATE_SD		75
95#define HI3660_CLK_GATE_SDIO0		76
96#define HI3660_CLK_GATE_UFS_SUBSYS	77
97#define HI3660_PCLK_GATE_DSI0		78
98#define HI3660_PCLK_GATE_DSI1		79
99#define HI3660_ACLK_GATE_PCIE		80
100#define HI3660_PCLK_GATE_PCIE_SYS       81
101#define HI3660_CLK_GATE_PCIEAUX		82
102#define HI3660_PCLK_GATE_PCIE_PHY	83
103#define HI3660_CLK_ANDGT_LDI0		84
104#define HI3660_CLK_ANDGT_LDI1		85
105#define HI3660_CLK_ANDGT_EDC0		86
106#define HI3660_CLK_GATE_UFSPHY_GT	87
107#define HI3660_CLK_ANDGT_MMC		88
108#define HI3660_CLK_ANDGT_SD		89
109#define HI3660_CLK_A53HPM_ANDGT		90
110#define HI3660_CLK_ANDGT_SDIO		91
111#define HI3660_CLK_ANDGT_UART0		92
112#define HI3660_CLK_ANDGT_UART1		93
113#define HI3660_CLK_ANDGT_UARTH		94
114#define HI3660_CLK_ANDGT_SPI		95
115#define HI3660_CLK_VIVOBUS_ANDGT	96
116#define HI3660_CLK_AOMM_ANDGT		97
117#define HI3660_CLK_320M_PLL_GT		98
118#define HI3660_AUTODIV_EMMC0BUS		99
119#define HI3660_AUTODIV_SYSBUS		100
120#define HI3660_CLK_GATE_UFSPHY_CFG	101
121#define HI3660_CLK_GATE_UFSIO_REF	102
122#define HI3660_CLK_MUX_SYSBUS		103
123#define HI3660_CLK_MUX_UART0		104
124#define HI3660_CLK_MUX_UART1		105
125#define HI3660_CLK_MUX_UARTH		106
126#define HI3660_CLK_MUX_SPI		107
127#define HI3660_CLK_MUX_I2C		108
128#define HI3660_CLK_MUX_MMC_PLL		109
129#define HI3660_CLK_MUX_LDI1		110
130#define HI3660_CLK_MUX_LDI0		111
131#define HI3660_CLK_MUX_SD_PLL		112
132#define HI3660_CLK_MUX_SD_SYS		113
133#define HI3660_CLK_MUX_EDC0		114
134#define HI3660_CLK_MUX_SDIO_SYS		115
135#define HI3660_CLK_MUX_SDIO_PLL		116
136#define HI3660_CLK_MUX_VIVOBUS		117
137#define HI3660_CLK_MUX_A53HPM		118
138#define HI3660_CLK_MUX_320M		119
139#define HI3660_CLK_MUX_IOPERI		120
140#define HI3660_CLK_DIV_UART0		121
141#define HI3660_CLK_DIV_UART1		122
142#define HI3660_CLK_DIV_UARTH		123
143#define HI3660_CLK_DIV_MMC		124
144#define HI3660_CLK_DIV_SD		125
145#define HI3660_CLK_DIV_EDC0		126
146#define HI3660_CLK_DIV_LDI0		127
147#define HI3660_CLK_DIV_SDIO		128
148#define HI3660_CLK_DIV_LDI1		129
149#define HI3660_CLK_DIV_SPI		130
150#define HI3660_CLK_DIV_VIVOBUS		131
151#define HI3660_CLK_DIV_I2C		132
152#define HI3660_CLK_DIV_UFSPHY		133
153#define HI3660_CLK_DIV_CFGBUS		134
154#define HI3660_CLK_DIV_MMC0BUS		135
155#define HI3660_CLK_DIV_MMC1BUS		136
156#define HI3660_CLK_DIV_UFSPERI		137
157#define HI3660_CLK_DIV_AOMM		138
158#define HI3660_CLK_DIV_IOPERI		139
159#define HI3660_VENC_VOLT_HOLD		140
160#define HI3660_PERI_VOLT_HOLD		141
161#define HI3660_CLK_GATE_VENC		142
162#define HI3660_CLK_GATE_VDEC		143
163#define HI3660_CLK_ANDGT_VENC		144
164#define HI3660_CLK_ANDGT_VDEC		145
165#define HI3660_CLK_MUX_VENC		146
166#define HI3660_CLK_MUX_VDEC		147
167#define HI3660_CLK_DIV_VENC		148
168#define HI3660_CLK_DIV_VDEC		149
169#define HI3660_CLK_FAC_ISP_SNCLK	150
170#define HI3660_CLK_GATE_ISP_SNCLK0	151
171#define HI3660_CLK_GATE_ISP_SNCLK1	152
172#define HI3660_CLK_GATE_ISP_SNCLK2	153
173#define HI3660_CLK_ANGT_ISP_SNCLK	154
174#define HI3660_CLK_MUX_ISP_SNCLK	155
175#define HI3660_CLK_DIV_ISP_SNCLK	156
176
177/* clk in pmuctrl */
178#define HI3660_GATE_ABB_192		0
179
180/* clk in pctrl */
181#define HI3660_GATE_UFS_TCXO_EN		0
182#define HI3660_GATE_USB_TCXO_EN		1
183
184/* clk in sctrl */
185#define HI3660_PCLK_AO_GPIO0		0
186#define HI3660_PCLK_AO_GPIO1		1
187#define HI3660_PCLK_AO_GPIO2		2
188#define HI3660_PCLK_AO_GPIO3		3
189#define HI3660_PCLK_AO_GPIO4		4
190#define HI3660_PCLK_AO_GPIO5		5
191#define HI3660_PCLK_AO_GPIO6		6
192#define HI3660_PCLK_GATE_MMBUF		7
193#define HI3660_CLK_GATE_DSS_AXI_MM	8
194#define HI3660_PCLK_MMBUF_ANDGT		9
195#define HI3660_CLK_MMBUF_PLL_ANDGT	10
196#define HI3660_CLK_FLL_MMBUF_ANDGT	11
197#define HI3660_CLK_SYS_MMBUF_ANDGT	12
198#define HI3660_CLK_GATE_PCIEPHY_GT	13
199#define HI3660_ACLK_MUX_MMBUF		14
200#define HI3660_CLK_SW_MMBUF		15
201#define HI3660_CLK_DIV_AOBUS		16
202#define HI3660_PCLK_DIV_MMBUF		17
203#define HI3660_ACLK_DIV_MMBUF		18
204#define HI3660_CLK_DIV_PCIEPHY		19
205
206/* clk in iomcu */
207#define HI3660_CLK_I2C0_IOMCU		0
208#define HI3660_CLK_I2C1_IOMCU		1
209#define HI3660_CLK_I2C2_IOMCU		2
210#define HI3660_CLK_I2C6_IOMCU		3
211#define HI3660_CLK_IOMCU_PERI0		4
212
213/* clk in stub clock */
214#define HI3660_CLK_STUB_CLUSTER0	0
215#define HI3660_CLK_STUB_CLUSTER1	1
216#define HI3660_CLK_STUB_GPU		2
217#define HI3660_CLK_STUB_DDR		3
218#define HI3660_CLK_STUB_NUM		4
219
220#endif	/* __DTS_HI3660_CLOCK_H */
221