sunxi_hdmireg.h revision 1.1 1 1.1 bouyer /* $NetBSD: sunxi_hdmireg.h,v 1.1 2018/04/03 12:52:16 bouyer Exp $ */
2 1.1 bouyer
3 1.1 bouyer /*-
4 1.1 bouyer * Copyright (c) 2013 The NetBSD Foundation, Inc.
5 1.1 bouyer * All rights reserved.
6 1.1 bouyer *
7 1.1 bouyer * This code is derived from software contributed to The NetBSD Foundation
8 1.1 bouyer * by Matt Thomas of 3am Software Foundry.
9 1.1 bouyer *
10 1.1 bouyer * Redistribution and use in source and binary forms, with or without
11 1.1 bouyer * modification, are permitted provided that the following conditions
12 1.1 bouyer * are met:
13 1.1 bouyer * 1. Redistributions of source code must retain the above copyright
14 1.1 bouyer * notice, this list of conditions and the following disclaimer.
15 1.1 bouyer * 2. Redistributions in binary form must reproduce the above copyright
16 1.1 bouyer * notice, this list of conditions and the following disclaimer in the
17 1.1 bouyer * documentation and/or other materials provided with the distribution.
18 1.1 bouyer *
19 1.1 bouyer * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20 1.1 bouyer * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 1.1 bouyer * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 1.1 bouyer * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 1.1 bouyer * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 1.1 bouyer * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 1.1 bouyer * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 1.1 bouyer * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 1.1 bouyer * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 1.1 bouyer * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 1.1 bouyer * POSSIBILITY OF SUCH DAMAGE.
30 1.1 bouyer */
31 1.1 bouyer
32 1.1 bouyer
33 1.1 bouyer #define SUNXI_HDMI_VERSION_ID_REG 0x0000
34 1.1 bouyer #define SUNXI_HDMI_CTRL_REG 0x0004
35 1.1 bouyer #define SUNXI_HDMI_INT_STATUS_REG 0x0008
36 1.1 bouyer #define SUNXI_HDMI_HPD_REG 0x000c
37 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_REG 0x0010
38 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_0_REG 0x0014
39 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_1_REG 0x0018
40 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_2_REG 0x001c
41 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_3_REG 0x0020
42 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_4_REG 0x0024
43 1.1 bouyer #define SUNXI_HDMI_AUD_CTRL_REG 0x0040
44 1.1 bouyer #define SUNXI_HDMI_ADMA_CTRL_REG 0x0044
45 1.1 bouyer #define SUNXI_HDMI_AUD_FMT_REG 0x0048
46 1.1 bouyer #define SUNXI_HDMI_AUD_PCM_CTRL_REG 0x004c
47 1.1 bouyer #define SUNXI_HDMI_AUD_CTS_REG 0x0050
48 1.1 bouyer #define SUNXI_HDMI_AUD_N_REG 0x0054
49 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_REG 0x0058
50 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS1_REG 0x005c
51 1.1 bouyer #define SUNXI_HDMI_AVI_INFO_PKT_REG 0x0080
52 1.1 bouyer #define SUNXI_HDMI_AUD_INFO_PKT_REG 0x00a0
53 1.1 bouyer #define SUNXI_HDMI_ACP_PKT_REG 0x00c0
54 1.1 bouyer #define SUNXI_HDMI_GP_PKT0_REG 0x00e0
55 1.1 bouyer #define SUNXI_HDMI_GP_PKT1_REG 0x00e0
56 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL0_REG 0x0200
57 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_REG 0x0204
58 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_REG 0x0208
59 1.1 bouyer #define SUNXI_HDMI_PLL_DBG0_REG 0x020c
60 1.1 bouyer #define SUNXI_HDMI_PLL_DBG1_REG 0x0210
61 1.1 bouyer #define SUNXI_HDMI_HPD_CEC_REG 0x0214
62 1.1 bouyer #define SUNXI_HDMI_SPD_PKT_REG 0x0240
63 1.1 bouyer #define SUNXI_HDMI_PKT_CTRL0_REG 0x02f0
64 1.1 bouyer #define SUNXI_HDMI_PKT_CTRL1_REG 0x02f4
65 1.1 bouyer #define SUNXI_HDMI_DBG4_REG 0x0310
66 1.1 bouyer #define SUNXI_HDMI_AUX_TX_FIFO_REG 0x0400
67 1.1 bouyer #define SUNXI_HDMI_DDC_CTRL_REG 0x0500
68 1.1 bouyer #define SUNXI_HDMI_DDC_SLAVE_ADDR_REG 0x0504
69 1.1 bouyer #define SUNXI_HDMI_DDC_INT_MASK_REG 0x0508
70 1.1 bouyer #define SUNXI_HDMI_DDC_INT_STATUS_REG 0x050c
71 1.1 bouyer #define SUNXI_HDMI_DDC_FIFO_CTRL_REG 0x0510
72 1.1 bouyer #define SUNXI_HDMI_DDC_FIFO_STATUS_REG 0x0514
73 1.1 bouyer #define SUNXI_HDMI_DDC_FIFO_ACCESS_REG 0x0518
74 1.1 bouyer #define SUNXI_HDMI_DDC_BYTE_COUNTER_REG 0x051c
75 1.1 bouyer #define SUNXI_HDMI_DDC_COMMAND_REG 0x0520
76 1.1 bouyer #define SUNXI_HDMI_DDC_EX_REG 0x0524
77 1.1 bouyer #define SUNXI_HDMI_DDC_CLOCK_REG 0x0528
78 1.1 bouyer #define SUNXI_HDMI_DDC_DBG_REG 0x0540
79 1.1 bouyer
80 1.1 bouyer #define SUNXI_HDMI_VERSION_ID_H __BITS(31,16)
81 1.1 bouyer #define SUNXI_HDMI_VERSION_ID_L __BITS(15,0)
82 1.1 bouyer
83 1.1 bouyer #define SUNXI_HDMI_CTRL_MODULE_EN __BIT(31)
84 1.1 bouyer #define SUNXI_HDMI_CTRL_HDCP_EN __BIT(30)
85 1.1 bouyer #define SUNXI_HDMI_CTRL_CLR_AVMUTE __BIT(1)
86 1.1 bouyer #define SUNXI_HDMI_CTRL_SET_AVMUTE __BIT(0)
87 1.1 bouyer
88 1.1 bouyer #define SUNXI_HDMI_HPD_HOTPLUG_DET __BIT(0)
89 1.1 bouyer
90 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_VIDEO_EN __BIT(31)
91 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_HDMI_MODE __BIT(30)
92 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_HDMI_MODE_DVI 0
93 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_HDMI_MODE_HDMI 1
94 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_SRC_SEL __BIT(5)
95 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_SRC_SEL_RGB 0
96 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_SRC_SEL_CBGEN 1
97 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_OUTPUT_FMT __BIT(4)
98 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_OUTPUT_FMT_PROGRESS 0
99 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_OUTPUT_FMT_INTERLACE 1
100 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_COLOR_MODE __BITS(3,2)
101 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_COLOR_MODE_24 0
102 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_COLOR_MODE_30 1
103 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_COLOR_MODE_36 2
104 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_COLOR_MODE_48 3
105 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_REPEATER_SEL __BITS(1,0)
106 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_REPEATER_SEL_NORMAL 0
107 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_REPEATER_SEL_2X 1
108 1.1 bouyer #define SUNXI_HDMI_VID_CTRL_REPEATER_SEL_4X 2
109 1.1 bouyer
110 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_0_ACT_V __BITS(27,16)
111 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_0_ACT_H __BITS(11,0)
112 1.1 bouyer
113 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_1_VBP __BITS(27,16)
114 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_1_HBP __BITS(11,0)
115 1.1 bouyer
116 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_2_VFP __BITS(27,16)
117 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_2_HFP __BITS(11,0)
118 1.1 bouyer
119 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_3_VSPW __BITS(27,16)
120 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_3_HSPW __BITS(11,0)
121 1.1 bouyer
122 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_4_TX_CLOCK __BITS(25,16)
123 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_4_TX_CLOCK_NORMAL 0x3e0
124 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_4_VSYNC_ACTIVE_SEL __BIT(1)
125 1.1 bouyer #define SUNXI_HDMI_VID_TIMING_4_HSYNC_ACTIVE_SEL __BIT(0)
126 1.1 bouyer
127 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL0_BIAS __BIT(31)
128 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL0_LDOCEN __BIT(30)
129 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL0_LD0DEN __BIT(29)
130 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL0_PWENC __BIT(28)
131 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL0_PWEND __BIT(27)
132 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL0_PWENG __BIT(26)
133 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL0_CKEN __BIT(25)
134 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL0_SEN __BIT(24)
135 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL0_TXEN __BIT(23)
136 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL0_AUTOSYNC_DIS __BIT(22)
137 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL0_LSB_MSB __BIT(21)
138 1.1 bouyer
139 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_AMP_OPT __BIT(23)
140 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_AMPCK_OPT __BIT(22)
141 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_DMP_OPT __BIT(21)
142 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_EMP_OPT __BIT(20)
143 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_EMPCK_OPT __BIT(19)
144 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_PWSCK __BIT(18)
145 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_PWSDT __BIT(17)
146 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_REG_CSMPS __BIT(16)
147 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_REG_DEN __BIT(15)
148 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_REG_DENCK __BIT(14)
149 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_REG_PLRCK __BIT(13)
150 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_REG_EMP __BITS(12,10)
151 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_REG_CD __BITS(9,8)
152 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_REG_CKSS __BITS(7,6)
153 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_REG_AMP __BITS(5,3)
154 1.1 bouyer #define SUNXI_HDMI_PAD_CTRL1_REG_PLR __BITS(2,0)
155 1.1 bouyer
156 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_PLL_EN __BIT(31)
157 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_BWS __BIT(30)
158 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_HV_IS_33 __BIT(29)
159 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_LDO1_EN __BIT(28)
160 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_LDO2_EN __BIT(27)
161 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_S6P25_7P5 __BIT(26)
162 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_SDIV2 __BIT(25)
163 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_SINT_FRAC __BIT(24)
164 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_VCO_GAIN_EN __BIT(23)
165 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_VCO_GAIN __BITS(22,20)
166 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_S __BITS(19,17)
167 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_CP_S __BITS(16,12)
168 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_CS __BITS(11,8)
169 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_PREDIV __BITS(7,4)
170 1.1 bouyer #define SUNXI_HDMI_PLL_CTRL_VCO_S __BITS(3,0)
171 1.1 bouyer
172 1.1 bouyer #define SUNXI_HDMI_AUD_CTRL_EN __BIT(31)
173 1.1 bouyer #define SUNXI_HDMI_AUD_CTRL_RST __BIT(30)
174 1.1 bouyer
175 1.1 bouyer #define SUNXI_HDMI_ADMA_CTRL_SRC_DMA_MODE __BIT(31)
176 1.1 bouyer #define SUNXI_HDMI_ADMA_CTRL_DMA_REQ_CTRL __BITS(25,24)
177 1.1 bouyer #define SUNXI_HDMI_ADMA_CTRL_SRC_DMA_SAMPLE_RATE __BIT(19)
178 1.1 bouyer #define SUNXI_HDMI_ADMA_CTRL_SRC_SAMPLE_LAYOUT __BIT(18)
179 1.1 bouyer #define SUNXI_HDMI_ADMA_CTRL_SRC_WORD_LEN __BITS(17,16)
180 1.1 bouyer #define SUNXI_HDMI_ADMA_CTRL_FIFO_CLEAR __BIT(15)
181 1.1 bouyer #define SUNXI_HDMI_ADMA_CTRL_DATA_SEL __BIT(0)
182 1.1 bouyer
183 1.1 bouyer #define SUNXI_HDMI_AUD_FMT_SRC_SEL __BIT(31)
184 1.1 bouyer #define SUNXI_HDMI_AUD_FMT_SEL __BITS(26,24)
185 1.1 bouyer #define SUNXI_HDMI_AUD_FMT_DSD_FMT __BIT(4)
186 1.1 bouyer #define SUNXI_HDMI_AUD_FMT_LAYOUT __BIT(3)
187 1.1 bouyer #define SUNXI_HDMI_AUD_FMT_SRC_CH_CFG __BITS(2,0)
188 1.1 bouyer
189 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_CHNL_BIT1 __BITS(31,30)
190 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_CLK_ACCUR __BITS(29,28)
191 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_FS_FREQ __BITS(27,24)
192 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_FS_FREQ_44_1 0
193 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_FS_FREQ_48 2
194 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_FS_FREQ_32 3
195 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_FS_FREQ_88_2 8
196 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_FS_FREQ_96 10
197 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_FS_FREQ_176_4 12
198 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_FS_FREQ_192 14
199 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_CH_NUM __BITS(23,20)
200 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_SOURCE_NUM __BITS(19,16)
201 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_CATEGORY_CODE __BITS(15,8)
202 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_MODE __BITS(7,6)
203 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_EMPHASIS __BITS(5,3)
204 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_CP __BIT(2)
205 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_DATA_TYPE __BIT(1)
206 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS0_APP_TYPE __BIT(0)
207 1.1 bouyer
208 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS1_CGMS_A __BITS(9,8)
209 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS1_ORIGINAL_FS __BITS(7,4)
210 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS1_WORD_LEN __BITS(3,1)
211 1.1 bouyer #define SUNXI_HDMI_AUD_CH_STATUS1_WORD_LEN_MAX __BIT(0)
212 1.1 bouyer
213 1.1 bouyer #define SUNXI_HDMI_DDC_CTRL_EN __BIT(31)
214 1.1 bouyer #define SUNXI_HDMI_DDC_CTRL_ACCESS_CMD_START __BIT(30)
215 1.1 bouyer #define SUNXI_HDMI_DDC_CTRL_FIFO_DIR __BIT(8)
216 1.1 bouyer #define SUNXI_HDMI_DDC_CTRL_FIFO_DIR_READ 0
217 1.1 bouyer #define SUNXI_HDMI_DDC_CTRL_FIFO_DIR_WRITE 1
218 1.1 bouyer #define SUNXI_HDMI_DDC_CTRL_SW_RST __BIT(0)
219 1.1 bouyer
220 1.1 bouyer #define SUNXI_HDMI_DDC_SLAVE_ADDR_0 __BITS(31,24)
221 1.1 bouyer #define SUNXI_HDMI_DDC_SLAVE_ADDR_1 __BITS(23,16)
222 1.1 bouyer #define SUNXI_HDMI_DDC_SLAVE_ADDR_2 __BITS(15,8)
223 1.1 bouyer #define SUNXI_HDMI_DDC_SLAVE_ADDR_3 __BITS(6,0)
224 1.1 bouyer
225 1.1 bouyer #define SUNXI_HDMI_DDC_INT_STATUS_CLEAR __BIT(8)
226 1.1 bouyer #define SUNXI_HDMI_DDC_INT_STATUS_ILLEGAL_FIFO_OP __BIT(7)
227 1.1 bouyer #define SUNXI_HDMI_DDC_INT_STATUS_RX_UNDERFLOW __BIT(6)
228 1.1 bouyer #define SUNXI_HDMI_DDC_INT_STATUS_TX_OVERFLOW __BIT(5)
229 1.1 bouyer #define SUNXI_HDMI_DDC_INT_STATUS_FIFO_REQ __BIT(4)
230 1.1 bouyer #define SUNXI_HDMI_DDC_INT_STATUS_ARB_ERR __BIT(3)
231 1.1 bouyer #define SUNXI_HDMI_DDC_INT_STATUS_ACK_ERR __BIT(2)
232 1.1 bouyer #define SUNXI_HDMI_DDC_INT_STATUS_BUS_ERR __BIT(1)
233 1.1 bouyer #define SUNXI_HDMI_DDC_INT_STATUS_TRANSFER_COMPLETE __BIT(0)
234 1.1 bouyer
235 1.1 bouyer #define SUNXI_HDMI_DDC_FIFO_CTRL_ADDR_CLEAR __BIT(31)
236 1.1 bouyer #define SUNXI_HDMI_DDC_FIFO_CTRL_REQUEST_EN __BIT(8)
237 1.1 bouyer #define SUNXI_HDMI_DDC_FIFO_CTRL_RX_TRIGGER_THRESH __BITS(7,4)
238 1.1 bouyer #define SUNXI_HDMI_DDC_FIFO_CTRL_TX_TRIGGER_THRESH __BITS(3,0)
239 1.1 bouyer
240 1.1 bouyer #define SUNXI_HDMI_DDC_FIFO_STATUS_REQ_READY __BIT(7)
241 1.1 bouyer #define SUNXI_HDMI_DDC_FIFO_STATUS_FULL __BIT(6)
242 1.1 bouyer #define SUNXI_HDMI_DDC_FIFO_STATUS_EMPTY __BIT(5)
243 1.1 bouyer #define SUNXI_HDMI_DDC_FIFO_STATUS_LEVEL __BITS(4,0)
244 1.1 bouyer
245 1.1 bouyer #define SUNXI_HDMI_DDC_COMMAND_ACCESS_CMD __BITS(2,0)
246 1.1 bouyer #define SUNXI_HDMI_DDC_COMMAND_ACCESS_CMD_ABORT 0
247 1.1 bouyer #define SUNXI_HDMI_DDC_COMMAND_ACCESS_CMD_SOREAD 1
248 1.1 bouyer #define SUNXI_HDMI_DDC_COMMAND_ACCESS_CMD_EOWRITE 2
249 1.1 bouyer #define SUNXI_HDMI_DDC_COMMAND_ACCESS_CMD_IOWRITE 3
250 1.1 bouyer #define SUNXI_HDMI_DDC_COMMAND_ACCESS_CMD_EOREAD 4
251 1.1 bouyer #define SUNXI_HDMI_DDC_COMMAND_ACCESS_CMD_IOREAD 5
252 1.1 bouyer #define SUNXI_HDMI_DDC_COMMAND_ACCESS_CMD_EOEDDCREAD 6
253 1.1 bouyer #define SUNXI_HDMI_DDC_COMMAND_ACCESS_CMD_IOEDDCREAD 7
254 1.1 bouyer
255 1.1 bouyer #define SUNXI_HDMI_DDC_CLOCK_M __BITS(6,3)
256 1.1 bouyer #define SUNXI_HDMI_DDC_CLOCK_N __BITS(2,0)
257 1.1 bouyer
258 1.1 bouyer #define SUNXI_A31_HDMI_DDC_CTRL_REG 0x0500
259 1.1 bouyer #define SUNXI_A31_HDMI_DDC_EXCTRL_REG 0x0504
260 1.1 bouyer #define SUNXI_A31_HDMI_DDC_COMMAND_REG 0x0508
261 1.1 bouyer #define SUNXI_A31_HDMI_DDC_SLAVE_ADDR_REG 0x050c
262 1.1 bouyer #define SUNXI_A31_HDMI_DDC_INT_MASK_REG 0x0510
263 1.1 bouyer #define SUNXI_A31_HDMI_DDC_INT_STATUS_REG 0x0514
264 1.1 bouyer #define SUNXI_A31_HDMI_DDC_FIFO_CTRL_REG 0x0518
265 1.1 bouyer #define SUNXI_A31_HDMI_DDC_FIFO_STATUS_REG 0x051c
266 1.1 bouyer #define SUNXI_A31_HDMI_DDC_CLOCK_REG 0x0520
267 1.1 bouyer #define SUNXI_A31_HDMI_DDC_TIMEOUT_REG 0x0524
268 1.1 bouyer #define SUNXI_A31_HDMI_DDC_FIFO_ACCESS_REG 0x0580
269 1.1 bouyer
270 1.1 bouyer #define SUNXI_A31_HDMI_DDC_CTRL_SW_RST __BIT(31)
271 1.1 bouyer #define SUNXI_A31_HDMI_DDC_CTRL_ACCESS_CMD_START __BIT(27)
272 1.1 bouyer #define SUNXI_A31_HDMI_DDC_CTRL_SDA_PAD_PULLDOWN __BIT(7)
273 1.1 bouyer #define SUNXI_A31_HDMI_DDC_CTRL_SDA_PAD_EN __BIT(6)
274 1.1 bouyer #define SUNXI_A31_HDMI_DDC_CTRL_SCL_PAD_PULLDOWN __BIT(5)
275 1.1 bouyer #define SUNXI_A31_HDMI_DDC_CTRL_SCL_PAD_EN __BIT(4)
276 1.1 bouyer #define SUNXI_A31_HDMI_DDC_CTRL_EN __BIT(0)
277 1.1 bouyer
278 1.1 bouyer #define SUNXI_A31_HDMI_DDC_EXCTRL_BUS_BUSY __BIT(10)
279 1.1 bouyer #define SUNXI_A31_HDMI_DDC_EXCTRL_SCL_STATUS __BIT(9)
280 1.1 bouyer #define SUNXI_A31_HDMI_DDC_EXCTRL_SDA_STATUS __BIT(8)
281 1.1 bouyer #define SUNXI_A31_HDMI_DDC_EXCTRL_SEGMENT_SEL __BIT(7)
282 1.1 bouyer #define SUNXI_A31_HDMI_DDC_EXCTRL_SEGMENT0_DET __BIT(6)
283 1.1 bouyer #define SUNXI_A31_HDMI_DDC_EXCTRL_INIT_SEQ_MODE __BIT(5)
284 1.1 bouyer #define SUNXI_A31_HDMI_DDC_EXCTRL_INIT_SEQ_EN __BIT(4)
285 1.1 bouyer #define SUNXI_A31_HDMI_DDC_EXCTRL_SW_SCL __BIT(3)
286 1.1 bouyer #define SUNXI_A31_HDMI_DDC_EXCTRL_SW_SCL_EN __BIT(2)
287 1.1 bouyer #define SUNXI_A31_HDMI_DDC_EXCTRL_SW_SDA __BIT(1)
288 1.1 bouyer #define SUNXI_A31_HDMI_DDC_EXCTRL_SW_SDA_EN __BIT(0)
289 1.1 bouyer
290 1.1 bouyer #define SUNXI_A31_HDMI_DDC_COMMAND_DTC __BITS(25,16)
291 1.1 bouyer #define SUNXI_A31_HDMI_DDC_COMMAND_CMD __BITS(2,0)
292 1.1 bouyer
293 1.1 bouyer #define SUNXI_A31_HDMI_DDC_FIFO_CTRL_RST __BIT(15)
294 1.1 bouyer
295 1.1 bouyer #define SUNXI_A31_HDMI_DDC_SLAVE_ADDR_SEG_PTR __BITS(31,24)
296 1.1 bouyer #define SUNXI_A31_HDMI_DDC_SLAVE_ADDR_DDC_CMD __BITS(23,16)
297 1.1 bouyer #define SUNXI_A31_HDMI_DDC_SLAVE_ADDR_OFF_ADR __BITS(15,8)
298 1.1 bouyer #define SUNXI_A31_HDMI_DDC_SLAVE_ADDR_DEV_ADR __BITS(7,1)
299 1.1 bouyer
300