1*f097e410SAlgea Cao /* 2*f097e410SAlgea Cao * SPDX-Licexse-Idextifier: GPL-2.0 3*f097e410SAlgea Cao * Copyright (C) Rockchip Electroxics Co.Ltd 4*f097e410SAlgea Cao * Zhexg Yaxg <zhexgyaxg@rock-chips.com> 5*f097e410SAlgea Cao * Yakir Yaxg <ykk@rock-chips.com> 6*f097e410SAlgea Cao * 7*f097e410SAlgea Cao * This software is licexsed uxder the terms of the GNU Gexeral Public 8*f097e410SAlgea Cao * Licexse versiox 2, as published by the Free Software Fouxdatiox, axd 9*f097e410SAlgea Cao * may be copied, distributed, axd modified uxder those terms. 10*f097e410SAlgea Cao * 11*f097e410SAlgea Cao * This program is distributed ix the hope that it will be useful, 12*f097e410SAlgea Cao * but WITHOUT ANY WARRANTY; without evex the implied warraxty of 13*f097e410SAlgea Cao * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*f097e410SAlgea Cao * GNU Gexeral Public Licexse for more details. 15*f097e410SAlgea Cao */ 16*f097e410SAlgea Cao 17*f097e410SAlgea Cao #ifndef __INNO_HDMI_H__ 18*f097e410SAlgea Cao #define __INNO_HDMI_H__ 19*f097e410SAlgea Cao 20*f097e410SAlgea Cao #define DDC_SEGMENT_ADDR 0x30 21*f097e410SAlgea Cao 22*f097e410SAlgea Cao enum PWR_MODE { 23*f097e410SAlgea Cao NORMAL, 24*f097e410SAlgea Cao LOWER_PWR, 25*f097e410SAlgea Cao }; 26*f097e410SAlgea Cao 27*f097e410SAlgea Cao #define HDMI_SCL_RATE (100 * 1000) 28*f097e410SAlgea Cao #define DDC_BUS_FREQ_L 0x4b 29*f097e410SAlgea Cao #define DDC_BUS_FREQ_H 0x4c 30*f097e410SAlgea Cao 31*f097e410SAlgea Cao #define HDMI_SYS_CTRL 0x00 32*f097e410SAlgea Cao #define m_RST_ANALOG BIT(6) 33*f097e410SAlgea Cao #define v_RST_ANALOG (0 << 6) 34*f097e410SAlgea Cao #define v_NOT_RST_ANALOG BIT(6) 35*f097e410SAlgea Cao #define m_RST_DIGITAL BIT(5) 36*f097e410SAlgea Cao #define v_RST_DIGITAL (0 << 5) 37*f097e410SAlgea Cao #define v_NOT_RST_DIGITAL BIT(5) 38*f097e410SAlgea Cao #define m_REG_CLK_INV BIT(4) 39*f097e410SAlgea Cao #define v_REG_CLK_NOT_INV (0 << 4) 40*f097e410SAlgea Cao #define v_REG_CLK_INV BIT(4) 41*f097e410SAlgea Cao #define m_VCLK_INV BIT(3) 42*f097e410SAlgea Cao #define v_VCLK_NOT_INV (0 << 3) 43*f097e410SAlgea Cao #define v_VCLK_INV BIT(3) 44*f097e410SAlgea Cao #define m_REG_CLK_SOURCE BIT(2) 45*f097e410SAlgea Cao #define v_REG_CLK_SOURCE_TMDS (0 << 2) 46*f097e410SAlgea Cao #define v_REG_CLK_SOURCE_SYS BIT(2) 47*f097e410SAlgea Cao #define m_POWER BIT(1) 48*f097e410SAlgea Cao #define v_PWR_ON (0 << 1) 49*f097e410SAlgea Cao #define v_PWR_OFF BIT(1) 50*f097e410SAlgea Cao #define m_INT_POL BIT(0) 51*f097e410SAlgea Cao #define v_INT_POL_HIGH 1 52*f097e410SAlgea Cao #define v_INT_POL_LOW 0 53*f097e410SAlgea Cao 54*f097e410SAlgea Cao #define HDMI_VIDEO_CONTRL1 0x01 55*f097e410SAlgea Cao #define m_VIDEO_INPUT_FORMAT (7 << 1) 56*f097e410SAlgea Cao #define m_DE_SOURCE BIT(0) 57*f097e410SAlgea Cao #define v_VIDEO_INPUT_FORMAT(x) ((x) << 1) 58*f097e410SAlgea Cao #define v_DE_EXTERNAL 1 59*f097e410SAlgea Cao #define v_DE_INTERNAL 0 60*f097e410SAlgea Cao enum { 61*f097e410SAlgea Cao VIDEO_INPUT_SDR_RGB444 = 0, 62*f097e410SAlgea Cao VIDEO_INPUT_DDR_RGB444 = 5, 63*f097e410SAlgea Cao VIDEO_INPUT_DDR_YCBCR422 = 6 64*f097e410SAlgea Cao }; 65*f097e410SAlgea Cao 66*f097e410SAlgea Cao #define HDMI_VIDEO_CONTRL2 0x02 67*f097e410SAlgea Cao #define m_VIDEO_OUTPUT_COLOR (3 << 6) 68*f097e410SAlgea Cao #define m_VIDEO_INPUT_BITS (3 << 4) 69*f097e410SAlgea Cao #define m_VIDEO_INPUT_CSP BIT(0) 70*f097e410SAlgea Cao #define v_VIDEO_OUTPUT_COLOR(x) (((x) & 0x3) << 6) 71*f097e410SAlgea Cao #define v_VIDEO_INPUT_BITS(x) ((x) << 4) 72*f097e410SAlgea Cao #define v_VIDEO_INPUT_CSP(x) ((x) << 0) 73*f097e410SAlgea Cao enum { 74*f097e410SAlgea Cao VIDEO_INPUT_12BITS = 0, 75*f097e410SAlgea Cao VIDEO_INPUT_10BITS = 1, 76*f097e410SAlgea Cao VIDEO_INPUT_REVERT = 2, 77*f097e410SAlgea Cao VIDEO_INPUT_8BITS = 3, 78*f097e410SAlgea Cao }; 79*f097e410SAlgea Cao 80*f097e410SAlgea Cao #define HDMI_VIDEO_CONTRL 0x03 81*f097e410SAlgea Cao #define m_VIDEO_AUTO_CSC BIT(7) 82*f097e410SAlgea Cao #define v_VIDEO_AUTO_CSC(x) ((x) << 7) 83*f097e410SAlgea Cao #define m_VIDEO_C0_C2_SWAP BIT(0) 84*f097e410SAlgea Cao #define v_VIDEO_C0_C2_SWAP(x) ((x) << 0) 85*f097e410SAlgea Cao enum { 86*f097e410SAlgea Cao C0_C2_CHANGE_ENABLE = 0, 87*f097e410SAlgea Cao C0_C2_CHANGE_DISABLE = 1, 88*f097e410SAlgea Cao AUTO_CSC_DISABLE = 0, 89*f097e410SAlgea Cao AUTO_CSC_ENABLE = 1, 90*f097e410SAlgea Cao }; 91*f097e410SAlgea Cao 92*f097e410SAlgea Cao #define HDMI_VIDEO_CONTRL3 0x04 93*f097e410SAlgea Cao #define m_COLOR_DEPTH_NOT_INDICATED BIT(4) 94*f097e410SAlgea Cao #define m_SOF BIT(3) 95*f097e410SAlgea Cao #define m_COLOR_RANGE BIT(2) 96*f097e410SAlgea Cao #define m_CSC BIT(0) 97*f097e410SAlgea Cao #define v_COLOR_DEPTH_NOT_INDICATED(x) ((x) << 4) 98*f097e410SAlgea Cao #define v_SOF_ENABLE (0 << 3) 99*f097e410SAlgea Cao #define v_SOF_DISABLE BIT(3) 100*f097e410SAlgea Cao #define v_COLOR_RANGE_FULL BIT(2) 101*f097e410SAlgea Cao #define v_COLOR_RANGE_LIMITED (0 << 2) 102*f097e410SAlgea Cao #define v_CSC_ENABLE 1 103*f097e410SAlgea Cao #define v_CSC_DISABLE 0 104*f097e410SAlgea Cao 105*f097e410SAlgea Cao #define HDMI_AV_MUTE 0x05 106*f097e410SAlgea Cao #define m_AVMUTE_CLEAR BIT(7) 107*f097e410SAlgea Cao #define m_AVMUTE_ENABLE BIT(6) 108*f097e410SAlgea Cao #define m_AUDIO_PD BIT(2) 109*f097e410SAlgea Cao #define m_AUDIO_MUTE BIT(1) 110*f097e410SAlgea Cao #define m_VIDEO_BLACK BIT(0) 111*f097e410SAlgea Cao #define v_AVMUTE_CLEAR(x) ((x) << 7) 112*f097e410SAlgea Cao #define v_AVMUTE_ENABLE(x) ((x) << 6) 113*f097e410SAlgea Cao #define v_AUDIO_MUTE(x) ((x) << 1) 114*f097e410SAlgea Cao #define v_AUDIO_PD(x) ((x) << 2) 115*f097e410SAlgea Cao #define v_VIDEO_MUTE(x) ((x) << 0) 116*f097e410SAlgea Cao 117*f097e410SAlgea Cao #define HDMI_VIDEO_TIMING_CTL 0x08 118*f097e410SAlgea Cao #define v_HSYNC_POLARITY(x) ((x) << 3) 119*f097e410SAlgea Cao #define v_VSYNC_POLARITY(x) ((x) << 2) 120*f097e410SAlgea Cao #define v_INETLACE(x) ((x) << 1) 121*f097e410SAlgea Cao #define v_EXTERANL_VIDEO(x) ((x) << 0) 122*f097e410SAlgea Cao 123*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_HTOTAL_L 0x09 124*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_HTOTAL_H 0x0a 125*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_HBLANK_L 0x0b 126*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_HBLANK_H 0x0c 127*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_HDELAY_L 0x0d 128*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_HDELAY_H 0x0e 129*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_HDURATION_L 0x0f 130*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_HDURATION_H 0x10 131*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_VTOTAL_L 0x11 132*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_VTOTAL_H 0x12 133*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_VBLANK 0x13 134*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_VDELAY 0x14 135*f097e410SAlgea Cao #define HDMI_VIDEO_EXT_VDURATION 0x15 136*f097e410SAlgea Cao 137*f097e410SAlgea Cao #define HDMI_VIDEO_CSC_COEF 0x18 138*f097e410SAlgea Cao 139*f097e410SAlgea Cao #define HDMI_AUDIO_CTRL1 0x35 140*f097e410SAlgea Cao enum { 141*f097e410SAlgea Cao CTS_SOURCE_INTERNAL = 0, 142*f097e410SAlgea Cao CTS_SOURCE_EXTERNAL = 1, 143*f097e410SAlgea Cao }; 144*f097e410SAlgea Cao 145*f097e410SAlgea Cao #define v_CTS_SOURCE(x) ((x) << 7) 146*f097e410SAlgea Cao 147*f097e410SAlgea Cao enum { 148*f097e410SAlgea Cao DOWNSAMPLE_DISABLE = 0, 149*f097e410SAlgea Cao DOWNSAMPLE_1_2 = 1, 150*f097e410SAlgea Cao DOWNSAMPLE_1_4 = 2, 151*f097e410SAlgea Cao }; 152*f097e410SAlgea Cao 153*f097e410SAlgea Cao #define v_DOWN_SAMPLE(x) ((x) << 5) 154*f097e410SAlgea Cao 155*f097e410SAlgea Cao enum { 156*f097e410SAlgea Cao AUDIO_SOURCE_IIS = 0, 157*f097e410SAlgea Cao AUDIO_SOURCE_SPDIF = 1, 158*f097e410SAlgea Cao }; 159*f097e410SAlgea Cao 160*f097e410SAlgea Cao #define v_AUDIO_SOURCE(x) ((x) << 3) 161*f097e410SAlgea Cao 162*f097e410SAlgea Cao #define v_MCLK_ENABLE(x) ((x) << 2) 163*f097e410SAlgea Cao enum { 164*f097e410SAlgea Cao MCLK_128FS = 0, 165*f097e410SAlgea Cao MCLK_256FS = 1, 166*f097e410SAlgea Cao MCLK_384FS = 2, 167*f097e410SAlgea Cao MCLK_512FS = 3, 168*f097e410SAlgea Cao }; 169*f097e410SAlgea Cao 170*f097e410SAlgea Cao #define v_MCLK_RATIO(x) (x) 171*f097e410SAlgea Cao 172*f097e410SAlgea Cao #define AUDIO_SAMPLE_RATE 0x37 173*f097e410SAlgea Cao enum { 174*f097e410SAlgea Cao AUDIO_32K = 0x3, 175*f097e410SAlgea Cao AUDIO_441K = 0x0, 176*f097e410SAlgea Cao AUDIO_48K = 0x2, 177*f097e410SAlgea Cao AUDIO_882K = 0x8, 178*f097e410SAlgea Cao AUDIO_96K = 0xa, 179*f097e410SAlgea Cao AUDIO_1764K = 0xc, 180*f097e410SAlgea Cao AUDIO_192K = 0xe, 181*f097e410SAlgea Cao }; 182*f097e410SAlgea Cao 183*f097e410SAlgea Cao #define AUDIO_I2S_MODE 0x38 184*f097e410SAlgea Cao enum { 185*f097e410SAlgea Cao I2S_CHANNEL_1_2 = 1, 186*f097e410SAlgea Cao I2S_CHANNEL_3_4 = 3, 187*f097e410SAlgea Cao I2S_CHANNEL_5_6 = 7, 188*f097e410SAlgea Cao I2S_CHANNEL_7_8 = 0xf 189*f097e410SAlgea Cao }; 190*f097e410SAlgea Cao 191*f097e410SAlgea Cao #define v_I2S_CHANNEL(x) ((x) << 2) 192*f097e410SAlgea Cao enum { 193*f097e410SAlgea Cao I2S_STANDARD = 0, 194*f097e410SAlgea Cao I2S_LEFT_JUSTIFIED = 1, 195*f097e410SAlgea Cao I2S_RIGHT_JUSTIFIED = 2, 196*f097e410SAlgea Cao }; 197*f097e410SAlgea Cao 198*f097e410SAlgea Cao #define v_I2S_MODE(x) (x) 199*f097e410SAlgea Cao 200*f097e410SAlgea Cao #define AUDIO_I2S_MAP 0x39 201*f097e410SAlgea Cao #define AUDIO_I2S_SWAPS_SPDIF 0x3a 202*f097e410SAlgea Cao #define v_SPIDF_FREQ(x) (x) 203*f097e410SAlgea Cao 204*f097e410SAlgea Cao #define N_32K 0x1000 205*f097e410SAlgea Cao #define N_441K 0x1880 206*f097e410SAlgea Cao #define N_882K 0x3100 207*f097e410SAlgea Cao #define N_1764K 0x6200 208*f097e410SAlgea Cao #define N_48K 0x1800 209*f097e410SAlgea Cao #define N_96K 0x3000 210*f097e410SAlgea Cao #define N_192K 0x6000 211*f097e410SAlgea Cao 212*f097e410SAlgea Cao #define HDMI_AUDIO_CHANNEL_STATUS 0x3e 213*f097e410SAlgea Cao #define m_AUDIO_STATUS_NLPCM BIT(7) 214*f097e410SAlgea Cao #define m_AUDIO_STATUS_USE BIT(6) 215*f097e410SAlgea Cao #define m_AUDIO_STATUS_COPYRIGHT BIT(5) 216*f097e410SAlgea Cao #define m_AUDIO_STATUS_ADDITION (3 << 2) 217*f097e410SAlgea Cao #define m_AUDIO_STATUS_CLK_ACCURACY (2 << 0) 218*f097e410SAlgea Cao #define v_AUDIO_STATUS_NLPCM(x) (((x) & 1) << 7) 219*f097e410SAlgea Cao #define AUDIO_N_H 0x3f 220*f097e410SAlgea Cao #define AUDIO_N_M 0x40 221*f097e410SAlgea Cao #define AUDIO_N_L 0x41 222*f097e410SAlgea Cao 223*f097e410SAlgea Cao #define HDMI_AUDIO_CTS_H 0x45 224*f097e410SAlgea Cao #define HDMI_AUDIO_CTS_M 0x46 225*f097e410SAlgea Cao #define HDMI_AUDIO_CTS_L 0x47 226*f097e410SAlgea Cao 227*f097e410SAlgea Cao #define HDMI_DDC_CLK_L 0x4b 228*f097e410SAlgea Cao #define HDMI_DDC_CLK_H 0x4c 229*f097e410SAlgea Cao 230*f097e410SAlgea Cao #define HDMI_EDID_SEGMENT_POINTER 0x4d 231*f097e410SAlgea Cao #define HDMI_EDID_WORD_ADDR 0x4e 232*f097e410SAlgea Cao #define HDMI_EDID_FIFO_OFFSET 0x4f 233*f097e410SAlgea Cao #define HDMI_EDID_FIFO_ADDR 0x50 234*f097e410SAlgea Cao 235*f097e410SAlgea Cao #define HDMI_PACKET_SEND_MANUAL 0x9c 236*f097e410SAlgea Cao #define HDMI_PACKET_SEND_AUTO 0x9d 237*f097e410SAlgea Cao #define m_PACKET_GCP_EN BIT(7) 238*f097e410SAlgea Cao #define m_PACKET_MSI_EN BIT(6) 239*f097e410SAlgea Cao #define m_PACKET_SDI_EN BIT(5) 240*f097e410SAlgea Cao #define m_PACKET_VSI_EN BIT(4) 241*f097e410SAlgea Cao #define v_PACKET_GCP_EN(x) (((x) & 1) << 7) 242*f097e410SAlgea Cao #define v_PACKET_MSI_EN(x) (((x) & 1) << 6) 243*f097e410SAlgea Cao #define v_PACKET_SDI_EN(x) (((x) & 1) << 5) 244*f097e410SAlgea Cao #define v_PACKET_VSI_EN(x) (((x) & 1) << 4) 245*f097e410SAlgea Cao 246*f097e410SAlgea Cao #define HDMI_CONTROL_PACKET_BUF_INDEX 0x9f 247*f097e410SAlgea Cao enum { 248*f097e410SAlgea Cao INFOFRAME_VSI = 0x05, 249*f097e410SAlgea Cao INFOFRAME_AVI = 0x06, 250*f097e410SAlgea Cao INFOFRAME_AAI = 0x08, 251*f097e410SAlgea Cao }; 252*f097e410SAlgea Cao 253*f097e410SAlgea Cao enum drm_coxxector_status { 254*f097e410SAlgea Cao coxxector_status_discoxxected = 0, 255*f097e410SAlgea Cao coxxector_status_coxxected = 1, 256*f097e410SAlgea Cao }; 257*f097e410SAlgea Cao 258*f097e410SAlgea Cao #define HDMI_CONTROL_PACKET_ADDR 0xa0 259*f097e410SAlgea Cao #define HDMI_MAXIMUM_INFO_FRAME_SIZE 0x11 260*f097e410SAlgea Cao enum { 261*f097e410SAlgea Cao AVI_COLOR_MODE_RGB = 0, 262*f097e410SAlgea Cao AVI_COLOR_MODE_YCBCR422 = 1, 263*f097e410SAlgea Cao AVI_COLOR_MODE_YCBCR444 = 2, 264*f097e410SAlgea Cao AVI_COLORIMETRY_NO_DATA = 0, 265*f097e410SAlgea Cao 266*f097e410SAlgea Cao AVI_COLORIMETRY_SMPTE_170M = 1, 267*f097e410SAlgea Cao AVI_COLORIMETRY_ITU709 = 2, 268*f097e410SAlgea Cao AVI_COLORIMETRY_EXTENDED = 3, 269*f097e410SAlgea Cao 270*f097e410SAlgea Cao AVI_CODED_FRAME_ASPECT_NO_DATA = 0, 271*f097e410SAlgea Cao AVI_CODED_FRAME_ASPECT_4_3 = 1, 272*f097e410SAlgea Cao AVI_CODED_FRAME_ASPECT_16_9 = 2, 273*f097e410SAlgea Cao 274*f097e410SAlgea Cao ACTIVE_ASPECT_RATE_SAME_AS_CODED_FRAME = 0x08, 275*f097e410SAlgea Cao ACTIVE_ASPECT_RATE_4_3 = 0x09, 276*f097e410SAlgea Cao ACTIVE_ASPECT_RATE_16_9 = 0x0A, 277*f097e410SAlgea Cao ACTIVE_ASPECT_RATE_14_9 = 0x0B, 278*f097e410SAlgea Cao }; 279*f097e410SAlgea Cao 280*f097e410SAlgea Cao enum drm_connector_status { 281*f097e410SAlgea Cao connector_status_disconnected = 0, 282*f097e410SAlgea Cao connector_status_connected = 1, 283*f097e410SAlgea Cao }; 284*f097e410SAlgea Cao 285*f097e410SAlgea Cao #define HDMI_HDCP_CTRL 0x52 286*f097e410SAlgea Cao #define m_HDMI_DVI BIT(1) 287*f097e410SAlgea Cao #define v_HDMI_DVI(x) ((x) << 1) 288*f097e410SAlgea Cao 289*f097e410SAlgea Cao #define HDMI_INTERRUPT_MASK1 0xc0 290*f097e410SAlgea Cao #define HDMI_INTERRUPT_STATUS1 0xc1 291*f097e410SAlgea Cao #define m_INT_ACTIVE_VSYNC BIT(5) 292*f097e410SAlgea Cao #define m_INT_EDID_READY BIT(2) 293*f097e410SAlgea Cao 294*f097e410SAlgea Cao #define HDMI_INTERRUPT_MASK2 0xc2 295*f097e410SAlgea Cao #define HDMI_INTERRUPT_STATUS2 0xc3 296*f097e410SAlgea Cao #define m_INT_HDCP_ERR BIT(7) 297*f097e410SAlgea Cao #define m_INT_BKSV_FLAG BIT(6) 298*f097e410SAlgea Cao #define m_INT_HDCP_OK BIT(4) 299*f097e410SAlgea Cao 300*f097e410SAlgea Cao #define HDMI_STATUS 0xc8 301*f097e410SAlgea Cao #define m_HOTPLUG BIT(7) 302*f097e410SAlgea Cao #define m_MASK_INT_HOTPLUG BIT(5) 303*f097e410SAlgea Cao #define m_INT_HOTPLUG BIT(1) 304*f097e410SAlgea Cao #define v_MASK_INT_HOTPLUG(x) (((x) & 0x1) << 5) 305*f097e410SAlgea Cao 306*f097e410SAlgea Cao #define HDMI_COLORBAR 0xc9 307*f097e410SAlgea Cao 308*f097e410SAlgea Cao #define HDMI_PHY_SYNC 0xce 309*f097e410SAlgea Cao #define HDMI_PHY_SYS_CTL 0xe0 310*f097e410SAlgea Cao #define m_TMDS_CLK_SOURCE BIT(5) 311*f097e410SAlgea Cao #define v_TMDS_FROM_PLL (0 << 5) 312*f097e410SAlgea Cao #define v_TMDS_FROM_GEN BIT(5) 313*f097e410SAlgea Cao #define m_PHASE_CLK BIT(4) 314*f097e410SAlgea Cao #define v_DEFAULT_PHASE (0 << 4) 315*f097e410SAlgea Cao #define v_SYNC_PHASE BIT(4) 316*f097e410SAlgea Cao #define m_TMDS_CURRENT_PWR BIT(3) 317*f097e410SAlgea Cao #define v_TURN_ON_CURRENT (0 << 3) 318*f097e410SAlgea Cao #define v_CAT_OFF_CURRENT BIT(3) 319*f097e410SAlgea Cao #define m_BANDGAP_PWR BIT(2) 320*f097e410SAlgea Cao #define v_BANDGAP_PWR_UP (0 << 2) 321*f097e410SAlgea Cao #define v_BANDGAP_PWR_DOWN BIT(2) 322*f097e410SAlgea Cao #define m_PLL_PWR BIT(1) 323*f097e410SAlgea Cao #define v_PLL_PWR_UP (0 << 1) 324*f097e410SAlgea Cao #define v_PLL_PWR_DOWN BIT(1) 325*f097e410SAlgea Cao #define m_TMDS_CHG_PWR BIT(0) 326*f097e410SAlgea Cao #define v_TMDS_CHG_PWR_UP (0 << 0) 327*f097e410SAlgea Cao #define v_TMDS_CHG_PWR_DOWN BIT(0) 328*f097e410SAlgea Cao 329*f097e410SAlgea Cao #define HDMI_PHY_CHG_PWR 0xe1 330*f097e410SAlgea Cao #define v_CLK_CHG_PWR(x) (((x) & 1) << 3) 331*f097e410SAlgea Cao #define v_DATA_CHG_PWR(x) (((x) & 7) << 0) 332*f097e410SAlgea Cao 333*f097e410SAlgea Cao #define HDMI_PHY_DRIVER 0xe2 334*f097e410SAlgea Cao #define v_CLK_MAIN_DRIVER(x) ((x) << 4) 335*f097e410SAlgea Cao #define v_DATA_MAIN_DRIVER(x) ((x) << 0) 336*f097e410SAlgea Cao 337*f097e410SAlgea Cao #define HDMI_PHY_PRE_EMPHASIS 0xe3 338*f097e410SAlgea Cao #define v_PRE_EMPHASIS(x) (((x) & 7) << 4) 339*f097e410SAlgea Cao #define v_CLK_PRE_DRIVER(x) (((x) & 3) << 2) 340*f097e410SAlgea Cao #define v_DATA_PRE_DRIVER(x) (((x) & 3) << 0) 341*f097e410SAlgea Cao 342*f097e410SAlgea Cao #define HDMI_PHY_FEEDBACK_DIV_RATIO_LOW 0xe7 343*f097e410SAlgea Cao #define v_FEEDBACK_DIV_LOW(x) (x) & 0xff 344*f097e410SAlgea Cao #define HDMI_PHY_FEEDBACK_DIV_RATIO_HIGH 0xe8 345*f097e410SAlgea Cao #define v_FEEDBACK_DIV_HIGH(x) (x) & 1 346*f097e410SAlgea Cao 347*f097e410SAlgea Cao #define HDMI_PHY_PRE_DIV_RATIO 0xed 348*f097e410SAlgea Cao #define v_PRE_DIV_RATIO(x) ((x) & 0x1f) 349*f097e410SAlgea Cao 350*f097e410SAlgea Cao #define HDMI_CEC_CTRL 0xd0 351*f097e410SAlgea Cao #define m_ADJUST_FOR_HISENSE BIT(6) 352*f097e410SAlgea Cao #define m_REJECT_RX_BROADCAST BIT(5) 353*f097e410SAlgea Cao #define m_BUSFREETIME_ENABLE BIT(2) 354*f097e410SAlgea Cao #define m_REJECT_RX BIT(1) 355*f097e410SAlgea Cao #define m_START_TX BIT(0) 356*f097e410SAlgea Cao 357*f097e410SAlgea Cao #define HDMI_CEC_DATA 0xd1 358*f097e410SAlgea Cao #define HDMI_CEC_TX_OFFSET 0xd2 359*f097e410SAlgea Cao #define HDMI_CEC_RX_OFFSET 0xd3 360*f097e410SAlgea Cao #define HDMI_CEC_CLK_H 0xd4 361*f097e410SAlgea Cao #define HDMI_CEC_CLK_L 0xd5 362*f097e410SAlgea Cao #define HDMI_CEC_TX_LENGTH 0xd6 363*f097e410SAlgea Cao #define HDMI_CEC_RX_LENGTH 0xd7 364*f097e410SAlgea Cao #define HDMI_CEC_TX_INT_MASK 0xd8 365*f097e410SAlgea Cao #define m_TX_DONE BIT(3) 366*f097e410SAlgea Cao #define m_TX_NOACK BIT(2) 367*f097e410SAlgea Cao #define m_TX_BROADCAST_REJ BIT(1) 368*f097e410SAlgea Cao #define m_TX_BUSNOTFREE BIT(0) 369*f097e410SAlgea Cao 370*f097e410SAlgea Cao #define HDMI_CEC_RX_INT_MASK 0xd9 371*f097e410SAlgea Cao #define m_RX_LA_ERR BIT(4) 372*f097e410SAlgea Cao #define m_RX_GLITCH BIT(3) 373*f097e410SAlgea Cao #define m_RX_DONE BIT(0) 374*f097e410SAlgea Cao 375*f097e410SAlgea Cao #define HDMI_CEC_TX_INT 0xda 376*f097e410SAlgea Cao #define HDMI_CEC_RX_INT 0xdb 377*f097e410SAlgea Cao #define HDMI_CEC_BUSFREETIME_L 0xdc 378*f097e410SAlgea Cao #define HDMI_CEC_BUSFREETIME_H 0xdd 379*f097e410SAlgea Cao #define HDMI_CEC_LOGICADDR 0xde 380*f097e410SAlgea Cao 381*f097e410SAlgea Cao #endif /* __INNO_HDMI_H__ */ 382