xref: /freebsd/sys/arm/nvidia/drm2/tegra_hdmi_reg.h (revision 95ee2897e98f5d444f26ed2334cc7c439f9c16c6)
1*a0a23564SMichal Meloun /*-
2*a0a23564SMichal Meloun  * Copyright 1992-2016 Michal Meloun
3*a0a23564SMichal Meloun  * All rights reserved.
4*a0a23564SMichal Meloun  *
5*a0a23564SMichal Meloun  * Redistribution and use in source and binary forms, with or without
6*a0a23564SMichal Meloun  * modification, are permitted provided that the following conditions
7*a0a23564SMichal Meloun  * are met:
8*a0a23564SMichal Meloun  * 1. Redistributions of source code must retain the above copyright
9*a0a23564SMichal Meloun  *    notice, this list of conditions and the following disclaimer.
10*a0a23564SMichal Meloun  * 2. Redistributions in binary form must reproduce the above copyright
11*a0a23564SMichal Meloun  *    notice, this list of conditions and the following disclaimer in the
12*a0a23564SMichal Meloun  *    documentation and/or other materials provided with the distribution.
13*a0a23564SMichal Meloun  *
14*a0a23564SMichal Meloun  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15*a0a23564SMichal Meloun  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16*a0a23564SMichal Meloun  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17*a0a23564SMichal Meloun  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18*a0a23564SMichal Meloun  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19*a0a23564SMichal Meloun  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20*a0a23564SMichal Meloun  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21*a0a23564SMichal Meloun  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22*a0a23564SMichal Meloun  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23*a0a23564SMichal Meloun  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24*a0a23564SMichal Meloun  * SUCH DAMAGE.
25*a0a23564SMichal Meloun  */
26*a0a23564SMichal Meloun #ifndef _TEGRA_HDMI_REG_H_
27*a0a23564SMichal Meloun #define	_TEGRA_HDMI_REG_H_
28*a0a23564SMichal Meloun 
29*a0a23564SMichal Meloun /*
30*a0a23564SMichal Meloun  * !!! WARNING !!!
31*a0a23564SMichal Meloun  * Tegra manual uses registers index (and not register addreses).
32*a0a23564SMichal Meloun  * We follow the TRM notation and index is converted to offset in
33*a0a23564SMichal Meloun  * WR4 / RD4 macros
34*a0a23564SMichal Meloun  */
35*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_STATE0		0x001
36*a0a23564SMichal Meloun #define	 SOR_STATE0_UPDATE				(1 << 0)
37*a0a23564SMichal Meloun 
38*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_STATE1		0x002
39*a0a23564SMichal Meloun #define	 SOR_STATE1_ATTACHED				(1 << 3)
40*a0a23564SMichal Meloun #define	 SOR_STATE1_ASY_ORMODE_NORMAL			(1 << 2)
41*a0a23564SMichal Meloun #define	 SOR_STATE1_ASY_HEAD_OPMODE(x)			(((x) & 0x3) << 0)
42*a0a23564SMichal Meloun #define	  ASY_HEAD_OPMODE_SLEEP					0
43*a0a23564SMichal Meloun #define	  ASY_HEAD_OPMODE_SNOOZE				1
44*a0a23564SMichal Meloun #define	  ASY_HEAD_OPMODE_AWAKE					2
45*a0a23564SMichal Meloun 
46*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_STATE2		0x003
47*a0a23564SMichal Meloun #define	 SOR_STATE2_ASY_DEPOL_NEG			(1 << 14)
48*a0a23564SMichal Meloun #define	 SOR_STATE2_ASY_VSYNCPOL_NEG			(1 << 13)
49*a0a23564SMichal Meloun #define	 SOR_STATE2_ASY_HSYNCPOL_NEG			(1 << 12)
50*a0a23564SMichal Meloun #define	 SOR_STATE2_ASY_PROTOCOL(x)			(((x) & 0xf) << 8)
51*a0a23564SMichal Meloun #define	  ASY_PROTOCOL_SINGLE_TMDS_A				1
52*a0a23564SMichal Meloun #define	  ASY_PROTOCOL_CUSTOM					15
53*a0a23564SMichal Meloun #define	 SOR_STATE2_ASY_CRCMODE(x)			(((x) & 0x3) <<  6)
54*a0a23564SMichal Meloun #define	  ASY_CRCMODE_ACTIVE					0
55*a0a23564SMichal Meloun #define	  ASY_CRCMODE_COMPLETE					1
56*a0a23564SMichal Meloun #define	  ASY_CRCMODE_NON_ACTIVE				2
57*a0a23564SMichal Meloun #define	 SOR_STATE2_ASY_SUBOWNER(x)			(((x) & 0x3) <<  4)
58*a0a23564SMichal Meloun #define	  ASY_SUBOWNER_NONE					0
59*a0a23564SMichal Meloun #define	  ASY_SUBOWNER_SUBHEAD0					1
60*a0a23564SMichal Meloun #define	  ASY_SUBOWNER_SUBHEAD1					2
61*a0a23564SMichal Meloun #define	  SUBOWNER_BOTH						3
62*a0a23564SMichal Meloun #define	 SOR_STATE2_ASY_OWNER(x)			(((x) & 0x3) <<  0)
63*a0a23564SMichal Meloun #define	  ASY_OWNER_NONE					0
64*a0a23564SMichal Meloun #define	  ASY_OWNER_HEAD0					1
65*a0a23564SMichal Meloun 
66*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_CTRL	0x01e
67*a0a23564SMichal Meloun #define	 AUDIO_INFOFRAME_CTRL_ENABLE			(1 << 0)
68*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_STATUS 0x01f
69*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_HEADER 0x020
70*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_SUBPACK0_LOW 0x021
71*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_SUBPACK0_HIGH 0x022
72*a0a23564SMichal Meloun #define	 INFOFRAME_HEADER_LEN(x)			(((x) & 0x0f) << 16)
73*a0a23564SMichal Meloun #define	 INFOFRAME_HEADER_VERSION(x)			(((x) & 0xff) <<  8)
74*a0a23564SMichal Meloun #define	 INFOFRAME_HEADER_TYPE(x)			(((x) & 0xff) <<  0)
75*a0a23564SMichal Meloun 
76*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_CTRL	0x023
77*a0a23564SMichal Meloun #define	 AVI_INFOFRAME_CTRL_ENABLE			(1 << 0)
78*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_STATUS	0x024
79*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_HEADER	0x025
80*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_SUBPACK0_LOW  0x026
81*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_SUBPACK0_HIGH 0x027
82*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_SUBPACK1_LOW  0x028
83*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_SUBPACK1_HIGH 0x029
84*a0a23564SMichal Meloun 
85*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_GENERIC_CTRL		0x02a
86*a0a23564SMichal Meloun #define	 GENERIC_CTRL_AUDIO				(1 << 16)
87*a0a23564SMichal Meloun #define	 GENERIC_CTRL_HBLANK				(1 << 12)
88*a0a23564SMichal Meloun #define	 GENERIC_CTRL_SINGLE				(1 <<  8)
89*a0a23564SMichal Meloun #define	 GENERIC_CTRL_OTHER				(1 <<  4)
90*a0a23564SMichal Meloun #define	 GENERIC_CTRL_ENABLE				(1 <<  0)
91*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_GENERIC_STATUS	0x02b
92*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_GENERIC_HEADER	0x02c
93*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK0_LOW	 0x02d
94*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK0_HIGH 0x02e
95*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK1_LOW	 0x02f
96*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK1_HIGH 0x030
97*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK2_LOW	 0x031
98*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK2_HIGH 0x032
99*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK3_LOW	 0x033
100*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK3_HIGH 0x034
101*a0a23564SMichal Meloun 
102*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_CTRL		0x035
103*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_0320_SUBPACK_LOW	 0x036
104*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_0320_SUBPACK_HIGH 0x037
105*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_0441_SUBPACK_LOW	 0x038
106*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_0441_SUBPACK_HIGH 0x039
107*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_0882_SUBPACK_LOW	 0x03a
108*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_0882_SUBPACK_HIGH 0x03b
109*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_1764_SUBPACK_LOW	 0x03c
110*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_1764_SUBPACK_HIGH 0x03d
111*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_0480_SUBPACK_LOW	 0x03e
112*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_0480_SUBPACK_HIGH 0x03f
113*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_0960_SUBPACK_LOW	 0x040
114*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_0960_SUBPACK_HIGH 0x041
115*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_1920_SUBPACK_LOW	 0x042
116*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_ACR_1920_SUBPACK_HIGH 0x043
117*a0a23564SMichal Meloun #define	 ACR_ENABLE					(1U << 31)
118*a0a23564SMichal Meloun #define	 ACR_SUBPACK_CTS(x)				(((x) & 0xffffff) << 8)
119*a0a23564SMichal Meloun #define	 ACR_SUBPACK_N(x)				(((x) & 0xffffff) << 0)
120*a0a23564SMichal Meloun 
121*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_CTRL			0x044
122*a0a23564SMichal Meloun #define	 HDMI_CTRL_ENABLE				(1 << 30)
123*a0a23564SMichal Meloun #define	 HDMI_CTRL_CA_SELECT				(1 << 28)
124*a0a23564SMichal Meloun #define	 HDMI_CTRL_SS_SELECT				(1 << 27)
125*a0a23564SMichal Meloun #define	 HDMI_CTRL_SF_SELECT				(1 << 26)
126*a0a23564SMichal Meloun #define	 HDMI_CTRL_CC_SELECT				(1 << 25)
127*a0a23564SMichal Meloun #define	 HDMI_CTRL_CT_SELECT				(1 << 24)
128*a0a23564SMichal Meloun #define	 HDMI_CTRL_MAX_AC_PACKET(x)			(((x) & 0x1f) << 16)
129*a0a23564SMichal Meloun #define	 HDMI_CTRL_SAMPLE_FLAT				(1 << 12)
130*a0a23564SMichal Meloun #define	 HDMI_CTRL_AUDIO_LAYOUT_SELECT			(1 << 10)
131*a0a23564SMichal Meloun #define	 HDMI_CTRL_AUDIO_LAYOUT				(1 <<  8)
132*a0a23564SMichal Meloun #define	 HDMI_CTRL_REKEY(x)				(((x) & 0x7f) <<  0)
133*a0a23564SMichal Meloun 
134*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_VSYNC_WINDOW		0x046
135*a0a23564SMichal Meloun #define	 VSYNC_WINDOW_ENABLE				(1U << 31)
136*a0a23564SMichal Meloun #define	 VSYNC_WINDOW_START(x)				(((x) & 0x3ff) << 16)
137*a0a23564SMichal Meloun #define	 VSYNC_WINDOW_END(x)				(((x) & 0x3ff) <<  0)
138*a0a23564SMichal Meloun 
139*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_HDMI_SPARE		0x04f
140*a0a23564SMichal Meloun #define	 SPARE_ACR_PRIORITY				(1U << 31)
141*a0a23564SMichal Meloun #define	 SPARE_CTS_RESET_VAL(x)				(((x) & 0x7) << 16)
142*a0a23564SMichal Meloun #define	 SPARE_SUPRESS_SP_B				(1 << 2)
143*a0a23564SMichal Meloun #define	 SPARE_FORCE_SW_CTS				(1 << 1)
144*a0a23564SMichal Meloun #define	 SPARE_HW_CTS					(1 << 0)
145*a0a23564SMichal Meloun 
146*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_PWR			0x055
147*a0a23564SMichal Meloun #define	 SOR_PWR_SETTING_NEW				(1U << 31)
148*a0a23564SMichal Meloun #define	 SOR_PWR_SAFE_STATE_PU				(1 << 16)
149*a0a23564SMichal Meloun #define	 SOR_PWR_NORMAL_START_ALT			(1 <<  1)
150*a0a23564SMichal Meloun #define	 SOR_PWR_NORMAL_STATE_PU			(1 <<  0)
151*a0a23564SMichal Meloun 
152*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_PLL0			0x057
153*a0a23564SMichal Meloun #define	 SOR_PLL0_TX_REG_LOAD(x)			(((x) & 0xf) << 28)
154*a0a23564SMichal Meloun #define	 SOR_PLL0_ICHPMP(x)				(((x) & 0xf) << 24)
155*a0a23564SMichal Meloun #define	 SOR_PLL0_FILTER(x)				(((x) & 0xf) << 16)
156*a0a23564SMichal Meloun #define	 SOR_PLL0_BG_V17_S(x)				(((x) & 0xf) << 12)
157*a0a23564SMichal Meloun #define	 SOR_PLL0_VCOCAP(x)				(((x) & 0xf) <<  8)
158*a0a23564SMichal Meloun #define	 SOR_PLL0_PULLDOWN				(1 << 5)
159*a0a23564SMichal Meloun #define	 SOR_PLL0_RESISTORSEL				(1 << 4)
160*a0a23564SMichal Meloun #define	 SOR_PLL0_PDPORT				(1 << 3)
161*a0a23564SMichal Meloun #define	 SOR_PLL0_VCOPD					(1 << 2)
162*a0a23564SMichal Meloun #define	 SOR_PLL0_PDBG					(1 << 1)
163*a0a23564SMichal Meloun #define	 SOR_PLL0_PWR					(1 << 0)
164*a0a23564SMichal Meloun 
165*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_PLL1			0x058
166*a0a23564SMichal Meloun #define	 SOR_PLL1_S_D_PIN_PE				(1 << 30)
167*a0a23564SMichal Meloun #define	 SOR_PLL1_HALF_FULL_PE				(1 << 29)
168*a0a23564SMichal Meloun #define	 SOR_PLL1_PE_EN					(1 << 28)
169*a0a23564SMichal Meloun #define	 SOR_PLL1_LOADADJ(x)				(((x) & 0xf) << 20)
170*a0a23564SMichal Meloun #define	 SOR_PLL1_TMDS_TERMADJ(x)			(((x) & 0xf) <<  9)
171*a0a23564SMichal Meloun #define	 SOR_PLL1_TMDS_TERM				(1 << 8)
172*a0a23564SMichal Meloun 
173*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_CSTM			0x05a
174*a0a23564SMichal Meloun #define	 SOR_CSTM_ROTAT(x)				(((x) & 0xf) << 28)
175*a0a23564SMichal Meloun #define	 SOR_CSTM_ROTCLK(x)				(((x) & 0xf) << 24)
176*a0a23564SMichal Meloun #define	 SOR_CSTM_PLLDIV				(1 << 21)
177*a0a23564SMichal Meloun #define	 SOR_CSTM_BALANCED				(1 << 19)
178*a0a23564SMichal Meloun #define	 SOR_CSTM_NEW_MODE				(1 << 18)
179*a0a23564SMichal Meloun #define	 SOR_CSTM_DUP_SYNC				(1 << 17)
180*a0a23564SMichal Meloun #define	 SOR_CSTM_LVDS_ENABLE				(1 << 16)
181*a0a23564SMichal Meloun #define	 SOR_CSTM_LINKACTB				(1 << 15)
182*a0a23564SMichal Meloun #define	 SOR_CSTM_LINKACTA				(1 << 14)
183*a0a23564SMichal Meloun #define	 SOR_CSTM_MODE(x)				(((x) & 0x3) << 12)
184*a0a23564SMichal Meloun #define	  CSTM_MODE_LVDS					0
185*a0a23564SMichal Meloun #define	  CSTM_MODE_TMDS					1
186*a0a23564SMichal Meloun 
187*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_SEQ_CTL		0x05f
188*a0a23564SMichal Meloun #define	 SOR_SEQ_SWITCH					(1 << 30)
189*a0a23564SMichal Meloun #define	 SOR_SEQ_STATUS					(1 << 28)
190*a0a23564SMichal Meloun #define	 SOR_SEQ_PC(x)					(((x) & 0xf) << 16)
191*a0a23564SMichal Meloun #define	 SOR_SEQ_PD_PC_ALT(x)				(((x) & 0xf) << 12)
192*a0a23564SMichal Meloun #define	 SOR_SEQ_PD_PC(x)				(((x) & 0xf) <<  8)
193*a0a23564SMichal Meloun #define	 SOR_SEQ_PU_PC_ALT(x)				(((x) & 0xf) <<  4)
194*a0a23564SMichal Meloun #define	 SOR_SEQ_PU_PC(x)				(((x) & 0xf) <<  0)
195*a0a23564SMichal Meloun 
196*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_SEQ_INST(x)		(0x060 + (x))
197*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_PLL_PULLDOWN			(1U << 31)
198*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_POWERDOWN_MACRO			(1 << 30)
199*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_ASSERT_PLL_RESETV			(1 << 29)
200*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_BLANK_V				(1 << 28)
201*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_BLANK_H				(1 << 27)
202*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_BLANK_DE				(1 << 26)
203*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_BLACK_DATA			(1 << 25)
204*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_TRISTATE_IOS			(1 << 24)
205*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_DRIVE_PWM_OUT_LO			(1 << 23)
206*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_PIN_B_HIGH			(1 << 22)
207*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_PIN_A_HIGH			(1 << 21)
208*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_HALT				(1 << 15)
209*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_WAIT_UNITS(x)			(((x) & 0x3) << 12)
210*a0a23564SMichal Meloun #define	  WAIT_UNITS_US						0
211*a0a23564SMichal Meloun #define	  WAIT_UNITS_MS						1
212*a0a23564SMichal Meloun #define	  WAIT_UNITS_VSYNC					2
213*a0a23564SMichal Meloun #define	 SOR_SEQ_INST_WAIT_TIME(x)			(((x) & 0x3ff) << 0)
214*a0a23564SMichal Meloun 
215*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_LANE_DRIVE_CURRENT	0x07e
216*a0a23564SMichal Meloun 
217*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_AUDIO_N			0x08c
218*a0a23564SMichal Meloun #define	 AUDIO_N_LOOKUP					(1 << 28)
219*a0a23564SMichal Meloun #define	 AUDIO_N_GENERATE_ALTERNATE			(1 << 24)
220*a0a23564SMichal Meloun #define	 AUDIO_N_RESETF					(1 << 20)
221*a0a23564SMichal Meloun #define	 AUDIO_N_VALUE(x)				(((x) & 0xfffff) << 0)
222*a0a23564SMichal Meloun 
223*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_REFCLK		0x095
224*a0a23564SMichal Meloun #define	 SOR_REFCLK_DIV_INT(x)				(((x) & 0xff) << 8)
225*a0a23564SMichal Meloun #define	 SOR_REFCLK_DIV_FRAC(x)				(((x) & 0x03) << 6)
226*a0a23564SMichal Meloun 
227*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_INPUT_CONTROL		0x097
228*a0a23564SMichal Meloun #define	 ARM_VIDEO_RANGE_LIMITED			(1 << 1)
229*a0a23564SMichal Meloun #define	 HDMI_SRC_DISPLAYB				(1 << 0)
230*a0a23564SMichal Meloun 
231*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_PE_CURRENT		0x099
232*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_CNTRL0		0x0ac
233*a0a23564SMichal Meloun #define	 SOR_AUDIO_CNTRL0_INJECT_NULLSMPL		(1 << 29)
234*a0a23564SMichal Meloun #define	 SOR_AUDIO_CNTRL0_SOURCE_SELECT(x)		(((x) & 0x03) << 20)
235*a0a23564SMichal Meloun #define	  SOURCE_SELECT_AUTO					0
236*a0a23564SMichal Meloun #define	  SOURCE_SELECT_SPDIF					1
237*a0a23564SMichal Meloun #define	  SOURCE_SELECT_HDAL					2
238*a0a23564SMichal Meloun #define	 SOR_AUDIO_CNTRL0_AFIFO_FLUSH			(1 << 12)
239*a0a23564SMichal Meloun 
240*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_SPARE0		0x0ae
241*a0a23564SMichal Meloun #define	 SOR_AUDIO_SPARE0_HBR_ENABLE			(1 << 27)
242*a0a23564SMichal Meloun 
243*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_NVAL_0320	0x0af
244*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_NVAL_0441	0x0b0
245*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_NVAL_0882	0x0b1
246*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_NVAL_1764	0x0b2
247*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_NVAL_0480	0x0b3
248*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_NVAL_0960	0x0b4
249*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_NVAL_1920	0x0b5
250*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_HDA_SCRATCH0	0x0b6
251*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_HDA_SCRATCH1	0x0b7
252*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_HDA_SCRATCH2	0x0b8
253*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_HDA_SCRATCH3	0x0b9
254*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_HDA_CODEC_SCRATCH0 0x0ba
255*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_HDA_CODEC_SCRATCH1 0x0bb
256*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_HDA_ELD_BUFWR	0x0bc
257*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_HDA_PRESENSE	0x0bd
258*a0a23564SMichal Meloun #define	 SOR_AUDIO_HDA_PRESENSE_VALID			(1 << 1)
259*a0a23564SMichal Meloun #define	 SOR_AUDIO_HDA_PRESENSE_PRESENT			(1 << 0)
260*a0a23564SMichal Meloun 
261*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_AVAL_0320	0x0bf
262*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_AVAL_0441	0x0c0
263*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_AVAL_0882	0x0c1
264*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_AVAL_1764	0x0c2
265*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_AVAL_0480	0x0c3
266*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_AVAL_0960	0x0c4
267*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_AVAL_1920	0x0c5
268*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_AUDIO_AVAL_DEFAULT	0x0c6
269*a0a23564SMichal Meloun 
270*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_INT_STATUS		0x0cc
271*a0a23564SMichal Meloun #define	 INT_SCRATCH					(1 << 3)
272*a0a23564SMichal Meloun #define	 INT_CP_REQUEST					(1 << 2)
273*a0a23564SMichal Meloun #define	 INT_CODEC_SCRATCH1				(1 << 1)
274*a0a23564SMichal Meloun #define	 INT_CODEC_SCRATCH0				(1 << 0)
275*a0a23564SMichal Meloun 
276*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_INT_MASK			0x0cd
277*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_INT_ENABLE		0x0ce
278*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_IO_PEAK_CURRENT	0x0d1
279*a0a23564SMichal Meloun #define	HDMI_NV_PDISP_SOR_PAD_CTLS0		0x0d2
280*a0a23564SMichal Meloun 
281*a0a23564SMichal Meloun #endif /* _TEGRA_HDMI_REG_H_ */
282