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