xref: /freebsd/sys/arm64/nvidia/tegra210/tegra210_car.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
1e9034789SMichal Meloun /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
3e9034789SMichal Meloun  *
4e9034789SMichal Meloun  * Copyright 2020 Michal Meloun <mmel@FreeBSD.org>
5e9034789SMichal Meloun  *
6e9034789SMichal Meloun  * Redistribution and use in source and binary forms, with or without
7e9034789SMichal Meloun  * modification, are permitted provided that the following conditions
8e9034789SMichal Meloun  * are met:
9e9034789SMichal Meloun  * 1. Redistributions of source code must retain the above copyright
10e9034789SMichal Meloun  *    notice, this list of conditions and the following disclaimer.
11e9034789SMichal Meloun  * 2. Redistributions in binary form must reproduce the above copyright
12e9034789SMichal Meloun  *    notice, this list of conditions and the following disclaimer in the
13e9034789SMichal Meloun  *    documentation and/or other materials provided with the distribution.
14e9034789SMichal Meloun  *
15e9034789SMichal Meloun  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16e9034789SMichal Meloun  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17e9034789SMichal Meloun  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18e9034789SMichal Meloun  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19e9034789SMichal Meloun  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20e9034789SMichal Meloun  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21e9034789SMichal Meloun  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22e9034789SMichal Meloun  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23e9034789SMichal Meloun  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24e9034789SMichal Meloun  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25e9034789SMichal Meloun  * SUCH DAMAGE.
26e9034789SMichal Meloun  */
27e9034789SMichal Meloun 
28e9034789SMichal Meloun #ifndef _TEGRA210_CAR_
29e9034789SMichal Meloun #define	_TEGRA210_CAR_
30e9034789SMichal Meloun 
31e9034789SMichal Meloun #include "clkdev_if.h"
32e9034789SMichal Meloun 
33e9034789SMichal Meloun #define	RD4(sc, reg, val)	CLKDEV_READ_4((sc)->clkdev, reg, val)
34e9034789SMichal Meloun #define	WR4(sc, reg, val)	CLKDEV_WRITE_4((sc)->clkdev, reg, val)
35e9034789SMichal Meloun #define	MD4(sc, reg, mask, set)	CLKDEV_MODIFY_4((sc)->clkdev, reg, mask, set)
36e9034789SMichal Meloun #define	DEVICE_LOCK(sc)		CLKDEV_DEVICE_LOCK((sc)->clkdev)
37e9034789SMichal Meloun #define	DEVICE_UNLOCK(sc)	CLKDEV_DEVICE_UNLOCK((sc)->clkdev)
38e9034789SMichal Meloun 
39e9034789SMichal Meloun #define	RST_SOURCE			0x000
40e9034789SMichal Meloun #define	RST_DEVICES_L			0x004
41e9034789SMichal Meloun #define	RST_DEVICES_H			0x008
42e9034789SMichal Meloun #define	RST_DEVICES_U			0x00C
43e9034789SMichal Meloun #define	CLK_OUT_ENB_L			0x010
44e9034789SMichal Meloun #define	CLK_OUT_ENB_H			0x014
45e9034789SMichal Meloun #define	CLK_OUT_ENB_U			0x018
46e9034789SMichal Meloun #define	SUPER_CCLK_DIVIDER		0x024
47e9034789SMichal Meloun #define	SCLK_BURST_POLICY		0x028
48e9034789SMichal Meloun #define	SUPER_SCLK_DIVIDER		0x02c
49e9034789SMichal Meloun #define	CLK_SYSTEM_RATE			0x030
50e9034789SMichal Meloun #define	CLK_MASK_ARM			0x044
51e9034789SMichal Meloun #define MISC_CLK_ENB			0x048
52e9034789SMichal Meloun 
53e9034789SMichal Meloun #define	OSC_CTRL			0x050
54e9034789SMichal Meloun  #define	OSC_CTRL_OSC_FREQ_GET(x)	(((x) >> 28) & 0x0F)
55e9034789SMichal Meloun  #define	OSC_CTRL_PLL_REF_DIV_GET(x)	(((x) >> 26) & 0x03)
56e9034789SMichal Meloun 
57e9034789SMichal Meloun #define	OSC_FREQ_DET_STATUS		0x05c
58e9034789SMichal Meloun #define	PLLE_SS_CNTL 			0x068
59e9034789SMichal Meloun #define	 PLLE_SS_CNTL_INTEGOFFSET(x)		(((x) & 0x03) << 30)
60e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCINCINTRV(x)		(((x) & 0x3f) << 24)
61e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCINC(x)			(((x) & 0xff) << 16)
62e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCINVERT 		(1 << 15)
63e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCCENTER 		(1 << 14)
64e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCPDMBYP			(1 << 13)
65e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCBYP 			(1 << 12)
66e9034789SMichal Meloun #define	 PLLE_SS_CNTL_INTERP_RESET 		(1 << 11)
67e9034789SMichal Meloun #define	 PLLE_SS_CNTL_BYPASS_SS 		(1 << 10)
68e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCMAX(x)			(((x) & 0x1ff) <<  0)
69e9034789SMichal Meloun 
70e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCINCINTRV_MASK		(0x3f << 24)
71e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCINCINTRV_VAL 		(0x20 << 24)
72e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCINC_MASK 		(0xff << 16)
73e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCINC_VAL 		(0x1 << 16)
74e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCMAX_MASK		0x1ff
75e9034789SMichal Meloun #define	 PLLE_SS_CNTL_SSCMAX_VAL 		0x25
76e9034789SMichal Meloun #define	 PLLE_SS_CNTL_DISABLE 			(PLLE_SS_CNTL_BYPASS_SS |    \
77e9034789SMichal Meloun 						 PLLE_SS_CNTL_INTERP_RESET | \
78e9034789SMichal Meloun 						 PLLE_SS_CNTL_SSCBYP)
79e9034789SMichal Meloun #define	 PLLE_SS_CNTL_COEFFICIENTS_MASK 	(PLLE_SS_CNTL_SSCMAX_MASK |  \
80e9034789SMichal Meloun 						 PLLE_SS_CNTL_SSCINC_MASK |  \
81e9034789SMichal Meloun 						 PLLE_SS_CNTL_SSCINCINTRV_MASK)
82e9034789SMichal Meloun #define	 PLLE_SS_CNTL_COEFFICIENTS_VAL 		(PLLE_SS_CNTL_SSCMAX_VAL |   \
83e9034789SMichal Meloun 						 PLLE_SS_CNTL_SSCINC_VAL |   \
84e9034789SMichal Meloun 						 PLLE_SS_CNTL_SSCINCINTRV_VAL)
85e9034789SMichal Meloun 
86e9034789SMichal Meloun #define	PLLE_MISC1 			0x06C
87e9034789SMichal Meloun #define	PLLC_BASE			0x080
88e9034789SMichal Meloun #define	PLLC_OUT			0x084
89e9034789SMichal Meloun #define	PLLC_MISC_0			0x088
90e9034789SMichal Meloun #define	PLLC_MISC_1			0x08c
91e9034789SMichal Meloun #define	PLLM_BASE			0x090
92e9034789SMichal Meloun #define	PLLM_MISC1			0x099
93e9034789SMichal Meloun #define	PLLM_MISC2			0x09c
94e9034789SMichal Meloun #define	PLLP_BASE			0x0a0
95e9034789SMichal Meloun #define	PLLP_OUTA			0x0a4
96e9034789SMichal Meloun #define	PLLP_OUTB			0x0a8
97e9034789SMichal Meloun #define	PLLP_MISC			0x0ac
98e9034789SMichal Meloun #define	PLLA_BASE			0x0b0
99e9034789SMichal Meloun #define	PLLA_OUT			0x0b4
100e9034789SMichal Meloun #define	PLLA_MISC1			0x0b8
101e9034789SMichal Meloun #define	PLLA_MISC			0x0bc
102e9034789SMichal Meloun #define	PLLU_BASE			0x0c0
103e9034789SMichal Meloun #define	PLLU_OUTA			0x0c4
104e9034789SMichal Meloun #define	PLLU_MISC1			0x0c8
105e9034789SMichal Meloun #define	PLLU_MISC			0x0cc
106e9034789SMichal Meloun #define	PLLD_BASE			0x0d0
107e9034789SMichal Meloun #define	PLLD_MISC1			0x0d8
108e9034789SMichal Meloun #define	PLLD_MISC			0x0dc
109e9034789SMichal Meloun #define	PLLX_BASE			0x0e0
110e9034789SMichal Meloun #define	PLLX_MISC			0x0e4
111e9034789SMichal Meloun #define	 PLLX_MISC_LOCK_ENABLE			(1 << 18)
112e9034789SMichal Meloun 
113e9034789SMichal Meloun #define	PLLE_BASE			0x0e8
114e9034789SMichal Meloun #define	 PLLE_BASE_ENABLE			(1U << 31)
115e9034789SMichal Meloun #define	 PLLE_BASE_LOCK_OVERRIDE		(1 << 30)
116e9034789SMichal Meloun 
117e9034789SMichal Meloun #define	PLLE_MISC			0x0ec
118e9034789SMichal Meloun #define	 PLLE_MISC_SETUP_BASE(x)		(((x) & 0xFFFF) << 16)
119e9034789SMichal Meloun #define	 PLLE_MISC_CLKENABLE 			(1 << 15)
120e9034789SMichal Meloun #define	 PLLE_MISC_IDDQ_SWCTL			(1 << 14)
121e9034789SMichal Meloun #define	 PLLE_MISC_IDDQ_OVERRIDE_VALUE		(1 << 13)
122e9034789SMichal Meloun #define	 PLLE_MISC_IDDQ_FREQLOCK		(1 << 12)
123e9034789SMichal Meloun #define	 PLLE_MISC_LOCK 			(1 << 11)
124e9034789SMichal Meloun #define	 PLLE_MISC_REF_DIS 			(1 << 10)
125e9034789SMichal Meloun #define	 PLLE_MISC_LOCK_ENABLE 			(1 <<  9)
126e9034789SMichal Meloun #define	 PLLE_MISC_PTS 				(1 <<  8)
127e9034789SMichal Meloun #define	 PLLE_MISC_KCP(x)			(((x) & 0x03) << 6)
128e9034789SMichal Meloun #define	 PLLE_MISC_VREG_BG_CTRL(x)		(((x) & 0x03) << 4)
129e9034789SMichal Meloun #define	 PLLE_MISC_VREG_CTRL(x)			(((x) & 0x03) << 2)
130e9034789SMichal Meloun #define	 PLLE_MISC_KVCO				(1 <<  0)
131e9034789SMichal Meloun 
132e9034789SMichal Meloun #define	 PLLE_MISC_VREG_BG_CTRL_SHIFT		4
133e9034789SMichal Meloun #define	 PLLE_MISC_VREG_BG_CTRL_MASK		(3 << PLLE_MISC_VREG_BG_CTRL_SHIFT)
134e9034789SMichal Meloun #define	 PLLE_MISC_VREG_CTRL_SHIFT		2
135e9034789SMichal Meloun #define	 PLLE_MISC_VREG_CTRL_MASK		(2 << PLLE_MISC_VREG_CTRL_SHIFT)
136e9034789SMichal Meloun #define	 PLLE_MISC_SETUP_BASE_SHIFT 		16
137e9034789SMichal Meloun #define	 PLLE_MISC_SETUP_BASE_MASK 		(0xffff << PLLE_MISC_SETUP_BASE_SHIFT)
138e9034789SMichal Meloun 
139e9034789SMichal Meloun #define	PLLE_SS_CNTL1			0x0f0
140e9034789SMichal Meloun #define	PLLE_SS_CNTL2			0x0f4
141e9034789SMichal Meloun #define	LVL2_CLK_GATE_OVRA		0x0f8
142e9034789SMichal Meloun #define	LVL2_CLK_GATE_OVRB		0x0fc
143e9034789SMichal Meloun #define	LVL2_CLK_GATE_OVRC		0x3a0 	/* Misordered in TRM */
144e9034789SMichal Meloun #define	LVL2_CLK_GATE_OVRD		0x3a4
145e9034789SMichal Meloun #define	LVL2_CLK_GATE_OVRE		0x554
146e9034789SMichal Meloun 
147e9034789SMichal Meloun #define	CLK_SOURCE_I2S2			0x100
148e9034789SMichal Meloun #define	CLK_SOURCE_I2S3			0x104
149e9034789SMichal Meloun #define	CLK_SOURCE_SPDIF_OUT		0x108
150e9034789SMichal Meloun #define	CLK_SOURCE_SPDIF_IN		0x10c
151e9034789SMichal Meloun #define	CLK_SOURCE_PWM			0x110
152e9034789SMichal Meloun #define	CLK_SOURCE_SPI2			0x118
153e9034789SMichal Meloun #define	CLK_SOURCE_SPI3			0x11c
154e9034789SMichal Meloun #define	CLK_SOURCE_I2C1			0x124
155e9034789SMichal Meloun #define	CLK_SOURCE_I2C5			0x128
156e9034789SMichal Meloun #define	CLK_SOURCE_SPI1			0x134
157e9034789SMichal Meloun #define	CLK_SOURCE_DISP1		0x138
158e9034789SMichal Meloun #define	CLK_SOURCE_DISP2		0x13c
159e9034789SMichal Meloun #define	CLK_SOURCE_ISP			0x144
160e9034789SMichal Meloun #define	CLK_SOURCE_VI			0x148
161e9034789SMichal Meloun #define	CLK_SOURCE_SDMMC1		0x150
162e9034789SMichal Meloun #define	CLK_SOURCE_SDMMC2		0x154
163e9034789SMichal Meloun #define	CLK_SOURCE_SDMMC4		0x164
164e9034789SMichal Meloun #define	CLK_SOURCE_UARTA		0x178
165e9034789SMichal Meloun #define	CLK_SOURCE_UARTB		0x17c
166e9034789SMichal Meloun #define	CLK_SOURCE_HOST1X		0x180
167e9034789SMichal Meloun #define	CLK_SOURCE_I2C2			0x198
168e9034789SMichal Meloun #define	CLK_SOURCE_EMC			0x19c
169e9034789SMichal Meloun #define	CLK_SOURCE_UARTC		0x1a0
170e9034789SMichal Meloun #define	CLK_SOURCE_VI_SENSOR		0x1a8
171e9034789SMichal Meloun #define	CLK_SOURCE_SPI4			0x1b4
172e9034789SMichal Meloun #define	CLK_SOURCE_I2C3			0x1b8
173e9034789SMichal Meloun #define	CLK_SOURCE_SDMMC3		0x1bc
174e9034789SMichal Meloun #define	CLK_SOURCE_UARTD		0x1c0
175e9034789SMichal Meloun #define	CLK_SOURCE_OWR			0x1cc
176e9034789SMichal Meloun #define	CLK_SOURCE_CSITE		0x1d4
177e9034789SMichal Meloun #define	CLK_SOURCE_I2S1			0x1d8
178e9034789SMichal Meloun #define	CLK_SOURCE_DTV			0x1dc
179e9034789SMichal Meloun #define	CLK_SOURCE_TSEC			0x1f4
180e9034789SMichal Meloun #define	CLK_SOURCE_SPARE2		0x1f8
181e9034789SMichal Meloun 
182e9034789SMichal Meloun #define	CLK_OUT_ENB_X			0x280
183e9034789SMichal Meloun #define	CLK_ENB_X_SET			0x284
184e9034789SMichal Meloun #define	CLK_ENB_X_CLR			0x288
185e9034789SMichal Meloun #define	RST_DEVICES_X			0x28C
186e9034789SMichal Meloun #define	RST_DEV_X_SET			0x290
187e9034789SMichal Meloun #define	RST_DEV_X_CLR			0x294
188e9034789SMichal Meloun #define	CLK_OUT_ENB_Y			0x298
189e9034789SMichal Meloun #define	CLK_ENB_Y_SET			0x29c
190e9034789SMichal Meloun #define	CLK_ENB_Y_CLR			0x2a0
191e9034789SMichal Meloun #define	RST_DEVICES_Y			0x2a4
192e9034789SMichal Meloun #define	RST_DEV_Y_SET			0x2a8
193e9034789SMichal Meloun #define	RST_DEV_Y_CLR			0x2ac
194e9034789SMichal Meloun #define	DFLL_BASE			0x2f4
195e9034789SMichal Meloun #define	 DFLL_BASE_DVFS_DFLL_RESET		(1 << 0)
196e9034789SMichal Meloun 
197e9034789SMichal Meloun #define	RST_DEV_L_SET			0x300
198e9034789SMichal Meloun #define	RST_DEV_L_CLR			0x304
199e9034789SMichal Meloun #define	RST_DEV_H_SET			0x308
200e9034789SMichal Meloun #define	RST_DEV_H_CLR			0x30c
201e9034789SMichal Meloun #define	RST_DEV_U_SET			0x310
202e9034789SMichal Meloun #define	RST_DEV_U_CLR			0x314
203e9034789SMichal Meloun #define	CLK_ENB_L_SET			0x320
204e9034789SMichal Meloun #define	CLK_ENB_L_CLR			0x324
205e9034789SMichal Meloun #define	CLK_ENB_H_SET			0x328
206e9034789SMichal Meloun #define	CLK_ENB_H_CLR			0x32c
207e9034789SMichal Meloun #define	CLK_ENB_U_SET			0x330
208e9034789SMichal Meloun #define	CLK_ENB_U_CLR			0x334
209e9034789SMichal Meloun #define	CCPLEX_PG_SM_OVRD		0x33c
210e9034789SMichal Meloun #define	CPU_CMPLX_SET			0x340
211e9034789SMichal Meloun #define	RST_DEVICES_V			0x358
212e9034789SMichal Meloun #define	RST_DEVICES_W			0x35c
213e9034789SMichal Meloun #define	CLK_OUT_ENB_V			0x360
214e9034789SMichal Meloun #define	CLK_OUT_ENB_W			0x364
215e9034789SMichal Meloun #define	CCLKG_BURST_POLICY		0x368
216e9034789SMichal Meloun #define	SUPER_CCLKG_DIVIDER		0x36C
217e9034789SMichal Meloun #define	CCLKLP_BURST_POLICY		0x370
218e9034789SMichal Meloun #define	SUPER_CCLKLP_DIVIDER		0x374
219e9034789SMichal Meloun #define	CLK_CPUG_CMPLX			0x378
220e9034789SMichal Meloun #define	CPU_SOFTRST_CTRL		0x380
221e9034789SMichal Meloun #define	CPU_SOFTRST_CTRL1		0x384
222e9034789SMichal Meloun #define	CPU_SOFTRST_CTRL2		0x388
223e9034789SMichal Meloun #define	CLK_SOURCE_MSELECT		0x3b4
224e9034789SMichal Meloun #define	CLK_SOURCE_TSENSOR		0x3b8
225e9034789SMichal Meloun #define	CLK_SOURCE_I2S4			0x3bc
226e9034789SMichal Meloun #define	CLK_SOURCE_I2S5			0x3c0
227e9034789SMichal Meloun #define	CLK_SOURCE_I2C4			0x3c4
228e9034789SMichal Meloun #define	CLK_SOURCE_AHUB			0x3d0
229e9034789SMichal Meloun #define	CLK_SOURCE_HDA2CODEC_2X		0x3e4
230e9034789SMichal Meloun #define	CLK_SOURCE_ACTMON		0x3e8
231e9034789SMichal Meloun #define	CLK_SOURCE_EXTPERIPH1		0x3ec
232e9034789SMichal Meloun #define	CLK_SOURCE_EXTPERIPH2		0x3f0
233e9034789SMichal Meloun #define	CLK_SOURCE_EXTPERIPH3		0x3f4
234e9034789SMichal Meloun #define	CLK_SOURCE_I2C_SLOW		0x3fc
235e9034789SMichal Meloun 
236e9034789SMichal Meloun #define	CLK_SOURCE_SYS			0x400
237e9034789SMichal Meloun #define	CLK_SOURCE_ISPB			0x404
238e9034789SMichal Meloun #define	CLK_SOURCE_SOR1			0x410
239e9034789SMichal Meloun #define	CLK_SOURCE_SOR0			0x414
240e9034789SMichal Meloun #define	CLK_SOURCE_SATA_OOB		0x420
241e9034789SMichal Meloun #define	CLK_SOURCE_SATA			0x424
242e9034789SMichal Meloun #define	CLK_SOURCE_HDA			0x428
243e9034789SMichal Meloun #define	RST_DEV_V_SET			0x430
244e9034789SMichal Meloun #define	RST_DEV_V_CLR			0x434
245e9034789SMichal Meloun #define	RST_DEV_W_SET			0x438
246e9034789SMichal Meloun #define	RST_DEV_W_CLR			0x43c
247e9034789SMichal Meloun #define	CLK_ENB_V_SET			0x440
248e9034789SMichal Meloun #define	CLK_ENB_V_CLR			0x444
249e9034789SMichal Meloun #define	CLK_ENB_W_SET			0x448
250e9034789SMichal Meloun #define	CLK_ENB_W_CLR			0x44c
251e9034789SMichal Meloun #define	RST_CPUG_CMPLX_SET		0x450
252e9034789SMichal Meloun #define	RST_CPUG_CMPLX_CLR		0x454
253e9034789SMichal Meloun #define	CLK_CPUG_CMPLX_SET		0x460
254e9034789SMichal Meloun #define	CLK_CPUG_CMPLX_CLR		0x464
255e9034789SMichal Meloun #define	CPU_CMPLX_STATUS		0x470
256e9034789SMichal Meloun #define	INTSTATUS			0x478
257e9034789SMichal Meloun #define	INTMASK				0x47c
258e9034789SMichal Meloun #define	UTMIP_PLL_CFG0			0x480
259e9034789SMichal Meloun 
260e9034789SMichal Meloun #define	UTMIP_PLL_CFG1			0x484
261e9034789SMichal Meloun #define	 UTMIP_PLL_CFG1_FORCE_PLLU_POWERUP		(1 << 17)
262e9034789SMichal Meloun #define	 UTMIP_PLL_CFG1_FORCE_PLLU_POWERDOWN		(1 << 16)
263e9034789SMichal Meloun #define	 UTMIP_PLL_CFG1_FORCE_PLL_ENABLE_POWERUP	(1 << 15)
264e9034789SMichal Meloun #define	 UTMIP_PLL_CFG1_FORCE_PLL_ENABLE_POWERDOWN	(1 << 14)
265e9034789SMichal Meloun #define	 UTMIP_PLL_CFG1_FORCE_PLL_ACTIVE_POWERDOWN 	(1 << 12)
266e9034789SMichal Meloun #define	 UTMIP_PLL_CFG1_ENABLE_DLY_COUNT(x)		(((x) & 0x1f) << 6)
267e9034789SMichal Meloun #define	 UTMIP_PLL_CFG1_XTAL_FREQ_COUNT(x)		(((x) & 0xfff) << 0)
268e9034789SMichal Meloun 
269e9034789SMichal Meloun #define	UTMIP_PLL_CFG2			0x488
270e9034789SMichal Meloun #define	 UTMIP_PLL_CFG2_PHY_XTAL_CLOCKEN		(1 << 30)
271e9034789SMichal Meloun #define	 UTMIP_PLL_CFG2_FORCE_PD_SAMP_D_POWERUP		(1 << 25)
272e9034789SMichal Meloun #define	 UTMIP_PLL_CFG2_FORCE_PD_SAMP_D_POWERDOWN 	(1 << 24)
273e9034789SMichal Meloun #define	 UTMIP_PLL_CFG2_ACTIVE_DLY_COUNT(x)		(((x) & 0x3f) << 18)
274e9034789SMichal Meloun #define	 UTMIP_PLL_CFG2_STABLE_COUNT(x)			(((x) & 0xffff) << 6)
275e9034789SMichal Meloun #define	 UTMIP_PLL_CFG2_FORCE_PD_SAMP_C_POWERUP		(1 << 5)
276e9034789SMichal Meloun #define	 UTMIP_PLL_CFG2_FORCE_PD_SAMP_C_POWERDOWN 	(1 << 4)
277e9034789SMichal Meloun #define	 UTMIP_PLL_CFG2_FORCE_PD_SAMP_B_POWERUP		(1 << 3)
278e9034789SMichal Meloun #define	 UTMIP_PLL_CFG2_FORCE_PD_SAMP_B_POWERDOWN 	(1 << 2)
279e9034789SMichal Meloun #define	 UTMIP_PLL_CFG2_FORCE_PD_SAMP_A_POWERUP		(1 << 1)
280e9034789SMichal Meloun #define	 UTMIP_PLL_CFG2_FORCE_PD_SAMP_A_POWERDOWN	(1 << 0)
281e9034789SMichal Meloun 
282e9034789SMichal Meloun #define	PLLE_AUX			0x48c
283e9034789SMichal Meloun #define	 PLLE_AUX_SS_SEQ_INCLUDE			(1U << 31)
284e9034789SMichal Meloun #define	 PLLE_AUX_REF_SEL_PLLREFE			(1 << 28)
285e9034789SMichal Meloun #define	 PLLE_AUX_SEQ_STATE_GET(x)			(((x) >> 26) & 0x03)
286e9034789SMichal Meloun #define	  PLLE_AUX_SEQ_STATE_OFF	 		0
287e9034789SMichal Meloun #define	  PLLE_AUX_SEQ_STATE_ON		 		1
288e9034789SMichal Meloun #define	  PLLE_AUX_SEQ_STATE_BUSY	 		2
289e9034789SMichal Meloun #define	 PLLE_AUX_SEQ_START_STATE 			(1 << 25)
290e9034789SMichal Meloun #define	 PLLE_AUX_SEQ_ENABLE				(1 << 24)
291e9034789SMichal Meloun #define	 PLLE_AUX_SS_DLY(x)	 			(((x) & 0xFF) << 16)
292e9034789SMichal Meloun #define	 PLLE_AUX_SS_LOCK_DLY(x)			(((x) & 0xFF) <<  8)
293e9034789SMichal Meloun #define	 PLLE_AUX_SS_TEST_FAST_PT			(1 <<  7)
294e9034789SMichal Meloun #define	 PLLE_AUX_SS_SWCTL				(1 <<  6)
295e9034789SMichal Meloun #define	 PLLE_AUX_CONFIG_SWCTL				(1 <<  6)
296e9034789SMichal Meloun #define	 PLLE_AUX_ENABLE_SWCTL				(1 <<  4)
297e9034789SMichal Meloun #define	 PLLE_AUX_USE_LOCKDET				(1 <<  3)
298e9034789SMichal Meloun #define	 PLLE_AUX_REF_SRC				(1 <<  2)
299e9034789SMichal Meloun #define	 PLLE_AUX_PLLP_CML1_OEN				(1 <<  1)
300e9034789SMichal Meloun #define	 PLLE_AUX_PLLP_CML0_OEN				(1 <<  0)
301e9034789SMichal Meloun 
302e9034789SMichal Meloun #define	SATA_PLL_CFG0			0x490
303e9034789SMichal Meloun #define	SATA_PLL_CFG0_SEQ_START_STATE			(1 << 25)
304e9034789SMichal Meloun #define	SATA_PLL_CFG0_SEQ_ENABLE			(1 << 24)
305e9034789SMichal Meloun #define	SATA_PLL_CFG0_PADPLL_SLEEP_IDDQ			(1 << 13)
306e9034789SMichal Meloun #define	SATA_PLL_CFG0_SEQ_PADPLL_PD_INPUT_VALUE		(1 <<  7)
307e9034789SMichal Meloun #define	SATA_PLL_CFG0_SEQ_LANE_PD_INPUT_VALUE		(1 <<  6)
308e9034789SMichal Meloun #define	SATA_PLL_CFG0_SEQ_RESET_INPUT_VALUE		(1 <<  5)
309e9034789SMichal Meloun #define	SATA_PLL_CFG0_SEQ_IN_SWCTL			(1 <<  4)
310e9034789SMichal Meloun #define	SATA_PLL_CFG0_PADPLL_USE_LOCKDET		(1 <<  2)
311e9034789SMichal Meloun #define	SATA_PLL_CFG0_PADPLL_RESET_OVERRIDE_VALUE	(1 <<  1)
312e9034789SMichal Meloun #define	SATA_PLL_CFG0_PADPLL_RESET_SWCTL		(1 <<  0)
313e9034789SMichal Meloun 
314e9034789SMichal Meloun #define	SATA_PLL_CFG1			0x494
315e9034789SMichal Meloun #define	PCIE_PLL_CFG			0x498
316e9034789SMichal Meloun #define	PCIE_PLL_CFG_SEQ_START_STATE			(1 << 25)
317e9034789SMichal Meloun #define	PCIE_PLL_CFG_SEQ_ENABLE				(1 << 24)
318e9034789SMichal Meloun 
319e9034789SMichal Meloun #define	PROG_AUDIO_DLY_CLK		0x49c
320e9034789SMichal Meloun #define	AUDIO_SYNC_CLK_I2S1		0x4a0
321e9034789SMichal Meloun #define	AUDIO_SYNC_CLK_I2S2		0x4a4
322e9034789SMichal Meloun #define	AUDIO_SYNC_CLK_I2S3		0x4a8
323e9034789SMichal Meloun #define	AUDIO_SYNC_CLK_I2S4		0x4ac
324e9034789SMichal Meloun #define	AUDIO_SYNC_CLK_I2S5		0x4b0
325e9034789SMichal Meloun #define	AUDIO_SYNC_CLK_SPDIF		0x4b4
326e9034789SMichal Meloun #define	PLLD2_BASE			0x4b8
327e9034789SMichal Meloun #define	PLLD2_MISC			0x4bc
328e9034789SMichal Meloun #define	UTMIP_PLL_CFG3			0x4c0
329e9034789SMichal Meloun #define	PLLREFE_BASE			0x4c4
330e9034789SMichal Meloun #define	PLLREFE_MISC			0x4c8
331e9034789SMichal Meloun #define	PLLREFE_OUT			0x4cc
332e9034789SMichal Meloun #define	CPU_FINETRIM_BYP		0x4d0
333e9034789SMichal Meloun #define	CPU_FINETRIM_SELECT		0x4d4
334e9034789SMichal Meloun #define	CPU_FINETRIM_DR			0x4d8
335e9034789SMichal Meloun #define	CPU_FINETRIM_DF			0x4dc
336e9034789SMichal Meloun #define	CPU_FINETRIM_F			0x4e0
337e9034789SMichal Meloun #define	CPU_FINETRIM_R			0x4e4
338e9034789SMichal Meloun #define	PLLC2_BASE			0x4e8
339e9034789SMichal Meloun #define	PLLC2_MISC_0			0x4ec
340e9034789SMichal Meloun #define	PLLC2_MISC_1			0x4f0
341e9034789SMichal Meloun #define	PLLC2_MISC_2			0x4f4
342e9034789SMichal Meloun #define	PLLC2_MISC_3			0x4f8
343e9034789SMichal Meloun #define	PLLC3_BASE			0x4fc
344e9034789SMichal Meloun 
345e9034789SMichal Meloun #define	PLLC3_MISC_0			0x500
346e9034789SMichal Meloun #define	PLLC3_MISC_1			0x504
347e9034789SMichal Meloun #define	PLLC3_MISC_2			0x508
348e9034789SMichal Meloun #define	PLLC3_MISC_3			0x50c
349e9034789SMichal Meloun #define	PLLX_MISC_2			0x514
350e9034789SMichal Meloun #define	PLLX_MISC_2			0x514
351e9034789SMichal Meloun #define	 PLLX_MISC_2_DYNRAMP_STEPB(x)			(((x) & 0xFF) << 24)
352e9034789SMichal Meloun #define	 PLLX_MISC_2_DYNRAMP_STEPA(x)			(((x) & 0xFF) << 16)
353e9034789SMichal Meloun #define	 PLLX_MISC_2_NDIV_NEW(x)			(((x) & 0xFF) <<  8)
354e9034789SMichal Meloun #define	 PLLX_MISC_2_EN_FSTLCK				(1 << 5)
355e9034789SMichal Meloun #define	 PLLX_MISC_2_LOCK_OVERRIDE			(1 << 4)
356e9034789SMichal Meloun #define	 PLLX_MISC_2_PLL_FREQLOCK			(1 << 3)
357e9034789SMichal Meloun #define	 PLLX_MISC_2_DYNRAMP_DONE			(1 << 2)
358e9034789SMichal Meloun #define	 PLLX_MISC_2_EN_DYNRAMP				(1 << 0)
359e9034789SMichal Meloun 
360e9034789SMichal Meloun #define	PLLX_MISC_3			0x518
361e9034789SMichal Meloun 
362e9034789SMichal Meloun #define	XUSBIO_PLL_CFG0			0x51c
363e9034789SMichal Meloun #define	 XUSBIO_PLL_CFG0_SEQ_START_STATE		(1 << 25)
364e9034789SMichal Meloun #define	 XUSBIO_PLL_CFG0_SEQ_ENABLE			(1 << 24)
365e9034789SMichal Meloun #define	 XUSBIO_PLL_CFG0_PADPLL_SLEEP_IDDQ		(1 << 13)
366e9034789SMichal Meloun #define	 XUSBIO_PLL_CFG0_PADPLL_USE_LOCKDET		(1 <<  6)
367e9034789SMichal Meloun #define	 XUSBIO_PLL_CFG0_CLK_ENABLE_SWCTL		(1 <<  2)
368e9034789SMichal Meloun #define	 XUSBIO_PLL_CFG0_PADPLL_RESET_SWCTL		(1 <<  0)
369e9034789SMichal Meloun 
370e9034789SMichal Meloun #define	XUSBIO_PLL_CFG1			0x520
371e9034789SMichal Meloun #define	PLLE_AUX1			0x524
372e9034789SMichal Meloun #define	PLLP_RESHIFT			0x528
373e9034789SMichal Meloun #define	UTMIPLL_HW_PWRDN_CFG0		0x52c
374e9034789SMichal Meloun #define	 UTMIPLL_HW_PWRDN_CFG0_UTMIPLL_LOCK		(1U << 31)
375e9034789SMichal Meloun #define	 UTMIPLL_HW_PWRDN_CFG0_SEQ_START_STATE		(1 << 25)
376e9034789SMichal Meloun #define	 UTMIPLL_HW_PWRDN_CFG0_SEQ_ENABLE		(1 << 24)
377e9034789SMichal Meloun #define	 UTMIPLL_HW_PWRDN_CFG0_IDDQ_PD_INCLUDE		(1 << 7)
378e9034789SMichal Meloun #define	 UTMIPLL_HW_PWRDN_CFG0_USE_LOCKDET		(1 <<  6)
379e9034789SMichal Meloun #define	 UTMIPLL_HW_PWRDN_CFG0_SEQ_RESET_INPUT_VALUE	(1 <<  5)
380e9034789SMichal Meloun #define	 UTMIPLL_HW_PWRDN_CFG0_SEQ_IN_SWCTL		(1 <<  4)
381e9034789SMichal Meloun #define	 UTMIPLL_HW_PWRDN_CFG0_CLK_ENABLE_SWCTL		(1 <<  2)
382e9034789SMichal Meloun #define	 UTMIPLL_HW_PWRDN_CFG0_IDDQ_OVERRIDE		(1 <<  1)
383e9034789SMichal Meloun #define	 UTMIPLL_HW_PWRDN_CFG0_IDDQ_SWCTL		(1 <<  0)
384e9034789SMichal Meloun 
385e9034789SMichal Meloun #define	PLLU_HW_PWRDN_CFG0		0x530
386e9034789SMichal Meloun #define	 PLLU_HW_PWRDN_CFG0_IDDQ_PD_INCLUDE		(1 << 28)
387e9034789SMichal Meloun #define	 PLLU_HW_PWRDN_CFG0_SEQ_ENABLE			(1 << 24)
388e9034789SMichal Meloun #define	 PLLU_HW_PWRDN_CFG0_USE_SWITCH_DETECT		(1 <<  7)
389e9034789SMichal Meloun #define	 PLLU_HW_PWRDN_CFG0_USE_LOCKDET			(1 <<  6)
390e9034789SMichal Meloun #define	 PLLU_HW_PWRDN_CFG0_CLK_ENABLE_SWCTL		(1 <<  2)
391e9034789SMichal Meloun #define	 PLLU_HW_PWRDN_CFG0_CLK_SWITCH_SWCTL		(1 <<  0)
392e9034789SMichal Meloun 
393e9034789SMichal Meloun #define	XUSB_PLL_CFG0			0x534
394e9034789SMichal Meloun #define	 XUSB_PLL_CFG0_UTMIPLL_LOCK_DLY			0x3ff
395e9034789SMichal Meloun #define	 XUSB_PLL_CFG0_PLLU_LOCK_DLY_MASK		(0x3ff << 14)
396e9034789SMichal Meloun 
397e9034789SMichal Meloun #define	CLK_CPU_MISC			0x53c
398e9034789SMichal Meloun #define	CLK_CPUG_MISC			0x540
399e9034789SMichal Meloun #define	PLLX_HW_CTRL_CFG		0x548
400e9034789SMichal Meloun #define	PLLX_SW_RAMP_CFG		0x54c
401e9034789SMichal Meloun #define	PLLX_HW_CTRL_STATUS		0x550
402e9034789SMichal Meloun #define	SPARE_REG0			0x55c
403e9034789SMichal Meloun #define	 SPARE_REG0_MDIV_GET(x)				(((x) >> 2) & 0x03)
404e9034789SMichal Meloun 
405e9034789SMichal Meloun #define	AUDIO_SYNC_CLK_DMIC1		0x560
406e9034789SMichal Meloun #define	AUDIO_SYNC_CLK_DMIC2		0x564
407e9034789SMichal Meloun #define	PLLD2_SS_CFG			0x570
408e9034789SMichal Meloun #define	PLLD2_SS_CTRL1			0x574
409e9034789SMichal Meloun #define	PLLD2_SS_CTRL2			0x578
410e9034789SMichal Meloun #define	PLLDP_BASE			0x590
411e9034789SMichal Meloun #define	PLLDP_MISC			0x594
412e9034789SMichal Meloun #define	PLLDP_SS_CFG			0x594
413e9034789SMichal Meloun #define	PLLDP_SS_CTRL1			0x598
414e9034789SMichal Meloun #define	PLLDP_SS_CTRL2			0x5a0
415e9034789SMichal Meloun #define	PLLC4_BASE			0x5a4
416e9034789SMichal Meloun #define	PLLC4_MISC			0x5a8
417e9034789SMichal Meloun #define	SPARE0				0x5c4
418e9034789SMichal Meloun #define	SPARE1				0x5c8
419e9034789SMichal Meloun #define	GPU_ISOB_CTRL			0x5cc
420e9034789SMichal Meloun #define	PLLC_MISC_2			0x5d0
421e9034789SMichal Meloun #define	PLLC_MISC_3			0x5d4
422e9034789SMichal Meloun #define	PLLA_MISC2			0x5d8
423e9034789SMichal Meloun #define	PLLC4_OUT			0x5e4
424e9034789SMichal Meloun #define	PLLMB_BASE			0x5e8
425e9034789SMichal Meloun #define	PLLMB_MISC1			0x5ec
426e9034789SMichal Meloun #define	PLLX_MISC_4			0x5f0
427e9034789SMichal Meloun #define	PLLX_MISC_5			0x5f4
428e9034789SMichal Meloun 
429e9034789SMichal Meloun #define	CLK_SOURCE_XUSB_CORE_HOST	0x600
430e9034789SMichal Meloun #define	CLK_SOURCE_XUSB_FALCON		0x604
431e9034789SMichal Meloun #define	CLK_SOURCE_XUSB_FS		0x608
432e9034789SMichal Meloun #define	CLK_SOURCE_XUSB_CORE_DEV	0x60c
433e9034789SMichal Meloun #define	CLK_SOURCE_XUSB_SS		0x610
434e9034789SMichal Meloun #define	CLK_SOURCE_CILAB		0x614
435e9034789SMichal Meloun #define	CLK_SOURCE_CILCD		0x618
436e9034789SMichal Meloun #define	CLK_SOURCE_CILEF		0x61c
437e9034789SMichal Meloun #define	CLK_SOURCE_DSIA_LP		0x620
438e9034789SMichal Meloun #define	CLK_SOURCE_DSIB_LP		0x624
439e9034789SMichal Meloun #define	CLK_SOURCE_ENTROPY		0x628
440e9034789SMichal Meloun #define	CLK_SOURCE_DVFS_REF		0x62c
441e9034789SMichal Meloun #define	CLK_SOURCE_DVFS_SOC		0x630
442e9034789SMichal Meloun #define	CLK_SOURCE_EMC_LATENCY		0x640
443e9034789SMichal Meloun #define	CLK_SOURCE_SOC_THERM		0x644
444e9034789SMichal Meloun #define	CLK_SOURCE_DMIC1		0x64c
445e9034789SMichal Meloun #define	CLK_SOURCE_DMIC2		0x650
446e9034789SMichal Meloun #define	CLK_SOURCE_VI_SENSOR2		0x658
447e9034789SMichal Meloun #define	CLK_SOURCE_I2C6			0x65c
448e9034789SMichal Meloun #define	CLK_SOURCE_MIPIBIF		0x660
449e9034789SMichal Meloun #define	CLK_SOURCE_EMC_DLL		0x664
450e9034789SMichal Meloun #define	CLK_SOURCE_UART_FST_MIPI_CAL	0x66c
451e9034789SMichal Meloun #define	CLK_SOURCE_VIC			0x678
452e9034789SMichal Meloun #define	PLLP_OUTC			0x67c
453e9034789SMichal Meloun #define	PLLP_MISC1			0x680
454e9034789SMichal Meloun #define	EMC_DIV_CLK_SHAPER_CTRL		0x68c
455e9034789SMichal Meloun #define	EMC_PLLC_SHAPER_CTRL		0x690
456e9034789SMichal Meloun #define	CLK_SOURCE_SDMMC_LEGACY_TM	0x694
457e9034789SMichal Meloun #define	CLK_SOURCE_NVDEC		0x698
458e9034789SMichal Meloun #define	CLK_SOURCE_NVJPG		0x69c
459e9034789SMichal Meloun #define	CLK_SOURCE_NVENC		0x6a0
460e9034789SMichal Meloun #define	PLLA1_BASE			0x6a4
461e9034789SMichal Meloun #define	PLLA1_MISC_0			0x6a8
462e9034789SMichal Meloun #define	PLLA1_MISC_1			0x6ac
463e9034789SMichal Meloun #define	PLLA1_MISC_2			0x6b0
464e9034789SMichal Meloun #define	PLLA1_MISC_3			0x6b4
465e9034789SMichal Meloun #define	AUDIO_SYNC_CLK_DMIC3		0x6b8
466e9034789SMichal Meloun #define	CLK_SOURCE_DMIC3		0x6bc
467e9034789SMichal Meloun #define	CLK_SOURCE_APE			0x6c0
468e9034789SMichal Meloun #define	CLK_SOURCE_QSPI			0x6c4
469e9034789SMichal Meloun #define	CLK_SOURCE_VI_I2C		0x6c8
470e9034789SMichal Meloun #define	CLK_SOURCE_USB2_HSIC_TRK	0x6cc
471e9034789SMichal Meloun #define	CLK_SOURCE_PEX_SATA_USB_RX_BYP	0x6d0
472e9034789SMichal Meloun #define	CLK_SOURCE_MAUD			0x6d4
473e9034789SMichal Meloun #define	CLK_SOURCE_TSECB		0x6d8
474e9034789SMichal Meloun #define	CLK_CPUG_MISC1			0x6d8
475e9034789SMichal Meloun #define	ACLK_BURST_POLICY		0x6e0
476e9034789SMichal Meloun #define	SUPER_ACLK_DIVIDER		0x6e4
477e9034789SMichal Meloun #define	NVENC_SUPER_CLK_DIVIDER		0x6e8
478e9034789SMichal Meloun #define	VI_SUPER_CLK_DIVIDER		0x6ec
479e9034789SMichal Meloun #define	VIC_SUPER_CLK_DIVIDER		0x6f0
480e9034789SMichal Meloun #define	NVDEC_SUPER_CLK_DIVIDER		0x6f4
481e9034789SMichal Meloun #define	ISP_SUPER_CLK_DIVIDER		0x6f8
482e9034789SMichal Meloun #define	ISPB_SUPER_CLK_DIVIDER		0x6fc
483e9034789SMichal Meloun 
484e9034789SMichal Meloun #define	NVJPG_SUPER_CLK_DIVIDER		0x700
485e9034789SMichal Meloun #define	SE_SUPER_CLK_DIVIDER		0x704
486e9034789SMichal Meloun #define	TSEC_SUPER_CLK_DIVIDER		0x708
487e9034789SMichal Meloun #define	TSECB_SUPER_CLK_DIVIDER		0x70c
488e9034789SMichal Meloun #define	CLK_SOURCE_UARTAPE		0x710
489e9034789SMichal Meloun #define	CLK_CPUG_MISC2			0x714
490e9034789SMichal Meloun #define	CLK_SOURCE_DBGAPB		0x718
491e9034789SMichal Meloun #define	CLK_CCPLEX_CC4_RET_CLK_ENB	0x71c
492e9034789SMichal Meloun #define	ACTMON_CPU_CLK			0x720
493e9034789SMichal Meloun #define	CLK_SOURCE_EMC_SAFE		0x724
494e9034789SMichal Meloun #define	SDMMC2_PLLC4_OUT0_SHAPER_CTRL	0x728
495e9034789SMichal Meloun #define	SDMMC2_PLLC4_OUT1_SHAPER_CTRL	0x72c
496e9034789SMichal Meloun #define	SDMMC2_PLLC4_OUT2_SHAPER_CTRL	0x730
497e9034789SMichal Meloun #define	SDMMC2_DIV_CLK_SHAPER_CTRL	0x734
498e9034789SMichal Meloun #define	SDMMC4_PLLC4_OUT0_SHAPER_CTRL	0x738
499e9034789SMichal Meloun #define	SDMMC4_PLLC4_OUT1_SHAPER_CTRL	0x73c
500e9034789SMichal Meloun #define	SDMMC4_PLLC4_OUT2_SHAPER_CTRL	0x740
501e9034789SMichal Meloun #define	SDMMC4_DIV_CLK_SHAPER_CTRL	0x744
502e9034789SMichal Meloun 
503e9034789SMichal Meloun struct tegra210_car_softc {
504e9034789SMichal Meloun 	device_t		dev;
505e9034789SMichal Meloun 	struct resource *	mem_res;
506e9034789SMichal Meloun 	struct mtx		mtx;
507e9034789SMichal Meloun 	struct clkdom 		*clkdom;
508e9034789SMichal Meloun 	int			type;
509e9034789SMichal Meloun };
510e9034789SMichal Meloun 
511e9034789SMichal Meloun struct tegra210_init_item {
512e9034789SMichal Meloun 	char 		*name;
513e9034789SMichal Meloun 	char 		*parent;
514e9034789SMichal Meloun 	uint64_t	frequency;
515e9034789SMichal Meloun 	int 		enable;
516e9034789SMichal Meloun };
517e9034789SMichal Meloun 
518e9034789SMichal Meloun void tegra210_init_plls(struct tegra210_car_softc *sc);
519e9034789SMichal Meloun 
520e9034789SMichal Meloun void tegra210_periph_clock(struct tegra210_car_softc *sc);
521e9034789SMichal Meloun void tegra210_super_mux_clock(struct tegra210_car_softc *sc);
522e9034789SMichal Meloun 
523e9034789SMichal Meloun int tegra210_hwreset_by_idx(struct tegra210_car_softc *sc, intptr_t idx,
524e9034789SMichal Meloun     bool reset);
525e9034789SMichal Meloun 
526e9034789SMichal Meloun #endif /*_TEGRA210_CAR_*/