From 319fce53c83f78834986ebdfc3fd33b2f60a3ffa Mon Sep 17 00:00:00 2001 From: Bo-Chen Chen Date: Thu, 29 Sep 2022 14:13:51 +0800 Subject: soc/mediatek: Move DP drivers to common DP drivers can be shared for both MT8195 and MT8188, so move them to common folder. BUG=b:244208960 TEST=emerge-cherry coreboot. Signed-off-by: Bo-Chen Chen Change-Id: Ic80c03aa6b13e6c9c39fd63b5c1c1cbdbe93a7c4 Reviewed-on: https://review.coreboot.org/c/coreboot/+/68484 Tested-by: build bot (Jenkins) Reviewed-by: Yidi Lin Reviewed-by: Yu-Ping Wu --- src/soc/mediatek/common/dp/dp_intf.c | 305 ++ src/soc/mediatek/common/dp/dptx.c | 1122 +++++ src/soc/mediatek/common/dp/dptx_hal.c | 825 ++++ src/soc/mediatek/common/dp/include/soc/dp_intf.h | 258 ++ src/soc/mediatek/common/dp/include/soc/dptx.h | 77 + src/soc/mediatek/common/dp/include/soc/dptx_hal.h | 103 + src/soc/mediatek/common/dp/include/soc/dptx_reg.h | 4740 +++++++++++++++++++++ 7 files changed, 7430 insertions(+) create mode 100644 src/soc/mediatek/common/dp/dp_intf.c create mode 100644 src/soc/mediatek/common/dp/dptx.c create mode 100644 src/soc/mediatek/common/dp/dptx_hal.c create mode 100644 src/soc/mediatek/common/dp/include/soc/dp_intf.h create mode 100644 src/soc/mediatek/common/dp/include/soc/dptx.h create mode 100644 src/soc/mediatek/common/dp/include/soc/dptx_hal.h create mode 100644 src/soc/mediatek/common/dp/include/soc/dptx_reg.h (limited to 'src/soc/mediatek/common/dp') diff --git a/src/soc/mediatek/common/dp/dp_intf.c b/src/soc/mediatek/common/dp/dp_intf.c new file mode 100644 index 0000000000..ab2070ee0f --- /dev/null +++ b/src/soc/mediatek/common/dp/dp_intf.c @@ -0,0 +1,305 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include +#include +#include +#include +#include +#include + +static void mtk_dpintf_mask(struct mtk_dpintf *dpintf, u32 offset, u32 val, u32 mask) +{ + clrsetbits32(dpintf->regs + offset, mask, val); +} + +static void mtk_dpintf_sw_reset(struct mtk_dpintf *dpintf, bool reset) +{ + mtk_dpintf_mask(dpintf, DPINTF_RET, reset ? RST : 0, RST); +} + +static void mtk_dpintf_enable(struct mtk_dpintf *dpintf) +{ + mtk_dpintf_mask(dpintf, DPINTF_EN, EN, EN); +} + +static void mtk_dpintf_config_hsync(struct mtk_dpintf *dpintf, + struct mtk_dpintf_sync_param *sync) +{ + mtk_dpintf_mask(dpintf, DPINTF_TGEN_HWIDTH, + sync->sync_width << HPW, HPW_MASK); + mtk_dpintf_mask(dpintf, DPINTF_TGEN_HPORCH, + sync->back_porch << HBP, HBP_MASK); + mtk_dpintf_mask(dpintf, DPINTF_TGEN_HPORCH, + sync->front_porch << HFP, HFP_MASK); +} + +static void mtk_dpintf_config_vsync(struct mtk_dpintf *dpintf, + struct mtk_dpintf_sync_param *sync, + u32 width_addr, u32 porch_addr) +{ + mtk_dpintf_mask(dpintf, width_addr, + sync->sync_width << VSYNC_WIDTH_SHIFT, + VSYNC_WIDTH_MASK); + mtk_dpintf_mask(dpintf, width_addr, + sync->shift_half_line << VSYNC_HALF_LINE_SHIFT, + VSYNC_HALF_LINE_MASK); + mtk_dpintf_mask(dpintf, porch_addr, + sync->back_porch << VSYNC_BACK_PORCH_SHIFT, + VSYNC_BACK_PORCH_MASK); + mtk_dpintf_mask(dpintf, porch_addr, + sync->front_porch << VSYNC_FRONT_PORCH_SHIFT, + VSYNC_FRONT_PORCH_MASK); +} + +static void mtk_dpintf_config_vsync_lodd(struct mtk_dpintf *dpintf, + struct mtk_dpintf_sync_param *sync) +{ + mtk_dpintf_config_vsync(dpintf, sync, DPINTF_TGEN_VWIDTH, + DPINTF_TGEN_VPORCH); +} + +static void mtk_dpintf_config_vsync_leven(struct mtk_dpintf *dpintf, + struct mtk_dpintf_sync_param *sync) +{ + mtk_dpintf_config_vsync(dpintf, sync, DPINTF_TGEN_VWIDTH_LEVEN, + DPINTF_TGEN_VPORCH_LEVEN); +} + +static void mtk_dpintf_config_vsync_rodd(struct mtk_dpintf *dpintf, + struct mtk_dpintf_sync_param *sync) +{ + mtk_dpintf_config_vsync(dpintf, sync, DPINTF_TGEN_VWIDTH_RODD, + DPINTF_TGEN_VPORCH_RODD); +} + +static void mtk_dpintf_config_vsync_reven(struct mtk_dpintf *dpintf, + struct mtk_dpintf_sync_param *sync) +{ + mtk_dpintf_config_vsync(dpintf, sync, DPINTF_TGEN_VWIDTH_REVEN, + DPINTF_TGEN_VPORCH_REVEN); +} + +static void mtk_dpintf_config_pol(struct mtk_dpintf *dpintf, + struct mtk_dpintf_polarities *dpintf_pol) +{ + u32 pol; + + pol = (dpintf_pol->hsync_pol == MTK_DPINTF_POLARITY_RISING ? 0 : HSYNC_POL) | + (dpintf_pol->vsync_pol == MTK_DPINTF_POLARITY_RISING ? 0 : VSYNC_POL); + mtk_dpintf_mask(dpintf, DPINTF_OUTPUT_SETTING, pol, HSYNC_POL | VSYNC_POL); +} + +static void mtk_dpintf_config_3d(struct mtk_dpintf *dpintf, bool en_3d) +{ + mtk_dpintf_mask(dpintf, DPINTF_CON, en_3d ? TDFP_EN : 0, TDFP_EN); +} + +static void mtk_dpintf_config_interface(struct mtk_dpintf *dpintf, bool inter) +{ + mtk_dpintf_mask(dpintf, DPINTF_CON, inter ? INTL_EN : 0, INTL_EN); +} + +static void mtk_dpintf_config_fb_size(struct mtk_dpintf *dpintf, + u32 width, u32 height) +{ + mtk_dpintf_mask(dpintf, DPINTF_SIZE, width << HSIZE, HSIZE_MASK); + mtk_dpintf_mask(dpintf, DPINTF_SIZE, height << VSIZE, VSIZE_MASK); +} + +static void mtk_dpintf_config_channel_limit(struct mtk_dpintf *dpintf, + struct mtk_dpintf_yc_limit *limit) +{ + mtk_dpintf_mask(dpintf, DPINTF_Y_LIMIT, + limit->y_bottom << Y_LIMINT_BOT, Y_LIMINT_BOT_MASK); + mtk_dpintf_mask(dpintf, DPINTF_Y_LIMIT, + limit->y_top << Y_LIMINT_TOP, Y_LIMINT_TOP_MASK); + mtk_dpintf_mask(dpintf, DPINTF_C_LIMIT, + limit->c_bottom << C_LIMIT_BOT, C_LIMIT_BOT_MASK); + mtk_dpintf_mask(dpintf, DPINTF_C_LIMIT, + limit->c_top << C_LIMIT_TOP, C_LIMIT_TOP_MASK); +} + +static void mtk_dpintf_config_bit_num(struct mtk_dpintf *dpintf, + enum mtk_dpintf_out_bit_num num) +{ + u32 val; + + switch (num) { + case MTK_DPINTF_OUT_BIT_NUM_8BITS: + val = OUT_BIT_8; + break; + case MTK_DPINTF_OUT_BIT_NUM_10BITS: + val = OUT_BIT_10; + break; + case MTK_DPINTF_OUT_BIT_NUM_12BITS: + val = OUT_BIT_12; + break; + case MTK_DPINTF_OUT_BIT_NUM_16BITS: + val = OUT_BIT_16; + break; + default: + val = OUT_BIT_8; + break; + } + mtk_dpintf_mask(dpintf, DPINTF_OUTPUT_SETTING, val, OUT_BIT_MASK); +} + +static void mtk_dpintf_config_channel_swap(struct mtk_dpintf *dpintf, + enum mtk_dpintf_out_channel_swap swap) +{ + u32 val; + + switch (swap) { + case MTK_DPINTF_OUT_CHANNEL_SWAP_RGB: + val = SWAP_RGB; + break; + case MTK_DPINTF_OUT_CHANNEL_SWAP_GBR: + val = SWAP_GBR; + break; + case MTK_DPINTF_OUT_CHANNEL_SWAP_BRG: + val = SWAP_BRG; + break; + case MTK_DPINTF_OUT_CHANNEL_SWAP_RBG: + val = SWAP_RBG; + break; + case MTK_DPINTF_OUT_CHANNEL_SWAP_GRB: + val = SWAP_GRB; + break; + case MTK_DPINTF_OUT_CHANNEL_SWAP_BGR: + val = SWAP_BGR; + break; + default: + val = SWAP_RGB; + break; + } + + mtk_dpintf_mask(dpintf, DPINTF_OUTPUT_SETTING, val, CH_SWAP_MASK); +} + +static void mtk_dpintf_config_yuv422_enable(struct mtk_dpintf *dpintf, bool enable) +{ + mtk_dpintf_mask(dpintf, DPINTF_CON, enable ? YUV422_EN : 0, YUV422_EN); +} + +static void mtk_dpintf_config_color_format(struct mtk_dpintf *dpintf, + enum mtk_dpintf_out_color_format format) +{ + bool enable; + int channel_swap; + + if (format == MTK_DPINTF_COLOR_FORMAT_YCBCR_444 || + format == MTK_DPINTF_COLOR_FORMAT_YCBCR_444_FULL) { + enable = false; + channel_swap = MTK_DPINTF_OUT_CHANNEL_SWAP_BGR; + } else if (format == MTK_DPINTF_COLOR_FORMAT_YCBCR_422 || + format == MTK_DPINTF_COLOR_FORMAT_YCBCR_422_FULL) { + enable = true; + channel_swap = MTK_DPINTF_OUT_CHANNEL_SWAP_RGB; + } else { + enable = false; + channel_swap = MTK_DPINTF_OUT_CHANNEL_SWAP_RGB; + } + + mtk_dpintf_config_yuv422_enable(dpintf, enable); + mtk_dpintf_config_channel_swap(dpintf, channel_swap); +} + +static int mtk_dpintf_power_on(struct mtk_dpintf *dpintf, const struct edid *edid) +{ + u32 clksrc; + u32 pll_rate; + + if (edid->mode.pixel_clock < 70000) + clksrc = TVDPLL_D16; + else if (edid->mode.pixel_clock < 200000) + clksrc = TVDPLL_D8; + else + clksrc = TVDPLL_D4; + + pll_rate = edid->mode.pixel_clock * 1000 * (1 << ((clksrc + 1) / 2)); + + mt_pll_set_tvd_pll1_freq(pll_rate / 4); + mt_pll_edp_mux_set_sel(clksrc); + + mtk_dpintf_enable(dpintf); + + return 0; +} + +static int mtk_dpintf_set_display_mode(struct mtk_dpintf *dpintf, + const struct edid *edid) +{ + struct mtk_dpintf_yc_limit limit; + struct mtk_dpintf_polarities dpintf_pol; + struct mtk_dpintf_sync_param hsync; + struct mtk_dpintf_sync_param vsync_lodd = { 0 }; + struct mtk_dpintf_sync_param vsync_leven = { 0 }; + struct mtk_dpintf_sync_param vsync_rodd = { 0 }; + struct mtk_dpintf_sync_param vsync_reven = { 0 }; + + vsync_lodd.back_porch = edid->mode.vbl - edid->mode.vso - + edid->mode.vspw - edid->mode.vborder; + vsync_lodd.front_porch = edid->mode.vso - edid->mode.vborder; + vsync_lodd.sync_width = edid->mode.vspw; + vsync_lodd.shift_half_line = false; + + hsync.sync_width = edid->mode.hspw / 4; + hsync.back_porch = (edid->mode.hbl - edid->mode.hso - + edid->mode.hspw - edid->mode.hborder) / 4; + hsync.front_porch = (edid->mode.hso - edid->mode.hborder) / 4; + hsync.shift_half_line = false; + + /* Let pll_rate be able to fix the valid range of tvdpll (1G~2GHz) */ + limit.c_bottom = 0x0000; + limit.c_top = 0xfff; + limit.y_bottom = 0x0000; + limit.y_top = 0xfff; + + dpintf_pol.ck_pol = MTK_DPINTF_POLARITY_FALLING; + dpintf_pol.de_pol = MTK_DPINTF_POLARITY_RISING; + dpintf_pol.hsync_pol = (edid->mode.phsync == '+') ? + MTK_DPINTF_POLARITY_FALLING : + MTK_DPINTF_POLARITY_RISING; + dpintf_pol.vsync_pol = (edid->mode.pvsync == '+') ? + MTK_DPINTF_POLARITY_FALLING : + MTK_DPINTF_POLARITY_RISING; + + mtk_dpintf_sw_reset(dpintf, true); + mtk_dpintf_config_pol(dpintf, &dpintf_pol); + + mtk_dpintf_config_hsync(dpintf, &hsync); + mtk_dpintf_config_vsync_lodd(dpintf, &vsync_lodd); + mtk_dpintf_config_vsync_rodd(dpintf, &vsync_rodd); + mtk_dpintf_config_vsync_leven(dpintf, &vsync_leven); + mtk_dpintf_config_vsync_reven(dpintf, &vsync_reven); + + mtk_dpintf_config_3d(dpintf, false); + mtk_dpintf_config_interface(dpintf, false); + mtk_dpintf_config_fb_size(dpintf, edid->mode.ha, edid->mode.va); + + mtk_dpintf_config_channel_limit(dpintf, &limit); + mtk_dpintf_config_bit_num(dpintf, dpintf->bit_num); + mtk_dpintf_config_channel_swap(dpintf, dpintf->channel_swap); + mtk_dpintf_config_color_format(dpintf, dpintf->color_format); + + mtk_dpintf_mask(dpintf, DPINTF_CON, INPUT_2P_EN, INPUT_2P_EN); + mtk_dpintf_sw_reset(dpintf, false); + + return 0; +} + +void dp_intf_config(const struct edid *edid) +{ + struct mtk_dpintf dpintf = { + .regs = (void *)(DP_INTF0_BASE), + .color_format = MTK_DPINTF_COLOR_FORMAT_RGB, + .yc_map = MTK_DPINTF_OUT_YC_MAP_RGB, + .bit_num = MTK_DPINTF_OUT_BIT_NUM_8BITS, + .channel_swap = MTK_DPINTF_OUT_CHANNEL_SWAP_RGB, + }; + + mtk_dpintf_power_on(&dpintf, edid); + mtk_dpintf_set_display_mode(&dpintf, edid); +} diff --git a/src/soc/mediatek/common/dp/dptx.c b/src/soc/mediatek/common/dp/dptx.c new file mode 100644 index 0000000000..f2c0905cc4 --- /dev/null +++ b/src/soc/mediatek/common/dp/dptx.c @@ -0,0 +1,1122 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#define ONE_BLOCK_SIZE 128 + +#define DP_LINK_CONSTANT_N_VALUE 0x8000 +#define DP_LINK_STATUS_SIZE 6 + +#define DP_LANE0_1_STATUS 0x202 +#define DP_LANE2_3_STATUS 0x203 +#define DP_LANE_CR_DONE (1 << 0) +#define DP_LANE_CHANNEL_EQ_DONE (1 << 1) +#define DP_LANE_SYMBOL_LOCKED (1 << 2) + +#define DP_BRANCH_OUI_HEADER_SIZE 0xc +#define DP_RECEIVER_CAP_SIZE 0xf +#define DP_DSC_RECEIVER_CAP_SIZE 0xf +#define EDP_PSR_RECEIVER_CAP_SIZE 2 +#define EDP_DISPLAY_CTL_CAP_SIZE 3 +#define DP_LTTPR_COMMON_CAP_SIZE 8 +#define DP_LTTPR_PHY_CAP_SIZE 3 + +#define DP_TRAINING_AUX_RD_INTERVAL 0x00e +#define DP_TRAINING_AUX_RD_MASK 0x7f +#define DP_EXTENDED_RECEIVER_CAP_FIELD_PRESENT (1 << 7) + +#define DP_EDP_DPCD_REV 0x700 +#define DP_EDP_11 0x00 +#define DP_EDP_12 0x01 +#define DP_EDP_13 0x02 +#define DP_EDP_14 0x03 +#define DP_EDP_14a 0x04 +#define DP_EDP_14b 0x05 + +/* Receiver Capability */ +#define DP_DPCD_REV 0x000 +#define DP_DPCD_REV_10 0x10 +#define DP_DPCD_REV_11 0x11 +#define DP_DPCD_REV_12 0x12 +#define DP_DPCD_REV_13 0x13 +#define DP_DPCD_REV_14 0x14 + +#define DP_CHANNEL_EQ_BITS (DP_LANE_CR_DONE | \ + DP_LANE_CHANNEL_EQ_DONE | \ + DP_LANE_SYMBOL_LOCKED) + +#define DP_LANE_ALIGN_STATUS_UPDATED 0x204 +#define DP_INTERLANE_ALIGN_DONE (1 << 0) +#define DP_DOWNSTREAM_PORT_STATUS_CHANGED (1 << 6) +#define DP_LINK_STATUS_UPDATED (1 << 7) + +#define DP_SINK_STATUS 0x205 +#define DP_RECEIVE_PORT_0_STATUS (1 << 0) +#define DP_RECEIVE_PORT_1_STATUS (1 << 1) +#define DP_STREAM_REGENERATION_STATUS (1 << 2) + +#define DP_AUX_MAX_PAYLOAD_BYTES 16 + +#define MAX_LANECOUNT 4 + +enum { + DP_LANECOUNT_1 = 0x1, + DP_LANECOUNT_2 = 0x2, + DP_LANECOUNT_4 = 0x4, +}; + +enum { + DP_VERSION_11 = 0x11, + DP_VERSION_12 = 0x12, + DP_VERSION_14 = 0x14, + DP_VERSION_12_14 = 0x16, + DP_VERSION_14_14 = 0x17, + DP_VERSION_MAX, +}; + +enum { + DPTX_SWING0 = 0x00, + DPTX_SWING1 = 0x01, + DPTX_SWING2 = 0x02, + DPTX_SWING3 = 0x03, +}; + +enum { + DPTX_PREEMPHASIS0 = 0x00, + DPTX_PREEMPHASIS1 = 0x01, + DPTX_PREEMPHASIS2 = 0x02, + DPTX_PREEMPHASIS3 = 0x03, +}; + +enum { + DPTX_PASS = 0, + DPTX_PLUG_OUT = 1, + DPTX_TIMEOUT = 2, + DPTX_AUTH_FAIL = 3, + DPTX_EDID_FAIL = 4, + DPTX_TRANING_FAIL = 5, + DPTX_TRANING_STATE_CHANGE = 6, +}; + +enum { + FEC_ERROR_COUNT_DISABLE = 0x0, + FEC_UNCORRECTED_BLOCK_ERROR_COUNT = 0x1, + FEC_CORRECTED_BLOCK_ERROR_COUNT = 0x2, + FEC_BIT_ERROR_COUNT = 0x3, + FEC_PARITY_BLOCK_ERROR_COUNT = 0x4, + FEC_PARITY_BIT_ERROR_COUNT = 0x5, +}; + +enum { + DPTX_NTSTATE_STARTUP = 0x0, + DPTX_NTSTATE_CHECKCAP = 0x1, + DPTX_NTSTATE_CHECKEDID = 0x2, + DPTX_NTSTATE_TRAINING_PRE = 0x3, + DPTX_NTSTATE_TRAINING = 0x4, + DPTX_NTSTATE_CHECKTIMING = 0x5, + DPTX_NTSTATE_NORMAL = 0x6, + DPTX_NTSTATE_POWERSAVE = 0x7, + DPTX_NTSTATE_DPIDLE = 0x8, + DPTX_NTSTATE_MAX, +}; + +enum { + DPTX_DISP_NONE = 0, + DPTX_DISP_RESUME = 1, + DPTX_DISP_SUSPEND = 2, +}; + +enum { + TRAIN_STEP_SUCCESS = 0, + TRAIN_STEP_FAIL_BREAK = 1, + TRAIN_STEP_FAIL_NOT_BREAK = 2, +}; + +#define DPTX_TRAIN_RETRY_LIMIT 0x8 +#define DPTX_TRAIN_MAX_ITERATION 0x5 + +#define HPD_INT_EVNET BIT(3) +#define HPD_CONNECT BIT(2) +#define HPD_DISCONNECT BIT(1) +#define HPD_INITIAL_STATE 0 + +static bool dptx_auxwrite_bytes(struct mtk_dp *mtk_dp, u8 cmd, + u32 dpcd_addr, size_t length, u8 *data) +{ + if (retry(7, dptx_hal_auxwrite_bytes(mtk_dp, cmd, dpcd_addr, length, data), + mdelay(1))) + return true; + + printk(BIOS_ERR, "aux write fail: cmd = %d, addr = %#x, len = %ld\n", + cmd, dpcd_addr, length); + + return false; +} + +static bool dptx_auxwrite_dpcd(struct mtk_dp *mtk_dp, u8 cmd, + u32 dpcd_addr, size_t length, u8 *data) +{ + bool ret = true; + size_t offset = 0; + size_t len; + + while (offset < length) { + len = MIN(length - offset, DP_AUX_MAX_PAYLOAD_BYTES); + ret &= dptx_auxwrite_bytes(mtk_dp, cmd, dpcd_addr + offset, + len, data + offset); + offset += len; + } + return ret; +} + +static bool dptx_auxread_bytes(struct mtk_dp *mtk_dp, u8 cmd, + u32 dpcd_addr, size_t length, u8 *data) +{ + if (retry(7, dptx_hal_auxread_bytes(mtk_dp, cmd, dpcd_addr, length, data), + mdelay(1))) + return true; + + printk(BIOS_ERR, "aux read fail: cmd = %d, addr = %#x, len = %ld\n", + cmd, dpcd_addr, length); + + return false; +} + +static bool dptx_auxread_dpcd(struct mtk_dp *mtk_dp, u8 cmd, + u32 dpcd_addr, size_t length, u8 *rxbuf) +{ + bool ret = true; + size_t offset = 0; + size_t len; + + while (offset < length) { + len = MIN(length - offset, DP_AUX_MAX_PAYLOAD_BYTES); + ret &= dptx_auxread_bytes(mtk_dp, cmd, dpcd_addr + offset, + len, rxbuf + offset); + offset += len; + } + return ret; +} + +static int dptx_get_edid(struct mtk_dp *mtk_dp, struct edid *out) +{ + int ret; + u8 edid[ONE_BLOCK_SIZE]; + u8 tmp = 0; + + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_I2C_WRITE, 0x50, 0x1, &tmp); + + for (tmp = 0; tmp < ONE_BLOCK_SIZE / DP_AUX_MAX_PAYLOAD_BYTES; tmp++) + dptx_auxread_dpcd(mtk_dp, DP_AUX_I2C_READ, + 0x50, DP_AUX_MAX_PAYLOAD_BYTES, + edid + tmp * 16); + + ret = decode_edid(edid, ONE_BLOCK_SIZE, out); + if (ret != EDID_CONFORMANT) { + printk(BIOS_ERR, "failed to decode edid(%d).\n", ret); + return -1; + } + + mtk_dp->edid = out; + return 0; +} + +static u8 dptx_link_status(const u8 link_status[DP_LINK_STATUS_SIZE], int r) +{ + return link_status[r - DP_LANE0_1_STATUS]; +} + +static u8 dptx_get_lane_status(const u8 link_status[DP_LINK_STATUS_SIZE], + int lane) +{ + int i = DP_LANE0_1_STATUS + (lane >> 1); + int s = (lane & 1) * 4; + u8 l = dptx_link_status(link_status, i); + + return (l >> s) & 0xf; +} + +static bool dptx_clock_recovery_ok(const u8 link_status[DP_LINK_STATUS_SIZE], + int lane_count) +{ + int lane; + u8 lane_status; + + for (lane = 0; lane < lane_count; lane++) { + lane_status = dptx_get_lane_status(link_status, lane); + if ((lane_status & DP_LANE_CR_DONE) == 0) + return false; + } + return true; +} + +static void dptx_link_train_clock_recovery_delay(const u8 dpcd[DP_RECEIVER_CAP_SIZE]) +{ + u32 rd_interval = dpcd[DP_TRAINING_AUX_RD_INTERVAL] & + DP_TRAINING_AUX_RD_MASK; + + if (rd_interval > 4) + printk(BIOS_ERR, "aux interval %d, out of range (max 4)\n", + rd_interval); + + if (rd_interval == 0 || dpcd[DP_DPCD_REV] >= DP_DPCD_REV_14) + rd_interval = 1; + else + rd_interval *= 4; + + mdelay(rd_interval); +} + +static void dptx_link_train_channel_eq_delay(const u8 dpcd[DP_RECEIVER_CAP_SIZE]) +{ + u32 rd_interval = dpcd[DP_TRAINING_AUX_RD_INTERVAL] & + DP_TRAINING_AUX_RD_MASK; + + if (rd_interval > 4) + printk(BIOS_ERR, "aux interval %d, out of range (max 4)\n", + rd_interval); + + if (rd_interval == 0) + rd_interval = 1; + else + rd_interval *= 4; + + mdelay(rd_interval); +} + +static bool dptx_channel_eq_ok(const u8 link_status[DP_LINK_STATUS_SIZE], + int lane_count) +{ + u8 lane_align; + u8 lane_status; + int lane; + + lane_align = dptx_link_status(link_status, + DP_LANE_ALIGN_STATUS_UPDATED); + + if ((lane_align & DP_INTERLANE_ALIGN_DONE) == 0) + return false; + + for (lane = 0; lane < lane_count; lane++) { + lane_status = dptx_get_lane_status(link_status, lane); + if ((lane_status & DP_CHANNEL_EQ_BITS) != DP_CHANNEL_EQ_BITS) + return false; + } + return true; +} + +static void dptx_videomute(struct mtk_dp *mtk_dp, bool enable) +{ + dptx_hal_videomute(mtk_dp, enable); +} + +static void dptx_fec_ready(struct mtk_dp *mtk_dp, u8 err_cnt_sel) +{ + u8 i, data[3]; + + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, 0x90, 0x1, data); + printk(BIOS_DEBUG, "FEC Capable[0], [0:3] should be 1: %#x\n", + data[0]); + + /* + * FEC error count select 120[3:1]: + * 000b: FEC_ERROR_COUNT_DIS + * 001b: UNCORRECTED_BLOCK_ERROR_COUNT + * 010b: CORRECTED_BLOCK_ERROR_COUNT + * 011b: BIT_ERROR_COUNT + * 100b: PARITY_BLOCK_ERROR_COUNT + * 101b: PARITY_BIT_ERROR_COUNT + */ + if (data[0] & BIT(0)) { + mtk_dp->has_fec = true; + data[0] = (err_cnt_sel << 1) | 0x1; + + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + 0x120, 0x1, data); + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + 0x280, 0x3, data); + + for (i = 0; i < 3; i++) + printk(BIOS_DEBUG, "FEC status & error Count: %#x\n", + data[i]); + } +} + +static void dptx_init_variable(struct mtk_dp *mtk_dp) +{ + mtk_dp->regs = (void *)EDP_BASE; + mtk_dp->train_info.sys_max_linkrate = DP_LINKRATE_HBR3; + mtk_dp->train_info.linkrate = DP_LINKRATE_HBR2; + mtk_dp->train_info.linklane_count = DP_LANECOUNT_4; + mtk_dp->train_info.sink_extcap_en = false; + mtk_dp->train_info.sink_ssc_en = false; + mtk_dp->train_info.tps3 = true; + mtk_dp->train_info.tps4 = true; + mtk_dp->training_state = DPTX_NTSTATE_STARTUP; + mtk_dp->info.format = DP_COLOR_FORMAT_RGB_444; + mtk_dp->info.depth = DP_COLOR_DEPTH_8BIT; + mtk_dp->power_on = false; + mtk_dp->video_enable = false; + mtk_dp->dp_ready = false; + mtk_dp->has_dsc = false; + mtk_dp->has_fec = false; + mtk_dp->dsc_enable = false; +} + +static inline bool dptx_check_res_sample_rate(const struct edid *edid) +{ + return edid->mode.va + edid->mode.vbl <= 525; +} + +static void dptx_setsdp_downcnt_init(struct mtk_dp *mtk_dp, u16 sram_read_start) +{ + u32 count = 0; /* count: sdp_down_cnt_init */ + u8 offset; + + if (mtk_dp->edid->mode.pixel_clock > 0) + count = (sram_read_start * 2700 * 8 * + mtk_dp->train_info.linkrate) / + (mtk_dp->edid->mode.pixel_clock * 4); + + switch (mtk_dp->train_info.linklane_count) { + case DP_LANECOUNT_1: + count = (count > 0x1a) ? count : 0x1a; + break; + case DP_LANECOUNT_2: + /* Case for LowResolution and High Audio Sample Rate. */ + offset = dptx_check_res_sample_rate(mtk_dp->edid) ? + 0x04 : 0x00; + count = (count > 0x10) ? count : 0x10 + offset; + break; + case DP_LANECOUNT_4: + default: + count = (count > 0x06) ? count : 0x06; + break; + } + + printk(BIOS_DEBUG, "pixel rate(khz) = %d, sdp_dc_init = %#x\n", + mtk_dp->edid->mode.pixel_clock, count); + + dptx_hal_setsdp_downcnt_init(mtk_dp, count); +} + +static void dptx_setsdp_downcnt_init_inhblanking(struct mtk_dp *mtk_dp) +{ + int pixclk_mhz = mtk_dp->edid->mode.pixel_clock / 1000; + u8 offset; + u16 count = 0; /* count: sdp_down_cnt_init*/ + + switch (mtk_dp->train_info.linklane_count) { + case DP_LANECOUNT_1: + count = 0x20; + break; + case DP_LANECOUNT_2: + offset = dptx_check_res_sample_rate(mtk_dp->edid) ? + 0x14 : 0x00; + count = 0x0018 + offset; + break; + case DP_LANECOUNT_4: + default: + offset = dptx_check_res_sample_rate(mtk_dp->edid) ? + 0x08 : 0x00; + if (pixclk_mhz > mtk_dp->train_info.linkrate * 27) { + count = 0x8; + printk(BIOS_ERR, "Pixclk > LinkRateChange\n"); + } else { + count = 0x10 + offset; + } + break; + } + + dptx_hal_setsdp_downcnt_init_inhblanking(mtk_dp, count); +} + +static void dptx_set_tu(struct mtk_dp *mtk_dp) +{ + u8 bpp; + u16 sram_read_start = DPTX_TBC_BUF_READSTARTADRTHRD; + int tu_size, n_value, f_value, pixclk_mhz; + + bpp = dptx_hal_get_colorbpp(mtk_dp); + pixclk_mhz = mtk_dp->edid->mode.pixel_clock / 1000; + tu_size = (640 * pixclk_mhz * bpp) / + (mtk_dp->train_info.linkrate * 27 * + mtk_dp->train_info.linklane_count * 8); + + n_value = tu_size / 10; + f_value = tu_size % 10; + printk(BIOS_DEBUG, "TU_size %d, FValue %d\n", tu_size, f_value); + + if (mtk_dp->train_info.linklane_count > 0) { + sram_read_start = mtk_dp->edid->mode.ha / + (mtk_dp->train_info.linklane_count * + 4 * 2 * 2); + sram_read_start = MIN(sram_read_start, + DPTX_TBC_BUF_READSTARTADRTHRD); + dptx_hal_settu_sramrd_start(mtk_dp, sram_read_start); + } + + dptx_hal_settu_setencoder(mtk_dp); + dptx_setsdp_downcnt_init_inhblanking(mtk_dp); + dptx_setsdp_downcnt_init(mtk_dp, sram_read_start); +} + +static void dptx_set_misc(struct mtk_dp *mtk_dp) +{ + u8 format, depth; + union misc_t dptx_misc; + + format = mtk_dp->info.format; + depth = mtk_dp->info.depth; + + /* + * MISC 0/1 reference to spec 1.4a p143 Table 2-96. + * MISC0[7:5] color depth. + */ + dptx_misc.dp_misc.color_depth = depth; + + /* + * MISC0[3]: 0->RGB, 1->YUV + * MISC0[2:1]: 01b->4:2:2, 10b->4:4:4 + */ + switch (format) { + case DP_COLOR_FORMAT_YUV_444: + dptx_misc.dp_misc.color_format = 0x1; + break; + case DP_COLOR_FORMAT_YUV_422: + dptx_misc.dp_misc.color_format = 0x2; + break; + case DP_COLOR_FORMAT_RAW: + dptx_misc.dp_misc.color_format = 0x1; + dptx_misc.dp_misc.spec_def2 = 0x1; + break; + case DP_COLOR_FORMAT_YONLY: + dptx_misc.dp_misc.color_format = 0x0; + dptx_misc.dp_misc.spec_def2 = 0x1; + break; + case DP_COLOR_FORMAT_YUV_420: + case DP_COLOR_FORMAT_RGB_444: + default: + break; + } + + dptx_hal_setmisc(mtk_dp, dptx_misc.cmisc); +} + +static void dptx_set_dptxout(struct mtk_dp *mtk_dp) +{ + dptx_hal_bypassmsa_en(mtk_dp, false); + dptx_set_tu(mtk_dp); +} + +static bool dptx_training_checkswingpre(struct mtk_dp *mtk_dp, + u8 target_lane_count, + const u8 *dpcp202_x, u8 *dpcp_buf) +{ + bool ret = true; + u8 swing_value, preemphasis; + + /* Lane 0 */ + if (target_lane_count >= 0x1) { + swing_value = (dpcp202_x[4] & 0x3); + preemphasis = (dpcp202_x[4] & 0xc) >> 2; + + /* Adjust the swing and pre-emphasis */ + ret &= dptx_hal_setswing_preemphasis(mtk_dp, DPTX_LANE0, + swing_value, preemphasis); + + /* + * Adjust the swing and pre-emphasis done, + * and notify sink side. + */ + dpcp_buf[0] = swing_value | (preemphasis << 3); + + /* Max swing reached. */ + if (swing_value == DPTX_SWING3) + dpcp_buf[0] |= BIT(2); + + /* Max pre-emphasis reached. */ + if (preemphasis == DPTX_PREEMPHASIS3) + dpcp_buf[0] |= BIT(5); + } + + /* Lane 1 */ + if (target_lane_count >= 0x2) { + swing_value = (dpcp202_x[4] & 0x30) >> 4; + preemphasis = (dpcp202_x[4] & 0xc0) >> 6; + + /* Adjust the swing and pre-emphasis */ + ret &= dptx_hal_setswing_preemphasis(mtk_dp, DPTX_LANE1, + swing_value, preemphasis); + + /* + * Adjust the swing and pre-emphasis done, + * and notify sink side. + */ + dpcp_buf[1] = swing_value | (preemphasis << 3); + + /* Max swing reached. */ + if (swing_value == DPTX_SWING3) + dpcp_buf[1] |= BIT(2); + + /* Max pre-emphasis reached. */ + if (preemphasis == DPTX_PREEMPHASIS3) + dpcp_buf[1] |= BIT(5); + } + + /* Lane 2 and Lane 3 */ + if (target_lane_count == 0x4) { + /* Lane 2 */ + swing_value = (dpcp202_x[5] & 0x3); + preemphasis = (dpcp202_x[5] & 0x0c) >> 2; + + /* Adjust the swing and pre-emphasis */ + ret &= dptx_hal_setswing_preemphasis(mtk_dp, DPTX_LANE2, + swing_value, preemphasis); + + /* + * Adjust the swing and pre-emphasis done, + * and notify sink side. + */ + dpcp_buf[2] = swing_value | (preemphasis << 3); + + /* Max swing reached. */ + if (swing_value == DPTX_SWING3) + dpcp_buf[2] |= BIT(2); + + /* Max pre-emphasis reached. */ + if (preemphasis == DPTX_PREEMPHASIS3) + dpcp_buf[2] |= BIT(5); + + /* Lane 3 */ + swing_value = (dpcp202_x[5] & 0x30) >> 4; + preemphasis = (dpcp202_x[5] & 0xc0) >> 6; + + /* Adjust the swing and pre-emphasis */ + ret &= dptx_hal_setswing_preemphasis(mtk_dp, DPTX_LANE3, + swing_value, preemphasis); + + /* + * Adjust the swing and pre-emphasis done, + * and notify sink side. + */ + dpcp_buf[0x3] = swing_value | (preemphasis << 3); + + /* Max swing reached. */ + if (swing_value == DPTX_SWING3) + dpcp_buf[3] |= BIT(2); + + /* Max pre-emphasis reached. */ + if (preemphasis == DPTX_PREEMPHASIS3) + dpcp_buf[3] |= BIT(5); + } + + /* Wait signal stable enough */ + mdelay(2); + + return ret; +} + +static int dptx_train_tps1(struct mtk_dp *mtk_dp, u8 target_lanecount, + int *status_ctrl, int *iteration, u8 *dpcp_buffer, + u8 *dpcd206) +{ + u8 tmp_val[6]; + u8 dpcd200c[3]; + + printk(BIOS_INFO, "CR Training START\n"); + dptx_hal_setscramble(mtk_dp, false); + + if (*status_ctrl == 0x0) { + dptx_hal_set_txtrainingpattern(mtk_dp, BIT(4)); + *status_ctrl = 0x1; + tmp_val[0] = 0x21; + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00102, 0x1, tmp_val); + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_00206, 0x2, tmp_val + 4); + *iteration = *iteration + 1; + + dptx_training_checkswingpre(mtk_dp, target_lanecount, + tmp_val, dpcp_buffer); + } + + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00103, target_lanecount, dpcp_buffer); + + dptx_link_train_clock_recovery_delay(mtk_dp->rx_cap); + + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_00202, 0x6, tmp_val); + + if (mtk_dp->train_info.sink_extcap_en) { + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_0200C, 0x3, dpcd200c); + tmp_val[0] = dpcd200c[0]; + tmp_val[1] = dpcd200c[1]; + tmp_val[2] = dpcd200c[2]; + } + + if (dptx_clock_recovery_ok(tmp_val, target_lanecount)) { + printk(BIOS_INFO, "CR Training Success\n"); + + mtk_dp->train_info.cr_done = true; + *iteration = 0x1; + + return TRAIN_STEP_SUCCESS; + } + + printk(BIOS_INFO, "CR Training Fail\n"); + + /* Requested swing and emp is the same with last time. */ + if (*dpcd206 == tmp_val[4]) { + *iteration = *iteration + 1; + if (*dpcd206 & 0x3) + return TRAIN_STEP_FAIL_BREAK; + } else { + *dpcd206 = tmp_val[4]; + } + + return TRAIN_STEP_FAIL_NOT_BREAK; +} + +static int dptx_train_tps2_3(struct mtk_dp *mtk_dp, u8 target_lanecount, + int *status_ctrl, int *iteration, u8 *dpcp_buffer, + u8 *dpcd206) +{ + u8 tmp_val[6]; + u8 dpcd200c[3]; + + printk(BIOS_INFO, "EQ Training START\n"); + + if (*status_ctrl == 0x1) { + if (mtk_dp->train_info.tps4) + dptx_hal_set_txtrainingpattern(mtk_dp, BIT(7)); + else if (mtk_dp->train_info.tps3) + dptx_hal_set_txtrainingpattern(mtk_dp, BIT(6)); + else + dptx_hal_set_txtrainingpattern(mtk_dp, BIT(5)); + + if (mtk_dp->train_info.tps4) { + tmp_val[0] = 0x07; + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00102, 0x1, tmp_val); + } else if (mtk_dp->train_info.tps3) { + tmp_val[0] = 0x23; + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00102, 0x1, tmp_val); + } else { + tmp_val[0] = 0x22; + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00102, 0x1, tmp_val); + } + + *status_ctrl = 0x2; + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_00206, 0x2, tmp_val + 4); + + *iteration = *iteration + 1; + dptx_training_checkswingpre(mtk_dp, target_lanecount, + tmp_val, dpcp_buffer); + } + + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, DPCD_00103, + target_lanecount, dpcp_buffer); + dptx_link_train_channel_eq_delay(mtk_dp->rx_cap); + + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_00202, 0x6, tmp_val); + + if (mtk_dp->train_info.sink_extcap_en) { + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_0200C, 0x3, dpcd200c); + tmp_val[0] |= dpcd200c[0]; + tmp_val[1] |= dpcd200c[1]; + tmp_val[2] |= dpcd200c[2]; + } + + if (!dptx_clock_recovery_ok(tmp_val, target_lanecount)) { + printk(BIOS_INFO, "EQ Training Fail\n"); + mtk_dp->train_info.cr_done = false; + mtk_dp->train_info.eq_done = false; + return TRAIN_STEP_FAIL_BREAK; + } + + if (dptx_channel_eq_ok(tmp_val, target_lanecount)) { + printk(BIOS_INFO, "EQ Training Success\n"); + mtk_dp->train_info.eq_done = true; + return TRAIN_STEP_SUCCESS; + } + printk(BIOS_INFO, "EQ Training Fail\n"); + + if (*dpcd206 == tmp_val[4]) + *iteration = *iteration + 1; + else + *dpcd206 = tmp_val[4]; + + return TRAIN_STEP_FAIL_NOT_BREAK; +} + +static int dptx_trainingflow(struct mtk_dp *mtk_dp, + u8 lanerate, u8 lanecount) +{ + u8 tmp_val[6]; + u8 target_linkrate = lanerate; + u8 target_lanecount = lanecount; + u8 dpcp_buffer[4]; + u8 dpcd206; + bool pass_tps1 = false; + bool pass_tps2_3 = false; + int train_retry, status_ctrl, iteration; + + memset(tmp_val, 0, sizeof(tmp_val)); + memset(dpcp_buffer, 0, sizeof(dpcp_buffer)); + + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_00600, 0x1, tmp_val); + if (tmp_val[0] != 0x1) { + tmp_val[0] = 0x1; + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00600, 0x1, tmp_val); + mdelay(1); + } + + tmp_val[0] = target_linkrate; + tmp_val[1] = target_lanecount | DPTX_AUX_SET_ENAHNCED_FRAME; + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00100, 0x2, tmp_val); + + if (mtk_dp->train_info.sink_ssc_en) { + tmp_val[0x0] = 0x10; + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00107, 0x1, tmp_val); + } + + train_retry = 0x0; + status_ctrl = 0x0; + iteration = 0x1; + dpcd206 = 0xff; + + dptx_hal_set_txlane(mtk_dp, target_lanecount / 2); + dptx_hal_set_txrate(mtk_dp, target_linkrate); + + do { + train_retry++; + if (!pass_tps1) { + int ret = dptx_train_tps1(mtk_dp, target_lanecount, + &status_ctrl, &iteration, + dpcp_buffer, &dpcd206); + if (ret == TRAIN_STEP_FAIL_BREAK) + break; + if (ret == TRAIN_STEP_SUCCESS) { + pass_tps1 = true; + train_retry = 0; + } + } else { + int ret = dptx_train_tps2_3(mtk_dp, target_lanecount, + &status_ctrl, &iteration, + dpcp_buffer, &dpcd206); + if (ret == TRAIN_STEP_FAIL_BREAK) + break; + if (ret == TRAIN_STEP_SUCCESS) { + pass_tps2_3 = true; + break; + } + } + + dptx_training_checkswingpre(mtk_dp, target_lanecount, + tmp_val, dpcp_buffer); + + } while (train_retry < DPTX_TRAIN_RETRY_LIMIT && + iteration < DPTX_TRAIN_MAX_ITERATION); + + tmp_val[0] = 0x0; + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00102, 0x1, tmp_val); + dptx_hal_set_txtrainingpattern(mtk_dp, 0); + + if (!pass_tps2_3) { + printk(BIOS_ERR, "Link Training Fail\n"); + return DPTX_TRANING_FAIL; + } + + mtk_dp->train_info.linkrate = target_linkrate; + mtk_dp->train_info.linklane_count = target_lanecount; + + dptx_hal_setscramble(mtk_dp, true); + + tmp_val[0] = target_lanecount | DPTX_AUX_SET_ENAHNCED_FRAME; + + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00101, 0x1, tmp_val); + dptx_hal_set_ef_mode(mtk_dp, ENABLE_DPTX_EF_MODE); + + printk(BIOS_INFO, "Link Training Success\n"); + return DPTX_PASS; +} + +static void dptx_check_sinkcap(struct mtk_dp *mtk_dp) +{ + u8 buffer[16]; + + memset(buffer, 0x0, sizeof(buffer)); + + buffer[0] = 0x1; + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00600, 0x1, buffer); + + mdelay(2); + + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_00000, 0x10, buffer); + + mtk_dp->train_info.sink_extcap_en = false; + mtk_dp->train_info.dpcd_rev = buffer[0]; + + printk(BIOS_INFO, "SINK DPCD version: %#x\n", + mtk_dp->train_info.dpcd_rev); + + memcpy(mtk_dp->rx_cap, buffer, sizeof(mtk_dp->rx_cap)); + + mtk_dp->rx_cap[14] &= 0x7f; + + if (mtk_dp->train_info.dpcd_rev >= 0x14) + dptx_fec_ready(mtk_dp, FEC_BIT_ERROR_COUNT); + + mtk_dp->train_info.linkrate = MIN(buffer[0x1], + mtk_dp->train_info.sys_max_linkrate); + mtk_dp->train_info.linklane_count = MIN(buffer[2] & 0x1F, + MAX_LANECOUNT); + + mtk_dp->train_info.tps3 = (buffer[2] & BIT(6)) >> 0x6; + mtk_dp->train_info.tps4 = (buffer[3] & BIT(7)) >> 0x7; + + mtk_dp->train_info.down_stream_port_present = (buffer[5] & BIT(0)); + + if ((buffer[3] & BIT(0)) == 0x1) { + printk(BIOS_INFO, "SINK SUPPORT SSC!\n"); + mtk_dp->train_info.sink_ssc_en = true; + } else { + printk(BIOS_INFO, "SINK NOT SUPPORT SSC!\n"); + mtk_dp->train_info.sink_ssc_en = false; + } + + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_00021, 0x1, buffer); + mtk_dp->train_info.dp_mstcap = (buffer[0] & BIT(0)); + mtk_dp->train_info.dp_mstbranch = false; + + if (mtk_dp->train_info.dp_mstcap == BIT(0)) { + if (mtk_dp->train_info.down_stream_port_present == 0x1) + mtk_dp->train_info.dp_mstbranch = true; + + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_02003, 0x1, buffer); + if (buffer[0] != 0x0) + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_02003, 0x1, buffer); + } + + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_00600, 0x1, buffer); + if (buffer[0] != 0x1) { + buffer[0] = 0x1; + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00600, 0x1, buffer); + } + + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_00200, 0x2, buffer); +} + +static void dptx_training_changemode(struct mtk_dp *mtk_dp) +{ + dptx_hal_phyd_reset(mtk_dp); + dptx_hal_reset_swing_preemphasis(mtk_dp); + dptx_hal_ssc_en(mtk_dp, mtk_dp->train_info.sink_ssc_en); + + mdelay(2); +} + +static int dptx_set_trainingstart(struct mtk_dp *mtk_dp) +{ + int ret = DPTX_PASS; + u8 lanecount; + u8 linkrate; + u8 buffer; + u8 limit; + u8 max_linkrate; + + buffer = 0x1; + dptx_auxwrite_dpcd(mtk_dp, DP_AUX_NATIVE_WRITE, + DPCD_00600, 0x1, &buffer); + + linkrate = mtk_dp->rx_cap[1]; + lanecount = mtk_dp->rx_cap[2] & 0x1f; + + printk(BIOS_INFO, "RX support linkrate = %#x, lanecount = %#x\n", + linkrate, lanecount); + + mtk_dp->train_info.linkrate = + (linkrate >= mtk_dp->train_info.sys_max_linkrate) ? + mtk_dp->train_info.sys_max_linkrate : linkrate; + mtk_dp->train_info.linklane_count = (lanecount >= MAX_LANECOUNT) ? + MAX_LANECOUNT : lanecount; + + if (mtk_dp->train_info.sink_extcap_en) + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_02002, 0x1, &buffer); + else + dptx_auxread_dpcd(mtk_dp, DP_AUX_NATIVE_READ, + DPCD_00200, 0x1, &buffer); + + if ((buffer & 0xbf) != 0) + mtk_dp->train_info.sink_count_num = buffer & 0xbf; + + linkrate = mtk_dp->train_info.linkrate; + lanecount = mtk_dp->train_info.linklane_count; + + switch (linkrate) { + case DP_LINKRATE_RBR: + case DP_LINKRATE_HBR: + case DP_LINKRATE_HBR2: + case DP_LINKRATE_HBR25: + case DP_LINKRATE_HBR3: + break; + default: + mtk_dp->train_info.linkrate = DP_LINKRATE_HBR3; + break; + }; + + max_linkrate = linkrate; + limit = 0x6; + + do { + mtk_dp->train_info.cr_done = false; + mtk_dp->train_info.eq_done = false; + + dptx_training_changemode(mtk_dp); + ret = dptx_trainingflow(mtk_dp, linkrate, lanecount); + + if (!mtk_dp->train_info.cr_done) { + /* CR fail and reduce link capability. */ + switch (linkrate) { + case DP_LINKRATE_RBR: + lanecount = lanecount / 2; + linkrate = max_linkrate; + + if (lanecount == 0x0) + return DPTX_TRANING_FAIL; + break; + case DP_LINKRATE_HBR: + linkrate = DP_LINKRATE_RBR; + break; + case DP_LINKRATE_HBR2: + linkrate = DP_LINKRATE_HBR; + break; + case DP_LINKRATE_HBR3: + linkrate = DP_LINKRATE_HBR2; + break; + default: + return DPTX_TRANING_FAIL; + }; + } else if (!mtk_dp->train_info.eq_done) { + /* EQ fail and reduce lane counts. */ + if (lanecount == DP_LANECOUNT_4) + lanecount = DP_LANECOUNT_2; + else if (lanecount == DP_LANECOUNT_2) + lanecount = DP_LANECOUNT_1; + else + return DPTX_TRANING_FAIL; + } else { + return DPTX_PASS; + } + } while (--limit > 0); + + return DPTX_TRANING_FAIL; +} + +static void dptx_init_port(struct mtk_dp *mtk_dp) +{ + dptx_hal_phy_setidlepattern(mtk_dp, true); + dptx_hal_init_setting(mtk_dp); + dptx_hal_aux_setting(mtk_dp); + dptx_hal_digital_setting(mtk_dp); + dptx_hal_phy_setting(mtk_dp); + dptx_hal_hpd_detect_setting(mtk_dp); + + dptx_hal_digital_swreset(mtk_dp); + dptx_hal_analog_power_en(mtk_dp, true); + dptx_hal_hpd_int_en(mtk_dp, true); +} + +static void dptx_video_enable(struct mtk_dp *mtk_dp, bool enable) +{ + printk(BIOS_INFO, "Output Video %s!\n", enable ? + "enable" : "disable"); + + if (enable) { + dptx_set_dptxout(mtk_dp); + dptx_videomute(mtk_dp, false); + dptx_hal_verify_clock(mtk_dp); + } else + dptx_videomute(mtk_dp, true); +} + +static void dptx_set_color_format(struct mtk_dp *mtk_dp, u8 color_format) +{ + dptx_hal_set_color_format(mtk_dp, color_format); +} + +static void dptx_set_color_depth(struct mtk_dp *mtk_dp, u8 color_depth) +{ + dptx_hal_set_color_depth(mtk_dp, color_depth); +} + +static void dptx_video_config(struct mtk_dp *mtk_dp) +{ + u32 mvid = 0; + bool overwrite = false; + + dptx_hal_overwrite_mn(mtk_dp, overwrite, mvid, 0x8000); + + /* Interlace does not support. */ + dptx_hal_set_msa(mtk_dp); + dptx_set_misc(mtk_dp); + dptx_set_color_depth(mtk_dp, mtk_dp->info.depth); + dptx_set_color_format(mtk_dp, mtk_dp->info.format); +} + +int mtk_edp_init(struct edid *edid) +{ + struct mtk_dp mtk_edp; + + dptx_init_variable(&mtk_edp); + dptx_init_port(&mtk_edp); + + if (!dptx_hal_hpd_high(&mtk_edp)) { + printk(BIOS_ERR, "HPD is low\n"); + return -1; + } + + dptx_check_sinkcap(&mtk_edp); + + dptx_get_edid(&mtk_edp, edid); + + dptx_set_trainingstart(&mtk_edp); + dp_intf_config(edid); + dptx_video_config(&mtk_edp); + dptx_video_enable(&mtk_edp, true); + + return 0; +} diff --git a/src/soc/mediatek/common/dp/dptx_hal.c b/src/soc/mediatek/common/dp/dptx_hal.c new file mode 100644 index 0000000000..b246c20119 --- /dev/null +++ b/src/soc/mediatek/common/dp/dptx_hal.c @@ -0,0 +1,825 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include +#include +#include +#include +#include +#include +#include +#include + +#define REG_OFFSET_LIMIT 0x8000 + +struct shift_mask { + u32 shift; + u32 mask; +}; +static const struct shift_mask volt_swing[DPTX_LANE_MAX] = { + [DPTX_LANE0] = { DP_TX0_VOLT_SWING_FLDMASK_POS, DP_TX0_VOLT_SWING_FLDMASK }, + [DPTX_LANE1] = { DP_TX1_VOLT_SWING_FLDMASK_POS, DP_TX1_VOLT_SWING_FLDMASK }, + [DPTX_LANE2] = { DP_TX2_VOLT_SWING_FLDMASK_POS, DP_TX2_VOLT_SWING_FLDMASK }, + [DPTX_LANE3] = { DP_TX3_VOLT_SWING_FLDMASK_POS, DP_TX3_VOLT_SWING_FLDMASK }, +}; +static const struct shift_mask volt_preemphasis[DPTX_LANE_MAX] = { + [DPTX_LANE0] = { DP_TX0_PRE_EMPH_FLDMASK_POS, DP_TX0_PRE_EMPH_FLDMASK }, + [DPTX_LANE1] = { DP_TX1_PRE_EMPH_FLDMASK_POS, DP_TX1_PRE_EMPH_FLDMASK }, + [DPTX_LANE2] = { DP_TX2_PRE_EMPH_FLDMASK_POS, DP_TX2_PRE_EMPH_FLDMASK }, + [DPTX_LANE3] = { DP_TX3_PRE_EMPH_FLDMASK_POS, DP_TX3_PRE_EMPH_FLDMASK }, +}; + +u32 mtk_dp_read(struct mtk_dp *mtk_dp, u32 offset) +{ + void *addr = mtk_dp->regs + offset; + + if (offset % 4 != 0 || offset > REG_OFFSET_LIMIT) { + printk(BIOS_ERR, "[%s] invalid offset %#x for reg %p\n", + __func__, offset, mtk_dp->regs); + return 0; + } + + return read32(addr); +} + +void mtk_dp_write(struct mtk_dp *mtk_dp, u32 offset, u32 val) +{ + void *addr = mtk_dp->regs + offset; + + if (offset % 4 != 0 || offset > REG_OFFSET_LIMIT) { + printk(BIOS_ERR, "[%s] invalid offset %#x for reg %p\n", + __func__, offset, mtk_dp->regs); + return; + } + + write32(addr, val); +} + +void mtk_dp_mask(struct mtk_dp *mtk_dp, u32 offset, u32 val, u32 mask) +{ + void *addr = mtk_dp->regs + offset; + + if (offset % 4 != 0 || offset > REG_OFFSET_LIMIT) { + printk(BIOS_ERR, "[%s] invalid offset %#x for reg %p\n", + __func__, offset, mtk_dp->regs); + return; + } + + /* + * TODO: modify to clrsetbits32(addr, mask, val); + * There is asserion error when testing assert((val & mask) == val). + */ + clrsetbits32(addr, mask, val & mask); +} + +void mtk_dp_write_byte(struct mtk_dp *mtk_dp, u32 addr, u8 val, u32 mask) +{ + if (addr % 2) { + mtk_dp_write(mtk_dp, DP_TX_TOP_APB_WSTRB, 0x12); + mtk_dp_mask(mtk_dp, addr - 1, val << 8, mask << 8); + } else { + mtk_dp_write(mtk_dp, DP_TX_TOP_APB_WSTRB, 0x11); + mtk_dp_mask(mtk_dp, addr, val, mask); + } + + mtk_dp_write(mtk_dp, DP_TX_TOP_APB_WSTRB, 0x0); +} + +void dptx_hal_verify_clock(struct mtk_dp *mtk_dp) +{ + u32 m, n, ls_clk, pix_clk; + + m = mtk_dp_read(mtk_dp, REG_33C8_DP_ENCODER1_P0); + n = 0x8000; + ls_clk = mtk_dp->train_info.linkrate; + ls_clk *= 27; + + pix_clk = m * ls_clk / n; + printk(BIOS_DEBUG, "DPTX calc pixel clock = %d MHz, dp_intf clock = %dMHz\n", + pix_clk, pix_clk / 4); +} + +void dptx_hal_init_setting(struct mtk_dp *mtk_dp) +{ + DP_WRITE1BYTE(mtk_dp, REG_342C_DP_TRANS_P0, 0x69); + mtk_dp_mask(mtk_dp, REG_3540_DP_TRANS_P0, BIT(3), BIT(3)); + mtk_dp_mask(mtk_dp, REG_31EC_DP_ENCODER0_P0, BIT(4), BIT(4)); + mtk_dp_mask(mtk_dp, REG_304C_DP_ENCODER0_P0, 0, BIT(8)); + mtk_dp_mask(mtk_dp, DP_TX_TOP_IRQ_MASK, BIT(2), BIT(2)); +} + +void dptx_hal_bypassmsa_en(struct mtk_dp *mtk_dp, bool enable) +{ + mtk_dp_mask(mtk_dp, REG_3030_DP_ENCODER0_P0, + enable ? 0 : 0x3ff, 0x3ff); +} + +void dptx_hal_set_msa(struct mtk_dp *mtk_dp) +{ + u32 va, vsync, vbp, vfp, vtotal, ha, hsync, hbp, hfp, htotal; + struct edid *edid = mtk_dp->edid; + + va = edid->mode.va; + vsync = edid->mode.vspw; + vbp = edid->mode.vbl - edid->mode.vso - + edid->mode.vspw - edid->mode.vborder; + vfp = edid->mode.vso - edid->mode.vborder; + + ha = edid->mode.ha; + hsync = edid->mode.hspw; + hbp = edid->mode.hbl - edid->mode.hso - + edid->mode.hspw - edid->mode.hborder; + hfp = edid->mode.hso - edid->mode.hborder; + + htotal = ha + hsync + hbp + hfp; + vtotal = va + vsync + vbp + vfp; + + DP_WRITE2BYTE(mtk_dp, REG_3010_DP_ENCODER0_P0, htotal); + DP_WRITE2BYTE(mtk_dp, REG_3018_DP_ENCODER0_P0, hsync + hbp); + mtk_dp_mask(mtk_dp, REG_3028_DP_ENCODER0_P0, + hsync << HSW_SW_DP_ENCODER0_P0_FLDMASK_POS, + HSW_SW_DP_ENCODER0_P0_FLDMASK); + mtk_dp_mask(mtk_dp, REG_3028_DP_ENCODER0_P0, + 0 << HSP_SW_DP_ENCODER0_P0_FLDMASK_POS, + HSP_SW_DP_ENCODER0_P0_FLDMASK); + DP_WRITE2BYTE(mtk_dp, REG_3020_DP_ENCODER0_P0, ha); + DP_WRITE2BYTE(mtk_dp, REG_3014_DP_ENCODER0_P0, va); + DP_WRITE2BYTE(mtk_dp, REG_301C_DP_ENCODER0_P0, vsync + vbp); + mtk_dp_mask(mtk_dp, REG_302C_DP_ENCODER0_P0, + vsync << VSW_SW_DP_ENCODER0_P0_FLDMASK_POS, + VSW_SW_DP_ENCODER0_P0_FLDMASK); + mtk_dp_mask(mtk_dp, REG_302C_DP_ENCODER0_P0, + 0 << VSP_SW_DP_ENCODER0_P0_FLDMASK_POS, + VSP_SW_DP_ENCODER0_P0_FLDMASK); + DP_WRITE2BYTE(mtk_dp, REG_3024_DP_ENCODER0_P0, va); + DP_WRITE2BYTE(mtk_dp, REG_3064_DP_ENCODER0_P0, ha); + DP_WRITE2BYTE(mtk_dp, REG_3154_DP_ENCODER0_P0, htotal); + DP_WRITE2BYTE(mtk_dp, REG_3158_DP_ENCODER0_P0, hfp); + DP_WRITE2BYTE(mtk_dp, REG_315C_DP_ENCODER0_P0, vsync); + DP_WRITE2BYTE(mtk_dp, REG_3160_DP_ENCODER0_P0, hsync + hbp); + DP_WRITE2BYTE(mtk_dp, REG_3164_DP_ENCODER0_P0, ha); + DP_WRITE2BYTE(mtk_dp, REG_3168_DP_ENCODER0_P0, vtotal); + DP_WRITE2BYTE(mtk_dp, REG_316C_DP_ENCODER0_P0, hfp); + DP_WRITE2BYTE(mtk_dp, REG_3170_DP_ENCODER0_P0, vsync); + DP_WRITE2BYTE(mtk_dp, REG_3174_DP_ENCODER0_P0, vsync + vbp); + DP_WRITE2BYTE(mtk_dp, REG_3178_DP_ENCODER0_P0, va); + + printk(BIOS_INFO, "MSA:Htt(%d), Vtt(%d), Hact(%d), Vact(%d), FPS(%d)\n", + htotal, vtotal, ha, va, + edid->mode.pixel_clock * 1000 / htotal / vtotal); +} + +void dptx_hal_set_color_format(struct mtk_dp *mtk_dp, u8 out_format) +{ + /* MISC0 */ + mtk_dp_write_byte(mtk_dp, REG_3034_DP_ENCODER0_P0, + out_format << 0x1, GENMASK(2, 1)); + + switch (out_format) { + case DP_COLOR_FORMAT_RGB_444: + case DP_COLOR_FORMAT_YUV_444: + mtk_dp_write_byte(mtk_dp, REG_303C_DP_ENCODER0_P0 + 1, + 0, GENMASK(6, 4)); + break; + case DP_COLOR_FORMAT_YUV_422: + mtk_dp_write_byte(mtk_dp, REG_303C_DP_ENCODER0_P0 + 1, + BIT(4), GENMASK(6, 4)); + break; + case DP_COLOR_FORMAT_YUV_420: + mtk_dp_write_byte(mtk_dp, REG_303C_DP_ENCODER0_P0 + 1, BIT(5), + GENMASK(6, 4)); + break; + default: + break; + } +} + +void dptx_hal_set_color_depth(struct mtk_dp *mtk_dp, u8 color_depth) +{ + u8 val; + + mtk_dp_write_byte(mtk_dp, REG_3034_DP_ENCODER0_P0, + color_depth << 0x5, 0xe0); + + switch (color_depth) { + case DP_COLOR_DEPTH_6BIT: + val = 4; + break; + case DP_COLOR_DEPTH_8BIT: + val = 3; + break; + case DP_COLOR_DEPTH_10BIT: + val = 2; + break; + case DP_COLOR_DEPTH_12BIT: + val = 1; + break; + case DP_COLOR_DEPTH_16BIT: + val = 0; + break; + default: + return; + } + mtk_dp_write_byte(mtk_dp, REG_303C_DP_ENCODER0_P0 + 1, val, 0x7); +} + +void dptx_hal_setmisc(struct mtk_dp *mtk_dp, u8 cmisc[2]) +{ + mtk_dp_write_byte(mtk_dp, REG_3034_DP_ENCODER0_P0, cmisc[0], 0xfe); + mtk_dp_write_byte(mtk_dp, REG_3034_DP_ENCODER0_P0 + 1, cmisc[1], 0xff); +} + +void dptx_hal_overwrite_mn(struct mtk_dp *mtk_dp, + bool enable, u32 video_m, u32 video_n) +{ + if (enable) { + /* Turn on overwrite MN */ + DP_WRITE2BYTE(mtk_dp, REG_3008_DP_ENCODER0_P0, + video_m & 0xffff); + DP_WRITE1BYTE(mtk_dp, REG_300C_DP_ENCODER0_P0, + (video_m >> 16) & 0xff); + DP_WRITE2BYTE(mtk_dp, REG_3044_DP_ENCODER0_P0, + video_n & 0xffff); + DP_WRITE1BYTE(mtk_dp, REG_3048_DP_ENCODER0_P0, + (video_n >> 16) & 0xff); + DP_WRITE2BYTE(mtk_dp, REG_3050_DP_ENCODER0_P0, + video_n & 0xffff); + + /* Add legerII. */ + DP_WRITE1BYTE(mtk_dp, REG_3054_DP_ENCODER0_P0, + (video_n >> 16) & 0xff); + mtk_dp_write_byte(mtk_dp, REG_3004_DP_ENCODER0_P0 + 1, + BIT(0), BIT(0)); + } else { + /* Turn off overwrite MN */ + mtk_dp_write_byte(mtk_dp, REG_3004_DP_ENCODER0_P0 + 1, + 0, BIT(0)); + } +} + +u8 dptx_hal_get_colorbpp(struct mtk_dp *mtk_dp) +{ + u8 color_bpp; + u8 color_depth = mtk_dp->info.depth; + u8 color_format = mtk_dp->info.format; + + switch (color_depth) { + case DP_COLOR_DEPTH_6BIT: + if (color_format == DP_COLOR_FORMAT_YUV_422) + color_bpp = 16; + else if (color_format == DP_COLOR_FORMAT_YUV_420) + color_bpp = 12; + else + color_bpp = 18; + break; + case DP_COLOR_DEPTH_8BIT: + if (color_format == DP_COLOR_FORMAT_YUV_422) + color_bpp = 16; + else if (color_format == DP_COLOR_FORMAT_YUV_420) + color_bpp = 12; + else + color_bpp = 24; + break; + case DP_COLOR_DEPTH_10BIT: + if (color_format == DP_COLOR_FORMAT_YUV_422) + color_bpp = 20; + else if (color_format == DP_COLOR_FORMAT_YUV_420) + color_bpp = 15; + else + color_bpp = 30; + break; + case DP_COLOR_DEPTH_12BIT: + if (color_format == DP_COLOR_FORMAT_YUV_422) + color_bpp = 24; + else if (color_format == DP_COLOR_FORMAT_YUV_420) + color_bpp = 18; + else + color_bpp = 36; + break; + case DP_COLOR_DEPTH_16BIT: + if (color_format == DP_COLOR_FORMAT_YUV_422) + color_bpp = 32; + else if (color_format == DP_COLOR_FORMAT_YUV_420) + color_bpp = 24; + else + color_bpp = 48; + break; + default: + color_bpp = 24; + printk(BIOS_ERR, "Set wrong bpp = %d\n", color_bpp); + break; + } + + return color_bpp; +} + +void dptx_hal_settu_sramrd_start(struct mtk_dp *mtk_dp, u16 value) +{ + /* + * [5:0] video sram start address + * modify in 480P case only, default=0x1f + */ + mtk_dp_write_byte(mtk_dp, REG_303C_DP_ENCODER0_P0, (u8)value, 0x3f); +} + +void dptx_hal_setsdp_downcnt_init_inhblanking(struct mtk_dp *mtk_dp, u16 value) +{ + mtk_dp_mask(mtk_dp, REG_3364_DP_ENCODER1_P0, value, 0xfff); + +} + +void dptx_hal_setsdp_downcnt_init(struct mtk_dp *mtk_dp, u16 value) +{ + mtk_dp_mask(mtk_dp, REG_3040_DP_ENCODER0_P0, value, 0xfff); +} + +void dptx_hal_settu_setencoder(struct mtk_dp *mtk_dp) +{ + mtk_dp_write_byte(mtk_dp, REG_303C_DP_ENCODER0_P0 + 1, + BIT(7), BIT(7)); + DP_WRITE2BYTE(mtk_dp, REG_3040_DP_ENCODER0_P0, 0x2020); + mtk_dp_mask(mtk_dp, REG_3364_DP_ENCODER1_P0, 0x2020, 0xfff); + mtk_dp_write_byte(mtk_dp, REG_3300_DP_ENCODER1_P0 + 1, + 0x2, BIT(1) | BIT(0)); + mtk_dp_write_byte(mtk_dp, REG_3364_DP_ENCODER1_P0 + 1, + 0x40, 0x70); + DP_WRITE2BYTE(mtk_dp, REG_3368_DP_ENCODER1_P0, 0x1111); +} + +bool dptx_hal_hpd_high(struct mtk_dp *mtk_dp) +{ + return mtk_dp_read(mtk_dp, REG_3414_DP_TRANS_P0) & BIT(2); +} + +bool dptx_hal_auxread_bytes(struct mtk_dp *mtk_dp, u8 cmd, + u32 dpcd_addr, size_t length, u8 *rx_buf) +{ + bool valid_cmd = false; + u8 reply_cmd, aux_irq_status; + int rd_count; + u32 wait_reply_count = AUX_WAITREPLY_LPNUM; + + DP_WRITE1BYTE(mtk_dp, REG_3640_AUX_TX_P0, 0x7f); + mdelay(1); + + if (length > 16 || (cmd == AUX_CMD_NATIVE_R && length == 0x0)) + return false; + + DP_WRITE1BYTE(mtk_dp, REG_3650_AUX_TX_P0 + 1, 0x1); + DP_WRITE1BYTE(mtk_dp, REG_3644_AUX_TX_P0, cmd); + DP_WRITE2BYTE(mtk_dp, REG_3648_AUX_TX_P0, dpcd_addr & 0xffff); + DP_WRITE1BYTE(mtk_dp, REG_364C_AUX_TX_P0, (dpcd_addr >> 16) & 0xf); + + if (length > 0) { + mtk_dp_mask(mtk_dp, REG_3650_AUX_TX_P0, + (length - 1) << MCU_REQ_DATA_NUM_AUX_TX_P0_FLDMASK_POS, + MCU_REQUEST_DATA_NUM_AUX_TX_P0_FLDMASK); + DP_WRITE1BYTE(mtk_dp, REG_362C_AUX_TX_P0, 0x0); + } + + if (cmd == AUX_CMD_I2C_R || cmd == AUX_CMD_I2C_R_MOT0) + if (length == 0x0) + mtk_dp_mask(mtk_dp, REG_362C_AUX_TX_P0, + 0x1 << AUX_NO_LENGTH_AUX_TX_P0_FLDMASK_POS, + AUX_NO_LENGTH_AUX_TX_P0_FLDMASK); + + mtk_dp_mask(mtk_dp, REG_3630_AUX_TX_P0, + 0x1 << AUX_TX_REQUEST_READY_AUX_TX_P0_FLDMASK_POS, + AUX_TX_REQUEST_READY_AUX_TX_P0_FLDMASK); + + while (--wait_reply_count) { + if (mtk_dp_read(mtk_dp, REG_3618_AUX_TX_P0) & + AUX_RX_FIFO_WRITE_POINTER_AUX_TX_P0_FLDMASK) { + valid_cmd = true; + break; + } + + if (mtk_dp_read(mtk_dp, REG_3618_AUX_TX_P0) & + AUX_RX_FIFO_FULL_AUX_TX_P0_FLDMASK) { + valid_cmd = true; + break; + } + + aux_irq_status = mtk_dp_read(mtk_dp, REG_3640_AUX_TX_P0) & 0xff; + + if (aux_irq_status & AUX_RX_RECV_COMPLETE_IRQ_TX_P0_FLDMASK) { + valid_cmd = true; + break; + } + + if (aux_irq_status & AUX_400US_TIMEOUT_IRQ_AUX_TX_P0_FLDMASK) { + printk(BIOS_ERR, "(AUX Read)HW Timeout 400us irq\n"); + break; + } + } + + reply_cmd = mtk_dp_read(mtk_dp, REG_3624_AUX_TX_P0) & 0xf; + if (reply_cmd) + printk(BIOS_ERR, "reply_cmd(%#x), NACK or Defer\n", reply_cmd); + + if (wait_reply_count == 0x0 || reply_cmd) { + u8 phy_status = 0x0; + + phy_status = mtk_dp_read(mtk_dp, REG_3628_AUX_TX_P0); + if (phy_status != 0x1) + printk(BIOS_ERR, "Aux read: aux hang, need sw reset\n"); + + mtk_dp_mask(mtk_dp, REG_3650_AUX_TX_P0, + 0x1 << MCU_ACK_TRAN_COMPLETE_AUX_TX_P0_FLDMASK_POS, + MCU_ACK_TRANSACTION_COMPLETE_AUX_TX_P0_FLDMASK); + DP_WRITE1BYTE(mtk_dp, REG_3640_AUX_TX_P0, 0x7f); + + mdelay(1); + printk(BIOS_ERR, "wait_reply_count(%#x), TimeOut\n", + wait_reply_count); + return false; + } + + if (length == 0) { + DP_WRITE1BYTE(mtk_dp, REG_362C_AUX_TX_P0, 0x0); + } else { + if (valid_cmd) { + mtk_dp_mask(mtk_dp, REG_3620_AUX_TX_P0, + 0x0 << AUX_RD_MODE_AUX_TX_P0_FLDMASK_POS, + AUX_RD_MODE_AUX_TX_P0_FLDMASK); + + for (rd_count = 0; rd_count < length; rd_count++) { + mtk_dp_mask(mtk_dp, REG_3620_AUX_TX_P0, + 0x1 << AUX_RX_FIFO_R_PULSE_TX_P0_FLDMASK_POS, + AUX_RX_FIFO_READ_PULSE_TX_P0_FLDMASK); + mdelay(1); + *(rx_buf + rd_count) = mtk_dp_read(mtk_dp, + REG_3620_AUX_TX_P0); + } + } else { + printk(BIOS_INFO, "Read TimeOut %#x\n", dpcd_addr); + } + } + + mtk_dp_mask(mtk_dp, REG_3650_AUX_TX_P0, + 0x1 << MCU_ACK_TRAN_COMPLETE_AUX_TX_P0_FLDMASK_POS, + MCU_ACK_TRANSACTION_COMPLETE_AUX_TX_P0_FLDMASK); + DP_WRITE1BYTE(mtk_dp, REG_3640_AUX_TX_P0, 0x7f); + + mdelay(1); + return valid_cmd; +} + +bool dptx_hal_auxwrite_bytes(struct mtk_dp *mtk_dp, u8 cmd, + u32 dpcd_addr, size_t length, u8 *data) +{ + bool valid_cmd = false; + u8 reply_cmd; + int i; + u16 wait_reply_count = AUX_WAITREPLY_LPNUM; + int reg_idx; + + mtk_dp_write_byte(mtk_dp, REG_3704_AUX_TX_P0, + 1 << AUX_TX_FIFO_NEW_MODE_EN_AUX_TX_P0_FLDMASK_POS, + AUX_TX_FIFO_NEW_MODE_EN_AUX_TX_P0_FLDMASK); + DP_WRITE1BYTE(mtk_dp, REG_3650_AUX_TX_P0 + 1, 0x1); + DP_WRITE1BYTE(mtk_dp, REG_3640_AUX_TX_P0, 0x7f); + mdelay(1); + + DP_WRITE1BYTE(mtk_dp, REG_3650_AUX_TX_P0 + 1, 0x1); + DP_WRITE1BYTE(mtk_dp, REG_3644_AUX_TX_P0, cmd); + DP_WRITE1BYTE(mtk_dp, REG_3648_AUX_TX_P0, dpcd_addr & 0xff); + DP_WRITE1BYTE(mtk_dp, REG_3648_AUX_TX_P0 + 1, + (dpcd_addr >> 8) & 0xff); + DP_WRITE1BYTE(mtk_dp, REG_364C_AUX_TX_P0, + (dpcd_addr >> 16) & 0xf); + + if (length > 0) { + DP_WRITE1BYTE(mtk_dp, REG_362C_AUX_TX_P0, 0x0); + for (i = 0; i < (length + 1) / 2; i++) + for (reg_idx = 0; reg_idx < 2; reg_idx++) + if ((i * 2 + reg_idx) < length) + DP_WRITE1BYTE(mtk_dp, + REG_3708_AUX_TX_P0 + i * 4 + reg_idx, + data[i * 2 + reg_idx]); + DP_WRITE1BYTE(mtk_dp, REG_3650_AUX_TX_P0 + 1, + ((length - 1) & 0xf) << 4); + } else { + DP_WRITE1BYTE(mtk_dp, REG_362C_AUX_TX_P0, 0x1); + } + + mtk_dp_write_byte(mtk_dp, REG_3704_AUX_TX_P0, + AUX_TX_FIFO_WRITE_DATA_NEW_MODE_TOGGLE_AUX_TX_P0_FLDMASK, + AUX_TX_FIFO_WRITE_DATA_NEW_MODE_TOGGLE_AUX_TX_P0_FLDMASK); + DP_WRITE1BYTE(mtk_dp, REG_3630_AUX_TX_P0, 0x8); + + while (--wait_reply_count) { + u8 aux_irq_status; + + aux_irq_status = mtk_dp_read(mtk_dp, REG_3640_AUX_TX_P0) & 0xff; + mdelay(1); + if (aux_irq_status & AUX_RX_RECV_COMPLETE_IRQ_TX_P0_FLDMASK) { + valid_cmd = true; + break; + } + + if (aux_irq_status & AUX_400US_TIMEOUT_IRQ_AUX_TX_P0_FLDMASK) + break; + } + + reply_cmd = mtk_dp_read(mtk_dp, REG_3624_AUX_TX_P0) & 0xf; + if (reply_cmd) + printk(BIOS_ERR, "reply_cmd(%#x), NACK or Defer\n", reply_cmd); + + if (wait_reply_count == 0x0 || reply_cmd) { + u8 phy_status = 0x0; + + phy_status = mtk_dp_read(mtk_dp, REG_3628_AUX_TX_P0); + if (phy_status != 0x1) + printk(BIOS_ERR, + "Aux write: aux hang, need SW reset!\n"); + + DP_WRITE1BYTE(mtk_dp, REG_3650_AUX_TX_P0 + 1, 0x1); + DP_WRITE1BYTE(mtk_dp, REG_3640_AUX_TX_P0, 0x7f); + + mdelay(1); + + printk(BIOS_INFO, "reply_cmd(%#x), wait_reply_count(%d)\n", + reply_cmd, wait_reply_count); + return false; + } + + DP_WRITE1BYTE(mtk_dp, REG_3650_AUX_TX_P0 + 1, 0x1); + + if (length == 0) + DP_WRITE1BYTE(mtk_dp, REG_362C_AUX_TX_P0, 0x0); + + DP_WRITE1BYTE(mtk_dp, REG_3640_AUX_TX_P0, 0x7f); + + mdelay(1); + + return valid_cmd; +} + +bool dptx_hal_setswing_preemphasis(struct mtk_dp *mtk_dp, int lane_num, + int swing_value, int preemphasis) +{ + printk(BIOS_DEBUG, "lane(%d), set swing(%#x), emp(%#x)\n", + lane_num, swing_value, preemphasis); + + if (lane_num >= DPTX_LANE_MAX) { + printk(BIOS_ERR, "invalid lane number: %d\n", lane_num); + return false; + } + + mtk_dp_mask(mtk_dp, DP_TX_TOP_SWING_EMP, + swing_value << volt_swing[lane_num].shift, + volt_swing[lane_num].mask); + mtk_dp_mask(mtk_dp, DP_TX_TOP_SWING_EMP, + preemphasis << volt_preemphasis[lane_num].shift, + volt_preemphasis[lane_num].mask); + return true; +} + +void dptx_hal_reset_swing_preemphasis(struct mtk_dp *mtk_dp) +{ + int lane; + + for (lane = 0; lane < DPTX_LANE_MAX; lane++) + mtk_dp_mask(mtk_dp, DP_TX_TOP_SWING_EMP, + 0, volt_swing[lane].mask); + for (lane = 0; lane < DPTX_LANE_MAX; lane++) + mtk_dp_mask(mtk_dp, DP_TX_TOP_SWING_EMP, + 0, volt_preemphasis[lane].mask); +} + +void dptx_hal_hpd_int_en(struct mtk_dp *mtk_dp, bool enable) +{ + /* [7]:int, [6]:Con, [5]DisCon, [4]No-Use: UnMASK HPD Port */ + mtk_dp_write_byte(mtk_dp, REG_3418_DP_TRANS_P0, + enable ? 0 : GENMASK(7, 5), GENMASK(7, 5)); +} + +void dptx_hal_hpd_detect_setting(struct mtk_dp *mtk_dp) +{ + mtk_dp_write_byte(mtk_dp, REG_3410_DP_TRANS_P0, + 0x8, GENMASK(3, 0)); + mtk_dp_write_byte(mtk_dp, REG_3410_DP_TRANS_P0, + 0xa << 4, GENMASK(7, 4)); + + DP_WRITE1BYTE(mtk_dp, REG_3410_DP_TRANS_P0 + 1, 0x55); + DP_WRITE1BYTE(mtk_dp, REG_3430_DP_TRANS_P0, 0x2); +} + +void dptx_hal_phy_setting(struct mtk_dp *mtk_dp) +{ + mtk_dp_mask(mtk_dp, DP_TX_TOP_PWR_STATE, + 0x3 << DP_PWR_STATE_FLDMASK_POS, DP_PWR_STATE_FLDMASK); + + mtk_dp_write(mtk_dp, 0x2000, 0x00000001); + mtk_dp_write(mtk_dp, 0x103c, 0x00000000); + mtk_dp_write(mtk_dp, 0x2000, 0x00000003); + mtk_dp_write(mtk_dp, 0x1138, 0x20181410); + mtk_dp_write(mtk_dp, 0x1238, 0x20181410); + mtk_dp_write(mtk_dp, 0x1338, 0x20181410); + mtk_dp_write(mtk_dp, 0x1438, 0x20181410); + mtk_dp_write(mtk_dp, 0x113C, 0x20241e18); + mtk_dp_write(mtk_dp, 0x123C, 0x20241e18); + mtk_dp_write(mtk_dp, 0x133C, 0x20241e18); + mtk_dp_write(mtk_dp, 0x143C, 0x20241e18); + mtk_dp_write(mtk_dp, 0x1140, 0x00003028); + mtk_dp_write(mtk_dp, 0x1240, 0x00003028); + mtk_dp_write(mtk_dp, 0x1340, 0x00003028); + mtk_dp_write(mtk_dp, 0x1440, 0x00003028); + mtk_dp_write(mtk_dp, 0x1144, 0x10080400); + mtk_dp_write(mtk_dp, 0x1244, 0x10080400); + mtk_dp_write(mtk_dp, 0x1344, 0x10080400); + mtk_dp_write(mtk_dp, 0x1444, 0x10080400); + mtk_dp_write(mtk_dp, 0x1148, 0x000c0600); + mtk_dp_write(mtk_dp, 0x1248, 0x000c0600); + mtk_dp_write(mtk_dp, 0x1348, 0x000c0600); + mtk_dp_write(mtk_dp, 0x1448, 0x000c0600); + mtk_dp_write(mtk_dp, 0x114C, 0x00000008); + mtk_dp_write(mtk_dp, 0x124C, 0x00000008); + mtk_dp_write(mtk_dp, 0x134C, 0x00000008); + mtk_dp_write(mtk_dp, 0x144C, 0x00000008); + mtk_dp_mask(mtk_dp, 0x3690, BIT(8), BIT(8)); +} + +void dptx_hal_ssc_en(struct mtk_dp *mtk_dp, bool enable) +{ + mtk_dp_mask(mtk_dp, 0x2000, BIT(0), GENMASK(1, 0)); + + if (enable) + mtk_dp_mask(mtk_dp, 0x1014, BIT(3), BIT(3)); + else + mtk_dp_mask(mtk_dp, 0x1014, 0x0, BIT(3)); + + mtk_dp_mask(mtk_dp, 0x2000, GENMASK(1, 0), GENMASK(1, 0)); + + mdelay(1); +} + +void dptx_hal_aux_setting(struct mtk_dp *mtk_dp) +{ + /* [12 : 8]: modify timeout threshold = 1595 */ + mtk_dp_mask(mtk_dp, REG_360C_AUX_TX_P0, + 0x1595, AUX_TIMEOUT_THR_AUX_TX_P0_FLDMASK); + mtk_dp_write_byte(mtk_dp, REG_3658_AUX_TX_P0, 0, BIT(0)); + + /* 0x19 for 26M */ + DP_WRITE1BYTE(mtk_dp, REG_3634_AUX_TX_P0 + 1, 0x19); + /* 0xd for 26M */ + mtk_dp_write_byte(mtk_dp, REG_3614_AUX_TX_P0, + 0xd, GENMASK(6, 0)); + mtk_dp_mask(mtk_dp, REG_37C8_AUX_TX_P0, + 0x01 << MTK_ATOP_EN_AUX_TX_P0_FLDMASK_POS, + MTK_ATOP_EN_AUX_TX_P0_FLDMASK); +} + +void dptx_hal_digital_setting(struct mtk_dp *mtk_dp) +{ + mtk_dp_write_byte(mtk_dp, REG_304C_DP_ENCODER0_P0, + 0, VBID_VIDEO_MUTE_DP_ENCODER0_P0_FLDMASK); + /* MISC0 */ + dptx_hal_set_color_format(mtk_dp, DP_COLOR_FORMAT_RGB_444); + + dptx_hal_set_color_depth(mtk_dp, DP_COLOR_DEPTH_8BIT); + mtk_dp_write_byte(mtk_dp, REG_3368_DP_ENCODER1_P0 + 1, + BIT(4), GENMASK(5, 4)); + /* DPtx encoder reset all sw. */ + mtk_dp_write_byte(mtk_dp, REG_3004_DP_ENCODER0_P0 + 1, BIT(1), BIT(1)); + + mdelay(1); + + /* DPtx encoder reset all sw. */ + mtk_dp_write_byte(mtk_dp, REG_3004_DP_ENCODER0_P0 + 1, 0, BIT(1)); +} + +void dptx_hal_digital_swreset(struct mtk_dp *mtk_dp) +{ + mtk_dp_write_byte(mtk_dp, REG_340C_DP_TRANS_P0 + 1, BIT(5), BIT(5)); + mdelay(1); + mtk_dp_write_byte(mtk_dp, REG_340C_DP_TRANS_P0 + 1, 0, BIT(5)); +} + +void dptx_hal_phyd_reset(struct mtk_dp *mtk_dp) +{ + mtk_dp_write_byte(mtk_dp, 0x1038, 0, BIT(0)); + mdelay(1); + mtk_dp_write_byte(mtk_dp, 0x1038, BIT(0), BIT(0)); +} + +void dptx_hal_set_txlane(struct mtk_dp *mtk_dp, int value) +{ + if (value == 0) + mtk_dp_write_byte(mtk_dp, REG_35F0_DP_TRANS_P0, + 0, BIT(3) | BIT(2)); + else + mtk_dp_write_byte(mtk_dp, REG_35F0_DP_TRANS_P0, + BIT(3), BIT(3) | BIT(2)); + + if ((value << 2) <= UINT8_MAX) { + mtk_dp_write_byte(mtk_dp, REG_3000_DP_ENCODER0_P0, + value, BIT(1) | BIT(0)); + mtk_dp_write_byte(mtk_dp, REG_34A4_DP_TRANS_P0, + value << 2, BIT(3) | BIT(2)); + } else { + printk(BIOS_ERR, "[%s]value << 2 > 0xff\n", __func__); + } +} + +void dptx_hal_set_txrate(struct mtk_dp *mtk_dp, int value) +{ + /* Power off TPLL and lane */ + mtk_dp_write(mtk_dp, 0x2000, 0x00000001); + /* Set gear : 0x0 : RBR, 0x1 : HBR, 0x2 : HBR2, 0x3 : HBR3 */ + switch (value) { + case DP_LINKRATE_RBR: + mtk_dp_write(mtk_dp, 0x103C, 0x0); + break; + case DP_LINKRATE_HBR: + mtk_dp_write(mtk_dp, 0x103C, 0x1); + break; + case DP_LINKRATE_HBR2: + mtk_dp_write(mtk_dp, 0x103C, 0x2); + break; + case DP_LINKRATE_HBR3: + mtk_dp_write(mtk_dp, 0x103C, 0x3); + break; + default: + printk(BIOS_ERR, "Link rate not support(%d)\n", value); + break; + } + + /* Power on BandGap, TPLL and Lane */ + mtk_dp_write(mtk_dp, 0x2000, 0x3); +} + +void dptx_hal_set_txtrainingpattern(struct mtk_dp *mtk_dp, int value) +{ + /* if Set TPS1. */ + if (value == BIT(4)) + dptx_hal_phy_setidlepattern(mtk_dp, false); + + mtk_dp_write_byte(mtk_dp, REG_3400_DP_TRANS_P0 + 1, + value, GENMASK(7, 4)); +} + +void dptx_hal_phy_setidlepattern(struct mtk_dp *mtk_dp, bool enable) +{ + mtk_dp_write_byte(mtk_dp, REG_3580_DP_TRANS_P0 + 1, + enable ? 0xf : 0x0, 0xf); +} + +void dptx_hal_set_ef_mode(struct mtk_dp *mtk_dp, bool enable) +{ + /* + * [4]: REG_enhanced_frame_mode + * [1 : 0]: REG_lane_num + */ + if (enable) + mtk_dp_write_byte(mtk_dp, REG_3000_DP_ENCODER0_P0, + BIT(4), BIT(4)); + else + mtk_dp_write_byte(mtk_dp, REG_3000_DP_ENCODER0_P0, + 0, BIT(4)); +} + +void dptx_hal_setscramble(struct mtk_dp *mtk_dp, bool enable) +{ + /* [0]: dp tx transmitter scramble enable. */ + if (enable) + mtk_dp_write_byte(mtk_dp, REG_3404_DP_TRANS_P0, + BIT(0), BIT(0)); + else + mtk_dp_write_byte(mtk_dp, REG_3404_DP_TRANS_P0, + 0, BIT(0)); +} + +void dptx_hal_videomute(struct mtk_dp *mtk_dp, bool enable) +{ + if (enable) { + mtk_dp_write_byte(mtk_dp, REG_3000_DP_ENCODER0_P0, + BIT(3) | BIT(2), BIT(3) | BIT(2)); + mtk_dp_write_byte(mtk_dp, DP_TX_SECURE_REG11, + BIT(3) | BIT(4), BIT(3) | BIT(4)); + } else { + mtk_dp_write_byte(mtk_dp, REG_3000_DP_ENCODER0_P0, + BIT(3), BIT(3) | BIT(2)); + mtk_dp_write_byte(mtk_dp, DP_TX_SECURE_REG11, + BIT(4), BIT(3) | BIT(4)); + } + printk(BIOS_DEBUG, "mute = %#x\n", read32(mtk_dp->regs + 0x402c)); +} + +void dptx_hal_analog_power_en(struct mtk_dp *mtk_dp, bool enable) +{ + if (enable) { + mtk_dp_write_byte(mtk_dp, DP_TX_TOP_RESET_AND_PROBE, + 0, BIT(4)); + mdelay(1); + mtk_dp_write_byte(mtk_dp, DP_TX_TOP_RESET_AND_PROBE, + BIT(4), BIT(4)); + } else { + DP_WRITE2BYTE(mtk_dp, TOP_OFFSET, 0x0); + mdelay(1); + DP_WRITE2BYTE(mtk_dp, 0x0034, 0x4aa); + DP_WRITE2BYTE(mtk_dp, 0x1040, 0x0); + DP_WRITE2BYTE(mtk_dp, 0x0038, 0x555); + } +} diff --git a/src/soc/mediatek/common/dp/include/soc/dp_intf.h b/src/soc/mediatek/common/dp/include/soc/dp_intf.h new file mode 100644 index 0000000000..bb04716f4b --- /dev/null +++ b/src/soc/mediatek/common/dp/include/soc/dp_intf.h @@ -0,0 +1,258 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef SOC_MEDIATEK_COMMON_DP_DP_INTF_H +#define SOC_MEDIATEK_COMMON_DP_DP_INTF_H + +#include + +#define DPINTF_EN 0x00 +#define EN BIT(0) + +#define DPINTF_RET 0x04 +#define RST BIT(0) +#define RST_SEL BIT(16) + +#define DPINTF_INTEN 0x08 +#define INT_VSYNC_EN BIT(0) +#define INT_VDE_EN BIT(1) +#define INT_UNDERFLOW_EN BIT(2) +#define INT_TARGET_LINE_EN BIT(3) + +#define DPINTF_INTSTA 0x0C +#define INT_VSYNC_STA BIT(0) +#define INT_VDE_STA BIT(1) +#define INT_UNDERFLOW_STA BIT(2) +#define INT_TARGET_LINE_STA BIT(3) + +#define DPINTF_CON 0x10 +#define BG_ENABLE BIT(0) +#define INTL_EN BIT(2) +#define TDFP_EN BIT(3) +#define VS_LODD_EN BIT(16) +#define VS_LEVEN_EN BIT(17) +#define VS_RODD_EN BIT(18) +#define VS_REVEN BIT(19) +#define FAKE_DE_LODD BIT(20) +#define FAKE_DE_LEVEN BIT(21) +#define FAKE_DE_RODD BIT(22) +#define FAKE_DE_REVEN BIT(23) +#define YUV422_EN BIT(24) +#define CLPF_EN BIT(25) +#define MATRIX_EN BIT(26) +#define INTERNAL_CG_EN BIT(27) +#define LOWPOWER_EN BIT(28) +#define INPUT_2P_EN BIT(29) +#define EXT_VSYNC_EN BIT(30) + +#define DPINTF_OUTPUT_SETTING 0x14 +#define PIXEL_SWAP BIT(0) +#define CH_SWAP BIT(1) +#define CH_SWAP_MASK (0x7 << 1) +#define SWAP_RGB (0x00 << 1) +#define SWAP_GBR (0x01 << 1) +#define SWAP_BRG (0x02 << 1) +#define SWAP_RBG (0x03 << 1) +#define SWAP_GRB (0x04 << 1) +#define SWAP_BGR (0x05 << 1) +#define B_MASK BIT(4) +#define G_MASK BIT(5) +#define R_MASK BIT(6) +#define DE_MASK BIT(8) +#define HS_MASK BIT(9) +#define VS_MASK BIT(10) +#define HSYNC_POL BIT(13) +#define VSYNC_POL BIT(14) +#define OUT_BIT BIT(16) +#define OUT_BIT_MASK (0x3 << 18) +#define OUT_BIT_8 (0x00 << 18) +#define OUT_BIT_10 (0x01 << 18) +#define OUT_BIT_12 (0x02 << 18) +#define OUT_BIT_16 (0x03 << 18) + +#define DPINTF_SIZE 0x18 +#define HSIZE 0 +#define HSIZE_MASK (0xffff << 0) +#define VSIZE 16 +#define VSIZE_MASK (0xffff << 16) + +#define DPINTF_TGEN_HWIDTH 0x20 +#define HPW 0 +#define HPW_MASK (0xffff << 0) + +#define DPINTF_TGEN_HPORCH 0x24 +#define HBP 0 +#define HBP_MASK (0xffff << 0) +#define HFP 16 +#define HFP_MASK (0xffff << 16) + +#define DPINTF_TGEN_VWIDTH 0x28 +#define VSYNC_WIDTH_SHIFT 0 +#define VSYNC_WIDTH_MASK (0xffff << 0) +#define VSYNC_HALF_LINE_SHIFT 16 +#define VSYNC_HALF_LINE_MASK BIT(16) + + +#define DPINTF_TGEN_VPORCH 0x2C +#define VSYNC_BACK_PORCH_SHIFT 0 +#define VSYNC_BACK_PORCH_MASK (0xffff << 0) +#define VSYNC_FRONT_PORCH_SHIFT 16 +#define VSYNC_FRONT_PORCH_MASK (0xffff << 16) + +#define DPINTF_BG_HCNTL 0x30 +#define BG_RIGHT (0xffff << 0) +#define BG_LEFT (0xffff << 16) + +#define DPINTF_BG_VCNTL 0x34 +#define BG_BOT (0xffff << 0) +#define BG_TOP (0xffff << 16) + +#define DPINTF_BG_COLOR 0x38 +#define BG_B (0x3ff << 0) +#define BG_G (0x3ff << 10) +#define BG_R (0x3ff << 20) + +#define DPINTF_FIFO_CTL 0x3C +#define FIFO_VALID_SET (0x1F << 0) +#define FIFO_RST_SEL BIT(8) +#define FIFO_RD_MASK BIT(12) + +#define DPINTF_STATUS 0x40 +#define VCOUNTER (0x3ffff << 0) +#define DPINTF_BUSY BIT(24) +#define FIELD BIT(28) +#define TDLR BIT(29) + +#define DPINTF_TGEN_VWIDTH_LEVEN 0x68 +#define DPINTF_TGEN_VPORCH_LEVEN 0x6C +#define DPINTF_TGEN_VWIDTH_RODD 0x70 +#define DPINTF_TGEN_VPORCH_RODD 0x74 +#define DPINTF_TGEN_VWIDTH_REVEN 0x78 +#define DPINTF_TGEN_VPORCH_REVEN 0x7C + +#define DPINTF_CLPF_SETTING 0x94 +#define CLPF_TYPE (0x3 << 0) +#define ROUND_EN BIT(4) + +#define DPINTF_Y_LIMIT 0x98 +#define Y_LIMINT_BOT 0 +#define Y_LIMINT_BOT_MASK (0xFFF << 0) +#define Y_LIMINT_TOP 16 +#define Y_LIMINT_TOP_MASK (0xFFF << 16) + +#define DPINTF_C_LIMIT 0x9C +#define C_LIMIT_BOT 0 +#define C_LIMIT_BOT_MASK (0xFFF << 0) +#define C_LIMIT_TOP 16 +#define C_LIMIT_TOP_MASK (0xFFF << 16) + +#define DPINTF_YUV422_SETTING 0xA0 +#define UV_SWAP BIT(0) +#define CR_DELSEL BIT(4) +#define CB_DELSEL BIT(5) +#define Y_DELSEL BIT(6) +#define DE_DELSEL BIT(7) + +#define DPINTF_MATRIX_SET 0xB4 +#define INT_MATRIX_SEL_MASK 0x1f +#define RGB_TO_JPEG 0x00 +#define RGB_TO_FULL709 0x01 +#define RGB_TO_BT601 0x02 +#define RGB_TO_BT709 0x03 +#define JPEG_TO_RGB 0x04 +#define FULL709_TO_RGB 0x05 +#define BT601_TO_RGB 0x06 +#define BT709_TO_RGB 0x07 +#define JPEG_TO_BT601 0x08 +#define JPEG_TO_BT709 0x09 +#define BT601_TO_JPEG 0xA +#define BT709_TO_JPEG 0xB +#define BT709_TO_BT601 0xC +#define BT601_TO_BT709 0xD +#define JPEG_TO_CERGB 0x14 +#define FULL709_TO_CERGB 0x15 +#define BT601_TO_CERGB 0x16 +#define BT709_TO_CERGB 0x17 +#define RGB_TO_CERGB 0x1C + +#define MATRIX_BIT_MASK (0x3 << 8) +#define EXT_MATRIX_EN BIT(12) + +enum mtk_dpintf_out_bit_num { + MTK_DPINTF_OUT_BIT_NUM_8BITS, + MTK_DPINTF_OUT_BIT_NUM_10BITS, + MTK_DPINTF_OUT_BIT_NUM_12BITS, + MTK_DPINTF_OUT_BIT_NUM_16BITS, +}; + +enum mtk_dpintf_out_yc_map { + MTK_DPINTF_OUT_YC_MAP_RGB, + MTK_DPINTF_OUT_YC_MAP_CYCY, + MTK_DPINTF_OUT_YC_MAP_YCYC, + MTK_DPINTF_OUT_YC_MAP_CY, + MTK_DPINTF_OUT_YC_MAP_YC, +}; + +enum mtk_dpintf_out_channel_swap { + MTK_DPINTF_OUT_CHANNEL_SWAP_RGB, + MTK_DPINTF_OUT_CHANNEL_SWAP_GBR, + MTK_DPINTF_OUT_CHANNEL_SWAP_BRG, + MTK_DPINTF_OUT_CHANNEL_SWAP_RBG, + MTK_DPINTF_OUT_CHANNEL_SWAP_GRB, + MTK_DPINTF_OUT_CHANNEL_SWAP_BGR, +}; + +enum mtk_dpintf_out_color_format { + MTK_DPINTF_COLOR_FORMAT_RGB, + MTK_DPINTF_COLOR_FORMAT_RGB_FULL, + MTK_DPINTF_COLOR_FORMAT_YCBCR_444, + MTK_DPINTF_COLOR_FORMAT_YCBCR_422, + MTK_DPINTF_COLOR_FORMAT_XV_YCC, + MTK_DPINTF_COLOR_FORMAT_YCBCR_444_FULL, + MTK_DPINTF_COLOR_FORMAT_YCBCR_422_FULL, +}; + +enum TVDPLL_CLK { + TVDPLL_PLL = 0, + TVDPLL_D2 = 1, + TVDPLL_D4 = 3, + TVDPLL_D8 = 5, + TVDPLL_D16 = 7, +}; + +struct mtk_dpintf { + void *regs; + enum mtk_dpintf_out_color_format color_format; + enum mtk_dpintf_out_yc_map yc_map; + enum mtk_dpintf_out_bit_num bit_num; + enum mtk_dpintf_out_channel_swap channel_swap; +}; + +enum mtk_dpintf_polarity { + MTK_DPINTF_POLARITY_RISING, + MTK_DPINTF_POLARITY_FALLING, +}; + +struct mtk_dpintf_polarities { + enum mtk_dpintf_polarity de_pol; + enum mtk_dpintf_polarity ck_pol; + enum mtk_dpintf_polarity hsync_pol; + enum mtk_dpintf_polarity vsync_pol; +}; + +struct mtk_dpintf_sync_param { + u32 sync_width; + u32 front_porch; + u32 back_porch; + bool shift_half_line; +}; + +struct mtk_dpintf_yc_limit { + u16 y_top; + u16 y_bottom; + u16 c_top; + u16 c_bottom; +}; + +void dp_intf_config(const struct edid *edid); + +#endif /* SOC_MEDIATEK_COMMON_DP_DP_INTF_H */ diff --git a/src/soc/mediatek/common/dp/include/soc/dptx.h b/src/soc/mediatek/common/dp/include/soc/dptx.h new file mode 100644 index 0000000000..b473301d6a --- /dev/null +++ b/src/soc/mediatek/common/dp/include/soc/dptx.h @@ -0,0 +1,77 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef SOC_MEDIATEK_COMMON_DP_DPTX_H +#define SOC_MEDIATEK_COMMON_DP_DPTX_H + +#define DPTX_TBC_BUF_READSTARTADRTHRD 0x08 +#define ENABLE_DPTX_EF_MODE 0x1 +#define DPTX_AUX_SET_ENAHNCED_FRAME 0x80 + +union misc_t { + struct { + u8 is_sync_clock : 1; + u8 color_format : 2; + u8 spec_def1 : 2; + u8 color_depth : 3; + u8 interlaced : 1; + u8 stereo_attr : 2; + u8 reserved : 3; + u8 is_vsc_sdp : 1; + u8 spec_def2 : 1; + } dp_misc; + u8 cmisc[2]; +}; + +struct dptx_training_info { + bool sink_extcap_en; + bool tps3; + bool tps4; + bool sink_ssc_en; + bool dp_mstcap; + bool dp_mstbranch; + bool down_stream_port_present; + bool cr_done; + bool eq_done; + u8 sys_max_linkrate; + u8 linkrate; + u8 linklane_count; + u8 dpcd_rev; + u8 sink_count_num; +}; + +struct dptx_info { + uint8_t depth; + uint8_t format; + uint8_t resolution; +}; + +struct mtk_dp { + int id; + struct edid *edid; + u8 rx_cap[16]; + struct dptx_info info; + int state; + int state_pre; + struct dptx_training_info train_info; + int training_state; + u8 irq_status; + u32 min_clock; + u32 max_clock; + u32 max_hdisplay; + u32 max_vdisplay; + void *regs; + int disp_status; + bool power_on; + bool audio_enable; + bool video_enable; + bool dp_ready; + bool has_dsc; + bool has_fec; + bool dsc_enable; + bool enabled; + bool powered; +}; + +int mtk_edp_init(struct edid *edid); + +#endif /* SOC_MEDIATEK_COMMON_DP_DPTX_H */ diff --git a/src/soc/mediatek/common/dp/include/soc/dptx_hal.h b/src/soc/mediatek/common/dp/include/soc/dptx_hal.h new file mode 100644 index 0000000000..d430b6a60c --- /dev/null +++ b/src/soc/mediatek/common/dp/include/soc/dptx_hal.h @@ -0,0 +1,103 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef SOC_MEDIATEK_COMMON_DP_DPTX_HAL_H +#define SOC_MEDIATEK_COMMON_DP_DPTX_HAL_H + +#define AUX_CMD_I2C_R_MOT0 0x1 +#define AUX_CMD_I2C_R 0x5 +#define AUX_CMD_NATIVE_R 0x9 +#define AUX_WAITREPLY_LPNUM 20000 + +#define DP_AUX_I2C_WRITE 0x0 +#define DP_AUX_I2C_READ 0x1 +#define DP_AUX_I2C_WRITE_STATUS_UPDATE 0x2 +#define DP_AUX_I2C_MOT 0x4 +#define DP_AUX_NATIVE_WRITE 0x8 +#define DP_AUX_NATIVE_READ 0x9 + +#define DP_WRITE1BYTE(mtk_dp, reg, u8_val) \ + mtk_dp_write_byte(mtk_dp, reg, u8_val, 0xff) +#define DP_WRITE2BYTE(mtk_dp, reg, u16_val) \ + mtk_dp_mask(mtk_dp, reg, u16_val, 0xffff) + +enum { + DPTX_LANE0 = 0x0, + DPTX_LANE1 = 0x1, + DPTX_LANE2 = 0x2, + DPTX_LANE3 = 0x3, + DPTX_LANE_MAX, +}; + +enum { + DP_LINKRATE_RBR = 0x6, + DP_LINKRATE_HBR = 0xa, + DP_LINKRATE_HBR2 = 0x14, + DP_LINKRATE_HBR25 = 0x19, + DP_LINKRATE_HBR3 = 0x1e, +}; + +enum { + DP_COLOR_FORMAT_RGB_444 = 0, + DP_COLOR_FORMAT_YUV_422 = 1, + DP_COLOR_FORMAT_YUV_444 = 2, + DP_COLOR_FORMAT_YUV_420 = 3, + DP_COLOR_FORMAT_YONLY = 4, + DP_COLOR_FORMAT_RAW = 5, + DP_COLOR_FORMAT_RESERVED = 6, + DP_COLOR_FORMAT_DEFAULT = DP_COLOR_FORMAT_RGB_444, + DP_COLOR_FORMAT_UNKNOWN = 15, +}; + +enum { + DP_COLOR_DEPTH_6BIT = 0, + DP_COLOR_DEPTH_8BIT = 1, + DP_COLOR_DEPTH_10BIT = 2, + DP_COLOR_DEPTH_12BIT = 3, + DP_COLOR_DEPTH_16BIT = 4, + DP_COLOR_DEPTH_UNKNOWN = 5, +}; + +bool dptx_hal_hpd_high(struct mtk_dp *mtk_dp); +bool dptx_hal_auxread_bytes(struct mtk_dp *mtk_dp, u8 cmd, + u32 dpcd_addr, size_t length, u8 *rx_buf); +bool dptx_hal_auxwrite_bytes(struct mtk_dp *mtk_dp, u8 cmd, + u32 dpcd_addr, size_t length, u8 *data); +bool dptx_hal_setswing_preemphasis(struct mtk_dp *mtk_dp, int lane_num, + int swing_value, int preemphasis); +u8 dptx_hal_get_colorbpp(struct mtk_dp *mtk_dp); +u32 mtk_dp_read(struct mtk_dp *mtk_dp, u32 offset); +void mtk_dp_write_byte(struct mtk_dp *mtk_dp, u32 addr, u8 val, u32 mask); +void mtk_dp_mask(struct mtk_dp *mtk_dp, u32 offset, u32 val, u32 mask); +void mtk_dp_write(struct mtk_dp *mtk_dp, u32 offset, u32 val); +void dptx_hal_verify_clock(struct mtk_dp *mtk_dp); +void dptx_hal_reset_swing_preemphasis(struct mtk_dp *mtk_dp); +void dptx_hal_digital_swreset(struct mtk_dp *mtk_dp); +void dptx_hal_ssc_en(struct mtk_dp *mtk_dp, bool enable); +void dptx_hal_hpd_int_en(struct mtk_dp *mtk_dp, bool enable); +void dptx_hal_hpd_detect_setting(struct mtk_dp *mtk_dp); +void dptx_hal_phy_setting(struct mtk_dp *mtk_dp); +void dptx_hal_aux_setting(struct mtk_dp *mtk_dp); +void dptx_hal_digital_setting(struct mtk_dp *mtk_dp); +void dptx_hal_set_txlane(struct mtk_dp *mtk_dp, int value); +void dptx_hal_phy_setidlepattern(struct mtk_dp *mtk_dp, bool enable); +void dptx_hal_phyd_reset(struct mtk_dp *mtk_dp); +void dptx_hal_set_txtrainingpattern(struct mtk_dp *mtk_dp, int value); +void dptx_hal_set_ef_mode(struct mtk_dp *mtk_dp, bool enable); +void dptx_hal_setscramble(struct mtk_dp *mtk_dp, bool enable); +void dptx_hal_init_setting(struct mtk_dp *mtk_dp); +void dptx_hal_videomute(struct mtk_dp *mtk_dp, bool enable); +void dptx_hal_bypassmsa_en(struct mtk_dp *mtk_dp, bool enable); +void dptx_hal_overwrite_mn(struct mtk_dp *mtk_dp, bool enable, + u32 video_m, u32 video_n); +void dptx_hal_settu_sramrd_start(struct mtk_dp *mtk_dp, u16 value); +void dptx_hal_setsdp_downcnt_init_inhblanking(struct mtk_dp *mtk_dp, u16 value); +void dptx_hal_setsdp_downcnt_init(struct mtk_dp *mtk_dp, u16 value); +void dptx_hal_settu_setencoder(struct mtk_dp *mtk_dp); +void dptx_hal_set_msa(struct mtk_dp *mtk_dp); +void dptx_hal_setmisc(struct mtk_dp *mtk_dp, u8 cmisc[2]); +void dptx_hal_set_color_depth(struct mtk_dp *mtk_dp, u8 color_depth); +void dptx_hal_set_color_format(struct mtk_dp *mtk_dp, u8 color_format); +void dptx_hal_set_txrate(struct mtk_dp *mtk_dp, int value); +void dptx_hal_analog_power_en(struct mtk_dp *mtk_dp, bool enable); + +#endif /* SOC_MEDIATEK_COMMON_DP_DPTX_HAL_H */ diff --git a/src/soc/mediatek/common/dp/include/soc/dptx_reg.h b/src/soc/mediatek/common/dp/include/soc/dptx_reg.h new file mode 100644 index 0000000000..a385eb8136 --- /dev/null +++ b/src/soc/mediatek/common/dp/include/soc/dptx_reg.h @@ -0,0 +1,4740 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#ifndef SOC_MEDIATEK_COMMON_DP_DPTX_REG_H +#define SOC_MEDIATEK_COMMON_DP_DPTX_REG_H + +#define TOP_OFFSET 0x2000 +#define ENC0_OFFSET 0x3000 +#define ENC1_OFFSET 0x3200 +#define TRANS_OFFSET 0x3400 +#define AUX_OFFSET 0x3600 +#define SEC_OFFSET 0x4000 + +#define REG_3000_DP_ENCODER0_P0 0x3000 +#define LANE_NUM_DP_ENCODER0_P0_FLDMASK 0x3 +#define LANE_NUM_DP_ENCODER0_P0_FLDMASK_POS 0 +#define LANE_NUM_DP_ENCODER0_P0_FLDMASK_LEN 2 + +#define VIDEO_MUTE_SW_DP_ENCODER0_P0_FLDMASK 0x4 +#define VIDEO_MUTE_SW_DP_ENCODER0_P0_FLDMASK_POS 2 +#define VIDEO_MUTE_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VIDEO_MUTE_SEL_DP_ENCODER0_P0_FLDMASK 0x8 +#define VIDEO_MUTE_SEL_DP_ENCODER0_P0_FLDMASK_POS 3 +#define VIDEO_MUTE_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define ENHANCED_FRAME_EN_DP_ENCODER0_P0_FLDMASK 0x10 +#define ENHANCED_FRAME_EN_DP_ENCODER0_P0_FLDMASK_POS 4 +#define ENHANCED_FRAME_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define HDCP_FRAME_EN_DP_ENCODER0_P0_FLDMASK 0x20 +#define HDCP_FRAME_EN_DP_ENCODER0_P0_FLDMASK_POS 5 +#define HDCP_FRAME_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define IDP_EN_DP_ENCODER0_P0_FLDMASK 0x40 +#define IDP_EN_DP_ENCODER0_P0_FLDMASK_POS 6 +#define IDP_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define BS_SYMBOL_CNT_RESET_DP_ENCODER0_P0_FLDMASK 0x80 +#define BS_SYMBOL_CNT_RESET_DP_ENCODER0_P0_FLDMASK_POS 7 +#define BS_SYMBOL_CNT_RESET_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define MIXER_DUMMY_DATA_DP_ENCODER0_P0_FLDMASK 0xff00 +#define MIXER_DUMMY_DATA_DP_ENCODER0_P0_FLDMASK_POS 8 +#define MIXER_DUMMY_DATA_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3004_DP_ENCODER0_P0 0x3004 +#define MIXER_STUFF_DUMMY_DATA_DP_ENCODER0_P0_FLDMASK 0xff +#define MIXER_STUFF_DUMMY_DATA_DP_ENCODER0_P0_FLDMASK_POS 0 +#define MIXER_STUFF_DUMMY_DATA_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define VIDEO_M_CODE_SEL_DP_ENCODER0_P0_FLDMASK 0x100 +#define VIDEO_M_CODE_SEL_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VIDEO_M_CODE_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define DP_TX_ENCODER_4P_RESET_SW_DP_ENCODER0_P0_FLDMASK 0x200 +#define DP_TX_ENCODER_4P_RESET_SW_DP_ENCODER0_P0_FLDMASK_POS 9 +#define DP_TX_ENCODER_4P_RESET_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define MIXER_RESET_SW_DP_ENCODER0_P0_FLDMASK 0x400 +#define MIXER_RESET_SW_DP_ENCODER0_P0_FLDMASK_POS 10 +#define MIXER_RESET_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VIDEO_RESET_SW_DP_ENCODER0_P0_FLDMASK 0x800 +#define VIDEO_RESET_SW_DP_ENCODER0_P0_FLDMASK_POS 11 +#define VIDEO_RESET_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VIDEO_PATTERN_GEN_RESET_SW_DP_ENCODER0_P0_FLDMASK 0x1000 +#define VIDEO_PATTERN_GEN_RESET_SW_DP_ENCODER0_P0_FLDMASK_POS 12 +#define VIDEO_PATTERN_GEN_RESET_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define SDP_RESET_SW_DP_ENCODER0_P0_FLDMASK 0x2000 +#define SDP_RESET_SW_DP_ENCODER0_P0_FLDMASK_POS 13 +#define SDP_RESET_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define DP_TX_MUX_DP_ENCODER0_P0_FLDMASK 0x4000 +#define DP_TX_MUX_DP_ENCODER0_P0_FLDMASK_POS 14 +#define DP_TX_MUX_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define MIXER_FSM_RESET_DP_ENCODER0_P0_FLDMASK 0x8000 +#define MIXER_FSM_RESET_DP_ENCODER0_P0_FLDMASK_POS 15 +#define MIXER_FSM_RESET_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_3008_DP_ENCODER0_P0 0x3008 +#define VIDEO_M_CODE_SW_0_DP_ENCODER0_P0_FLDMASK 0xffff +#define VIDEO_M_CODE_SW_0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VIDEO_M_CODE_SW_0_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_300C_DP_ENCODER0_P0 0x300C +#define VIDEO_M_CODE_SW_1_DP_ENCODER0_P0_FLDMASK 0xff +#define VIDEO_M_CODE_SW_1_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VIDEO_M_CODE_SW_1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define VIDEO_M_CODE_PULSE_DP_ENCODER0_P0_FLDMASK 0x100 +#define VIDEO_M_CODE_PULSE_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VIDEO_M_CODE_PULSE_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define COMPRESSEDSTREAM_FLAG_DP_ENCODER0_P0_FLDMASK 0x200 +#define COMPRESSEDSTREAM_FLAG_DP_ENCODER0_P0_FLDMASK_POS 9 +#define COMPRESSEDSTREAM_FLAG_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define SDP_SPLIT_EN_DP_ENCODER0_P0_FLDMASK 0x400 +#define SDP_SPLIT_EN_DP_ENCODER0_P0_FLDMASK_POS 10 +#define SDP_SPLIT_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define SDP_SPLIT_FIFO_RST_DP_ENCODER0_P0_FLDMASK 0x800 +#define SDP_SPLIT_FIFO_RST_DP_ENCODER0_P0_FLDMASK_POS 11 +#define SDP_SPLIT_FIFO_RST_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VIDEO_M_CODE_MULT_DIV_SEL_DP_ENCODER0_P0_FLDMASK 0x7000 +#define VIDEO_M_CODE_MULT_DIV_SEL_DP_ENCODER0_P0_FLDMASK_POS 12 +#define VIDEO_M_CODE_MULT_DIV_SEL_DP_ENCODER0_P0_FLDMASK_LEN 3 + +#define SDP_AUDIO_ONE_SAMPLE_MODE_DP_ENCODER0_P0_FLDMASK 0x8000 +#define SDP_AUDIO_ONE_SAMPLE_MODE_DP_ENCODER0_P0_FLDMASK_POS 15 +#define SDP_AUDIO_ONE_SAMPLE_MODE_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_3010_DP_ENCODER0_P0 0x3010 +#define HTOTAL_SW_DP_ENCODER0_P0_FLDMASK 0xffff +#define HTOTAL_SW_DP_ENCODER0_P0_FLDMASK_PO 0 +#define HTOTAL_SW_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_3014_DP_ENCODER0_P0 0x3014 +#define VTOTAL_SW_DP_ENCODER0_P0_FLDMASK 0xffff +#define VTOTAL_SW_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VTOTAL_SW_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_3018_DP_ENCODER0_P0 0x3018 +#define HSTART_SW_DP_ENCODER0_P0_FLDMASK 0xffff +#define HSTART_SW_DP_ENCODER0_P0_FLDMASK_POS 0 +#define HSTART_SW_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_301C_DP_ENCODER0_P0 0x301C +#define VSTART_SW_DP_ENCODER0_P0_FLDMASK 0xffff +#define VSTART_SW_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSTART_SW_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_3020_DP_ENCODER0_P0 0x3020 +#define HWIDTH_SW_DP_ENCODER0_P0_FLDMASK 0xffff +#define HWIDTH_SW_DP_ENCODER0_P0_FLDMASK_POS 0 +#define HWIDTH_SW_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_3024_DP_ENCODER0_P0 0x3024 +#define VHEIGHT_SW_DP_ENCODER0_P0_FLDMASK 0xffff +#define VHEIGHT_SW_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VHEIGHT_SW_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_3028_DP_ENCODER0_P0 0x3028 +#define HSW_SW_DP_ENCODER0_P0_FLDMASK 0x7fff +#define HSW_SW_DP_ENCODER0_P0_FLDMASK_POS 0 +#define HSW_SW_DP_ENCODER0_P0_FLDMASK_LEN 15 + +#define HSP_SW_DP_ENCODER0_P0_FLDMASK 0x8000 +#define HSP_SW_DP_ENCODER0_P0_FLDMASK_POS 15 +#define HSP_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_302C_DP_ENCODER0_P0 0x302C +#define VSW_SW_DP_ENCODER0_P0_FLDMASK 0x7fff +#define VSW_SW_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSW_SW_DP_ENCODER0_P0_FLDMASK_LEN 15 + +#define VSP_SW_DP_ENCODER0_P0_FLDMASK 0x8000 +#define VSP_SW_DP_ENCODER0_P0_FLDMASK_POS 15 +#define VSP_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_3030_DP_ENCODER0_P0 0x3030 +#define HTOTAL_SEL_DP_ENCODER0_P0_FLDMASK 0x1 +#define HTOTAL_SEL_DP_ENCODER0_P0_FLDMASK_POS 0 +#define HTOTAL_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VTOTAL_SEL_DP_ENCODER0_P0_FLDMASK 0x2 +#define VTOTAL_SEL_DP_ENCODER0_P0_FLDMASK_POS 1 +#define VTOTAL_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define HSTART_SEL_DP_ENCODER0_P0_FLDMASK 0x4 +#define HSTART_SEL_DP_ENCODER0_P0_FLDMASK_POS 2 +#define HSTART_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VSTART_SEL_DP_ENCODER0_P0_FLDMASK 0x8 +#define VSTART_SEL_DP_ENCODER0_P0_FLDMASK_POS 3 +#define VSTART_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define HWIDTH_SEL_DP_ENCODER0_P0_FLDMASK 0x10 +#define HWIDTH_SEL_DP_ENCODER0_P0_FLDMASK_POS 4 +#define HWIDTH_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VHEIGHT_SEL_DP_ENCODER0_P0_FLDMASK 0x20 +#define VHEIGHT_SEL_DP_ENCODER0_P0_FLDMASK_POS 5 +#define VHEIGHT_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define HSP_SEL_DP_ENCODER0_P0_FLDMASK 0x40 +#define HSP_SEL_DP_ENCODER0_P0_FLDMASK_POS 6 +#define HSP_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define HSW_SEL_DP_ENCODER0_P0_FLDMASK 0x80 +#define HSW_SEL_DP_ENCODER0_P0_FLDMASK_POS 7 +#define HSW_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VSP_SEL_DP_ENCODER0_P0_FLDMASK 0x100 +#define VSP_SEL_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VSP_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VSW_SEL_DP_ENCODER0_P0_FLDMASK 0x200 +#define VSW_SEL_DP_ENCODER0_P0_FLDMASK_POS 9 +#define VSW_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define TX_VBID_SW_EN_DP_ENCODER0_P0_FLDMASK 0x400 +#define TX_VBID_SW_EN_DP_ENCODER0_P0_FLDMASK_POS 10 +#define TX_VBID_SW_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VBID_AUDIO_MUTE_FLAG_SW_DP_ENCODER0_P0_FLDMASK 0x800 +#define VBID_AUDIO_MUTE_SW_DP_ENCODER0_P0_FLDMASK_POS 11 +#define VBID_AUDIO_MUTE_FLAG_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VBID_AUDIO_MUTE_FLAG_SEL_DP_ENCODER0_P0_FLDMASK 0x1000 +#define VBID_AUDIO_MUTE_SEL_DP_ENCODER0_P0_FLDMASK_POS 12 +#define VBID_AUDIO_MUTE_FLAG_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VBID_INTERLACE_FLAG_SW_DP_ENCODER0_P0_FLDMASK 0x2000 +#define VBID_INTERLACE_FLAG_SW_DP_ENCODER0_P0_FLDMASK_POS 13 +#define VBID_INTERLACE_FLAG_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VBID_INTERLACE_FLAG_SEL_DP_ENCODER0_P0_FLDMASK 0x4000 +#define VBID_INTERLACE_FLAG_SEL_DP_ENCODER0_P0_FLDMASK_POS 14 +#define VBID_INTERLACE_FLAG_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define MIXER_SDP_EN_DP_ENCODER0_P0_FLDMASK 0x8000 +#define MIXER_SDP_EN_DP_ENCODER0_P0_FLDMASK_POS 15 +#define MIXER_SDP_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_3034_DP_ENCODER0_P0 0x3034 +#define MISC0_DATA_DP_ENCODER0_P0_FLDMASK 0xff +#define MISC0_DATA_DP_ENCODER0_P0_FLDMASK_POS 0 +#define MISC0_DATA_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define MISC1_DATA_DP_ENCODER0_P0_FLDMASK 0xff00 +#define MISC1_DATA_DP_ENCODER0_P0_FLDMASK_POS 8 +#define MISC1_DATA_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3038_DP_ENCODER0_P0 0x3038 +#define TX_VBID_SW_DP_ENCODER0_P0_FLDMASK 0xff +#define TX_VBID_SW_DP_ENCODER0_P0_FLDMASK_POS 0 +#define TX_VBID_SW_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define VIDEO_DATA_SWAP_DP_ENCODER0_P0_FLDMASK 0x700 +#define VIDEO_DATA_SWAP_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VIDEO_DATA_SWAP_DP_ENCODER0_P0_FLDMASK_LEN 3 + +#define VIDEO_SOURCE_SEL_DP_ENCODER0_P0_FLDMASK 0x800 +#define VIDEO_SOURCE_SEL_DP_ENCODER0_P0_FLDMASK_POS 11 +#define VIDEO_SOURCE_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define FIELD_VBID_SW_EN_DP_ENCODER0_P0_FLDMASK 0x1000 +#define FIELD_VBID_SW_EN_DP_ENCODER0_P0_FLDMASK_POS 12 +#define FIELD_VBID_SW_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define FIELD_SW_DP_ENCODER0_P0_FLDMASK 0x2000 +#define FIELD_SW_DP_ENCODER0_P0_FLDMASK_POS 13 +#define FIELD_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define V3D_EN_SW_DP_ENCODER0_P0_FLDMASK 0x4000 +#define V3D_EN_SW_DP_ENCODER0_P0_FLDMASK_POS 14 +#define V3D_EN_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define V3D_LR_HW_SWAP_DP_ENCODER0_P0_FLDMASK 0x8000 +#define V3D_LR_HW_SWAP_DP_ENCODER0_P0_FLDMASK_POS 15 +#define V3D_LR_HW_SWAP_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_303C_DP_ENCODER0_P0 0x303C +#define SRAM_START_READ_THRD_DP_ENCODER0_P0_FLDMASK 0x3f +#define SRAM_START_READ_THRD_DP_ENCODER0_P0_FLDMASK_POS 0 +#define SRAM_START_READ_THRD_DP_ENCODER0_P0_FLDMASK_LEN 6 + +#define VIDEO_COLOR_DEPTH_DP_ENCODER0_P0_FLDMASK 0x700 +#define VIDEO_COLOR_DEPTH_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VIDEO_COLOR_DEPTH_DP_ENCODER0_P0_FLDMASK_LEN 3 + +#define PIXEL_ENCODE_FORMAT_DP_ENCODER0_P0_FLDMASK 0x7000 +#define PIXEL_ENCODE_FORMAT_DP_ENCODER0_P0_FLDMASK_POS 12 +#define PIXEL_ENCODE_FORMAT_DP_ENCODER0_P0_FLDMASK_LEN 3 + +#define VIDEO_MN_GEN_EN_DP_ENCODER0_P0_FLDMASK 0x8000 +#define VIDEO_MN_GEN_EN_DP_ENCODER0_P0_FLDMASK_POS 15 +#define VIDEO_MN_GEN_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_3040_DP_ENCODER0_P0 0x3040 +#define SDP_DOWN_CNT_INIT_DP_ENCODER0_P0_FLDMASK 0xfff +#define SDP_DOWN_CNT_INIT_DP_ENCODER0_P0_FLDMASK_POS 0 +#define SDP_DOWN_CNT_INIT_DP_ENCODER0_P0_FLDMASK_LEN 12 + +#define AUDIO_32CH_EN_DP_ENCODER0_P0_FLDMASK 0x1000 +#define AUDIO_32CH_EN_DP_ENCODER0_P0_FLDMASK_POS 12 +#define AUDIO_32CH_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define AUDIO_32CH_SEL_DP_ENCODER0_P0_FLDMASK 0x2000 +#define AUDIO_32CH_SEL_DP_ENCODER0_P0_FLDMASK_POS 13 +#define AUDIO_32CH_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define AUDIO_16CH_EN_DP_ENCODER0_P0_FLDMASK 0x4000 +#define AUDIO_16CH_EN_DP_ENCODER0_P0_FLDMASK_POS 14 +#define AUDIO_16CH_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define AUDIO_16CH_SEL_DP_ENCODER0_P0_FLDMASK 0x8000 +#define AUDIO_16CH_SEL_DP_ENCODER0_P0_FLDMASK_POS 15 +#define AUDIO_16CH_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_3044_DP_ENCODER0_P0 0x3044 +#define VIDEO_N_CODE_0_DP_ENCODER0_P0_FLDMASK 0xffff +#define VIDEO_N_CODE_0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VIDEO_N_CODE_0_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_3048_DP_ENCODER0_P0 0x3048 +#define VIDEO_N_CODE_1_DP_ENCODER0_P0_FLDMASK 0xff +#define VIDEO_N_CODE_1_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VIDEO_N_CODE_1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_304C_DP_ENCODER0_P0 0x304C +#define VIDEO_SRAM_MODE_DP_ENCODER0_P0_FLDMASK 0x3 +#define VIDEO_SRAM_MODE_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VIDEO_SRAM_MODE_DP_ENCODER0_P0_FLDMASK_LEN 2 + +#define VBID_VIDEO_MUTE_DP_ENCODER0_P0_FLDMASK 0x4 +#define VBID_VIDEO_MUTE_DP_ENCODER0_P0_FLDMASK_POS 2 +#define VBID_VIDEO_MUTE_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VBID_VIDEO_MUTE_IDLE_PATTERN_SYNC_EN_DP_ENCODER0_P0_FLDMASK 0x8 +#define VBID_VIDEO_MUTE_IDLE_PATTERN_SYNC_EN_DP_ENCODER0_P0_FLDMASK_POS 3 +#define VBID_VIDEO_MUTE_IDLE_PATTERN_SYNC_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define HDCP_SYNC_SEL_DP_ENCODER0_P0_FLDMASK 0x10 +#define HDCP_SYNC_SEL_DP_ENCODER0_P0_FLDMASK_POS 4 +#define HDCP_SYNC_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define HDCP_SYNC_SW_DP_ENCODER0_P0_FLDMASK 0x20 +#define HDCP_SYNC_SW_DP_ENCODER0_P0_FLDMASK_POS 5 +#define HDCP_SYNC_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define SDP_VSYNC_RISING_MASK_DP_ENCODER0_P0_FLDMASK 0x100 +#define SDP_VSYNC_RISING_MASK_DP_ENCODER0_P0_FLDMASK_POS 8 +#define SDP_VSYNC_RISING_MASK_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_3050_DP_ENCODER0_P0 0x3050 +#define VIDEO_N_CODE_MN_GEN_0_DP_ENCODER0_P0_FLDMASK 0xffff +#define VIDEO_N_CODE_MN_GEN_0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VIDEO_N_CODE_MN_GEN_0_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_3054_DP_ENCODER0_P0 0x3054 +#define VIDEO_N_CODE_MN_GEN_1_DP_ENCODER0_P0_FLDMASK 0xff +#define VIDEO_N_CODE_MN_GEN_1_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VIDEO_N_CODE_MN_GEN_1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3058_DP_ENCODER0_P0 0x3058 +#define AUDIO_N_CODE_MN_GEN_0_DP_ENCODER0_P0_FLDMASK 0xffff +#define AUDIO_N_CODE_MN_GEN_0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AUDIO_N_CODE_MN_GEN_0_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_305C_DP_ENCODER0_P0 0x305C +#define AUDIO_N_CODE_MN_GEN_1_DP_ENCODER0_P0_FLDMASK 0xff +#define AUDIO_N_CODE_MN_GEN_1_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AUDIO_N_CODE_MN_GEN_1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3060_DP_ENCODER0_P0 0x3060 +#define NUM_INTERLACE_FRAME_DP_ENCODER0_P0_FLDMASK 0x7 +#define NUM_INTERLACE_FRAME_DP_ENCODER0_P0_FLDMASK_POS 0 +#define NUM_INTERLACE_FRAME_DP_ENCODER0_P0_FLDMASK_LEN 3 + +#define INTERLACE_DET_EVEN_EN_DP_ENCODER0_P0_FLDMASK 0x8 +#define INTERLACE_DET_EVEN_EN_DP_ENCODER0_P0_FLDMASK_POS 3 +#define INTERLACE_DET_EVEN_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define FIELD_DETECT_EN_DP_ENCODER0_P0_FLDMASK 0x10 +#define FIELD_DETECT_EN_DP_ENCODER0_P0_FLDMASK_POS 4 +#define FIELD_DETECT_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define FIELD_DETECT_UPDATE_THRD_DP_ENCODER0_P0_FLDMASK 0xff00 +#define FIELD_DETECT_UPDATE_THRD_DP_ENCODER0_P0_FLDMASK_POS 8 +#define FIELD_DETECT_UPDATE_THRD_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3064_DP_ENCODER0_P0 0x3064 +#define HDE_NUM_LAST_DP_ENCODER0_P0_FLDMASK 0xffff +#define HDE_NUM_LAST_DP_ENCODER0_P0_FLDMASK_POS 0 +#define HDE_NUM_LAST_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_3088_DP_ENCODER0_P0 0x3088 +#define AUDIO_DETECT_EN_DP_ENCODER0_P0_FLDMASK 0x20 +#define AUDIO_DETECT_EN_DP_ENCODER0_P0_FLDMASK_POS 5 +#define AUDIO_DETECT_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define AU_EN_DP_ENCODER0_P0_FLDMASK 0x40 +#define AU_EN_DP_ENCODER0_P0_FLDMASK_POS 6 +#define AU_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define AUDIO_8CH_EN_DP_ENCODER0_P0_FLDMASK 0x80 +#define AUDIO_8CH_EN_DP_ENCODER0_P0_FLDMASK_POS 7 +#define AUDIO_8CH_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define AUDIO_8CH_SEL_DP_ENCODER0_P0_FLDMASK 0x100 +#define AUDIO_8CH_SEL_DP_ENCODER0_P0_FLDMASK_POS 8 +#define AUDIO_8CH_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define AU_GEN_EN_DP_ENCODER0_P0_FLDMASK 0x200 +#define AU_GEN_EN_DP_ENCODER0_P0_FLDMASK_POS 9 +#define AU_GEN_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define AUDIO_MN_GEN_EN_DP_ENCODER0_P0_FLDMASK 0x1000 +#define AUDIO_MN_GEN_EN_DP_ENCODER0_P0_FLDMASK_POS 12 +#define AUDIO_MN_GEN_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define DIS_ASP_DP_ENCODER0_P0_FLDMASK 0x2000 +#define DIS_ASP_DP_ENCODER0_P0_FLDMASK_POS 13 +#define DIS_ASP_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define AUDIO_2CH_EN_DP_ENCODER0_P0_FLDMASK 0x4000 +#define AUDIO_2CH_EN_DP_ENCODER0_P0_FLDMASK_POS 14 +#define AUDIO_2CH_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define AUDIO_2CH_SEL_DP_ENCODER0_P0_FLDMASK 0x8000 +#define AUDIO_2CH_SEL_DP_ENCODER0_P0_FLDMASK_POS 15 +#define AUDIO_2CH_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_308C_DP_ENCODER0_P0 0x308C +#define CH_STATUS_0_DP_ENCODER0_P0_FLDMASK 0xffff +#define CH_STATUS_0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define CH_STATUS_0_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_3090_DP_ENCODER0_P0 0x3090 +#define CH_STATUS_1_DP_ENCODER0_P0_FLDMASK 0xffff +#define CH_STATUS_1_DP_ENCODER0_P0_FLDMASK_POS 0 +#define CH_STATUS_1_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_3094_DP_ENCODER0_P0 0x3094 +#define CH_STATUS_2_DP_ENCODER0_P0_FLDMASK 0xff +#define CH_STATUS_2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define CH_STATUS_2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3098_DP_ENCODER0_P0 0x3098 +#define USER_DATA_0_DP_ENCODER0_P0_FLDMASK 0xffff +#define USER_DATA_0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define USER_DATA_0_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_309C_DP_ENCODER0_P0 0x309C +#define USER_DATA_1_DP_ENCODER0_P0_FLDMASK 0xffff +#define USER_DATA_1_DP_ENCODER0_P0_FLDMASK_POS 0 +#define USER_DATA_1_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_30A0_DP_ENCODER0_P0 0x30A0 +#define USER_DATA_2_DP_ENCODER0_P0_FLDMASK 0xff +#define USER_DATA_2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define USER_DATA_2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define VSC_EXT_VESA_CFG_DP_ENCODER0_P0_FLDMASK 0xf00 +#define VSC_EXT_VESA_CFG_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VSC_EXT_VESA_CFG_DP_ENCODER0_P0_FLDMASK_LEN 4 + +#define VSC_EXT_CEA_CFG_DP_ENCODER0_P0_FLDMASK 0xf000 +#define VSC_EXT_CEA_CFG_DP_ENCODER0_P0_FLDMASK_POS 12 +#define VSC_EXT_CEA_CFG_DP_ENCODER0_P0_FLDMASK_LEN 4 + +#define REG_30A4_DP_ENCODER0_P0 0x30A4 +#define AU_TS_CFG_DP_ENCODER0_P0_FLDMASK 0xff +#define AU_TS_CFG_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AU_TS_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define AVI_CFG_DP_ENCODER0_P0_FLDMASK 0xff00 +#define AVI_CFG_DP_ENCODER0_P0_FLDMASK_POS 8 +#define AVI_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30A8_DP_ENCODER0_P0 0x30A8 +#define AUI_CFG_DP_ENCODER0_P0_FLDMASK 0xff +#define AUI_CFG_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AUI_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define SPD_CFG_DP_ENCODER0_P0_FLDMASK 0xff00 +#define SPD_CFG_DP_ENCODER0_P0_FLDMASK_POS 8 +#define SPD_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30AC_DP_ENCODER0_P0 0x30AC +#define MPEG_CFG_DP_ENCODER0_P0_FLDMASK 0xff +#define MPEG_CFG_DP_ENCODER0_P0_FLDMASK_POS 0 +#define MPEG_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define NTSC_CFG_DP_ENCODER0_P0_FLDMASK 0xff00 +#define NTSC_CFG_DP_ENCODER0_P0_FLDMASK_POS 8 +#define NTSC_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30B0_DP_ENCODER0_P0 0x30B0 +#define VSP_CFG_DP_ENCODER0_P0_FLDMASK 0xff +#define VSP_CFG_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSP_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define EXT_CFG_DP_ENCODER0_P0_FLDMASK 0xff00 +#define EXT_CFG_DP_ENCODER0_P0_FLDMASK_POS 8 +#define EXT_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30B4_DP_ENCODER0_P0 0x30B4 +#define ACM_CFG_DP_ENCODER0_P0_FLDMASK 0xff +#define ACM_CFG_DP_ENCODER0_P0_FLDMASK_POS 0 +#define ACM_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define ISRC_CFG_DP_ENCODER0_P0_FLDMASK 0xff00 +#define ISRC_CFG_DP_ENCODER0_P0_FLDMASK_POS 8 +#define ISRC_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30B8_DP_ENCODER0_P0 0x30B8 +#define VSC_CFG_DP_ENCODER0_P0_FLDMASK 0xff +#define VSC_CFG_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSC_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define MSA_CFG_DP_ENCODER0_P0_FLDMASK 0xff00 +#define MSA_CFG_DP_ENCODER0_P0_FLDMASK_POS 8 +#define MSA_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30BC_DP_ENCODER0_P0 0x30BC +#define ISRC_CONT_DP_ENCODER0_P0_FLDMASK 0x1 +#define ISRC_CONT_DP_ENCODER0_P0_FLDMASK_POS 0 +#define ISRC_CONT_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define MSA_BY_SDP_DP_ENCODER0_P0_FLDMASK 0x2 +#define MSA_BY_SDP_DP_ENCODER0_P0_FLDMASK_POS 1 +#define MSA_BY_SDP_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define SDP_EN_DP_ENCODER0_P0_FLDMASK 0x4 +#define SDP_EN_DP_ENCODER0_P0_FLDMASK_POS 2 +#define SDP_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define NIBBLE_INTERLEAVER_EN_DP_ENCODER0_P0_FLDMASK 0x8 +#define NIBBLE_INTERLEAVER_EN_DP_ENCODER0_P0_FLDMASK_POS 3 +#define NIBBLE_INTERLEAVER_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define ECC_EN_DP_ENCODER0_P0_FLDMASK 0x10 +#define ECC_EN_DP_ENCODER0_P0_FLDMASK_POS 4 +#define ECC_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define ASP_MIN_PL_SIZE_DP_ENCODER0_P0_FLDMASK 0x60 +#define ASP_MIN_PL_SIZE_DP_ENCODER0_P0_FLDMASK_POS 5 +#define ASP_MIN_PL_SIZE_DP_ENCODER0_P0_FLDMASK_LEN 2 + +#define AUDIO_M_CODE_MULT_DIV_SEL_DP_ENCODER0_P0_FLDMASK 0x700 +#define AUDIO_M_CODE_MULT_DIV_SEL_DP_ENCODER0_P0_FLDMASK_POS 8 +#define AUDIO_M_CODE_MULT_DIV_SEL_DP_ENCODER0_P0_FLDMASK_LEN 3 + +#define AUDIO_M_CODE_SEL_DP_ENCODER0_P0_FLDMASK 0x4000 +#define AUDIO_M_CODE_SEL_DP_ENCODER0_P0_FLDMASK_POS 14 +#define AUDIO_M_CODE_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define ASP_HB23_SEL_DP_ENCODER0_P0_FLDMASK 0x8000 +#define ASP_HB23_SEL_DP_ENCODER0_P0_FLDMASK_POS 15 +#define ASP_HB23_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_30C0_DP_ENCODER0_P0 0x30C0 +#define AU_TS_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define AU_TS_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AU_TS_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define AU_TS_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define AU_TS_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define AU_TS_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30C4_DP_ENCODER0_P0 0x30C4 +#define AU_TS_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define AU_TS_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AU_TS_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define AU_TS_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define AU_TS_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define AU_TS_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30C8_DP_ENCODER0_P0 0x30C8 +#define AUDIO_M_CODE_SW_0_DP_ENCODER0_P0_FLDMASK 0xffff +#define AUDIO_M_CODE_SW_0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AUDIO_M_CODE_SW_0_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_30CC_DP_ENCODER0_P0 0x30CC +#define AUDIO_M_CODE_SW_1_DP_ENCODER0_P0_FLDMASK 0xff +#define AUDIO_M_CODE_SW_1_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AUDIO_M_CODE_SW_1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30D0_DP_ENCODER0_P0 0x30D0 +#define AUDIO_N_CODE_0_DP_ENCODER0_P0_FLDMASK 0xffff +#define AUDIO_N_CODE_0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AUDIO_N_CODE_0_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_30D4_DP_ENCODER0_P0 0x30D4 +#define AUDIO_N_CODE_1_DP_ENCODER0_P0_FLDMASK 0xff +#define AUDIO_N_CODE_1_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AUDIO_N_CODE_1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30D8_DP_ENCODER0_P0 0x30D8 +#define ACM_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define ACM_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define ACM_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define ACM_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define ACM_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define ACM_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30DC_DP_ENCODER0_P0 0x30DC +#define ACM_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define ACM_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define ACM_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define ACM_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define ACM_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define ACM_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30E0_DP_ENCODER0_P0 0x30E0 +#define ISRC_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define ISRC_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define ISRC_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define ISRC_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define ISRC_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define ISRC_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30E4_DP_ENCODER0_P0 0x30E4 +#define ISRC_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define ISRC_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define ISRC_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define ISRC0_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define ISRC0_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define ISRC0_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30E8_DP_ENCODER0_P0 0x30E8 +#define AVI_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define AVI_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AVI_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define AVI_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define AVI_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define AVI_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30EC_DP_ENCODER0_P0 0x30EC +#define AVI_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define AVI_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AVI_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define AVI_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define AVI_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define AVI_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30F0_DP_ENCODER0_P0 0x30F0 +#define AUI_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define AUI_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AUI_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define AUI_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define AUI_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define AUI_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30F4_DP_ENCODER0_P0 0x30F4 +#define AUI_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define AUI_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define AUI_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define AUI_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define AUI_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define AUI_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30F8_DP_ENCODER0_P0 0x30F8 +#define SPD_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define SPD_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define SPD_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define SPD_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define SPD_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define SPD_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_30FC_DP_ENCODER0_P0 0x30FC +#define SPD_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define SPD_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define SPD_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define SPD_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define SPD_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define SPD_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3100_DP_ENCODER0_P0 0x3100 +#define MPEG_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define MPEG_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define MPEG_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define MPEG_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define MPEG_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define MPEG_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3104_DP_ENCODER0_P0 0x3104 +#define MPEG_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define MPEG_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define MPEG_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define MPEG_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define MPEG_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define MPEG_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3108_DP_ENCODER0_P0 0x3108 +#define NTSC_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define NTSC_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define NTSC_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define NTSC_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define NTSC_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define NTSC_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_310C_DP_ENCODER0_P0 0x310C +#define NTSC_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define NTSC_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define NTSC_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define NTSC_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define NTSC_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define NTSC_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3110_DP_ENCODER0_P0 0x3110 +#define VSP_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define VSP_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSP_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define VSP_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define VSP_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VSP_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3114_DP_ENCODER0_P0 0x3114 +#define VSP_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define VSP_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSP_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define VSP_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define VSP_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VSP_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3118_DP_ENCODER0_P0 0x3118 +#define VSC_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define VSC_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSC_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define VSC_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define VSC_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VSC_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_311C_DP_ENCODER0_P0 0x311C +#define VSC_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define VSC_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSC_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define VSC_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define VSC_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VSC_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3120_DP_ENCODER0_P0 0x3120 +#define EXT_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define EXT_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define EXT_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define EXT_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define EXT_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define EXT_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3124_DP_ENCODER0_P0 0x3124 +#define EXT_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define EXT_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define EXT_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define EXT_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define EXT_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define EXT_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3128_DP_ENCODER0_P0 0x3128 +#define ASP_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define ASP_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define ASP_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define ASP_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define ASP_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define ASP_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_312C_DP_ENCODER0_P0 0x312C +#define ASP_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define ASP_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define ASP_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define ASP_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define ASP_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define ASP_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3130_DP_ENCODER0_P0 0x3130 +#define PPS_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define PPS_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PPS_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define PPS_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define PPS_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define PPS_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3134_DP_ENCODER0_P0 0x3134 +#define PPS_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define PPS_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PPS_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define PPS_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define PPS_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define PPS_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3138_DP_ENCODER0_P0 0x3138 +#define HDR0_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define HDR0_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define HDR0_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define HDR0_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define HDR0_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define HDR0_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_313C_DP_ENCODER0_P0 0x313C +#define HDR0_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define HDR0_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define HDR0_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define HDR0_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define HDR0_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define HDR0_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_3140_DP_ENCODER0_P0 0x3140 +#define PGEN_CURSOR_V_DP_ENCODER0_P0_FLDMASK 0x1fff +#define PGEN_CURSOR_V_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_CURSOR_V_DP_ENCODER0_P0_FLDMASK_LEN 13 + +#define PGEN_TG_SEL_DP_ENCODER0_P0_FLDMASK 0x2000 +#define PGEN_TG_SEL_DP_ENCODER0_P0_FLDMASK_POS 13 +#define PGEN_TG_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define PGEN_PG_SEL_DP_ENCODER0_P0_FLDMASK 0x4000 +#define PGEN_PG_SEL_DP_ENCODER0_P0_FLDMASK_POS 14 +#define PGEN_PG_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define PGEN_CURSOR_EN_DP_ENCODER0_P0_FLDMASK 0x8000 +#define PGEN_CURSOR_EN_DP_ENCODER0_P0_FLDMASK_POS 15 +#define PGEN_CURSOR_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_3144_DP_ENCODER0_P0 0x3144 +#define PGEN_CURSOR_H_DP_ENCODER0_P0_FLDMASK 0x3fff +#define PGEN_CURSOR_H_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_CURSOR_H_DP_ENCODER0_P0_FLDMASK_LEN 14 + +#define REG_3148_DP_ENCODER0_P0 0x3148 +#define PGEN_CURSOR_RGB_COLOR_CODE_0_DP_ENCODER0_P0_FLDMASK 0xffff +#define PGEN_CURSOR_RGB_COLOR_CODE_0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_CURSOR_RGB_COLOR_CODE_0_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_314C_DP_ENCODER0_P0 0x314C +#define PGEN_CURSOR_RGB_COLOR_CODE_1_DP_ENCODER0_P0_FLDMASK 0xffff +#define PGEN_CURSOR_RGB_COLOR_CODE_1_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_CURSOR_RGB_COLOR_CODE_1_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_3150_DP_ENCODER0_P0 0x3150 +#define PGEN_CURSOR_RGB_COLOR_CODE_2_DP_ENCODER0_P0_FLDMASK 0xf +#define PGEN_CURSOR_RGB_COLOR_CODE_2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_CURSOR_RGB_COLOR_CODE_2_DP_ENCODER0_P0_FLDMASK_LEN 4 + +#define REG_3154_DP_ENCODER0_P0 0x3154 +#define PGEN_HTOTAL_DP_ENCODER0_P0_FLDMASK 0x3fff +#define PGEN_HTOTAL_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_HTOTAL_DP_ENCODER0_P0_FLDMASK_LEN 14 + +#define REG_3158_DP_ENCODER0_P0 0x3158 +#define PGEN_HSYNC_RISING_DP_ENCODER0_P0_FLDMASK 0x3fff +#define PGEN_HSYNC_RISING_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_HSYNC_RISING_DP_ENCODER0_P0_FLDMASK_LEN 14 + +#define REG_315C_DP_ENCODER0_P0 0x315C +#define PGEN_HSYNC_PULSE_WIDTH_DP_ENCODER0_P0_FLDMASK 0x3fff +#define PGEN_HSYNC_PULSE_WIDTH_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_HSYNC_PULSE_WIDTH_DP_ENCODER0_P0_FLDMASK_LEN 14 + +#define REG_3160_DP_ENCODER0_P0 0x3160 +#define PGEN_HFDE_START_DP_ENCODER0_P0_FLDMASK 0x3fff +#define PGEN_HFDE_START_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_HFDE_START_DP_ENCODER0_P0_FLDMASK_LEN 14 + +#define REG_3164_DP_ENCODER0_P0 0x3164 +#define PGEN_HFDE_ACTIVE_WIDTH_DP_ENCODER0_P0_FLDMASK 0x3fff +#define PGEN_HFDE_ACTIVE_WIDTH_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_HFDE_ACTIVE_WIDTH_DP_ENCODER0_P0_FLDMASK_LEN 14 + +#define REG_3168_DP_ENCODER0_P0 0x3168 +#define PGEN_VTOTAL_DP_ENCODER0_P0_FLDMASK 0x1fff +#define PGEN_VTOTAL_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_VTOTAL_DP_ENCODER0_P0_FLDMASK_LEN 13 + +#define REG_316C_DP_ENCODER0_P0 0x316C +#define PGEN_VSYNC_RISING_DP_ENCODER0_P0_FLDMASK 0x1fff +#define PGEN_VSYNC_RISING_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_VSYNC_RISING_DP_ENCODER0_P0_FLDMASK_LEN 13 + +#define REG_3170_DP_ENCODER0_P0 0x3170 +#define PGEN_VSYNC_PULSE_WIDTH_DP_ENCODER0_P0_FLDMASK 0x1fff +#define PGEN_VSYNC_PULSE_WIDTH_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_VSYNC_PULSE_WIDTH_DP_ENCODER0_P0_FLDMASK_LEN 13 + +#define REG_3174_DP_ENCODER0_P0 0x3174 +#define PGEN_VFDE_START_DP_ENCODER0_P0_FLDMASK 0x1fff +#define PGEN_VFDE_START_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_VFDE_START_DP_ENCODER0_P0_FLDMASK_LEN 13 + +#define REG_3178_DP_ENCODER0_P0 0x3178 +#define PGEN_VFDE_ACTIVE_WIDTH_DP_ENCODER0_P0_FLDMASK 0x1fff +#define PGEN_VFDE_ACTIVE_WIDTH_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_VFDE_ACTIVE_WIDTH_DP_ENCODER0_P0_FLDMASK_LEN 13 + +#define REG_317C_DP_ENCODER0_P0 0x317C +#define PGEN_PAT_BASE_PIXEL_0_DP_ENCODER0_P0_FLDMASK 0xfff +#define PGEN_PAT_BASE_PIXEL_0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_PAT_BASE_PIXEL_0_DP_ENCODER0_P0_FLDMASK_LEN 12 + +#define REG_3180_DP_ENCODER0_P0 0x3180 +#define PGEN_PAT_BASE_PIXEL_1_DP_ENCODER0_P0_FLDMASK 0xfff +#define PGEN_PAT_BASE_PIXEL_1_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_PAT_BASE_PIXEL_1_DP_ENCODER0_P0_FLDMASK_LEN 12 + +#define REG_3184_DP_ENCODER0_P0 0x3184 +#define PGEN_PAT_BASE_PIXEL_2_DP_ENCODER0_P0_FLDMASK 0xfff +#define PGEN_PAT_BASE_PIXEL_2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_PAT_BASE_PIXEL_2_DP_ENCODER0_P0_FLDMASK_LEN 12 + +#define REG_3188_DP_ENCODER0_P0 0x3188 +#define PGEN_INITIAL_H_CNT_DP_ENCODER0_P0_FLDMASK 0x3fff +#define PGEN_INITIAL_H_CNT_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_INITIAL_H_CNT_DP_ENCODER0_P0_FLDMASK_LEN 14 + +#define REG_318C_DP_ENCODER0_P0 0x318C +#define PGEN_INITIAL_V_CNT_DP_ENCODER0_P0_FLDMASK 0x1fff +#define PGEN_INITIAL_V_CNT_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_INITIAL_V_CNT_DP_ENCODER0_P0_FLDMASK_LEN 13 + +#define REG_3190_DP_ENCODER0_P0 0x3190 +#define PGEN_INITIAL_CB_SEL_DP_ENCODER0_P0_FLDMASK 0x7 +#define PGEN_INITIAL_CB_SEL_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_INITIAL_CB_SEL_DP_ENCODER0_P0_FLDMASK_LEN 3 + +#define PGEN_FRAME_8K4K_MODE_EN_DP_ENCODER0_P0_FLDMASK 0x10 +#define PGEN_FRAME_8K4K_MODE_EN_DP_ENCODER0_P0_FLDMASK_POS 4 +#define PGEN_FRAME_8K4K_MODE_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define PGEN_FRAME_8K4K_MODE_SET_DP_ENCODER0_P0_FLDMASK 0x20 +#define PGEN_FRAME_8K4K_MODE_SET_DP_ENCODER0_P0_FLDMASK_POS 5 +#define PGEN_FRAME_8K4K_MODE_SET_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define PGEN_INITIAL_H_GRAD_FLAG_DP_ENCODER0_P0_FLDMASK 0x40 +#define PGEN_INITIAL_H_GRAD_FLAG_DP_ENCODER0_P0_FLDMASK_POS 6 +#define PGEN_INITIAL_H_GRAD_FLAG_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define PGEN_INITIAL_V_GRAD_FLAG_DP_ENCODER0_P0_FLDMASK 0x80 +#define PGEN_INITIAL_V_GRAD_FLAG_DP_ENCODER0_P0_FLDMASK_POS 7 +#define PGEN_INITIAL_V_GRAD_FLAG_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define PGEN_FRAME_END_H_EN_DP_ENCODER0_P0_FLDMASK 0x100 +#define PGEN_FRAME_END_H_EN_DP_ENCODER0_P0_FLDMASK_POS 8 +#define PGEN_FRAME_END_H_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define PGEN_FRAME_END_V_EN_DP_ENCODER0_P0_FLDMASK 0x200 +#define PGEN_FRAME_END_V_EN_DP_ENCODER0_P0_FLDMASK_POS 9 +#define PGEN_FRAME_END_V_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_3194_DP_ENCODER0_P0 0x3194 +#define PGEN_PAT_EXTRA_PIXEL_0_DP_ENCODER0_P0_FLDMASK 0xfff +#define PGEN_PAT_EXTRA_PIXEL_0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_PAT_EXTRA_PIXEL_0_DP_ENCODER0_P0_FLDMASK_LEN 12 + +#define REG_3198_DP_ENCODER0_P0 0x3198 +#define PGEN_PAT_EXTRA_PIXEL_1_DP_ENCODER0_P0_FLDMASK 0xfff +#define PGEN_PAT_EXTRA_PIXEL_1_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_PAT_EXTRA_PIXEL_1_DP_ENCODER0_P0_FLDMASK_LEN 12 + +#define REG_319C_DP_ENCODER0_P0 0x319C +#define PGEN_PAT_EXTRA_PIXEL_2_DP_ENCODER0_P0_FLDMASK 0xfff +#define PGEN_PAT_EXTRA_PIXEL_2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_PAT_EXTRA_PIXEL_2_DP_ENCODER0_P0_FLDMASK_LEN 12 + +#define REG_31A0_DP_ENCODER0_P0 0x31A0 +#define PGEN_PAT_INCREMENT_0_DP_ENCODER0_P0_FLDMASK 0xffff +#define PGEN_PAT_INCREMENT_0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_PAT_INCREMENT_0_DP_ENCODER0_P0_FLDMASK_LEN 16 + +#define REG_31A4_DP_ENCODER0_P0 0x31A4 +#define PGEN_PAT_INCREMENT_1_DP_ENCODER0_P0_FLDMASK 0x1 +#define PGEN_PAT_INCREMENT_1_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_PAT_INCREMENT_1_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_31A8_DP_ENCODER0_P0 0x31A8 +#define PGEN_PAT_HWIDTH_DP_ENCODER0_P0_FLDMASK 0x3fff +#define PGEN_PAT_HWIDTH_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_PAT_HWIDTH_DP_ENCODER0_P0_FLDMASK_LEN 14 + +#define REG_31AC_DP_ENCODER0_P0 0x31AC +#define PGEN_PAT_VWIDTH_DP_ENCODER0_P0_FLDMASK 0x1fff +#define PGEN_PAT_VWIDTH_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_PAT_VWIDTH_DP_ENCODER0_P0_FLDMASK_LEN 13 + +#define REG_31B0_DP_ENCODER0_P0 0x31B0 +#define PGEN_PAT_RGB_ENABLE_DP_ENCODER0_P0_FLDMASK 0x7 +#define PGEN_PAT_RGB_ENABLE_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_PAT_RGB_ENABLE_DP_ENCODER0_P0_FLDMASK_LEN 3 + +#define PGEN_PATTERN_SEL_DP_ENCODER0_P0_FLDMASK 0x70 +#define PGEN_PATTERN_SEL_DP_ENCODER0_P0_FLDMASK_POS 4 +#define PGEN_PATTERN_SEL_DP_ENCODER0_P0_FLDMASK_LEN 3 + +#define PGEN_PAT_DIRECTION_DP_ENCODER0_P0_FLDMASK 0x80 +#define PGEN_PAT_DIRECTION_DP_ENCODER0_P0_FLDMASK_POS 7 +#define PGEN_PAT_DIRECTION_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define PGEN_PAT_GRADIENT_NORMAL_MODE_DP_ENCODER0_P0_FLDMASK 0x100 +#define PGEN_PAT_GRADIENT_NORMAL_MODE_DP_ENCODER0_P0_FLDMASK_POS 8 +#define PGEN_PAT_GRADIENT_NORMAL_MODE_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define PGEN_PAT_COLOR_BAR_GRADIENT_EN_DP_ENCODER0_P0_FLDMASK 0x200 +#define PGEN_PAT_COLOR_BAR_GRADIENT_EN_DP_ENCODER0_P0_FLDMASK_POS 9 +#define PGEN_PAT_COLOR_BAR_GRADIENT_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define PGEN_PAT_CHESSBOARD_NORMAL_MODE_DP_ENCODER0_P0_FLDMASK 0x400 +#define PGEN_PAT_CHESSBOARD_NORMAL_MODE_DP_ENCODER0_P0_FLDMASK_POS 10 +#define PGEN_PAT_CHESSBOARD_NORMAL_MODE_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define PGEN_PAT_EXCHANGE_DP_ENCODER0_P0_FLDMASK 0x800 +#define PGEN_PAT_EXCHANGE_DP_ENCODER0_P0_FLDMASK_POS 11 +#define PGEN_PAT_EXCHANGE_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define PGEN_PAT_RGB_SUB_PIXEL_MASK_DP_ENCODER0_P0_FLDMASK 0x1000 +#define PGEN_PAT_RGB_SUB_PIXEL_MASK_DP_ENCODER0_P0_FLDMASK_POS 12 +#define PGEN_PAT_RGB_SUB_PIXEL_MASK_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_31B4_DP_ENCODER0_P0 0x31B4 +#define PGEN_PAT_THICKNESS_DP_ENCODER0_P0_FLDMASK 0xf +#define PGEN_PAT_THICKNESS_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PGEN_PAT_THICKNESS_DP_ENCODER0_P0_FLDMASK_LEN 4 + +#define REG_31C0_DP_ENCODER0_P0 0x31C0 +#define VIDEO_MUTE_CNT_THRD_DP_ENCODER0_P0_FLDMASK 0xfff +#define VIDEO_MUTE_CNT_THRD_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VIDEO_MUTE_CNT_THRD_DP_ENCODER0_P0_FLDMASK_LEN 12 + +#define REG_31C4_DP_ENCODER0_P0 0x31C4 +#define PPS_HW_BYPASS_MASK_DP_ENCODER0_P0_FLDMASK 0x800 +#define PPS_HW_BYPASS_MASK_DP_ENCODER0_P0_FLDMASK_POS 11 +#define PPS_HW_BYPASS_MASK_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define MST_EN_DP_ENCODER0_P0_FLDMASK 0x1000 +#define MST_EN_DP_ENCODER0_P0_FLDMASK_POS 12 +#define MST_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define DSC_BYPASS_EN_DP_ENCODER0_P0_FLDMASK 0x2000 +#define DSC_BYPASS_EN_DP_ENCODER0_P0_FLDMASK_POS 13 +#define DSC_BYPASS_EN_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define VSC_HW_BYPASS_MASK_DP_ENCODER0_P0_FLDMASK 0x4000 +#define VSC_HW_BYPASS_MASK_DP_ENCODER0_P0_FLDMASK_POS 14 +#define VSC_HW_BYPASS_MASK_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define HDR0_HW_BYPASS_MASK_DP_ENCODER0_P0_FLDMASK 0x8000 +#define HDR0_HW_BYPASS_MASK_DP_ENCODER0_P0_FLDMASK_POS 15 +#define HDR0_HW_BYPASS_MASK_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_31C8_DP_ENCODER0_P0 0x31C8 +#define VSC_EXT_VESA_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define VSC_EXT_VESA_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSC_EXT_VESA_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define VSC_EXT_VESA_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define VSC_EXT_VESA_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VSC_EXT_VESA_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_31CC_DP_ENCODER0_P0 0x31CC +#define VSC_EXT_VESA_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define VSC_EXT_VESA_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSC_EXT_VESA_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define VSC_EXT_VESA_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define VSC_EXT_VESA_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VSC_EXT_VESA_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_31D0_DP_ENCODER0_P0 0x31D0 +#define VSC_EXT_CEA_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define VSC_EXT_CEA_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSC_EXT_CEA_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define VSC_EXT_CEA_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define VSC_EXT_CEA_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VSC_EXT_CEA_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_31D4_DP_ENCODER0_P0 0x31D4 +#define VSC_EXT_CEA_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define VSC_EXT_CEA_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSC_EXT_CEA_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define VSC_EXT_CEA_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define VSC_EXT_CEA_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VSC_EXT_CEA_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_31D8_DP_ENCODER0_P0 0x31D8 +#define VSC_EXT_VESA_NUM_DP_ENCODER0_P0_FLDMASK 0x3f +#define VSC_EXT_VESA_NUM_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VSC_EXT_VESA_NUM_DP_ENCODER0_P0_FLDMASK_LEN 6 + +#define VSC_EXT_CEA_NUM_DP_ENCODER0_P0_FLDMASK 0x3f00 +#define VSC_EXT_CEA_NUM_DP_ENCODER0_P0_FLDMASK_POS 8 +#define VSC_EXT_CEA_NUM_DP_ENCODER0_P0_FLDMASK_LEN 6 + +#define REG_31DC_DP_ENCODER0_P0 0x31DC +#define HDR0_CFG_DP_ENCODER0_P0_FLDMASK 0xff +#define HDR0_CFG_DP_ENCODER0_P0_FLDMASK_POS 0 +#define HDR0_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define RESERVED_CFG_DP_ENCODER0_P0_FLDMASK 0xff00 +#define RESERVED_CFG_DP_ENCODER0_P0_FLDMASK_POS 8 +#define RESERVED_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_31E0_DP_ENCODER0_P0 0x31E0 +#define RESERVED_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define RESERVED_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define RESERVED_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define RESERVED_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define RESERVED_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define RESERVED_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_31E4_DP_ENCODER0_P0 0x31E4 +#define RESERVED_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define RESERVED_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define RESERVED_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define RESERVED_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define RESERVED_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define RESERVED_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_31E8_DP_ENCODER0_P0 0x31E8 +#define PPS_CFG_DP_ENCODER0_P0_FLDMASK 0xff +#define PPS_CFG_DP_ENCODER0_P0_FLDMASK_POS 0 +#define PPS_CFG_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define PPS_CFG_ONE_TIME_DP_ENCODER0_P0_FLDMASK 0x100 +#define PPS_CFG_ONE_TIME_DP_ENCODER0_P0_FLDMASK_POS 8 +#define PPS_CFG_ONE_TIME_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define SDP_SPLIT_FIFO_READ_START_POINT_DP_ENCODER0_P0_FLDMASK 0xf000 +#define SDP_SPLIT_FIFO_READ_START_POINT_DP_ENCODER0_P0_FLDMASK_POS 12 +#define SDP_SPLIT_FIFO_READ_START_POINT_DP_ENCODER0_P0_FLDMASK_LEN 4 + +#define REG_31EC_DP_ENCODER0_P0 0x31EC +#define VIDEO_M_CODE_FROM_DPRX_DP_ENCODER0_P0_FLDMASK 0x1 +#define VIDEO_M_CODE_FROM_DPRX_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VIDEO_M_CODE_FROM_DPRX_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define MSA_MISC_FROM_DPRX_DP_ENCODER0_P0_FLDMASK 0x2 +#define MSA_MISC_FROM_DPRX_DP_ENCODER0_P0_FLDMASK_POS 1 +#define MSA_MISC_FROM_DPRX_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define ADS_CFG_DP_ENCODER0_P0_FLDMASK 0x4 +#define ADS_CFG_DP_ENCODER0_P0_FLDMASK_POS 2 +#define ADS_CFG_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define ADS_MODE_DP_ENCODER0_P0_FLDMASK 0x8 +#define ADS_MODE_DP_ENCODER0_P0_FLDMASK_POS 3 +#define ADS_MODE_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define AUDIO_CH_SRC_SEL_DP_ENCODER0_P0_FLDMASK 0x10 +#define AUDIO_CH_SRC_SEL_DP_ENCODER0_P0_FLDMASK_POS 4 +#define AUDIO_CH_SRC_SEL_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define ISRC1_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define ISRC1_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define ISRC1_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_31F0_DP_ENCODER0_P0 0x31F0 +#define ADS_HB0_DP_ENCODER0_P0_FLDMASK 0xff +#define ADS_HB0_DP_ENCODER0_P0_FLDMASK_POS 0 +#define ADS_HB0_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define ADS_HB1_DP_ENCODER0_P0_FLDMASK 0xff00 +#define ADS_HB1_DP_ENCODER0_P0_FLDMASK_POS 8 +#define ADS_HB1_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_31F8_DP_ENCODER0_P0 0x31F8 +#define ADS_HB2_DP_ENCODER0_P0_FLDMASK 0xff +#define ADS_HB2_DP_ENCODER0_P0_FLDMASK_POS 0 +#define ADS_HB2_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define ADS_HB3_DP_ENCODER0_P0_FLDMASK 0xff00 +#define ADS_HB3_DP_ENCODER0_P0_FLDMASK_POS 8 +#define ADS_HB3_DP_ENCODER0_P0_FLDMASK_LEN 8 + +#define REG_31FC_DP_ENCODER0_P0 0x31FC +#define VIDEO_ARBITER_DE_LAST_NUM0_SW_DP_ENCODER0_P0_FLDMASK 0x3 +#define VIDEO_ARBITER_DE_LAST_NUM0_SW_DP_ENCODER0_P0_FLDMASK_POS 0 +#define VIDEO_ARBITER_DE_LAST_NUM0_SW_DP_ENCODER0_P0_FLDMASK_LEN 2 + +#define VIDEO_ARBITER_DE_LAST_NUM1_SW_DP_ENCODER0_P0_FLDMASK 0xc +#define VIDEO_ARBITER_DE_LAST_NUM1_SW_DP_ENCODER0_P0_FLDMASK_POS 2 +#define VIDEO_ARBITER_DE_LAST_NUM1_SW_DP_ENCODER0_P0_FLDMASK_LEN 2 + +#define VIDEO_ARBITER_DE_LAST_NUM2_SW_DP_ENCODER0_P0_FLDMASK 0x30 +#define VIDEO_ARBITER_DE_LAST_NUM2_SW_DP_ENCODER0_P0_FLDMASK_POS 4 +#define VIDEO_ARBITER_DE_LAST_NUM2_SW_DP_ENCODER0_P0_FLDMASK_LEN 2 + +#define VIDEO_ARBITER_DE_LAST_NUM3_SW_DP_ENCODER0_P0_FLDMASK 0xc0 +#define VIDEO_ARBITER_DE_LAST_NUM3_SW_DP_ENCODER0_P0_FLDMASK_POS 6 +#define VIDEO_ARBITER_DE_LAST_NUM3_SW_DP_ENCODER0_P0_FLDMASK_LEN 2 + +#define HDE_NUM_EVEN_EN_SW_LANE0_DP_ENCODER0_P0_FLDMASK 0x100 +#define HDE_NUM_EVEN_EN_SW_LANE0_DP_ENCODER0_P0_FLDMASK_POS 8 +#define HDE_NUM_EVEN_EN_SW_LANE0_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define HDE_NUM_EVEN_EN_SW_LANE1_DP_ENCODER0_P0_FLDMASK 0x200 +#define HDE_NUM_EVEN_EN_SW_LANE1_DP_ENCODER0_P0_FLDMASK_POS 9 +#define HDE_NUM_EVEN_EN_SW_LANE1_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define HDE_NUM_EVEN_EN_SW_LANE2_DP_ENCODER0_P0_FLDMASK 0x400 +#define HDE_NUM_EVEN_EN_SW_LANE2_DP_ENCODER0_P0_FLDMASK_POS 10 +#define HDE_NUM_EVEN_EN_SW_LANE2_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define HDE_NUM_EVEN_EN_SW_LANE3_DP_ENCODER0_P0_FLDMASK 0x800 +#define HDE_NUM_EVEN_EN_SW_LANE3_DP_ENCODER0_P0_FLDMASK_POS 11 +#define HDE_NUM_EVEN_EN_SW_LANE3_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define DE_LAST_NUM_SW_DP_ENCODER0_P0_FLDMASK 0x1000 +#define DE_LAST_NUM_SW_DP_ENCODER0_P0_FLDMASK_POS 12 +#define DE_LAST_NUM_SW_DP_ENCODER0_P0_FLDMASK_LEN 1 + +#define REG_3200_DP_ENCODER1_P0 0x3200 +#define SDP_DB0_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB0_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB0_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB1_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB1_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB1_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3204_DP_ENCODER1_P0 0x3204 +#define SDP_DB2_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB2_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB2_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB3_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB3_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB3_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3208_DP_ENCODER1_P0 0x3208 +#define SDP_DB4_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB4_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB4_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB5_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB5_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB5_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_320C_DP_ENCODER1_P0 0x320C +#define SDP_DB6_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB6_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB6_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB7_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB7_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB7_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3210_DP_ENCODER1_P0 0x3210 +#define SDP_DB8_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB8_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB8_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB9_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB9_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB9_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3214_DP_ENCODER1_P0 0x3214 +#define SDP_DB10_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB10_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB10_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB11_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB11_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB11_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3218_DP_ENCODER1_P0 0x3218 +#define SDP_DB12_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB12_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB12_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB13_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB13_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB13_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_321C_DP_ENCODER1_P0 0x321C +#define SDP_DB14_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB14_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB14_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB15_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB15_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB15_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3220_DP_ENCODER1_P0 0x3220 +#define SDP_DB16_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB16_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB16_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB17_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB17_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB17_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3224_DP_ENCODER1_P0 0x3224 +#define SDP_DB18_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB18_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB18_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB19_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB19_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB19_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3228_DP_ENCODER1_P0 0x3228 +#define SDP_DB20_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB20_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB20_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB21_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB21_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB21_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_322C_DP_ENCODER1_P0 0x322C +#define SDP_DB22_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB22_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB22_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB23_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB23_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB23_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3230_DP_ENCODER1_P0 0x3230 +#define SDP_DB24_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB24_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB24_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB25_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB25_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB25_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3234_DP_ENCODER1_P0 0x3234 +#define SDP_DB26_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB26_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB26_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB27_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB27_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB27_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3238_DP_ENCODER1_P0 0x3238 +#define SDP_DB28_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB28_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB28_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB29_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB29_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB29_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_323C_DP_ENCODER1_P0 0x323C +#define SDP_DB30_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB30_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB30_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB31_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB31_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB31_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3240_DP_ENCODER1_P0 0x3240 +#define SDP_DB0_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB0_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB0_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB1_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB1_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB1_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3244_DP_ENCODER1_P0 0x3244 +#define SDP_DB2_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB2_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB2_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB3_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB3_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB3_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3248_DP_ENCODER1_P0 0x3248 +#define SDP_DB4_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB4_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB4_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB5_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB5_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB5_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_324C_DP_ENCODER1_P0 0x324C +#define SDP_DB6_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB6_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB6_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB7_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB7_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB7_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3250_DP_ENCODER1_P0 0x3250 +#define SDP_DB8_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB8_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB8_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB9_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB9_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB9_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3254_DP_ENCODER1_P0 0x3254 +#define SDP_DB10_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB10_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB10_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB11_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB11_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB11_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3258_DP_ENCODER1_P0 0x3258 +#define SDP_DB12_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB12_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB12_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB13_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB13_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB13_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_325C_DP_ENCODER1_P0 0x325C +#define SDP_DB14_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB14_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB14_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB15_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB15_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB15_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3260_DP_ENCODER1_P0 0x3260 +#define SDP_DB16_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB16_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB16_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB17_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB17_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB17_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3264_DP_ENCODER1_P0 0x3264 +#define SDP_DB18_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB18_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB18_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB19_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB19_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB19_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3268_DP_ENCODER1_P0 0x3268 +#define SDP_DB20_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB20_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB20_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB21_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB21_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB21_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_326C_DP_ENCODER1_P0 0x326C +#define SDP_DB22_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB22_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB22_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB23_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB23_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB23_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3270_DP_ENCODER1_P0 0x3270 +#define SDP_DB24_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB24_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB24_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB25_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB25_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB25_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3274_DP_ENCODER1_P0 0x3274 +#define SDP_DB26_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB26_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB26_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB27_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB27_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB27_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3278_DP_ENCODER1_P0 0x3278 +#define SDP_DB28_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB28_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB28_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB29_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB29_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB29_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_327C_DP_ENCODER1_P0 0x327C +#define SDP_DB30_R_DP_ENCODER1_P0_FLDMASK 0xff +#define SDP_DB30_R_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DB30_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_DB31_R_DP_ENCODER1_P0_FLDMASK 0xff00 +#define SDP_DB31_R_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DB31_R_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3280_DP_ENCODER1_P0 0x3280 +#define SDP_PACKET_TYPE_DP_ENCODER1_P0_FLDMASK 0x1f +#define SDP_PACKET_TYPE_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_PACKET_TYPE_DP_ENCODER1_P0_FLDMASK_LEN 5 + +#define SDP_PACKET_W_DP_ENCODER1_P0_FLDMASK 0x20 +#define SDP_PACKET_W_DP_ENCODER1_P0_FLDMASK_POS 5 +#define SDP_PACKET_W_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define SDP_PACKET_R_DP_ENCODER1_P0_FLDMASK 0x40 +#define SDP_PACKET_R_DP_ENCODER1_P0_FLDMASK_POS 6 +#define SDP_PACKET_R_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define REG_328C_DP_ENCODER1_P0 0x328C +#define VSC_SW_HW_SEL_VESA_DP_ENCODER1_P0_FLDMASK 0x1 +#define VSC_SW_HW_SEL_VESA_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSC_SW_HW_SEL_VESA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_SRAM_HW_RST_VESA_DP_ENCODER1_P0_FLDMASK 0x2 +#define VSC_SRAM_HW_RST_VESA_DP_ENCODER1_P0_FLDMASK_POS 1 +#define VSC_SRAM_HW_RST_VESA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_SRAM_SW_RST_VESA_DP_ENCODER1_P0_FLDMASK 0x4 +#define VSC_SRAM_SW_RST_VESA_DP_ENCODER1_P0_FLDMASK_POS 2 +#define VSC_SRAM_SW_RST_VESA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_SRAM_HW_EMPTY_VESA_DP_ENCODER1_P0_FLDMASK 0x8 +#define VSC_SRAM_HW_EMPTY_VESA_DP_ENCODER1_P0_FLDMASK_POS 3 +#define VSC_SRAM_HW_EMPTY_VESA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_SRAM_HW_FULL_VESA_DP_ENCODER1_P0_FLDMASK 0x10 +#define VSC_SRAM_HW_FULL_VESA_DP_ENCODER1_P0_FLDMASK_POS 4 +#define VSC_SRAM_HW_FULL_VESA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_SRAM_HW_FULL_CLR_VESA_DP_ENCODER1_P0_FLDMASK 0x20 +#define VSC_SRAM_HW_FULL_CLR_VESA_DP_ENCODER1_P0_FLDMASK_POS 5 +#define VSC_SRAM_HW_FULL_CLR_VESA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_DATA_TOGGLE_VESA_DP_ENCODER1_P0_FLDMASK 0x40 +#define VSC_DATA_TOGGLE_VESA_DP_ENCODER1_P0_FLDMASK_POS 6 +#define VSC_DATA_TOGGLE_VESA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_DATA_RDY_VESA_DP_ENCODER1_P0_FLDMASK 0x80 +#define VSC_DATA_RDY_VESA_DP_ENCODER1_P0_FLDMASK_POS 7 +#define VSC_DATA_RDY_VESA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_SRAM_SW_EMPTY_VESA_DP_ENCODER1_P0_FLDMASK 0x100 +#define VSC_SRAM_SW_EMPTY_VESA_DP_ENCODER1_P0_FLDMASK_POS 8 +#define VSC_SRAM_SW_EMPTY_VESA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define REG_3290_DP_ENCODER1_P0 0x3290 +#define VSC_DATA_BYTE0_VESA_DP_ENCODER1_P0_FLDMASK 0xff +#define VSC_DATA_BYTE0_VESA_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSC_DATA_BYTE0_VESA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE1_VESA_DP_ENCODER1_P0_FLDMASK 0xff00 +#define VSC_DATA_BYTE1_VESA_DP_ENCODER1_P0_FLDMASK_POS 8 +#define VSC_DATA_BYTE1_VESA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3294_DP_ENCODER1_P0 0x3294 +#define VSC_DATA_BYTE2_VESA_DP_ENCODER1_P0_FLDMASK 0xff +#define VSC_DATA_BYTE2_VESA_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSC_DATA_BYTE2_VESA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE3_VESA_DP_ENCODER1_P0_FLDMASK 0xff00 +#define VSC_DATA_BYTE3_VESA_DP_ENCODER1_P0_FLDMASK_POS 8 +#define VSC_DATA_BYTE3_VESA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_3298_DP_ENCODER1_P0 0x3298 +#define VSC_DATA_BYTE4_VESA_DP_ENCODER1_P0_FLDMASK 0xff +#define VSC_DATA_BYTE4_VESA_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSC_DATA_BYTE4_VESA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE5_VESA_DP_ENCODER1_P0_FLDMASK 0xff00 +#define VSC_DATA_BYTE5_VESA_DP_ENCODER1_P0_FLDMASK_POS 8 +#define VSC_DATA_BYTE5_VESA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_329C_DP_ENCODER1_P0 0x329C +#define VSC_DATA_BYTE6_VESA_DP_ENCODER1_P0_FLDMASK 0xff +#define VSC_DATA_BYTE6_VESA_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSC_DATA_BYTE6_VESA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE7_VESA_DP_ENCODER1_P0_FLDMASK 0xff00 +#define VSC_DATA_BYTE7_VESA_DP_ENCODER1_P0_FLDMASK_POS 8 +#define VSC_DATA_BYTE7_VESA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_32A0_DP_ENCODER1_P0 0x32A0 +#define VSC_SW_HW_SEL_CEA_DP_ENCODER1_P0_FLDMASK 0x1 +#define VSC_SW_HW_SEL_CEA_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSC_SW_HW_SEL_CEA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_SRAM_HW_RST_CEA_DP_ENCODER1_P0_FLDMASK 0x2 +#define VSC_SRAM_HW_RST_CEA_DP_ENCODER1_P0_FLDMASK_POS 1 +#define VSC_SRAM_HW_RST_CEA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_SRAM_SW_RST_CEA_DP_ENCODER1_P0_FLDMASK 0x4 +#define VSC_SRAM_SW_RST_CEA_DP_ENCODER1_P0_FLDMASK_POS 2 +#define VSC_SRAM_SW_RST_CEA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_SRAM_HW_EMPTY_CEA_DP_ENCODER1_P0_FLDMASK 0x8 +#define VSC_SRAM_HW_EMPTY_CEA_DP_ENCODER1_P0_FLDMASK_POS 3 +#define VSC_SRAM_HW_EMPTY_CEA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_SRAM_HW_FULL_CEA_DP_ENCODER1_P0_FLDMASK 0x10 +#define VSC_SRAM_HW_FULL_CEA_DP_ENCODER1_P0_FLDMASK_POS 4 +#define VSC_SRAM_HW_FULL_CEA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_SRAM_HW_FULL_CLR_CEA_DP_ENCODER1_P0_FLDMASK 0x20 +#define VSC_SRAM_HW_FULL_CLR_CEA_DP_ENCODER1_P0_FLDMASK_POS 5 +#define VSC_SRAM_HW_FULL_CLR_CEA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_DATA_TOGGLE_CEA_DP_ENCODER1_P0_FLDMASK 0x40 +#define VSC_DATA_TOGGLE_CEA_DP_ENCODER1_P0_FLDMASK_POS 6 +#define VSC_DATA_TOGGLE_CEA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_DATA_RDY_CEA_DP_ENCODER1_P0_FLDMASK 0x80 +#define VSC_DATA_RDY_CEA_DP_ENCODER1_P0_FLDMASK_POS 7 +#define VSC_DATA_RDY_CEA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_SRAM_SW_EMPTY_CEA_DP_ENCODER1_P0_FLDMASK 0x100 +#define VSC_SRAM_SW_EMPTY_CEA_DP_ENCODER1_P0_FLDMASK_POS 8 +#define VSC_SRAM_SW_EMPTY_CEA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define REG_32A4_DP_ENCODER1_P0 0x32A4 +#define VSC_DATA_BYTE0_CEA_DP_ENCODER1_P0_FLDMASK 0xff +#define VSC_DATA_BYTE0_CEA_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSC_DATA_BYTE0_CEA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE1_CEA_DP_ENCODER1_P0_FLDMASK 0xff00 +#define VSC_DATA_BYTE1_CEA_DP_ENCODER1_P0_FLDMASK_POS 8 +#define VSC_DATA_BYTE1_CEA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_32A8_DP_ENCODER1_P0 0x32A8 +#define VSC_DATA_BYTE2_CEA_DP_ENCODER1_P0_FLDMASK 0xff +#define VSC_DATA_BYTE2_CEA_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSC_DATA_BYTE2_CEA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE3_CEA_DP_ENCODER1_P0_FLDMASK 0xff00 +#define VSC_DATA_BYTE3_CEA_DP_ENCODER1_P0_FLDMASK_POS 8 +#define VSC_DATA_BYTE3_CEA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_32AC_DP_ENCODER1_P0 0x32AC +#define VSC_DATA_BYTE4_CEA_DP_ENCODER1_P0_FLDMASK 0xff +#define VSC_DATA_BYTE4_CEA_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSC_DATA_BYTE4_CEA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE5_CEA_DP_ENCODER1_P0_FLDMASK 0xff00 +#define VSC_DATA_BYTE5_CEA_DP_ENCODER1_P0_FLDMASK_POS 8 +#define VSC_DATA_BYTE5_CEA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_32B0_DP_ENCODER1_P0 0x32B0 +#define VSC_DATA_BYTE6_CEA_DP_ENCODER1_P0_FLDMASK 0xff +#define VSC_DATA_BYTE6_CEA_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSC_DATA_BYTE6_CEA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE7_CEA_DP_ENCODER1_P0_FLDMASK 0xff00 +#define VSC_DATA_BYTE7_CEA_DP_ENCODER1_P0_FLDMASK_POS 8 +#define VSC_DATA_BYTE7_CEA_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_32B4_DP_ENCODER1_P0 0x32B4 +#define VSC_DATA_SW_CAN_WRITE_VESA_DP_ENCODER1_P0_FLDMASK 0x1 +#define VSC_DATA_SW_CAN_WRITE_VESA_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSC_DATA_SW_CAN_WRITE_VESA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_DATA_SW_CAN_WRITE_CEA_DP_ENCODER1_P0_FLDMASK 0x2 +#define VSC_DATA_SW_CAN_WRITE_CEA_DP_ENCODER1_P0_FLDMASK_POS 1 +#define VSC_DATA_SW_CAN_WRITE_CEA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_DATA_TRANSMIT_SEL_VESA_DP_ENCODER1_P0_FLDMASK 0x4 +#define VSC_DATA_TRANSMIT_SEL_VESA_DP_ENCODER1_P0_FLDMASK_POS 2 +#define VSC_DATA_TRANSMIT_SEL_VESA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VSC_DATA_TRANSMIT_SEL_CEA_DP_ENCODER1_P0_FLDMASK 0x8 +#define VSC_DATA_TRANSMIT_SEL_CEA_DP_ENCODER1_P0_FLDMASK_POS 3 +#define VSC_DATA_TRANSMIT_SEL_CEA_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define REG_32C0_DP_ENCODER1_P0 0x32C0 +#define IRQ_MASK_DP_ENCODER1_P0_FLDMASK 0xffff +#define IRQ_MASK_DP_ENCODER1_P0_FLDMASK_POS 0 +#define IRQ_MASK_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_32C4_DP_ENCODER1_P0 0x32C4 +#define IRQ_CLR_DP_ENCODER1_P0_FLDMASK 0xffff +#define IRQ_CLR_DP_ENCODER1_P0_FLDMASK_POS 0 +#define IRQ_CLR_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_32C8_DP_ENCODER1_P0 0x32C8 +#define IRQ_FORCE_DP_ENCODER1_P0_FLDMASK 0xffff +#define IRQ_FORCE_DP_ENCODER1_P0_FLDMASK_POS 0 +#define IRQ_FORCE_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_32CC_DP_ENCODER1_P0 0x32CC +#define IRQ_STATUS_DP_ENCODER1_P0_FLDMASK 0xffff +#define IRQ_STATUS_DP_ENCODER1_P0_FLDMASK_POS 0 +#define IRQ_STATUS_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_32D0_DP_ENCODER1_P0 0x32D0 +#define IRQ_FINAL_STATUS_DP_ENCODER1_P0_FLDMASK 0xffff +#define IRQ_FINAL_STATUS_DP_ENCODER1_P0_FLDMASK_POS 0 +#define IRQ_FINAL_STATUS_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_32D4_DP_ENCODER1_P0 0x32D4 +#define IRQ_MASK_51_DP_ENCODER1_P0_FLDMASK 0xffff +#define IRQ_MASK_51_DP_ENCODER1_P0_FLDMASK_POS 0 +#define IRQ_MASK_51_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_32D8_DP_ENCODER1_P0 0x32D8 +#define IRQ_CLR_51_DP_ENCODER1_P0_FLDMASK 0xffff +#define IRQ_CLR_51_DP_ENCODER1_P0_FLDMASK_POS 0 +#define IRQ_CLR_51_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_32DC_DP_ENCODER1_P0 0x32DC +#define IRQ_FORCE_51_DP_ENCODER1_P0_FLDMASK 0xffff +#define IRQ_FORCE_51_DP_ENCODER1_P0_FLDMASK_POS 0 +#define IRQ_FORCE_51_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_32E0_DP_ENCODER1_P0 0x32E0 +#define IRQ_STATUS_51_DP_ENCODER1_P0_FLDMASK 0xffff +#define IRQ_STATUS_51_DP_ENCODER1_P0_FLDMASK_POS 0 +#define IRQ_STATUS_51_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_32E4_DP_ENCODER1_P0 0x32E4 +#define IRQ_FINAL_STATUS_51_DP_ENCODER1_P0_FLDMASK 0xffff +#define IRQ_FINAL_STATUS_51_DP_ENCODER1_P0_FLDMASK_POS 0 +#define IRQ_FINAL_STATUS_51_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_32E8_DP_ENCODER1_P0 0x32E8 +#define AUDIO_SRAM_WRITE_ADDR_0_DP_ENCODER1_P0_FLDMASK 0x7f +#define AUDIO_SRAM_WRITE_ADDR_0_DP_ENCODER1_P0_FLDMASK_POS 0 +#define AUDIO_SRAM_WRITE_ADDR_0_DP_ENCODER1_P0_FLDMASK_LEN 7 + +#define AUDIO_SRAM_WRITE_ADDR_1_DP_ENCODER1_P0_FLDMASK 0x7f00 +#define AUDIO_SRAM_WRITE_ADDR_1_DP_ENCODER1_P0_FLDMASK_POS 8 +#define AUDIO_SRAM_WRITE_ADDR_1_DP_ENCODER1_P0_FLDMASK_LEN 7 + +#define REG_32EC_DP_ENCODER1_P0 0x32EC +#define AUDIO_SRAM_WRITE_ADDR_2_DP_ENCODER1_P0_FLDMASK 0x7f +#define AUDIO_SRAM_WRITE_ADDR_2_DP_ENCODER1_P0_FLDMASK_POS 0 +#define AUDIO_SRAM_WRITE_ADDR_2_DP_ENCODER1_P0_FLDMASK_LEN 7 + +#define AUDIO_SRAM_WRITE_ADDR_3_DP_ENCODER1_P0_FLDMASK 0x7f00 +#define AUDIO_SRAM_WRITE_ADDR_3_DP_ENCODER1_P0_FLDMASK_POS 8 +#define AUDIO_SRAM_WRITE_ADDR_3_DP_ENCODER1_P0_FLDMASK_LEN 7 + +#define REG_32F0_DP_ENCODER1_P0 0x32F0 +#define M_CODE_FEC_MERGE_0_DP_ENCODER1_P0_FLDMASK 0xffff +#define M_CODE_FEC_MERGE_0_DP_ENCODER1_P0_FLDMASK_POS 0 +#define M_CODE_FEC_MERGE_0_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_32F4_DP_ENCODER1_P0 0x32F4 +#define M_CODE_FEC_MERGE_1_DP_ENCODER1_P0_FLDMASK 0xff +#define M_CODE_FEC_MERGE_1_DP_ENCODER1_P0_FLDMASK_POS 0 +#define M_CODE_FEC_MERGE_1_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_32F8_DP_ENCODER1_P0 0x32F8 +#define MSA_UPDATE_LINE_CNT_THRD_DP_ENCODER1_P0_FLDMASK 0xff +#define MSA_UPDATE_LINE_CNT_THRD_DP_ENCODER1_P0_FLDMASK_POS 0 +#define MSA_UPDATE_LINE_CNT_THRD_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_SPLIT_BUG_FIX_DP_ENCODER1_P0_FLDMASK 0x200 +#define SDP_SPLIT_BUG_FIX_DP_ENCODER1_P0_FLDMASK_POS 9 +#define SDP_SPLIT_BUG_FIX_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define MSA_MUTE_MASK_DP_ENCODER1_P0_FLDMASK 0x400 +#define MSA_MUTE_MASK_DP_ENCODER1_P0_FLDMASK_POS 10 +#define MSA_MUTE_MASK_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define MSA_UPDATE_SEL_DP_ENCODER1_P0_FLDMASK 0x3000 +#define MSA_UPDATE_SEL_DP_ENCODER1_P0_FLDMASK_POS 12 +#define MSA_UPDATE_SEL_DP_ENCODER1_P0_FLDMASK_LEN 2 + +#define VIDEO_MUTE_TOGGLE_SEL_DP_ENCODER1_P0_FLDMASK 0xc000 +#define VIDEO_MUTE_TOGGLE_SEL_DP_ENCODER1_P0_FLDMASK_POS 14 +#define VIDEO_MUTE_TOGGLE_SEL_DP_ENCODER1_P0_FLDMASK_LEN 2 + +#define REG_3300_DP_ENCODER1_P0 0x3300 +#define AUDIO_AFIFO_CNT_SEL_DP_ENCODER1_P0_FLDMASK 0x1 +#define AUDIO_AFIFO_CNT_SEL_DP_ENCODER1_P0_FLDMASK_POS 0 +#define AUDIO_AFIFO_CNT_SEL_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define AUDIO_SRAM_CNT_SEL_DP_ENCODER1_P0_FLDMASK 0x2 +#define AUDIO_SRAM_CNT_SEL_DP_ENCODER1_P0_FLDMASK_POS 1 +#define AUDIO_SRAM_CNT_SEL_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define AUDIO_AFIFO_CNT_DP_ENCODER1_P0_FLDMASK 0xf0 +#define AUDIO_AFIFO_CNT_DP_ENCODER1_P0_FLDMASK_POS 4 +#define AUDIO_AFIFO_CNT_DP_ENCODER1_P0_FLDMASK_LEN 4 + +#define VIDEO_AFIFO_RDY_SEL_DP_ENCODER1_P0_FLDMASK 0x300 +#define VIDEO_AFIFO_RDY_SEL_DP_ENCODER1_P0_FLDMASK_POS 8 +#define VIDEO_AFIFO_RDY_SEL_DP_ENCODER1_P0_FLDMASK_LEN 2 + +#define REG_3304_DP_ENCODER1_P0 0x3304 +#define AUDIO_SRAM_CNT_DP_ENCODER1_P0_FLDMASK 0x7f +#define AUDIO_SRAM_CNT_DP_ENCODER1_P0_FLDMASK_POS 0 +#define AUDIO_SRAM_CNT_DP_ENCODER1_P0_FLDMASK_LEN 7 + +#define AU_PRTY_REGEN_DP_ENCODER1_P0_FLDMASK 0x100 +#define AU_PRTY_REGEN_DP_ENCODER1_P0_FLDMASK_POS 8 +#define AU_PRTY_REGEN_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define AU_CH_STS_REGEN_DP_ENCODER1_P0_FLDMASK 0x200 +#define AU_CH_STS_REGEN_DP_ENCODER1_P0_FLDMASK_POS 9 +#define AU_CH_STS_REGEN_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define AUDIO_VALIDITY_REGEN_DP_ENCODER1_P0_FLDMASK 0x400 +#define AUDIO_VALIDITY_REGEN_DP_ENCODER1_P0_FLDMASK_POS 10 +#define AUDIO_VALIDITY_REGEN_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define AUDIO_RESERVED_REGEN_DP_ENCODER1_P0_FLDMASK 0x800 +#define AUDIO_RESERVED_REGEN_DP_ENCODER1_P0_FLDMASK_POS 11 +#define AUDIO_RESERVED_REGEN_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define AUDIO_SAMPLE_PRSENT_REGEN_DP_ENCODER1_P0_FLDMASK 0x1000 +#define AUDIO_SAMPLE_PRSENT_REGEN_DP_ENCODER1_P0_FLDMASK_POS 12 +#define AUDIO_SAMPLE_PRSENT_REGEN_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define REG_3320_DP_ENCODER1_P0 0x3320 +#define AUDIO_PATTERN_GEN_DSTB_CNT_THRD_DP_ENCODER1_P0_FLDMASK 0x1ff +#define AUDIO_PATTERN_GEN_DSTB_CNT_THRD_DP_ENCODER1_P0_FLDMASK_POS 0 +#define AUDIO_PATTERN_GEN_DSTB_CNT_THRD_DP_ENCODER1_P0_FLDMASK_LEN 9 + +#define REG_3324_DP_ENCODER1_P0 0x3324 +#define AUDIO_SOURCE_MUX_DP_ENCODER1_P0_FLDMASK 0x300 +#define AUDIO_SOURCE_MUX_DP_ENCODER1_P0_FLDMASK_POS 8 +#define AUDIO_SOURCE_MUX_DP_ENCODER1_P0_FLDMASK_LEN 2 + +#define AUDIO_PATTERN_GEN_CH_NUM_DP_ENCODER1_P0_FLDMASK 0x3000 +#define AUDIO_PATGEN_CH_NUM_DP_ENCODER1_P0_FLDMASK_POS 12 +#define AUDIO_PATTERN_GEN_CH_NUM_DP_ENCODER1_P0_FLDMASK_LEN 2 + +#define AUDIO_PATTERN_GEN_FS_SEL_DP_ENCODER1_P0_FLDMASK 0xc000 +#define AUDIO_PATGEN_FS_SEL_DP_ENCODER1_P0_FLDMASK_POS 14 +#define AUDIO_PATTERN_GEN_FS_SEL_DP_ENCODER1_P0_FLDMASK_LEN 2 + +#define REG_3328_DP_ENCODER1_P0 0x3328 +#define VSYNC_DETECT_POL_DP_ENCODER1_P0_FLDMASK 0x1 +#define VSYNC_DETECT_POL_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSYNC_DETECT_POL_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define HSYNC_DETECT_POL_DP_ENCODER1_P0_FLDMASK 0x2 +#define HSYNC_DETECT_POL_DP_ENCODER1_P0_FLDMASK_POS 1 +#define HSYNC_DETECT_POL_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define HTOTAL_DETECT_STABLE_DP_ENCODER1_P0_FLDMASK 0x4 +#define HTOTAL_DETECT_STABLE_DP_ENCODER1_P0_FLDMASK_POS 2 +#define HTOTAL_DETECT_STABLE_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define HDE_DETECT_STABLE_DP_ENCODER1_P0_FLDMASK 0x8 +#define HDE_DETECT_STABLE_DP_ENCODER1_P0_FLDMASK_POS 3 +#define HDE_DETECT_STABLE_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define REG_332C_DP_ENCODER1_P0 0x332C +#define VTOTAL_DETECT_DP_ENCODER1_P0_FLDMASK 0xffff +#define VTOTAL_DETECT_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VTOTAL_DETECT_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_3330_DP_ENCODER1_P0 0x3330 +#define VDE_DETECT_DP_ENCODER1_P0_FLDMASK 0xffff +#define VDE_DETECT_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VDE_DETECT_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_3334_DP_ENCODER1_P0 0x3334 +#define HTOTAL_DETECT_DP_ENCODER1_P0_FLDMASK 0xffff +#define HTOTAL_DETECT_DP_ENCODER1_P0_FLDMASK_POS 0 +#define HTOTAL_DETECT_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_3338_DP_ENCODER1_P0 0x3338 +#define HDE_DETECT_DP_ENCODER1_P0_FLDMASK 0xffff +#define HDE_DETECT_DP_ENCODER1_P0_FLDMASK_POS 0 +#define HDE_DETECT_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_3340_DP_ENCODER1_P0 0x3340 +#define BIST_FAIL_VIDEO_L0_DP_ENCODER1_P0_FLDMASK 0x1 +#define BIST_FAIL_VIDEO_L0_DP_ENCODER1_P0_FLDMASK_POS 0 +#define BIST_FAIL_VIDEO_L0_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define BIST_FAIL_VIDEO_L1_DP_ENCODER1_P0_FLDMASK 0x2 +#define BIST_FAIL_VIDEO_L1_DP_ENCODER1_P0_FLDMASK_POS 1 +#define BIST_FAIL_VIDEO_L1_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define BIST_FAIL_VIDEO_L2_DP_ENCODER1_P0_FLDMASK 0x4 +#define BIST_FAIL_VIDEO_L2_DP_ENCODER1_P0_FLDMASK_POS 2 +#define BIST_FAIL_VIDEO_L2_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define BIST_FAIL_VIDEO_L3_DP_ENCODER1_P0_FLDMASK 0x8 +#define BIST_FAIL_VIDEO_L3_DP_ENCODER1_P0_FLDMASK_POS 3 +#define BIST_FAIL_VIDEO_L3_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define BIST_FAIL_AUDIO_L0_DP_ENCODER1_P0_FLDMASK 0x10 +#define BIST_FAIL_AUDIO_L0_DP_ENCODER1_P0_FLDMASK_POS 4 +#define BIST_FAIL_AUDIO_L0_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define BIST_FAIL_AUDIO_L1_DP_ENCODER1_P0_FLDMASK 0x20 +#define BIST_FAIL_AUDIO_L1_DP_ENCODER1_P0_FLDMASK_POS 5 +#define BIST_FAIL_AUDIO_L1_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define BIST_FAIL_AUDIO_L2_DP_ENCODER1_P0_FLDMASK 0x40 +#define BIST_FAIL_AUDIO_L2_DP_ENCODER1_P0_FLDMASK_POS 6 +#define BIST_FAIL_AUDIO_L2_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define BIST_FAIL_AUDIO_L3_DP_ENCODER1_P0_FLDMASK 0x80 +#define BIST_FAIL_AUDIO_L3_DP_ENCODER1_P0_FLDMASK_POS 7 +#define BIST_FAIL_AUDIO_L3_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define BIST_FAIL_VSC_VESA_HW_DP_ENCODER1_P0_FLDMASK 0x100 +#define BIST_FAIL_VSC_VESA_HW_DP_ENCODER1_P0_FLDMASK_POS 8 +#define BIST_FAIL_VSC_VESA_HW_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define BIST_FAIL_VSC_CEA_HW_DP_ENCODER1_P0_FLDMASK 0x200 +#define BIST_FAIL_VSC_CEA_HW_DP_ENCODER1_P0_FLDMASK_POS 9 +#define BIST_FAIL_VSC_CEA_HW_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define BIST_FAIL_VSC_VESA_SW_DP_ENCODER1_P0_FLDMASK 0x400 +#define BIST_FAIL_VSC_VESA_SW_DP_ENCODER1_P0_FLDMASK_POS 10 +#define BIST_FAIL_VSC_VESA_SW_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define BIST_FAIL_VSC_CEA_SW_DP_ENCODER1_P0_FLDMASK 0x800 +#define BIST_FAIL_VSC_CEA_SW_DP_ENCODER1_P0_FLDMASK_POS 11 +#define BIST_FAIL_VSC_CEA_SW_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define LR_FIELD_SYNC_SEL_DP_ENCODER1_P0_FLDMASK 0x7000 +#define LR_FIELD_SYNC_SEL_DP_ENCODER1_P0_FLDMASK_POS 12 +#define LR_FIELD_SYNC_SEL_DP_ENCODER1_P0_FLDMASK_LEN 3 + +#define REG_3344_DP_ENCODER1_P0 0x3344 +#define DP_CH1_MATRIX_DP_ENCODER1_P0_FLDMASK 0x1f +#define DP_CH1_MATRIX_DP_ENCODER1_P0_FLDMASK_POS 0 +#define DP_CH1_MATRIX_DP_ENCODER1_P0_FLDMASK_LEN 5 + +#define DP_CH2_MATRIX_DP_ENCODER1_P0_FLDMASK 0x1f00 +#define DP_CH2_MATRIX_DP_ENCODER1_P0_FLDMASK_POS 8 +#define DP_CH2_MATRIX_DP_ENCODER1_P0_FLDMASK_LEN 5 + +#define REG_3348_DP_ENCODER1_P0 0x3348 +#define DP_CH3_MATRIX_DP_ENCODER1_P0_FLDMASK 0x1f +#define DP_CH3_MATRIX_DP_ENCODER1_P0_FLDMASK_POS 0 +#define DP_CH3_MATRIX_DP_ENCODER1_P0_FLDMASK_LEN 5 + +#define DP_CH4_MATRIX_DP_ENCODER1_P0_FLDMASK 0x1f00 +#define DP_CH4_MATRIX_DP_ENCODER1_P0_FLDMASK_POS 8 +#define DP_CH4_MATRIX_DP_ENCODER1_P0_FLDMASK_LEN 5 + +#define REG_334C_DP_ENCODER1_P0 0x334C +#define DP_CH5_MATRIX_DP_ENCODER1_P0_FLDMASK 0x1f +#define DP_CH5_MATRIX_DP_ENCODER1_P0_FLDMASK_POS 0 +#define DP_CH5_MATRIX_DP_ENCODER1_P0_FLDMASK_LEN 5 + +#define DP_CH6_MATRIX_DP_ENCODER1_P0_FLDMASK 0x1f00 +#define DP_CH6_MATRIX_DP_ENCODER1_P0_FLDMASK_POS 8 +#define DP_CH6_MATRIX_DP_ENCODER1_P0_FLDMASK_LEN 5 + +#define REG_3350_DP_ENCODER1_P0 0x3350 +#define DP_CH7_MATRIX_DP_ENCODER1_P0_FLDMASK 0x1f +#define DP_CH7_MATRIX_DP_ENCODER1_P0_FLDMASK_POS 0 +#define DP_CH7_MATRIX_DP_ENCODER1_P0_FLDMASK_LEN 5 + +#define DP_CH8_MATRIX_DP_ENCODER1_P0_FLDMASK 0x1f00 +#define DP_CH8_MATRIX_DP_ENCODER1_P0_FLDMASK_POS 8 +#define DP_CH8_MATRIX_DP_ENCODER1_P0_FLDMASK_LEN 5 + +#define REG_3354_DP_ENCODER1_P0 0x3354 +#define DP_S2P_LAUNCH_CFG_DP_ENCODER1_P0_FLDMASK 0x7f +#define DP_S2P_LAUNCH_CFG_DP_ENCODER1_P0_FLDMASK_POS 0 +#define DP_S2P_LAUNCH_CFG_DP_ENCODER1_P0_FLDMASK_LEN 7 + +#define AUDIO_HAYDN_EN_FORCE_DP_ENCODER1_P0_FLDMASK 0x1000 +#define AUDIO_HAYDN_EN_FORCE_DP_ENCODER1_P0_FLDMASK_POS 12 +#define AUDIO_HAYDN_EN_FORCE_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define AUDIO_HAYDN_FORMAT_DP_ENCODER1_P0_FLDMASK 0xf00 +#define AUDIO_HAYDN_FORMAT_DP_ENCODER1_P0_FLDMASK_POS 8 +#define AUDIO_HAYDN_FORMAT_DP_ENCODER1_P0_FLDMASK_LEN 4 + +#define REG_3358_DP_ENCODER1_P0 0x3358 +#define TU_SIZE_DP_ENCODER1_P0_FLDMASK 0x7f +#define TU_SIZE_DP_ENCODER1_P0_FLDMASK_POS 0 +#define TU_SIZE_DP_ENCODER1_P0_FLDMASK_LEN 7 + +#define TU_CALC_SW_DP_ENCODER1_P0_FLDMASK 0x80 +#define TU_CALC_SW_DP_ENCODER1_P0_FLDMASK_POS 7 +#define TU_CALC_SW_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define REG_335C_DP_ENCODER1_P0 0x335C +#define SYMBOL_DATA_PER_TU_SW_0_DP_ENCODER1_P0_FLDMASK 0xffff +#define SYMBOL_DATA_PER_TU_SW_0_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SYMBOL_DATA_PER_TU_SW_0_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_3360_DP_ENCODER1_P0 0x3360 +#define SYMBOL_DATA_PER_TU_SW_1_DP_ENCODER1_P0_FLDMASK 0x7fff +#define SYMBOL_DATA_PER_TU_SW_1_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SYMBOL_DATA_PER_TU_SW_1_DP_ENCODER1_P0_FLDMASK_LEN 15 + +#define REG_3364_DP_ENCODER1_P0 0x3364 +#define SDP_DOWN_CNT_INIT_IN_HBLANK_DP_ENCODER1_P0_FLDMASK 0xfff +#define SDP_DOWN_CNT_INIT_IN_HBLANK_DP_ENCODER1_P0_FLDMASK_POS 0 +#define SDP_DOWN_CNT_INIT_IN_HBLANK_DP_ENCODER1_P0_FLDMASK_LEN 12 + +#define FIFO_READ_START_POINT_DP_ENCODER1_P0_FLDMASK 0xf000 +#define FIFO_READ_START_POINT_DP_ENCODER1_P0_FLDMASK_POS 12 +#define FIFO_READ_START_POINT_DP_ENCODER1_P0_FLDMASK_LEN 4 + +#define REG_3368_DP_ENCODER1_P0 0x3368 +#define VIDEO_SRAM_FIFO_CNT_RESET_SEL_DP_ENCODER1_P0_FLDMASK 0x3 +#define VIDEO_SRAM_FIFO_CNT_RESET_SEL_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VIDEO_SRAM_FIFO_CNT_RESET_SEL_DP_ENCODER1_P0_FLDMASK_LEN 2 + +#define VIDEO_STABLE_EN_DP_ENCODER1_P0_FLDMASK 0x4 +#define VIDEO_STABLE_EN_DP_ENCODER1_P0_FLDMASK_POS 2 +#define VIDEO_STABLE_EN_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_STABLE_CNT_THRD_DP_ENCODER1_P0_FLDMASK 0xf0 +#define VIDEO_STABLE_CNT_THRD_DP_ENCODER1_P0_FLDMASK_POS 4 +#define VIDEO_STABLE_CNT_THRD_DP_ENCODER1_P0_FLDMASK_LEN 4 + +#define SDP_DP13_EN_DP_ENCODER1_P0_FLDMASK 0x100 +#define SDP_DP13_EN_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_DP13_EN_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_PIXEL_SWAP_DP_ENCODER1_P0_FLDMASK 0x600 +#define VIDEO_PIXEL_SWAP_DP_ENCODER1_P0_FLDMASK_POS 9 +#define VIDEO_PIXEL_SWAP_DP_ENCODER1_P0_FLDMASK_LEN 2 + +#define BS2BS_MODE_DP_ENCODER1_P0_FLDMASK 0x3000 +#define BS2BS_MODE_DP_ENCODER1_P0_FLDMASK_POS 12 +#define BS2BS_MODE_DP_ENCODER1_P0_FLDMASK_LEN 2 + +#define REG_336C_DP_ENCODER1_P0 0x336C +#define DSC_EN_DP_ENCODER1_P0_FLDMASK 0x1 +#define DSC_EN_DP_ENCODER1_P0_FLDMASK_POS 0 +#define DSC_EN_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define DSC_BYTE_SWAP_DP_ENCODER1_P0_FLDMASK 0x2 +#define DSC_BYTE_SWAP_DP_ENCODER1_P0_FLDMASK_POS 1 +#define DSC_BYTE_SWAP_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define DSC_SLICE_NUM_DP_ENCODER1_P0_FLDMASK 0xf0 +#define DSC_SLICE_NUM_DP_ENCODER1_P0_FLDMASK_POS 4 +#define DSC_SLICE_NUM_DP_ENCODER1_P0_FLDMASK_LEN 4 + +#define DSC_CHUNK_REMAINDER_DP_ENCODER1_P0_FLDMASK 0xf00 +#define DSC_CHUNK_REMAINDER_DP_ENCODER1_P0_FLDMASK_POS 8 +#define DSC_CHUNK_REMAINDER_DP_ENCODER1_P0_FLDMASK_LEN 4 + +#define REG_3370_DP_ENCODER1_P0 0x3370 +#define DSC_CHUNK_NUM_DP_ENCODER1_P0_FLDMASK 0xffff +#define DSC_CHUNK_NUM_DP_ENCODER1_P0_FLDMASK_POS 0 +#define DSC_CHUNK_NUM_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_33AC_DP_ENCODER1_P0 0x33AC +#define TEST_CRC_R_CR_DP_ENCODER1_P0_FLDMASK 0xffff +#define TEST_CRC_R_CR_DP_ENCODER1_P0_FLDMASK_POS 0 +#define TEST_CRC_R_CR_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_33B0_DP_ENCODER1_P0 0x33B0 +#define TEST_CRC_G_Y_DP_ENCODER1_P0_FLDMASK 0xffff +#define TEST_CRC_G_Y_DP_ENCODER1_P0_FLDMASK_POS 0 +#define TEST_CRC_G_Y_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_33B4_DP_ENCODER1_P0 0x33B4 +#define TEST_CRC_B_CB_DP_ENCODER1_P0_FLDMASK 0xffff +#define TEST_CRC_B_CB_DP_ENCODER1_P0_FLDMASK_POS 0 +#define TEST_CRC_B_CB_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_33B8_DP_ENCODER1_P0 0x33B8 +#define TEST_CRC_WRAP_CNT_DP_ENCODER1_P0_FLDMASK 0xf +#define TEST_CRC_WRAP_CNT_DP_ENCODER1_P0_FLDMASK_POS 0 +#define TEST_CRC_WRAP_CNT_DP_ENCODER1_P0_FLDMASK_LEN 4 + +#define CRC_COLOR_FORMAT_DP_ENCODER1_P0_FLDMASK 0x1f0 +#define CRC_COLOR_FORMAT_DP_ENCODER1_P0_FLDMASK_POS 4 +#define CRC_COLOR_FORMAT_DP_ENCODER1_P0_FLDMASK_LEN 5 + +#define CRC_TEST_SINK_START_DP_ENCODER1_P0_FLDMASK 0x200 +#define CRC_TEST_SINK_START_DP_ENCODER1_P0_FLDMASK_POS 9 +#define CRC_TEST_SINK_START_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define REG_33BC_DP_ENCODER1_P0 0x33BC +#define CRC_TEST_CONFIG_DP_ENCODER1_P0_FLDMASK 0x1fff +#define CRC_TEST_CONFIG_DP_ENCODER1_P0_FLDMASK_POS 0 +#define CRC_TEST_CONFIG_DP_ENCODER1_P0_FLDMASK_LEN 13 + +#define REG_33C0_DP_ENCODER1_P0 0x33C0 +#define VIDEO_TU_VALUE_DP_ENCODER1_P0_FLDMASK 0x7f +#define VIDEO_TU_VALUE_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VIDEO_TU_VALUE_DP_ENCODER1_P0_FLDMASK_LEN 7 + +#define DP_TX_MIXER_TESTBUS_SEL_DP_ENCODER1_P0_FLDMASK 0xf00 +#define DP_TX_MIXER_TESTBUS_SEL_DP_ENCODER1_P0_FLDMASK_POS 8 +#define DP_TX_MIXER_TESTBUS_SEL_DP_ENCODER1_P0_FLDMASK_LEN 4 + +#define DP_TX_SDP_TESTBUS_SEL_DP_ENCODER1_P0_FLDMASK 0xf000 +#define DP_TX_SDP_TESTBUS_SEL_DP_ENCODER1_P0_FLDMASK_POS 12 +#define DP_TX_SDP_TESTBUS_SEL_DP_ENCODER1_P0_FLDMASK_LEN 4 + +#define REG_33C4_DP_ENCODER1_P0 0x33C4 +#define DP_TX_VIDEO_TESTBUS_SEL_DP_ENCODER1_P0_FLDMASK 0x1f +#define DP_TX_VIDEO_TESTBUS_SEL_DP_ENCODER1_P0_FLDMASK_POS 0 +#define DP_TX_VIDEO_TESTBUS_SEL_DP_ENCODER1_P0_FLDMASK_LEN 5 + +#define DP_TX_ENCODER_TESTBUS_SEL_DP_ENCODER1_P0_FLDMASK 0x60 +#define DP_TX_ENCODER_TESTBUS_SEL_DP_ENCODER1_P0_FLDMASK_POS 5 +#define DP_TX_ENCODER_TESTBUS_SEL_DP_ENCODER1_P0_FLDMASK_LEN 2 + +#define REG_33C8_DP_ENCODER1_P0 0x33C8 +#define VIDEO_M_CODE_READ_0_DP_ENCODER1_P0_FLDMASK 0xffff +#define VIDEO_M_CODE_READ_0_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VIDEO_M_CODE_READ_0_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_33CC_DP_ENCODER1_P0 0x33CC +#define VIDEO_M_CODE_READ_1_DP_ENCODER1_P0_FLDMASK 0xff +#define VIDEO_M_CODE_READ_1_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VIDEO_M_CODE_READ_1_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_33D0_DP_ENCODER1_P0 0x33D0 +#define AUDIO_M_CODE_READ_0_DP_ENCODER1_P0_FLDMASK 0xffff +#define AUDIO_M_CODE_READ_0_DP_ENCODER1_P0_FLDMASK_POS 0 +#define AUDIO_M_CODE_READ_0_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_33D4_DP_ENCODER1_P0 0x33D4 +#define AUDIO_M_CODE_READ_1_DP_ENCODER1_P0_FLDMASK 0xff +#define AUDIO_M_CODE_READ_1_DP_ENCODER1_P0_FLDMASK_POS 0 +#define AUDIO_M_CODE_READ_1_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define REG_33D8_DP_ENCODER1_P0 0x33D8 +#define VSC_EXT_CFG_DP_ENCODER1_P0_FLDMASK 0xff +#define VSC_EXT_CFG_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VSC_EXT_CFG_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define SDP_SPLIT_FIFO_EMPTY_DP_ENCODER1_P0_FLDMASK 0x100 +#define SDP_SPLIT_FIFO_EMPTY_DP_ENCODER1_P0_FLDMASK_POS 8 +#define SDP_SPLIT_FIFO_EMPTY_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define SDP_SPLIT_FIFO_FULL_DP_ENCODER1_P0_FLDMASK 0x200 +#define SDP_SPLIT_FIFO_FULL_DP_ENCODER1_P0_FLDMASK_POS 9 +#define SDP_SPLIT_FIFO_FULL_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define SDP_SPLIT_FIFO_FULL_CLR_DP_ENCODER1_P0_FLDMASK 0x400 +#define SDP_SPLIT_FIFO_FULL_CLR_DP_ENCODER1_P0_FLDMASK_POS 10 +#define SDP_SPLIT_FIFO_FULL_CLR_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define SDP_SPLIT_INSERT_INVALID_CNT_THRD_DP_ENCODER1_P0_FLDMASK 0xf000 +#define SDP_SPLIT_INSERT_INVALID_CNT_THRD_DP_ENCODER1_P0_FLDMASK_POS 12 +#define SDP_SPLIT_INSERT_INVALID_CNT_THRD_DP_ENCODER1_P0_FLDMASK_LEN 4 + +#define REG_33DC_DP_ENCODER1_P0 0x33DC +#define VIDEO_SRAM0_FULL_DP_ENCODER1_P0_FLDMASK 0x1 +#define VIDEO_SRAM0_FULL_DP_ENCODER1_P0_FLDMASK_POS 0 +#define VIDEO_SRAM0_FULL_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM0_FULL_CLR_DP_ENCODER1_P0_FLDMASK 0x2 +#define VIDEO_SRAM0_FULL_CLR_DP_ENCODER1_P0_FLDMASK_POS 1 +#define VIDEO_SRAM0_FULL_CLR_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM1_FULL_DP_ENCODER1_P0_FLDMASK 0x4 +#define VIDEO_SRAM1_FULL_DP_ENCODER1_P0_FLDMASK_POS 2 +#define VIDEO_SRAM1_FULL_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM1_FULL_CLR_DP_ENCODER1_P0_FLDMASK 0x8 +#define VIDEO_SRAM1_FULL_CLR_DP_ENCODER1_P0_FLDMASK_POS 3 +#define VIDEO_SRAM1_FULL_CLR_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM2_FULL_DP_ENCODER1_P0_FLDMASK 0x10 +#define VIDEO_SRAM2_FULL_DP_ENCODER1_P0_FLDMASK_POS 4 +#define VIDEO_SRAM2_FULL_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM2_FULL_CLR_DP_ENCODER1_P0_FLDMASK 0x20 +#define VIDEO_SRAM2_FULL_CLR_DP_ENCODER1_P0_FLDMASK_POS 5 +#define VIDEO_SRAM2_FULL_CLR_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM3_FULL_DP_ENCODER1_P0_FLDMASK 0x40 +#define VIDEO_SRAM3_FULL_DP_ENCODER1_P0_FLDMASK_POS 6 +#define VIDEO_SRAM3_FULL_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM3_FULL_CLR_DP_ENCODER1_P0_FLDMASK 0x80 +#define VIDEO_SRAM3_FULL_CLR_DP_ENCODER1_P0_FLDMASK_POS 7 +#define VIDEO_SRAM3_FULL_CLR_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM0_EMPTY_DP_ENCODER1_P0_FLDMASK 0x100 +#define VIDEO_SRAM0_EMPTY_DP_ENCODER1_P0_FLDMASK_POS 8 +#define VIDEO_SRAM0_EMPTY_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM0_EMPTY_CLR_DP_ENCODER1_P0_FLDMASK 0x200 +#define VIDEO_SRAM0_EMPTY_CLR_DP_ENCODER1_P0_FLDMASK_POS 9 +#define VIDEO_SRAM0_EMPTY_CLR_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM1_EMPTY_DP_ENCODER1_P0_FLDMASK 0x400 +#define VIDEO_SRAM1_EMPTY_DP_ENCODER1_P0_FLDMASK_POS 10 +#define VIDEO_SRAM1_EMPTY_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM1_EMPTY_CLR_DP_ENCODER1_P0_FLDMASK 0x800 +#define VIDEO_SRAM1_EMPTY_CLR_DP_ENCODER1_P0_FLDMASK_POS 11 +#define VIDEO_SRAM1_EMPTY_CLR_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM2_EMPTY_DP_ENCODER1_P0_FLDMASK 0x1000 +#define VIDEO_SRAM2_EMPTY_DP_ENCODER1_P0_FLDMASK_POS 12 +#define VIDEO_SRAM2_EMPTY_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM2_EMPTY_CLR_DP_ENCODER1_P0_FLDMASK 0x2000 +#define VIDEO_SRAM2_EMPTY_CLR_DP_ENCODER1_P0_FLDMASK_POS 13 +#define VIDEO_SRAM2_EMPTY_CLR_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM3_EMPTY_DP_ENCODER1_P0_FLDMASK 0x4000 +#define VIDEO_SRAM3_EMPTY_DP_ENCODER1_P0_FLDMASK_POS 14 +#define VIDEO_SRAM3_EMPTY_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define VIDEO_SRAM3_EMPTY_CLR_DP_ENCODER1_P0_FLDMASK 0x8000 +#define VIDEO_SRAM3_EMPTY_CLR_DP_ENCODER1_P0_FLDMASK_POS 15 +#define VIDEO_SRAM3_EMPTY_CLR_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define REG_33E0_DP_ENCODER1_P0 0x33E0 +#define BS2BS_CNT_SW_DP_ENCODER1_P0_FLDMASK 0xffff +#define BS2BS_CNT_SW_DP_ENCODER1_P0_FLDMASK_POS 0 +#define BS2BS_CNT_SW_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_33E4_DP_ENCODER1_P0 0x33E4 +#define MIXER_STATE_0_DP_ENCODER1_P0_FLDMASK 0xffff +#define MIXER_STATE_0_DP_ENCODER1_P0_FLDMASK_POS 0 +#define MIXER_STATE_0_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_33E8_DP_ENCODER1_P0 0x33E8 +#define MIXER_STATE_1_DP_ENCODER1_P0_FLDMASK 0xffff +#define MIXER_STATE_1_DP_ENCODER1_P0_FLDMASK_POS 0 +#define MIXER_STATE_1_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_33EC_DP_ENCODER1_P0 0x33EC +#define MIXER_STATE_2_DP_ENCODER1_P0_FLDMASK 0xff +#define MIXER_STATE_2_DP_ENCODER1_P0_FLDMASK_POS 0 +#define MIXER_STATE_2_DP_ENCODER1_P0_FLDMASK_LEN 8 + +#define VIDEO_PERIOD_ENABLE_DP_ENCODER1_P0_FLDMASK 0x200 +#define VIDEO_PERIOD_ENABLE_DP_ENCODER1_P0_FLDMASK_POS 9 +#define VIDEO_PERIOD_ENABLE_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define BS2BS_CNT_SW_SEL_DP_ENCODER1_P0_FLDMASK 0x400 +#define BS2BS_CNT_SW_SEL_DP_ENCODER1_P0_FLDMASK_POS 10 +#define BS2BS_CNT_SW_SEL_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define AUDIO_SRAM_FULL_DP_ENCODER1_P0_FLDMASK 0x800 +#define AUDIO_SRAM_FULL_DP_ENCODER1_P0_FLDMASK_POS 11 +#define AUDIO_SRAM_FULL_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define AUDIO_SRAM_FULL_CLR_DP_ENCODER1_P0_FLDMASK 0x1000 +#define AUDIO_SRAM_FULL_CLR_DP_ENCODER1_P0_FLDMASK_POS 12 +#define AUDIO_SRAM_FULL_CLR_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define AUDIO_SRAM_EMPTY_DP_ENCODER1_P0_FLDMASK 0x2000 +#define AUDIO_SRAM_EMPTY_DP_ENCODER1_P0_FLDMASK_POS 13 +#define AUDIO_SRAM_EMPTY_DP_ENCODER1_P0_FLDMASK_LEN 1 + +#define REG_33F0_DP_ENCODER1_P0 0x33F0 +#define DP_ENCODER_DUMMY_RW_0_DP_ENCODER1_P0_FLDMASK 0xffff +#define DP_ENCODER_DUMMY_RW_0_DP_ENCODER1_P0_FLDMASK_POS 0 +#define DP_ENCODER_DUMMY_RW_0_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_33F4_DP_ENCODER1_P0 0x33F4 +#define DP_ENCODER_DUMMY_RW_1_DP_ENCODER1_P0_FLDMASK 0xffff +#define DP_ENCODER_DUMMY_RW_1_DP_ENCODER1_P0_FLDMASK_POS 0 +#define DP_ENCODER_DUMMY_RW_1_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_33F8_DP_ENCODER1_P0 0x33F8 +#define DP_ENCODER_DUMMY_R_0_DP_ENCODER1_P0_FLDMASK 0xffff +#define DP_ENCODER_DUMMY_R_0_DP_ENCODER1_P0_FLDMASK_POS 0 +#define DP_ENCODER_DUMMY_R_0_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_33FC_DP_ENCODER1_P0 0x33FC +#define DP_ENCODER_DUMMY_R_1_DP_ENCODER1_P0_FLDMASK 0xffff +#define DP_ENCODER_DUMMY_R_1_DP_ENCODER1_P0_FLDMASK_POS 0 +#define DP_ENCODER_DUMMY_R_1_DP_ENCODER1_P0_FLDMASK_LEN 16 + +#define REG_3400_DP_TRANS_P0 0x3400 +#define PRE_MISC_LANE0_MUX_DP_TRANS_P0_FLDMASK 0x3 +#define PRE_MISC_LANE0_MUX_DP_TRANS_P0_FLDMASK_POS 0 +#define PRE_MISC_LANE0_MUX_DP_TRANS_P0_FLDMASK_LEN 2 + +#define PRE_MISC_LANE1_MUX_DP_TRANS_P0_FLDMASK 0xc +#define PRE_MISC_LANE1_MUX_DP_TRANS_P0_FLDMASK_POS 2 +#define PRE_MISC_LANE1_MUX_DP_TRANS_P0_FLDMASK_LEN 2 + +#define PRE_MISC_LANE2_MUX_DP_TRANS_P0_FLDMASK 0x30 +#define PRE_MISC_LANE2_MUX_DP_TRANS_P0_FLDMASK_POS 4 +#define PRE_MISC_LANE2_MUX_DP_TRANS_P0_FLDMASK_LEN 2 + +#define PRE_MISC_LANE3_MUX_DP_TRANS_P0_FLDMASK 0xc0 +#define PRE_MISC_LANE3_MUX_DP_TRANS_P0_FLDMASK_POS 6 +#define PRE_MISC_LANE3_MUX_DP_TRANS_P0_FLDMASK_LEN 2 + +#define PRE_MISC_PORT_MUX_DP_TRANS_P0_FLDMASK 0x700 +#define PRE_MISC_PORT_MUX_DP_TRANS_P0_FLDMASK_POS 8 +#define PRE_MISC_PORT_MUX_DP_TRANS_P0_FLDMASK_LEN 3 + +#define HDCP_SEL_DP_TRANS_P0_FLDMASK 0x800 +#define HDCP_SEL_DP_TRANS_P0_FLDMASK_POS 11 +#define HDCP_SEL_DP_TRANS_P0_FLDMASK_LEN 1 + +#define PATTERN1_EN_DP_TRANS_P0_FLDMASK 0x1000 +#define PATTERN1_EN_DP_TRANS_P0_FLDMASK_POS 12 +#define PATTERN1_EN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define PATTERN2_EN_DP_TRANS_P0_FLDMASK 0x2000 +#define PATTERN2_EN_DP_TRANS_P0_FLDMASK_POS 13 +#define PATTERN2_EN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define PATTERN3_EN_DP_TRANS_P0_FLDMASK 0x4000 +#define PATTERN3_EN_DP_TRANS_P0_FLDMASK_POS 14 +#define PATTERN3_EN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define PATTERN4_EN_DP_TRANS_P0_FLDMASK 0x8000 +#define PATTERN4_EN_DP_TRANS_P0_FLDMASK_POS 15 +#define PATTERN4_EN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_3404_DP_TRANS_P0 0x3404 +#define DP_SCR_EN_DP_TRANS_P0_FLDMASK 0x1 +#define DP_SCR_EN_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_SCR_EN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define ALTER_SCRAMBLER_RESET_EN_DP_TRANS_P0_FLDMASK 0x2 +#define ALTER_SCRAMBLER_RESET_EN_DP_TRANS_P0_FLDMASK_POS 1 +#define ALTER_SCRAMBLER_RESET_EN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define SCRAMB_BYPASS_IN_EN_DP_TRANS_P0_FLDMASK 0x4 +#define SCRAMB_BYPASS_IN_EN_DP_TRANS_P0_FLDMASK_POS 2 +#define SCRAMB_BYPASS_IN_EN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define SCRAMB_BYPASS_MASK_DP_TRANS_P0_FLDMASK 0x8 +#define SCRAMB_BYPASS_MASK_DP_TRANS_P0_FLDMASK_POS 3 +#define SCRAMB_BYPASS_MASK_DP_TRANS_P0_FLDMASK_LEN 1 + +#define INDEX_SCR_MODE_DP_TRANS_P0_FLDMASK 0x30 +#define INDEX_SCR_MODE_DP_TRANS_P0_FLDMASK_POS 4 +#define INDEX_SCR_MODE_DP_TRANS_P0_FLDMASK_LEN 2 + +#define PAT_INIT_DISPARITY_DP_TRANS_P0_FLDMASK 0x40 +#define PAT_INIT_DISPARITY_DP_TRANS_P0_FLDMASK_POS 6 +#define PAT_INIT_DISPARITY_DP_TRANS_P0_FLDMASK_LEN 1 + +#define TPS_DISPARITY_RESET_DP_TRANS_P0_FLDMASK 0x80 +#define TPS_DISPARITY_RESET_DP_TRANS_P0_FLDMASK_POS 7 +#define TPS_DISPARITY_RESET_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_3408_DP_TRANS_P0 0x3408 +#define LANE_SKEW_SEL_LANE0_DP_TRANS_P0_FLDMASK 0x3 +#define LANE_SKEW_SEL_LANE0_DP_TRANS_P0_FLDMASK_POS 0 +#define LANE_SKEW_SEL_LANE0_DP_TRANS_P0_FLDMASK_LEN 2 + +#define LANE_SKEW_SEL_LANE1_DP_TRANS_P0_FLDMASK 0xc +#define LANE_SKEW_SEL_LANE1_DP_TRANS_P0_FLDMASK_POS 2 +#define LANE_SKEW_SEL_LANE1_DP_TRANS_P0_FLDMASK_LEN 2 + +#define LANE_SKEW_SEL_LANE2_DP_TRANS_P0_FLDMASK 0x30 +#define LANE_SKEW_SEL_LANE2_DP_TRANS_P0_FLDMASK_POS 4 +#define LANE_SKEW_SEL_LANE2_DP_TRANS_P0_FLDMASK_LEN 2 + +#define LANE_SKEW_SEL_LANE3_DP_TRANS_P0_FLDMASK 0xc0 +#define LANE_SKEW_SEL_LANE3_DP_TRANS_P0_FLDMASK_POS 6 +#define LANE_SKEW_SEL_LANE3_DP_TRANS_P0_FLDMASK_LEN 2 + +#define POST_MISC_LANE0_MUX_DP_TRANS_P0_FLDMASK 0x300 +#define POST_MISC_LANE0_MUX_DP_TRANS_P0_FLDMASK_POS 8 +#define POST_MISC_LANE0_MUX_DP_TRANS_P0_FLDMASK_LEN 2 + +#define POST_MISC_LANE1_MUX_DP_TRANS_P0_FLDMASK 0xc00 +#define POST_MISC_LANE1_MUX_DP_TRANS_P0_FLDMASK_POS 10 +#define POST_MISC_LANE1_MUX_DP_TRANS_P0_FLDMASK_LEN 2 + +#define POST_MISC_LANE2_MUX_DP_TRANS_P0_FLDMASK 0x3000 +#define POST_MISC_LANE2_MUX_DP_TRANS_P0_FLDMASK_POS 12 +#define POST_MISC_LANE2_MUX_DP_TRANS_P0_FLDMASK_LEN 2 + +#define POST_MISC_LANE3_MUX_DP_TRANS_P0_FLDMASK 0xc000 +#define POST_MISC_LANE3_MUX_DP_TRANS_P0_FLDMASK_POS 14 +#define POST_MISC_LANE3_MUX_DP_TRANS_P0_FLDMASK_LEN 2 + +#define REG_340C_DP_TRANS_P0 0x340C +#define TOP_RESET_SW_DP_TRANS_P0_FLDMASK 0x100 +#define TOP_RESET_SW_DP_TRANS_P0_FLDMASK_POS 8 +#define TOP_RESET_SW_DP_TRANS_P0_FLDMASK_LEN 1 + +#define LANE0_RESET_SW_DP_TRANS_P0_FLDMASK 0x200 +#define LANE0_RESET_SW_DP_TRANS_P0_FLDMASK_POS 9 +#define LANE0_RESET_SW_DP_TRANS_P0_FLDMASK_LEN 1 + +#define LANE1_RESET_SW_DP_TRANS_P0_FLDMASK 0x400 +#define LANE1_RESET_SW_DP_TRANS_P0_FLDMASK_POS 10 +#define LANE1_RESET_SW_DP_TRANS_P0_FLDMASK_LEN 1 + +#define LANE2_RESET_SW_DP_TRANS_P0_FLDMASK 0x800 +#define LANE2_RESET_SW_DP_TRANS_P0_FLDMASK_POS 11 +#define LANE2_RESET_SW_DP_TRANS_P0_FLDMASK_LEN 1 + +#define LANE3_RESET_SW_DP_TRANS_P0_FLDMASK 0x1000 +#define LANE3_RESET_SW_DP_TRANS_P0_FLDMASK_POS 12 +#define LANE3_RESET_SW_DP_TRANS_P0_FLDMASK_LEN 1 + +#define DP_TX_TRANSMITTER_4P_RESET_SW_DP_TRANS_P0_FLDMASK 0x2000 +#define DP_TX_TRANSMITTER_4P_RESET_SW_DP_TRANS_P0_FLDMASK_POS 13 +#define DP_TX_TRANSMITTER_4P_RESET_SW_DP_TRANS_P0_FLDMASK_LEN 1 + +#define HDCP13_RST_SW_DP_TRANS_P0_FLDMASK 0x4000 +#define HDCP13_RST_SW_DP_TRANS_P0_FLDMASK_POS 14 +#define HDCP13_RST_SW_DP_TRANS_P0_FLDMASK_LEN 1 + +#define HDCP22_RST_SW_DP_TRANS_P0_FLDMASK 0x8000 +#define HDCP22_RST_SW_DP_TRANS_P0_FLDMASK_POS 15 +#define HDCP22_RST_SW_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_3410_DP_TRANS_P0 0x3410 +#define HPD_DEB_THD_DP_TRANS_P0_FLDMASK 0xf +#define HPD_DEB_THD_DP_TRANS_P0_FLDMASK_POS 0 +#define HPD_DEB_THD_DP_TRANS_P0_FLDMASK_LEN 4 + +#define HPD_INT_THD_DP_TRANS_P0_FLDMASK 0xf0 +#define HPD_INT_THD_DP_TRANS_P0_FLDMASK_POS 4 +#define HPD_INT_THD_DP_TRANS_P0_FLDMASK_LEN 4 + +#define HPD_DISC_THD_DP_TRANS_P0_FLDMASK 0xf00 +#define HPD_DISC_THD_DP_TRANS_P0_FLDMASK_POS 8 +#define HPD_DISC_THD_DP_TRANS_P0_FLDMASK_LEN 4 + +#define HPD_CONN_THD_DP_TRANS_P0_FLDMASK 0xf000 +#define HPD_CONN_THD_DP_TRANS_P0_FLDMASK_POS 12 +#define HPD_CONN_THD_DP_TRANS_P0_FLDMASK_LEN 4 + +#define REG_3414_DP_TRANS_P0 0x3414 +#define HPD_OVR_EN_DP_TRANS_P0_FLDMASK 0x1 +#define HPD_OVR_EN_DP_TRANS_P0_FLDMASK_POS 0 +#define HPD_OVR_EN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define HPD_SET_DP_TRANS_P0_FLDMASK 0x2 +#define HPD_SET_DP_TRANS_P0_FLDMASK_POS 1 +#define HPD_SET_DP_TRANS_P0_FLDMASK_LEN 1 + +#define HPD_DB_DP_TRANS_P0_FLDMASK 0x4 +#define HPD_DB_DP_TRANS_P0_FLDMASK_POS 2 +#define HPD_DB_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_3418_DP_TRANS_P0 0x3418 +#define IRQ_CLR_DP_TRANS_P0_FLDMASK 0xf +#define IRQ_CLR_DP_TRANS_P0_FLDMASK_POS 0 +#define IRQ_CLR_DP_TRANS_P0_FLDMASK_LEN 4 + +#define IRQ_MASK_DP_TRANS_P0_FLDMASK 0xf0 +#define IRQ_MASK_DP_TRANS_P0_FLDMASK_POS 4 +#define IRQ_MASK_DP_TRANS_P0_FLDMASK_LEN 4 + +#define IRQ_FORCE_DP_TRANS_P0_FLDMASK 0xf00 +#define IRQ_FORCE_DP_TRANS_P0_FLDMASK_POS 8 +#define IRQ_FORCE_DP_TRANS_P0_FLDMASK_LEN 4 + +#define IRQ_STATUS_DP_TRANS_P0_FLDMASK 0xf000 +#define IRQ_STATUS_DP_TRANS_P0_FLDMASK_POS 12 +#define IRQ_STATUS_DP_TRANS_P0_FLDMASK_LEN 4 + +#define REG_341C_DP_TRANS_P0 0x341C +#define IRQ_CLR_51_DP_TRANS_P0_FLDMASK 0xf +#define IRQ_CLR_51_DP_TRANS_P0_FLDMASK_POS 0 +#define IRQ_CLR_51_DP_TRANS_P0_FLDMASK_LEN 4 + +#define IRQ_MASK_51_DP_TRANS_P0_FLDMASK 0xf0 +#define IRQ_MASK_51_DP_TRANS_P0_FLDMASK_POS 4 +#define IRQ_MASK_51_DP_TRANS_P0_FLDMASK_LEN 4 + +#define IRQ_FORCE_51_DP_TRANS_P0_FLDMASK 0xf00 +#define IRQ_FORCE_51_DP_TRANS_P0_FLDMASK_POS 8 +#define IRQ_FORCE_51_DP_TRANS_P0_FLDMASK_LEN 4 + +#define IRQ_STATUS_51_DP_TRANS_P0_FLDMASK 0xf000 +#define IRQ_STATUS_51_DP_TRANS_P0_FLDMASK_POS 12 +#define IRQ_STATUS_51_DP_TRANS_P0_FLDMASK_LEN 4 + +#define REG_3420_DP_TRANS_P0 0x3420 +#define HPD_STATUS_DP_TRANS_P0_FLDMASK 0x1 +#define HPD_STATUS_DP_TRANS_P0_FLDMASK_POS 0 +#define HPD_STATUS_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_3428_DP_TRANS_P0 0x3428 +#define POST_MISC_BIT_REVERSE_EN_LANE0_DP_TRANS_P0_FLDMASK 0x1 +#define POST_MISC_BIT_REVERSE_EN_LANE0_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_BIT_REVERSE_EN_LANE0_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_BIT_REVERSE_EN_LANE1_DP_TRANS_P0_FLDMASK 0x2 +#define POST_MISC_BIT_REVERSE_EN_LANE1_DP_TRANS_P0_FLDMASK_POS 1 +#define POST_MISC_BIT_REVERSE_EN_LANE1_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_BIT_REVERSE_EN_LANE2_DP_TRANS_P0_FLDMASK 0x4 +#define POST_MISC_BIT_REVERSE_EN_LANE2_DP_TRANS_P0_FLDMASK_POS 2 +#define POST_MISC_BIT_REVERSE_EN_LANE2_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_BIT_REVERSE_EN_LANE3_DP_TRANS_P0_FLDMASK 0x8 +#define POST_MISC_BIT_REVERSE_EN_LANE3_DP_TRANS_P0_FLDMASK_POS 3 +#define POST_MISC_BIT_REVERSE_EN_LANE3_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_PN_SWAP_EN_LANE0_DP_TRANS_P0_FLDMASK 0x10 +#define POST_MISC_PN_SWAP_EN_LANE0_DP_TRANS_P0_FLDMASK_POS 4 +#define POST_MISC_PN_SWAP_EN_LANE0_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_PN_SWAP_EN_LANE1_DP_TRANS_P0_FLDMASK 0x20 +#define POST_MISC_PN_SWAP_EN_LANE1_DP_TRANS_P0_FLDMASK_POS 5 +#define POST_MISC_PN_SWAP_EN_LANE1_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_PN_SWAP_EN_LANE2_DP_TRANS_P0_FLDMASK 0x40 +#define POST_MISC_PN_SWAP_EN_LANE2_DP_TRANS_P0_FLDMASK_POS 6 +#define POST_MISC_PN_SWAP_EN_LANE2_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_PN_SWAP_EN_LANE3_DP_TRANS_P0_FLDMASK 0x80 +#define POST_MISC_PN_SWAP_EN_LANE3_DP_TRANS_P0_FLDMASK_POS 7 +#define POST_MISC_PN_SWAP_EN_LANE3_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_DATA_SWAP_EN_LANE0_DP_TRANS_P0_FLDMASK 0x100 +#define POST_MISC_DATA_SWAP_EN_LANE0_DP_TRANS_P0_FLDMASK_POS 8 +#define POST_MISC_DATA_SWAP_EN_LANE0_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_DATA_SWAP_EN_LANE1_DP_TRANS_P0_FLDMASK 0x200 +#define POST_MISC_DATA_SWAP_EN_LANE1_DP_TRANS_P0_FLDMASK_POS 9 +#define POST_MISC_DATA_SWAP_EN_LANE1_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_DATA_SWAP_EN_LANE2_DP_TRANS_P0_FLDMASK 0x400 +#define POST_MISC_DATA_SWAP_EN_LANE2_DP_TRANS_P0_FLDMASK_POS 10 +#define POST_MISC_DATA_SWAP_EN_LANE2_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_DATA_SWAP_EN_LANE3_DP_TRANS_P0_FLDMASK 0x800 +#define POST_MISC_DATA_SWAP_EN_LANE3_DP_TRANS_P0_FLDMASK_POS 11 +#define POST_MISC_DATA_SWAP_EN_LANE3_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_342C_DP_TRANS_P0 0x342C +#define XTAL_FREQ_DP_TRANS_P0_FLDMASK 0xff +#define XTAL_FREQ_DP_TRANS_P0_FLDMASK_POS 0 +#define XTAL_FREQ_DP_TRANS_P0_FLDMASK_LEN 8 + +#define REG_3430_DP_TRANS_P0 0x3430 +#define HPD_INT_THD_ECO_DP_TRANS_P0_FLDMASK 0x3 +#define HPD_INT_THD_ECO_DP_TRANS_P0_FLDMASK_POS 0 +#define HPD_INT_THD_ECO_DP_TRANS_P0_FLDMASK_LEN 2 + +#define REG_3440_DP_TRANS_P0 0x3440 +#define PGM_PAT_EN_DP_TRANS_P0_FLDMASK 0xf +#define PGM_PAT_EN_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_EN_DP_TRANS_P0_FLDMASK_LEN 4 + +#define PGM_PAT_SEL_L0_DP_TRANS_P0_FLDMASK 0x70 +#define PGM_PAT_SEL_L0_DP_TRANS_P0_FLDMASK_POS 4 +#define PGM_PAT_SEL_L0_DP_TRANS_P0_FLDMASK_LEN 3 + +#define PGM_PAT_SEL_L1_DP_TRANS_P0_FLDMASK 0x700 +#define PGM_PAT_SEL_L1_DP_TRANS_P0_FLDMASK_POS 8 +#define PGM_PAT_SEL_L1_DP_TRANS_P0_FLDMASK_LEN 3 + +#define PGM_PAT_SEL_L2_DP_TRANS_P0_FLDMASK 0x7000 +#define PGM_PAT_SEL_L2_DP_TRANS_P0_FLDMASK_POS 12 +#define PGM_PAT_SEL_L2_DP_TRANS_P0_FLDMASK_LEN 3 + +#define REG_3444_DP_TRANS_P0 0x3444 +#define PGM_PAT_SEL_L3_DP_TRANS_P0_FLDMASK 0x7 +#define PGM_PAT_SEL_L3_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_SEL_L3_DP_TRANS_P0_FLDMASK_LEN 3 + +#define PRBS_EN_DP_TRANS_P0_FLDMASK 0x8 +#define PRBS_EN_DP_TRANS_P0_FLDMASK_POS 3 +#define PRBS_EN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_3448_DP_TRANS_P0 0x3448 +#define PGM_PAT_L0_0_DP_TRANS_P0_FLDMASK 0xffff +#define PGM_PAT_L0_0_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_L0_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_344C_DP_TRANS_P0 0x344C +#define PGM_PAT_L0_1_DP_TRANS_P0_FLDMASK 0xffff +#define PGM_PAT_L0_1_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_L0_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3450_DP_TRANS_P0 0x3450 +#define PGM_PAT_L0_2_DP_TRANS_P0_FLDMASK 0xff +#define PGM_PAT_L0_2_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_L0_2_DP_TRANS_P0_FLDMASK_LEN 8 + +#define REG_3454_DP_TRANS_P0 0x3454 +#define PGM_PAT_L1_0_DP_TRANS_P0_FLDMASK 0xffff +#define PGM_PAT_L1_0_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_L1_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3458_DP_TRANS_P0 0x3458 +#define PGM_PAT_L1_1_DP_TRANS_P0_FLDMASK 0xffff +#define PGM_PAT_L1_1_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_L1_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_345C_DP_TRANS_P0 0x345C +#define PGM_PAT_L1_2_DP_TRANS_P0_FLDMASK 0xff +#define PGM_PAT_L1_2_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_L1_2_DP_TRANS_P0_FLDMASK_LEN 8 + +#define REG_3460_DP_TRANS_P0 0x3460 +#define PGM_PAT_L2_0_DP_TRANS_P0_FLDMASK 0xffff +#define PGM_PAT_L2_0_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_L2_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3464_DP_TRANS_P0 0x3464 +#define PGM_PAT_L2_1_DP_TRANS_P0_FLDMASK 0xffff +#define PGM_PAT_L2_1_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_L2_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3468_DP_TRANS_P0 0x3468 +#define PGM_PAT_L2_2_DP_TRANS_P0_FLDMASK 0xff +#define PGM_PAT_L2_2_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_L2_2_DP_TRANS_P0_FLDMASK_LEN 8 + +#define REG_346C_DP_TRANS_P0 0x346C +#define PGM_PAT_L3_0_DP_TRANS_P0_FLDMASK 0xffff +#define PGM_PAT_L3_0_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_L3_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3470_DP_TRANS_P0 0x3470 +#define PGM_PAT_L3_1_DP_TRANS_P0_FLDMASK 0xffff +#define PGM_PAT_L3_1_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_L3_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3474_DP_TRANS_P0 0x3474 +#define PGM_PAT_L3_2_DP_TRANS_P0_FLDMASK 0xff +#define PGM_PAT_L3_2_DP_TRANS_P0_FLDMASK_POS 0 +#define PGM_PAT_L3_2_DP_TRANS_P0_FLDMASK_LEN 8 + +#define REG_3478_DP_TRANS_P0 0x3478 +#define CP2520_PATTERN1_DP_TRANS_P0_FLDMASK 0x1 +#define CP2520_PATTERN1_DP_TRANS_P0_FLDMASK_POS 0 +#define CP2520_PATTERN1_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN2_DP_TRANS_P0_FLDMASK 0x2 +#define CP2520_PATTERN2_DP_TRANS_P0_FLDMASK_POS 1 +#define CP2520_PATTERN2_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN1_KCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK 0x10 +#define CP2520_PATTERN1_KCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK_POS 4 +#define CP2520_PATTERN1_KCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN1_KCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK 0x20 +#define CP2520_PATTERN1_KCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK_POS 5 +#define CP2520_PATTERN1_KCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN1_KCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK 0x40 +#define CP2520_PATTERN1_KCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK_POS 6 +#define CP2520_PATTERN1_KCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN1_KCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK 0x80 +#define CP2520_PATTERN1_KCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK_POS 7 +#define CP2520_PATTERN1_KCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN1_DCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK 0x100 +#define CP2520_PATTERN1_DCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK_POS 8 +#define CP2520_PATTERN1_DCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN1_DCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK 0x200 +#define CP2520_PATTERN1_DCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK_POS 9 +#define CP2520_PATTERN1_DCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN1_DCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK 0x400 +#define CP2520_PATTERN1_DCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK_POS 10 +#define CP2520_PATTERN1_DCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN1_DCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK 0x800 +#define CP2520_PATTERN1_DCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK_POS 11 +#define CP2520_PATTERN1_DCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_347C_DP_TRANS_P0 0x347C +#define CP2520_PATTERN2_KCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK 0x1 +#define CP2520_PATTERN2_KCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK_POS 0 +#define CP2520_PATTERN2_KCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN2_KCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK 0x2 +#define CP2520_PATTERN2_KCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK_POS 1 +#define CP2520_PATTERN2_KCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN2_KCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK 0x4 +#define CP2520_PATTERN2_KCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK_POS 2 +#define CP2520_PATTERN2_KCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN2_KCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK 0x8 +#define CP2520_PATTERN2_KCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK_POS 3 +#define CP2520_PATTERN2_KCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN2_DCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK 0x10 +#define CP2520_PATTERN2_DCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK_POS 4 +#define CP2520_PATTERN2_DCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN2_DCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK 0x20 +#define CP2520_PATTERN2_DCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK_POS 5 +#define CP2520_PATTERN2_DCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN2_DCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK 0x40 +#define CP2520_PATTERN2_DCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK_POS 6 +#define CP2520_PATTERN2_DCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN2_DCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK 0x80 +#define CP2520_PATTERN2_DCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK_POS 7 +#define CP2520_PATTERN2_DCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN3_KCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK 0x100 +#define CP2520_PATTERN3_KCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK_POS 8 +#define CP2520_PATTERN3_KCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN3_KCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK 0x200 +#define CP2520_PATTERN3_KCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK_POS 9 +#define CP2520_PATTERN3_KCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN3_KCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK 0x400 +#define CP2520_PATTERN3_KCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK_POS 10 +#define CP2520_PATTERN3_KCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN3_KCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK 0x800 +#define CP2520_PATTERN3_KCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK_POS 11 +#define CP2520_PATTERN3_KCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN3_DCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK 0x1000 +#define CP2520_PATTERN3_DCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK_POS 12 +#define CP2520_PATTERN3_DCODE_ERROR_LANE0_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN3_DCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK 0x2000 +#define CP2520_PATTERN3_DCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK_POS 13 +#define CP2520_PATTERN3_DCODE_ERROR_LANE1_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN3_DCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK 0x4000 +#define CP2520_PATTERN3_DCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK_POS 14 +#define CP2520_PATTERN3_DCODE_ERROR_LANE2_DP_TRANS_P0_FLDMASK_LEN 1 + +#define CP2520_PATTERN3_DCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK 0x8000 +#define CP2520_PATTERN3_DCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK_POS 15 +#define CP2520_PATTERN3_DCODE_ERROR_LANE3_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_3480_DP_TRANS_P0 0x3480 +#define DP_EN_DP_TRANS_P0_FLDMASK 0x1 +#define DP_EN_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_EN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define HDCP_CAPABLE_DP_TRANS_P0_FLDMASK 0x2 +#define HDCP_CAPABLE_DP_TRANS_P0_FLDMASK_POS 1 +#define HDCP_CAPABLE_DP_TRANS_P0_FLDMASK_LEN 1 + +#define SELECT_INTERNAL_AN_DP_TRANS_P0_FLDMASK 0x4 +#define SELECT_INTERNAL_AN_DP_TRANS_P0_FLDMASK_POS 2 +#define SELECT_INTERNAL_AN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define AN_FREERUN_DP_TRANS_P0_FLDMASK 0x8 +#define AN_FREERUN_DP_TRANS_P0_FLDMASK_POS 3 +#define AN_FREERUN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define KM_GENERATED_DP_TRANS_P0_FLDMASK 0x10 +#define KM_GENERATED_DP_TRANS_P0_FLDMASK_POS 4 +#define KM_GENERATED_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REQ_BLOCK_CIPHER_AUTH_DP_TRANS_P0_FLDMASK 0x1000 +#define REQ_BLOCK_CIPHER_AUTH_DP_TRANS_P0_FLDMASK_POS 12 +#define REQ_BLOCK_CIPHER_AUTH_DP_TRANS_P0_FLDMASK_LEN 1 + +#define HDCP_1LANE_SEL_DP_TRANS_P0_FLDMASK 0x2000 +#define HDCP_1LANE_SEL_DP_TRANS_P0_FLDMASK_POS 13 +#define HDCP_1LANE_SEL_DP_TRANS_P0_FLDMASK_LEN 1 + +#define HDCP_24LANE_SEL_DP_TRANS_P0_FLDMASK 0x4000 +#define HDCP_24LANE_SEL_DP_TRANS_P0_FLDMASK_POS 14 +#define HDCP_24LANE_SEL_DP_TRANS_P0_FLDMASK_LEN 1 + +#define MST_EN_DP_TRANS_P0_FLDMASK 0x8000 +#define MST_EN_DP_TRANS_P0_FLDMASK_POS 15 +#define MST_EN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_34A4_DP_TRANS_P0 0x34A4 +#define EN_COPY_2LANE_MSA_DP_TRANS_P0_FLDMASK 0x1 +#define EN_COPY_2LANE_MSA_DP_TRANS_P0_FLDMASK_POS 0 +#define EN_COPY_2LANE_MSA_DP_TRANS_P0_FLDMASK_LEN 1 + +#define EN_COPY_4LANE_MSA_DP_TRANS_P0_FLDMASK 0x2 +#define EN_COPY_4LANE_MSA_DP_TRANS_P0_FLDMASK_POS 1 +#define EN_COPY_4LANE_MSA_DP_TRANS_P0_FLDMASK_LEN 1 + +#define LANE_NUM_DP_TRANS_P0_FLDMASK 0xc +#define LANE_NUM_DP_TRANS_P0_FLDMASK_POS 2 +#define LANE_NUM_DP_TRANS_P0_FLDMASK_LEN 2 + +#define HDCP22_AUTH_DONE_DP_TRANS_P0_FLDMASK 0x10 +#define HDCP22_AUTH_DONE_DP_TRANS_P0_FLDMASK_POS 4 +#define HDCP22_AUTH_DONE_DP_TRANS_P0_FLDMASK_LEN 1 + +#define DISCARD_UNUSED_CIPHER_DP_TRANS_P0_FLDMASK 0x20 +#define DISCARD_UNUSED_CIPHER_DP_TRANS_P0_FLDMASK_POS 5 +#define DISCARD_UNUSED_CIPHER_DP_TRANS_P0_FLDMASK_LEN 1 + +#define HDCP22_CIPHER_REVERSE_DP_TRANS_P0_FLDMASK 0x40 +#define HDCP22_CIPHER_REVERSE_DP_TRANS_P0_FLDMASK_POS 6 +#define HDCP22_CIPHER_REVERSE_DP_TRANS_P0_FLDMASK_LEN 1 + +#define MST_DELAY_CYCLE_FLAG_SEL_DP_TRANS_P0_FLDMASK 0x80 +#define MST_DELAY_CYCLE_FLAG_SEL_DP_TRANS_P0_FLDMASK_POS 7 +#define MST_DELAY_CYCLE_FLAG_SEL_DP_TRANS_P0_FLDMASK_LEN 1 + +#define TEST_CONFIG_HDCP22_DP_TRANS_P0_FLDMASK 0xf00 +#define TEST_CONFIG_HDCP22_DP_TRANS_P0_FLDMASK_POS 8 +#define TEST_CONFIG_HDCP22_DP_TRANS_P0_FLDMASK_LEN 4 + +#define R0_AVAILABLE_DP_TRANS_P0_FLDMASK 0x1000 +#define R0_AVAILABLE_DP_TRANS_P0_FLDMASK_POS 12 +#define R0_AVAILABLE_DP_TRANS_P0_FLDMASK_LEN 1 + +#define DPES_TX_HDCP22_DP_TRANS_P0_FLDMASK 0x2000 +#define DPES_TX_HDCP22_DP_TRANS_P0_FLDMASK_POS 13 +#define DPES_TX_HDCP22_DP_TRANS_P0_FLDMASK_LEN 1 + +#define DP_AES_OUT_RDY_L_DP_TRANS_P0_FLDMASK 0x4000 +#define DP_AES_OUT_RDY_L_DP_TRANS_P0_FLDMASK_POS 14 +#define DP_AES_OUT_RDY_L_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REPEATER_I_DP_TRANS_P0_FLDMASK 0x8000 +#define REPEATER_I_DP_TRANS_P0_FLDMASK_POS 15 +#define REPEATER_I_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_34A8_DP_TRANS_P0 0x34A8 +#define TEST_CONFIG_HDCP13_DP_TRANS_P0_FLDMASK 0xff00 +#define TEST_CONFIG_HDCP13_DP_TRANS_P0_FLDMASK_POS 8 +#define TEST_CONFIG_HDCP13_DP_TRANS_P0_FLDMASK_LEN 8 + +#define REG_34D0_DP_TRANS_P0 0x34D0 +#define TX_HDCP22_TYPE_DP_TRANS_P0_FLDMASK 0xff +#define TX_HDCP22_TYPE_DP_TRANS_P0_FLDMASK_POS 0 +#define TX_HDCP22_TYPE_DP_TRANS_P0_FLDMASK_LEN 8 + +#define PIPE_DELAY_EN_CNT_DP_TRANS_P0_FLDMASK 0xf00 +#define PIPE_DELAY_EN_CNT_DP_TRANS_P0_FLDMASK_POS 8 +#define PIPE_DELAY_EN_CNT_DP_TRANS_P0_FLDMASK_LEN 4 + +#define PIPE_DELAY_DP_TRANS_P0_FLDMASK 0xf000 +#define PIPE_DELAY_DP_TRANS_P0_FLDMASK_POS 12 +#define PIPE_DELAY_DP_TRANS_P0_FLDMASK_LEN 4 + +#define REG_34D4_DP_TRANS_P0 0x34D4 +#define DP_AES_INCTR_L_0_DP_TRANS_P0_FLDMASK 0xffff +#define DP_AES_INCTR_L_0_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_AES_INCTR_L_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_34D8_DP_TRANS_P0 0x34D8 +#define DP_AES_INCTR_L_1_DP_TRANS_P0_FLDMASK 0xffff +#define DP_AES_INCTR_L_1_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_AES_INCTR_L_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_34DC_DP_TRANS_P0 0x34DC +#define DP_AES_INCTR_L_2_DP_TRANS_P0_FLDMASK 0xffff +#define DP_AES_INCTR_L_2_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_AES_INCTR_L_2_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_34E0_DP_TRANS_P0 0x34E0 +#define DP_AES_INCTR_L_3_DP_TRANS_P0_FLDMASK 0xffff +#define DP_AES_INCTR_L_3_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_AES_INCTR_L_3_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_34E4_DP_TRANS_P0 0x34E4 +#define HDCP_TYPE_TX_0_DP_TRANS_P0_FLDMASK 0xffff +#define HDCP_TYPE_TX_0_DP_TRANS_P0_FLDMASK_POS 0 +#define HDCP_TYPE_TX_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_34E8_DP_TRANS_P0 0x34E8 +#define HDCP_TYPE_TX_1_DP_TRANS_P0_FLDMASK 0xffff +#define HDCP_TYPE_TX_1_DP_TRANS_P0_FLDMASK_POS 0 +#define HDCP_TYPE_TX_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_34EC_DP_TRANS_P0 0x34EC +#define HDCP_TYPE_TX_2_DP_TRANS_P0_FLDMASK 0xffff +#define HDCP_TYPE_TX_2_DP_TRANS_P0_FLDMASK_POS 0 +#define HDCP_TYPE_TX_2_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_34F0_DP_TRANS_P0 0x34F0 +#define HDCP_TYPE_TX_3_DP_TRANS_P0_FLDMASK 0xffff +#define HDCP_TYPE_TX_3_DP_TRANS_P0_FLDMASK_POS 0 +#define HDCP_TYPE_TX_3_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_34F4_DP_TRANS_P0 0x34F4 +#define SST_HDCP_TYPE_TX_DP_TRANS_P0_FLDMASK 0xff +#define SST_HDCP_TYPE_TX_DP_TRANS_P0_FLDMASK_POS 0 +#define SST_HDCP_TYPE_TX_DP_TRANS_P0_FLDMASK_LEN 8 + +#define PIPE_OV_VALUE_DP_TRANS_P0_FLDMASK 0xf00 +#define PIPE_OV_VALUE_DP_TRANS_P0_FLDMASK_POS 8 +#define PIPE_OV_VALUE_DP_TRANS_P0_FLDMASK_LEN 4 + +#define PIPE_OV_ENABLE_DP_TRANS_P0_FLDMASK 0x1000 +#define PIPE_OV_ENABLE_DP_TRANS_P0_FLDMASK_POS 12 +#define PIPE_OV_ENABLE_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_34F8_DP_TRANS_P0 0x34F8 +#define DP_AES_OUT_RDY_H_DP_TRANS_P0_FLDMASK 0x4000 +#define DP_AES_OUT_RDY_H_DP_TRANS_P0_FLDMASK_POS 14 +#define DP_AES_OUT_RDY_H_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_34FC_DP_TRANS_P0 0x34FC +#define HDCP_4P_TO_2P_FIFO_RST_CHK_DP_TRANS_P0_FLDMASK 0xff +#define HDCP_4P_TO_2P_FIFO_RST_CHK_DP_TRANS_P0_FLDMASK_POS 0 +#define HDCP_4P_TO_2P_FIFO_RST_CHK_DP_TRANS_P0_FLDMASK_LEN 8 + +#define HDCP_2P_TO_4P_FIFO_RST_CHK_DP_TRANS_P0_FLDMASK 0xff00 +#define HDCP_2P_TO_4P_FIFO_RST_CHK_DP_TRANS_P0_FLDMASK_POS 8 +#define HDCP_2P_TO_4P_FIFO_RST_CHK_DP_TRANS_P0_FLDMASK_LEN 8 + +#define REG_3500_DP_TRANS_P0 0x3500 +#define DP_AES_INCTR_H_0_DP_TRANS_P0_FLDMASK 0xffff +#define DP_AES_INCTR_H_0_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_AES_INCTR_H_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3504_DP_TRANS_P0 0x3504 +#define DP_AES_INCTR_H_1_DP_TRANS_P0_FLDMASK 0xffff +#define DP_AES_INCTR_H_1_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_AES_INCTR_H_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3508_DP_TRANS_P0 0x3508 +#define DP_AES_INCTR_H_2_DP_TRANS_P0_FLDMASK 0xffff +#define DP_AES_INCTR_H_2_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_AES_INCTR_H_2_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_350C_DP_TRANS_P0 0x350C +#define DP_AES_INCTR_H_3_DP_TRANS_P0_FLDMASK 0xffff +#define DP_AES_INCTR_H_3_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_AES_INCTR_H_3_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3510_DP_TRANS_P0 0x3510 +#define HDCP22_TYPE_DP_TRANS_P0_FLDMASK 0xff +#define HDCP22_TYPE_DP_TRANS_P0_FLDMASK_POS 0 +#define HDCP22_TYPE_DP_TRANS_P0_FLDMASK_LEN 8 + +#define REG_3540_DP_TRANS_P0 0x3540 +#define FEC_EN_DP_TRANS_P0_FLDMASK 0x1 +#define FEC_EN_DP_TRANS_P0_FLDMASK_POS 0 +#define FEC_EN_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_END_MODE_DP_TRANS_P0_FLDMASK 0x6 +#define FEC_END_MODE_DP_TRANS_P0_FLDMASK_POS 1 +#define FEC_END_MODE_DP_TRANS_P0_FLDMASK_LEN 2 + +#define FEC_CLOCK_EN_MODE_DP_TRANS_P0_FLDMASK 0x8 +#define FEC_CLOCK_EN_MODE_DP_TRANS_P0_FLDMASK_POS 3 +#define FEC_CLOCK_EN_MODE_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_FIFO_READ_START_DP_TRANS_P0_FLDMASK 0xf0 +#define FEC_FIFO_READ_START_DP_TRANS_P0_FLDMASK_POS 4 +#define FEC_FIFO_READ_START_DP_TRANS_P0_FLDMASK_LEN 4 + +#define FEC_FIFO_UNDER_POINT_DP_TRANS_P0_FLDMASK 0xf00 +#define FEC_FIFO_UNDER_POINT_DP_TRANS_P0_FLDMASK_POS 8 +#define FEC_FIFO_UNDER_POINT_DP_TRANS_P0_FLDMASK_LEN 4 + +#define FEC_FIFO_OVER_POINT_DP_TRANS_P0_FLDMASK 0xf000 +#define FEC_FIFO_OVER_POINT_DP_TRANS_P0_FLDMASK_POS 12 +#define FEC_FIFO_OVER_POINT_DP_TRANS_P0_FLDMASK_LEN 4 + +#define REG_3544_DP_TRANS_P0 0x3544 +#define FEC_FIFO_RST_DP_TRANS_P0_FLDMASK 0x1 +#define FEC_FIFO_RST_DP_TRANS_P0_FLDMASK_POS 0 +#define FEC_FIFO_RST_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_SUPPORT_DP_TRANS_P0_FLDMASK 0x2 +#define FEC_SUPPORT_DP_TRANS_P0_FLDMASK_POS 1 +#define FEC_SUPPORT_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_PATTERN_NEW_DP_TRANS_P0_FLDMASK 0x4 +#define FEC_PATTERN_NEW_DP_TRANS_P0_FLDMASK_POS 2 +#define FEC_PATTERN_NEW_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_INSERT_FIFO_EMPTY_DP_TRANS_P0_FLDMASK 0x10 +#define FEC_INSERT_FIFO_EMPTY_DP_TRANS_P0_FLDMASK_POS 4 +#define FEC_INSERT_FIFO_EMPTY_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_INSERT_FIFO_EMPTY_CLR_DP_TRANS_P0_FLDMASK 0x20 +#define FEC_INSERT_FIFO_EMPTY_CLR_DP_TRANS_P0_FLDMASK_POS 5 +#define FEC_INSERT_FIFO_EMPTY_CLR_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_INSERT_FIFO_FULL_DP_TRANS_P0_FLDMASK 0x40 +#define FEC_INSERT_FIFO_FULL_DP_TRANS_P0_FLDMASK_POS 6 +#define FEC_INSERT_FIFO_FULL_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_INSERT_FIFO_FULL_CLR_DP_TRANS_P0_FLDMASK 0x80 +#define FEC_INSERT_FIFO_FULL_CLR_DP_TRANS_P0_FLDMASK_POS 7 +#define FEC_INSERT_FIFO_FULL_CLR_DP_TRANS_P0_FLDMASK_LEN 1 + +#define PARITY_INTERLEAVER_DATA_INVERT_PIPE_SEL_DP_TRANS_P0_FLDMASK 0x700 +#define PARITY_INTERLEAVER_DATA_INVERT_PIPE_SEL_DP_TRANS_P0_FLDMASK_POS 8 +#define PARITY_INTERLEAVER_DATA_INVERT_PIPE_SEL_DP_TRANS_P0_FLDMASK_LEN 3 + +#define PAT_INIT_DISPARITY_FEC_DP_TRANS_P0_FLDMASK 0x800 +#define PAT_INIT_DISPARITY_FEC_DP_TRANS_P0_FLDMASK_POS 11 +#define PAT_INIT_DISPARITY_FEC_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_PARITY_DATA_LANE_SWAP_DP_TRANS_P0_FLDMASK 0x1000 +#define FEC_PARITY_DATA_LANE_SWAP_DP_TRANS_P0_FLDMASK_POS 12 +#define FEC_PARITY_DATA_LANE_SWAP_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_3548_DP_TRANS_P0 0x3548 +#define FEC_INSERT_SYMBOL_ERROR_CNT_LANE0_DP_TRANS_P0_FLDMASK 0x7 +#define FEC_INSERT_SYMBOL_ERROR_CNT_LANE0_DP_TRANS_P0_FLDMASK_POS 0 +#define FEC_INSERT_SYMBOL_ERROR_CNT_LANE0_DP_TRANS_P0_FLDMASK_LEN 3 + +#define FEC_INSERT_SYMBOL_ERROR_LANE0_DP_TRANS_P0_FLDMASK 0x8 +#define FEC_INSERT_SYMBOL_ERROR_LANE0_DP_TRANS_P0_FLDMASK_POS 3 +#define FEC_INSERT_SYMBOL_ERROR_LANE0_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_INSERT_SYMBOL_ERROR_CNT_LANE1_DP_TRANS_P0_FLDMASK 0x70 +#define FEC_INSERT_SYMBOL_ERROR_CNT_LANE1_DP_TRANS_P0_FLDMASK_POS 4 +#define FEC_INSERT_SYMBOL_ERROR_CNT_LANE1_DP_TRANS_P0_FLDMASK_LEN 3 + +#define FEC_INSERT_SYMBOL_ERROR_LANE1_DP_TRANS_P0_FLDMASK 0x80 +#define FEC_INSERT_SYMBOL_ERROR_LANE1_DP_TRANS_P0_FLDMASK_POS 7 +#define FEC_INSERT_SYMBOL_ERROR_LANE1_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_INSERT_SYMBOL_ERROR_CNT_LANE2_DP_TRANS_P0_FLDMASK 0x700 +#define FEC_INSERT_SYMBOL_ERROR_CNT_LANE2_DP_TRANS_P0_FLDMASK_POS 8 +#define FEC_INSERT_SYMBOL_ERROR_CNT_LANE2_DP_TRANS_P0_FLDMASK_LEN 3 + +#define FEC_INSERT_SYMBOL_ERROR_LANE2_DP_TRANS_P0_FLDMASK 0x800 +#define FEC_INSERT_SYMBOL_ERROR_LANE2_DP_TRANS_P0_FLDMASK_POS 11 +#define FEC_INSERT_SYMBOL_ERROR_LANE2_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_INSERT_SYMBOL_ERROR_CNT_LANE3_DP_TRANS_P0_FLDMASK 0x7000 +#define FEC_INSERT_SYMBOL_ERROR_CNT_LANE3_DP_TRANS_P0_FLDMASK_POS 12 +#define FEC_INSERT_SYMBOL_ERROR_CNT_LANE3_DP_TRANS_P0_FLDMASK_LEN 3 + +#define FEC_INSERT_SYMBOL_ERROR_LANE3_DP_TRANS_P0_FLDMASK 0x8000 +#define FEC_INSERT_SYMBOL_ERROR_LANE3_DP_TRANS_P0_FLDMASK_POS 15 +#define FEC_INSERT_SYMBOL_ERROR_LANE3_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_354C_DP_TRANS_P0 0x354C +#define FEC_CP_HIT_LANE0_DP_TRANS_P0_FLDMASK 0x1 +#define FEC_CP_HIT_LANE0_DP_TRANS_P0_FLDMASK_POS 0 +#define FEC_CP_HIT_LANE0_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_CP_HIT_LANE1_DP_TRANS_P0_FLDMASK 0x2 +#define FEC_CP_HIT_LANE1_DP_TRANS_P0_FLDMASK_POS 1 +#define FEC_CP_HIT_LANE1_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_CP_HIT_LANE2_DP_TRANS_P0_FLDMASK 0x4 +#define FEC_CP_HIT_LANE2_DP_TRANS_P0_FLDMASK_POS 2 +#define FEC_CP_HIT_LANE2_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_CP_HIT_LANE3_DP_TRANS_P0_FLDMASK 0x8 +#define FEC_CP_HIT_LANE3_DP_TRANS_P0_FLDMASK_POS 3 +#define FEC_CP_HIT_LANE3_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_CP_HIT_CLR_DP_TRANS_P0_FLDMASK 0x10 +#define FEC_CP_HIT_CLR_DP_TRANS_P0_FLDMASK_POS 4 +#define FEC_CP_HIT_CLR_DP_TRANS_P0_FLDMASK_LEN 1 + +#define FEC_ENCODE_TOP_TESTBUS_SEL_DP_TRANS_P0_FLDMASK 0x300 +#define FEC_ENCODE_TOP_TESTBUS_SEL_DP_TRANS_P0_FLDMASK_POS 8 +#define FEC_ENCODE_TOP_TESTBUS_SEL_DP_TRANS_P0_FLDMASK_LEN 2 + +#define FEC_INSERT_TOP_TESTBUS_SEL_DP_TRANS_P0_FLDMASK 0xc00 +#define FEC_INSERT_TOP_TESTBUS_SEL_DP_TRANS_P0_FLDMASK_POS 10 +#define FEC_INSERT_TOP_TESTBUS_SEL_DP_TRANS_P0_FLDMASK_LEN 2 + +#define REG_3550_DP_TRANS_P0 0x3550 +#define FEC_INSERT_FIFO_WCNT_DP_TRANS_P0_FLDMASK 0x1f +#define FEC_INSERT_FIFO_WCNT_DP_TRANS_P0_FLDMASK_POS 0 +#define FEC_INSERT_FIFO_WCNT_DP_TRANS_P0_FLDMASK_LEN 5 + +#define FEC_INSERT_FIFO_RCNT_DP_TRANS_P0_FLDMASK 0x1f00 +#define FEC_INSERT_FIFO_RCNT_DP_TRANS_P0_FLDMASK_POS 8 +#define FEC_INSERT_FIFO_RCNT_DP_TRANS_P0_FLDMASK_LEN 5 + +#define REG_3554_DP_TRANS_P0 0x3554 +#define FEC_CLK_GATE_DATA_CNT_0_DP_TRANS_P0_FLDMASK 0x7f +#define FEC_CLK_GATE_DATA_CNT_0_DP_TRANS_P0_FLDMASK_POS 0 +#define FEC_CLK_GATE_DATA_CNT_0_DP_TRANS_P0_FLDMASK_LEN 7 + +#define REG_3558_DP_TRANS_P0 0x3558 +#define FEC_CLK_GATE_DATA_CNT_1_0_DP_TRANS_P0_FLDMASK 0xffff +#define FEC_CLK_GATE_DATA_CNT_1_0_DP_TRANS_P0_FLDMASK_POS 0 +#define FEC_CLK_GATE_DATA_CNT_1_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_355C_DP_TRANS_P0 0x355C +#define FEC_CLK_GATE_DATA_CNT_1_1_DP_TRANS_P0_FLDMASK 0x3 +#define FEC_CLK_GATE_DATA_CNT_1_1_DP_TRANS_P0_FLDMASK_POS 0 +#define FEC_CLK_GATE_DATA_CNT_1_1_DP_TRANS_P0_FLDMASK_LEN 2 + +#define REG_3580_DP_TRANS_P0 0x3580 +#define DP_TX_TRANS_TESTBUS_SEL_DP_TRANS_P0_FLDMASK 0x1f +#define DP_TX_TRANS_TESTBUS_SEL_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_TX_TRANS_TESTBUS_SEL_DP_TRANS_P0_FLDMASK_LEN 5 + +#define POST_MISC_DATA_LANE0_OV_DP_TRANS_P0_FLDMASK 0x100 +#define POST_MISC_DATA_LANE0_OV_DP_TRANS_P0_FLDMASK_POS 8 +#define POST_MISC_DATA_LANE0_OV_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_DATA_LANE1_OV_DP_TRANS_P0_FLDMASK 0x200 +#define POST_MISC_DATA_LANE1_OV_DP_TRANS_P0_FLDMASK_POS 9 +#define POST_MISC_DATA_LANE1_OV_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_DATA_LANE2_OV_DP_TRANS_P0_FLDMASK 0x400 +#define POST_MISC_DATA_LANE2_OV_DP_TRANS_P0_FLDMASK_POS 10 +#define POST_MISC_DATA_LANE2_OV_DP_TRANS_P0_FLDMASK_LEN 1 + +#define POST_MISC_DATA_LANE3_OV_DP_TRANS_P0_FLDMASK 0x800 +#define POST_MISC_DATA_LANE3_OV_DP_TRANS_P0_FLDMASK_POS 11 +#define POST_MISC_DATA_LANE3_OV_DP_TRANS_P0_FLDMASK_LEN 1 + +#define REG_3584_DP_TRANS_P0 0x3584 +#define POST_MISC_DATA_LANE0_0_DP_TRANS_P0_FLDMASK 0xffff +#define POST_MISC_DATA_LANE0_0_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_DATA_LANE0_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3588_DP_TRANS_P0 0x3588 +#define POST_MISC_DATA_LANE0_1_DP_TRANS_P0_FLDMASK 0xffff +#define POST_MISC_DATA_LANE0_1_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_DATA_LANE0_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_358C_DP_TRANS_P0 0x358C +#define POST_MISC_DATA_LANE0_2_DP_TRANS_P0_FLDMASK 0xff +#define POST_MISC_DATA_LANE0_2_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_DATA_LANE0_2_DP_TRANS_P0_FLDMASK_LEN 8 + +#define REG_3590_DP_TRANS_P0 0x3590 +#define POST_MISC_DATA_LANE1_0_DP_TRANS_P0_FLDMASK 0xffff +#define POST_MISC_DATA_LANE1_0_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_DATA_LANE1_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3594_DP_TRANS_P0 0x3594 +#define POST_MISC_DATA_LANE1_1_DP_TRANS_P0_FLDMASK 0xffff +#define POST_MISC_DATA_LANE1_1_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_DATA_LANE1_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3598_DP_TRANS_P0 0x3598 +#define POST_MISC_DATA_LANE1_2_DP_TRANS_P0_FLDMASK 0xff +#define POST_MISC_DATA_LANE1_2_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_DATA_LANE1_2_DP_TRANS_P0_FLDMASK_LEN 8 + +#define REG_359C_DP_TRANS_P0 0x359C +#define POST_MISC_DATA_LANE2_0_DP_TRANS_P0_FLDMASK 0xffff +#define POST_MISC_DATA_LANE2_0_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_DATA_LANE2_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35A0_DP_TRANS_P0 0x35A0 +#define POST_MISC_DATA_LANE2_1_DP_TRANS_P0_FLDMASK 0xffff +#define POST_MISC_DATA_LANE2_1_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_DATA_LANE2_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35A4_DP_TRANS_P0 0x35A4 +#define POST_MISC_DATA_LANE2_2_DP_TRANS_P0_FLDMASK 0xff +#define POST_MISC_DATA_LANE2_2_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_DATA_LANE2_2_DP_TRANS_P0_FLDMASK_LEN 8 + +#define REG_35A8_DP_TRANS_P0 0x35A8 +#define POST_MISC_DATA_LANE3_0_DP_TRANS_P0_FLDMASK 0xffff +#define POST_MISC_DATA_LANE3_0_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_DATA_LANE3_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35AC_DP_TRANS_P0 0x35AC +#define POST_MISC_DATA_LANE3_1_DP_TRANS_P0_FLDMASK 0xffff +#define POST_MISC_DATA_LANE3_1_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_DATA_LANE3_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35B0_DP_TRANS_P0 0x35B0 +#define POST_MISC_DATA_LANE3_2_DP_TRANS_P0_FLDMASK 0xff +#define POST_MISC_DATA_LANE3_2_DP_TRANS_P0_FLDMASK_POS 0 +#define POST_MISC_DATA_LANE3_2_DP_TRANS_P0_FLDMASK_LEN 8 + +#define REG_35C0_DP_TRANS_P0 0x35C0 +#define SW_IRQ_SRC_DP_TRANS_P0_FLDMASK 0xffff +#define SW_IRQ_SRC_DP_TRANS_P0_FLDMASK_POS 0 +#define SW_IRQ_SRC_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35C4_DP_TRANS_P0 0x35C4 +#define SW_IRQ_MASK_DP_TRANS_P0_FLDMASK 0xffff +#define SW_IRQ_MASK_DP_TRANS_P0_FLDMASK_POS 0 +#define SW_IRQ_MASK_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35C8_DP_TRANS_P0 0x35C8 +#define SW_IRQ_CLR_DP_TRANS_P0_FLDMASK 0xffff +#define SW_IRQ_CLR_DP_TRANS_P0_FLDMASK_POS 0 +#define SW_IRQ_CLR_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35CC_DP_TRANS_P0 0x35CC +#define SW_IRQ_STATUS_DP_TRANS_P0_FLDMASK 0xffff +#define SW_IRQ_STATUS_DP_TRANS_P0_FLDMASK_POS 0 +#define SW_IRQ_STATUS_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35D0_DP_TRANS_P0 0x35D0 +#define SW_IRQ_FINAL_STATUS_DP_TRANS_P0_FLDMASK 0xffff +#define SW_IRQ_FINAL_STATUS_DP_TRANS_P0_FLDMASK_POS 0 +#define SW_IRQ_FINAL_STATUS_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35D4_DP_TRANS_P0 0x35D4 +#define SW_IRQ_RAW_STATUS_DP_TRANS_P0_FLDMASK 0xffff +#define SW_IRQ_RAW_STATUS_DP_TRANS_P0_FLDMASK_POS 0 +#define SW_IRQ_RAW_STATUS_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35D8_DP_TRANS_P0 0x35D8 +#define SW_IRQ_FORCE_DP_TRANS_P0_FLDMASK 0xffff +#define SW_IRQ_FORCE_DP_TRANS_P0_FLDMASK_POS 0 +#define SW_IRQ_FORCE_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35F0_DP_TRANS_P0 0x35F0 +#define DP_TRANSMITTER_DUMMY_RW_0_DP_TRANS_P0_FLDMASK 0xffff +#define DP_TRANSMITTER_DUMMY_RW_0_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_TRANSMITTER_DUMMY_RW_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35F4_DP_TRANS_P0 0x35F4 +#define DP_TRANSMITTER_DUMMY_RW_1_DP_TRANS_P0_FLDMASK 0xffff +#define DP_TRANSMITTER_DUMMY_RW_1_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_TRANSMITTER_DUMMY_RW_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35F8_DP_TRANS_P0 0x35F8 +#define DP_TRANSMITTER_DUMMY_R_0_DP_TRANS_P0_FLDMASK 0xffff +#define DP_TRANSMITTER_DUMMY_R_0_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_TRANSMITTER_DUMMY_R_0_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_35FC_DP_TRANS_P0 0x35FC +#define DP_TRANSMITTER_DUMMY_R_1_DP_TRANS_P0_FLDMASK 0xffff +#define DP_TRANSMITTER_DUMMY_R_1_DP_TRANS_P0_FLDMASK_POS 0 +#define DP_TRANSMITTER_DUMMY_R_1_DP_TRANS_P0_FLDMASK_LEN 16 + +#define REG_3600_AUX_TX_P0 0x3600 +#define DP_TX_SW_RESET_AUX_TX_P0_FLDMASK 0x1 +#define DP_TX_SW_RESET_AUX_TX_P0_FLDMASK_POS 0 +#define DP_TX_SW_RESET_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TOP_RESET_AUX_TX_P0_FLDMASK 0x2 +#define AUX_TOP_RESET_AUX_TX_P0_FLDMASK_POS 1 +#define AUX_TOP_RESET_AUX_TX_P0_FLDMASK_LEN 1 + +#define SOFTWARE_RESET_RESERVED_AUX_TX_P0_FLDMASK 0x1c +#define SOFTWARE_RESET_RESERVED_AUX_TX_P0_FLDMASK_POS 2 +#define SOFTWARE_RESET_RESERVED_AUX_TX_P0_FLDMASK_LEN 3 + +#define AUX_CLK_EN_AUX_TX_P0_FLDMASK 0x100 +#define AUX_CLK_EN_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_CLK_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_CLK_INV_AUX_TX_P0_FLDMASK 0x200 +#define AUX_CLK_INV_AUX_TX_P0_FLDMASK_POS 9 +#define AUX_CLK_INV_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_CLK_SEL_AUX_TX_P0_FLDMASK 0xc00 +#define AUX_CLK_SEL_AUX_TX_P0_FLDMASK_POS 10 +#define AUX_CLK_SEL_AUX_TX_P0_FLDMASK_LEN 2 + +#define REG_3604_AUX_TX_P0 0x3604 +#define AUX_TX_FSM_SOFTWARE_RESET_AUX_TX_P0_FLDMASK 0x8000 +#define AUX_TX_FSM_SOFTWARE_RESET_AUX_TX_P0_FLDMASK_POS 15 +#define AUX_TX_FSM_SOFTWARE_RESET_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TX_PHY_SOFTWARE_RESET_AUX_TX_P0_FLDMASK 0x4000 +#define AUX_TX_PHY_SOFTWARE_RESET_AUX_TX_P0_FLDMASK_POS 14 +#define AUX_TX_PHY_SOFTWARE_RESET_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_FSM_SOFTWARE_RESET_AUX_TX_P0_FLDMASK 0x2000 +#define AUX_RX_FSM_SOFTWARE_RESET_AUX_TX_P0_FLDMASK_POS 13 +#define AUX_RX_FSM_SOFTWARE_RESET_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_PHY_SOFTWARE_RESET_AUX_TX_P0_FLDMASK 0x1000 +#define AUX_RX_PHY_SOFTWARE_RESET_AUX_TX_P0_FLDMASK_POS 12 +#define AUX_RX_PHY_SOFTWARE_RESET_AUX_TX_P0_FLDMASK_LEN 1 + +#define DP_TX_TESTBUS_SEL_AUX_TX_P0_FLDMASK 0xff +#define DP_TX_TESTBUS_SEL_AUX_TX_P0_FLDMASK_POS 0 +#define DP_TX_TESTBUS_SEL_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3608_AUX_TX_P0 0x3608 +#define DP_TX_INT_STATUS_AUX_TX_P0_FLDMASK 0xffff +#define DP_TX_INT_STATUS_AUX_TX_P0_FLDMASK_POS 0 +#define DP_TX_INT_STATUS_AUX_TX_P0_FLDMASK_LEN 16 + +#define REG_360C_AUX_TX_P0 0x360C +#define AUX_SWAP_AUX_TX_P0_FLDMASK 0x8000 +#define AUX_SWAP_AUX_TX_P0_FLDMASK_POS 15 +#define AUX_SWAP_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_AUX_REPLY_MCU_AUX_TX_P0_FLDMASK 0x4000 +#define AUX_AUX_REPLY_MCU_AUX_TX_P0_FLDMASK_POS 14 +#define AUX_AUX_REPLY_MCU_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TIMEOUT_CMP_MASK_AUX_TX_P0_FLDMASK 0x2000 +#define AUX_TIMEOUT_CMP_MASK_AUX_TX_P0_FLDMASK_POS 13 +#define AUX_TIMEOUT_CMP_MASK_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TIMEOUT_THR_AUX_TX_P0_FLDMASK 0x1fff +#define AUX_TIMEOUT_THR_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TIMEOUT_THR_AUX_TX_P0_FLDMASK_LEN 13 + +#define REG_3610_AUX_TX_P0 0x3610 +#define AUX_EDID_REPLY_MCU_AUX_TX_P0_FLDMASK 0x8000 +#define AUX_EDID_REPLY_MCU_AUX_TX_P0_FLDMASK_POS 15 +#define AUX_EDID_REPLY_MCU_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_EDID_ADDR_AUX_TX_P0_FLDMASK 0x7f00 +#define AUX_EDID_ADDR_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_EDID_ADDR_AUX_TX_P0_FLDMASK_LEN 7 + +#define AUX_MCCS_REPLY_MCU_AUX_TX_P0_FLDMASK 0x80 +#define AUX_MCCS_REPLY_MCU_AUX_TX_P0_FLDMASK_POS 7 +#define AUX_MCCS_REPLY_MCU_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_MCCS_ADDR_AUX_TX_P0_FLDMASK 0x7f +#define AUX_MCCS_ADDR_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_MCCS_ADDR_AUX_TX_P0_FLDMASK_LEN 7 + +#define REG_3614_AUX_TX_P0 0x3614 +#define AUX_TIMEOUT_THR_EXTEN_AUX_TX_P0_FLDMASK 0x4000 +#define AUX_TIMEOUT_THR_EXTEN_AUX_TX_P0_FLDMASK_POS 14 +#define AUX_TIMEOUT_THR_EXTEN_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_AVERAGE_SEL_AUX_TX_P0_FLDMASK 0x3000 +#define AUX_RX_AVERAGE_SEL_AUX_TX_P0_FLDMASK_POS 12 +#define AUX_RX_AVERAGE_SEL_AUX_TX_P0_FLDMASK_LEN 2 + +#define AUX_RX_SYNC_PATTERN_THR_AUX_TX_P0_FLDMASK 0xf00 +#define AUX_RX_SYNC_PATTERN_THR_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_RX_SYNC_PATTERN_THR_AUX_TX_P0_FLDMASK_LEN 4 + +#define AUX_RX_DECODE_SEL_AUX_TX_P0_FLDMASK 0x80 +#define AUX_RX_DECODE_SEL_AUX_TX_P0_FLDMASK_POS 7 +#define AUX_RX_DECODE_SEL_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_UI_CNT_THR_AUX_TX_P0_FLDMASK 0x7f +#define AUX_RX_UI_CNT_THR_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_UI_CNT_THR_AUX_TX_P0_FLDMASK_LEN 7 + +#define REG_3618_AUX_TX_P0 0x3618 +#define AUX_RX_DP_REV_AUX_TX_P0_FLDMASK 0x400 +#define AUX_RX_DP_REV_AUX_TX_P0_FLDMASK_POS 10 +#define AUX_RX_DP_REV_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_FIFO_FULL_AUX_TX_P0_FLDMASK 0x200 +#define AUX_RX_FIFO_FULL_AUX_TX_P0_FLDMASK_POS 9 +#define AUX_RX_FIFO_FULL_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_FIFO_EMPTY_AUX_TX_P0_FLDMASK 0x100 +#define AUX_RX_FIFO_EMPTY_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_RX_FIFO_EMPTY_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_FIFO_READ_POINTER_AUX_TX_P0_FLDMASK 0xf0 +#define AUX_RX_FIFO_READ_POINTER_AUX_TX_P0_FLDMASK_POS 4 +#define AUX_RX_FIFO_READ_POINTER_AUX_TX_P0_FLDMASK_LEN 4 + +#define AUX_RX_FIFO_WRITE_POINTER_AUX_TX_P0_FLDMASK 0xf +#define AUX_RX_FIFO_WRITE_POINTER_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_FIFO_WRITE_POINTER_AUX_TX_P0_FLDMASK_LEN 4 + +#define REG_361C_AUX_TX_P0 0x361C +#define AUX_RX_DATA_BYTE_CNT_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_RX_DATA_BYTE_CNT_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_RX_DATA_BYTE_CNT_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_RESERVED_RO_0_AUX_TX_P0_FLDMASK 0xff +#define AUX_RESERVED_RO_0_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RESERVED_RO_0_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3620_AUX_TX_P0 0x3620 +#define AUX_RD_MODE_AUX_TX_P0_FLDMASK 0x200 +#define AUX_RD_MODE_AUX_TX_P0_FLDMASK_POS 9 +#define AUX_RD_MODE_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_FIFO_READ_PULSE_TX_P0_FLDMASK 0x100 +#define AUX_RX_FIFO_R_PULSE_TX_P0_FLDMASK_POS 8 +#define AUX_RX_FIFO_READ_PULSE_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_FIFO_READ_DATA_AUX_TX_P0_FLDMASK 0xff +#define AUX_RX_FIFO_READ_DATA_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_FIFO_READ_DATA_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3624_AUX_TX_P0 0x3624 +#define AUX_RX_REPLY_COMMAND_AUX_TX_P0_FLDMASK 0xf +#define AUX_RX_REPLY_COMMAND_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_REPLY_COMMAND_AUX_TX_P0_FLDMASK_LEN 4 + +#define AUX_RX_REPLY_ADDRESS_NONE_AUX_TX_P0_FLDMASK 0xf00 +#define AUX_RX_REPLY_ADDRESS_NONE_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_RX_REPLY_ADDRESS_NONE_AUX_TX_P0_FLDMASK_LEN 4 + +#define REG_3628_AUX_TX_P0 0x3628 +#define AUX_RESERVED_RO_1_AUX_TX_P0_FLDMASK 0xfc00 +#define AUX_RESERVED_RO_1_AUX_TX_P0_FLDMASK_POS 10 +#define AUX_RESERVED_RO_1_AUX_TX_P0_FLDMASK_LEN 6 + +#define AUX_RX_PHY_STATE_AUX_TX_P0_FLDMASK 0x3ff +#define AUX_RX_PHY_STATE_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_PHY_STATE_AUX_TX_P0_FLDMASK_LEN 10 + +#define REG_362C_AUX_TX_P0 0x362C +#define AUX_NO_LENGTH_AUX_TX_P0_FLDMASK 0x1 +#define AUX_NO_LENGTH_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_NO_LENGTH_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TX_AUXTX_OV_EN_AUX_TX_P0_FLDMASK 0x2 +#define AUX_TX_AUXTX_OV_EN_AUX_TX_P0_FLDMASK_POS 1 +#define AUX_TX_AUXTX_OV_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RESERVED_RW_0_AUX_TX_P0_FLDMASK 0xfffc +#define AUX_RESERVED_RW_0_AUX_TX_P0_FLDMASK_POS 2 +#define AUX_RESERVED_RW_0_AUX_TX_P0_FLDMASK_LEN 14 + +#define REG_3630_AUX_TX_P0 0x3630 +#define AUX_TX_REQUEST_READY_AUX_TX_P0_FLDMASK 0x8 +#define AUX_TX_REQUEST_READY_AUX_TX_P0_FLDMASK_POS 3 +#define AUX_TX_REQUEST_READY_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TX_PRE_NUM_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_TX_PRE_NUM_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_TX_PRE_NUM_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3634_AUX_TX_P0 0x3634 +#define AUX_TX_OVER_SAMPLE_RATE_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_TX_OVER_SAMPLE_RATE_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_TX_OVER_SAMPLE_RATE_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_TX_FIFO_WRITE_DATA_AUX_TX_P0_FLDMASK 0xff +#define AUX_TX_FIFO_WRITE_DATA_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TX_FIFO_WRITE_DATA_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3638_AUX_TX_P0 0x3638 +#define AUX_TX_FIFO_READ_POINTER_AUX_TX_P0_FLDMASK 0xf0 +#define AUX_TX_FIFO_READ_POINTER_AUX_TX_P0_FLDMASK_POS 4 +#define AUX_TX_FIFO_READ_POINTER_AUX_TX_P0_FLDMASK_LEN 4 + +#define AUX_TX_FIFO_WRITE_POINTER_AUX_TX_P0_FLDMASK 0xf +#define AUX_TX_FIFO_WRITE_POINTER_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TX_FIFO_WRITE_POINTER_AUX_TX_P0_FLDMASK_LEN 4 + +#define REG_363C_AUX_TX_P0 0x363C +#define AUX_TX_FIFO_FULL_AUX_TX_P0_FLDMASK 0x1000 +#define AUX_TX_FIFO_FULL_AUX_TX_P0_FLDMASK_POS 12 +#define AUX_TX_FIFO_FULL_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TX_FIFO_EMPTY_AUX_TX_P0_FLDMASK 0x800 +#define AUX_TX_FIFO_EMPTY_AUX_TX_P0_FLDMASK_POS 11 +#define AUX_TX_FIFO_EMPTY_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TX_PHY_STATE_AUX_TX_P0_FLDMASK 0x7ff +#define AUX_TX_PHY_STATE_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TX_PHY_STATE_AUX_TX_P0_FLDMASK_LEN 11 + +#define REG_3640_AUX_TX_P0 0x3640 +#define AUX_RX_RECV_COMPLETE_IRQ_TX_P0_FLDMASK 0x40 +#define AUX_RX_AUX_RECV_COMPLETE_IRQ_AUX_TX_P0_FLDMASK_POS 6 +#define AUX_RX_AUX_RECV_COMPLETE_IRQ_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_EDID_RECV_COMPLETE_IRQ_AUX_TX_P0_FLDMASK 0x20 +#define AUX_RX_EDID_RECV_COMPLETE_IRQ_AUX_TX_P0_FLDMASK_POS 5 +#define AUX_RX_EDID_RECV_COMPLETE_IRQ_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_MCCS_RECV_COMPLETE_IRQ_AUX_TX_P0_FLDMASK 0x10 +#define AUX_RX_MCCS_RECV_COMPLETE_IRQ_AUX_TX_P0_FLDMASK_POS 4 +#define AUX_RX_MCCS_RECV_COMPLETE_IRQ_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_CMD_RECV_IRQ_AUX_TX_P0_FLDMASK 0x8 +#define AUX_RX_CMD_RECV_IRQ_AUX_TX_P0_FLDMASK_POS 3 +#define AUX_RX_CMD_RECV_IRQ_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_ADDR_RECV_IRQ_AUX_TX_P0_FLDMASK 0x4 +#define AUX_RX_ADDR_RECV_IRQ_AUX_TX_P0_FLDMASK_POS 2 +#define AUX_RX_ADDR_RECV_IRQ_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_DATA_RECV_IRQ_AUX_TX_P0_FLDMASK 0x2 +#define AUX_RX_DATA_RECV_IRQ_AUX_TX_P0_FLDMASK_POS 1 +#define AUX_RX_DATA_RECV_IRQ_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_400US_TIMEOUT_IRQ_AUX_TX_P0_FLDMASK 0x1 +#define AUX_400US_TIMEOUT_IRQ_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_400US_TIMEOUT_IRQ_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_3644_AUX_TX_P0 0x3644 +#define MCU_REQUEST_COMMAND_AUX_TX_P0_FLDMASK 0xf +#define MCU_REQUEST_COMMAND_AUX_TX_P0_FLDMASK_POS 0 +#define MCU_REQUEST_COMMAND_AUX_TX_P0_FLDMASK_LEN 4 + +#define AUX_STATE_AUX_TX_P0_FLDMASK 0xf00 +#define AUX_STATE_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_STATE_AUX_TX_P0_FLDMASK_LEN 4 + +#define REG_3648_AUX_TX_P0 0x3648 +#define MCU_REQUEST_ADDRESS_LSB_AUX_TX_P0_FLDMASK 0xffff +#define MCU_REQUEST_ADDRESS_LSB_AUX_TX_P0_FLDMASK_POS 0 +#define MCU_REQUEST_ADDRESS_LSB_AUX_TX_P0_FLDMASK_LEN 16 + +#define REG_364C_AUX_TX_P0 0x364C +#define MCU_REQUEST_ADDRESS_MSB_AUX_TX_P0_FLDMASK 0xf +#define MCU_REQUEST_ADDRESS_MSB_AUX_TX_P0_FLDMASK_POS 0 +#define MCU_REQUEST_ADDRESS_MSB_AUX_TX_P0_FLDMASK_LEN 4 + +#define REG_3650_AUX_TX_P0 0x3650 +#define MCU_REQUEST_DATA_NUM_AUX_TX_P0_FLDMASK 0xf000 +#define MCU_REQ_DATA_NUM_AUX_TX_P0_FLDMASK_POS 12 +#define MCU_REQUEST_DATA_NUM_AUX_TX_P0_FLDMASK_LEN 4 + +#define PHY_FIFO_RST_AUX_TX_P0_FLDMASK 0x200 +#define PHY_FIFO_RST_AUX_TX_P0_FLDMASK_POS 9 +#define PHY_FIFO_RST_AUX_TX_P0_FLDMASK_LEN 1 + +#define MCU_ACK_TRANSACTION_COMPLETE_AUX_TX_P0_FLDMASK 0x100 +#define MCU_ACK_TRAN_COMPLETE_AUX_TX_P0_FLDMASK_POS 8 +#define MCU_ACK_TRANSACTION_COMPLETE_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TEST_CONFIG_AUX_TX_P0_FLDMASK 0xff +#define AUX_TEST_CONFIG_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TEST_CONFIG_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3654_AUX_TX_P0 0x3654 +#define TST_AUXRX_AUX_TX_P0_FLDMASK 0xff +#define TST_AUXRX_AUX_TX_P0_FLDMASK_POS 0 +#define TST_AUXRX_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3658_AUX_TX_P0 0x3658 +#define AUX_TX_OV_EN_AUX_TX_P0_FLDMASK 0x1 +#define AUX_TX_OV_EN_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TX_OV_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TX_VALUE_SET_AUX_TX_P0_FLDMASK 0x2 +#define AUX_TX_VALUE_SET_AUX_TX_P0_FLDMASK_POS 1 +#define AUX_TX_VALUE_SET_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TX_OEN_SET_AUX_TX_P0_FLDMASK 0x4 +#define AUX_TX_OEN_SET_AUX_TX_P0_FLDMASK_POS 2 +#define AUX_TX_OEN_SET_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TX_OV_MODE_AUX_TX_P0_FLDMASK 0x8 +#define AUX_TX_OV_MODE_AUX_TX_P0_FLDMASK_POS 3 +#define AUX_TX_OV_MODE_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TX_OFF_AUX_TX_P0_FLDMASK 0x10 +#define AUX_TX_OFF_AUX_TX_P0_FLDMASK_POS 4 +#define AUX_TX_OFF_AUX_TX_P0_FLDMASK_LEN 1 + +#define EXT_AUX_PHY_MODE_AUX_TX_P0_FLDMASK 0x20 +#define EXT_AUX_PHY_MODE_AUX_TX_P0_FLDMASK_POS 5 +#define EXT_AUX_PHY_MODE_AUX_TX_P0_FLDMASK_LEN 1 + +#define EXT_TX_OEN_POLARITY_AUX_TX_P0_FLDMASK 0x40 +#define EXT_TX_OEN_POLARITY_AUX_TX_P0_FLDMASK_POS 6 +#define EXT_TX_OEN_POLARITY_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_OEN_SET_AUX_TX_P0_FLDMASK 0x80 +#define AUX_RX_OEN_SET_AUX_TX_P0_FLDMASK_POS 7 +#define AUX_RX_OEN_SET_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_365C_AUX_TX_P0 0x365C +#define AUX_RCTRL_AUX_TX_P0_FLDMASK 0x1f +#define AUX_RCTRL_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RCTRL_AUX_TX_P0_FLDMASK_LEN 5 + +#define AUX_RPD_AUX_TX_P0_FLDMASK 0x20 +#define AUX_RPD_AUX_TX_P0_FLDMASK_POS 5 +#define AUX_RPD_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_RX_SEL_AUX_TX_P0_FLDMASK 0x40 +#define AUX_RX_SEL_AUX_TX_P0_FLDMASK_POS 6 +#define AUX_RX_SEL_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUXRX_DEBOUNCE_SEL_AUX_TX_P0_FLDMASK 0x80 +#define AUXRX_DEBOUNCE_SEL_AUX_TX_P0_FLDMASK_POS 7 +#define AUXRX_DEBOUNCE_SEL_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUXRXVALID_DEBOUNCE_SEL_AUX_TX_P0_FLDMASK 0x100 +#define AUXRXVALID_DEBOUNCE_SEL_AUX_TX_P0_FLDMASK_POS 8 +#define AUXRXVALID_DEBOUNCE_SEL_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_DEBOUNCE_CLKSEL_AUX_TX_P0_FLDMASK 0xe00 +#define AUX_DEBOUNCE_CLKSEL_AUX_TX_P0_FLDMASK_POS 9 +#define AUX_DEBOUNCE_CLKSEL_AUX_TX_P0_FLDMASK_LEN 3 + +#define DATA_VALID_DEBOUNCE_SEL_AUX_TX_P0_FLDMASK 0x1000 +#define DATA_VALID_DEBOUNCE_SEL_AUX_TX_P0_FLDMASK_POS 12 +#define DATA_VALID_DEBOUNCE_SEL_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_3660_AUX_TX_P0 0x3660 +#define DP_TX_INT_MASK_AUX_TX_P0_FLDMASK 0xffff +#define DP_TX_INT_MASK_AUX_TX_P0_FLDMASK_POS 0 +#define DP_TX_INT_MASK_AUX_TX_P0_FLDMASK_LEN 16 + +#define REG_3664_AUX_TX_P0 0x3664 +#define DP_TX_INT_FORCE_AUX_TX_P0_FLDMASK 0xffff +#define DP_TX_INT_FORCE_AUX_TX_P0_FLDMASK_POS 0 +#define DP_TX_INT_FORCE_AUX_TX_P0_FLDMASK_LEN 16 + +#define REG_3668_AUX_TX_P0 0x3668 +#define DP_TX_INT_CLR_AUX_TX_P0_FLDMASK 0xffff +#define DP_TX_INT_CLR_AUX_TX_P0_FLDMASK_POS 0 +#define DP_TX_INT_CLR_AUX_TX_P0_FLDMASK_LEN 16 + +#define REG_366C_AUX_TX_P0 0x366C +#define XTAL_FREQ_AUX_TX_P0_FLDMASK 0xff00 +#define XTAL_FREQ_AUX_TX_P0_FLDMASK_POS 8 +#define XTAL_FREQ_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3670_AUX_TX_P0 0x3670 +#define DPTX_GPIO_OEN_AUX_TX_P0_FLDMASK 0x7 +#define DPTX_GPIO_OEN_AUX_TX_P0_FLDMASK_POS 0 +#define DPTX_GPIO_OEN_AUX_TX_P0_FLDMASK_LEN 3 + +#define DPTX_GPIO_OUT_AUX_TX_P0_FLDMASK 0x38 +#define DPTX_GPIO_OUT_AUX_TX_P0_FLDMASK_POS 3 +#define DPTX_GPIO_OUT_AUX_TX_P0_FLDMASK_LEN 3 + +#define DPTX_GPIO_IN_AUX_TX_P0_FLDMASK 0x1c0 +#define DPTX_GPIO_IN_AUX_TX_P0_FLDMASK_POS 6 +#define DPTX_GPIO_IN_AUX_TX_P0_FLDMASK_LEN 3 + +#define AUX_IN_AUX_TX_P0_FLDMASK 0x200 +#define AUX_IN_AUX_TX_P0_FLDMASK_POS 9 +#define AUX_IN_AUX_TX_P0_FLDMASK_LEN 1 + +#define PD_AUX_RTERM_AUX_TX_P0_FLDMASK 0x400 +#define PD_AUX_RTERM_AUX_TX_P0_FLDMASK_POS 10 +#define PD_AUX_RTERM_AUX_TX_P0_FLDMASK_LEN 1 + +#define DPTX_GPIO_EN_AUX_TX_P0_FLDMASK 0x7000 +#define DPTX_GPIO_EN_AUX_TX_P0_FLDMASK_POS 12 +#define DPTX_GPIO_EN_AUX_TX_P0_FLDMASK_LEN 3 + +#define REG_3674_AUX_TX_P0 0x3674 +#define AUXTX_ISEL_AUX_TX_P0_FLDMASK 0x1f +#define AUXTX_ISEL_AUX_TX_P0_FLDMASK_POS 0 +#define AUXTX_ISEL_AUX_TX_P0_FLDMASK_LEN 5 + +#define AUXRX_VTH_AUX_TX_P0_FLDMASK 0x60 +#define AUXRX_VTH_AUX_TX_P0_FLDMASK_POS 5 +#define AUXRX_VTH_AUX_TX_P0_FLDMASK_LEN 2 + +#define EN_RXCM_BOOST_AUX_TX_P0_FLDMASK 0x80 +#define EN_RXCM_BOOST_AUX_TX_P0_FLDMASK_POS 7 +#define EN_RXCM_BOOST_AUX_TX_P0_FLDMASK_LEN 1 + +#define DPTX_AUX_R_CTRL_AUX_TX_P0_FLDMASK 0x1f00 +#define DPTX_AUX_R_CTRL_AUX_TX_P0_FLDMASK_POS 8 +#define DPTX_AUX_R_CTRL_AUX_TX_P0_FLDMASK_LEN 5 + +#define I2C_EN_AUXN_AUX_TX_P0_FLDMASK 0x2000 +#define I2C_EN_AUXN_AUX_TX_P0_FLDMASK_POS 13 +#define I2C_EN_AUXN_AUX_TX_P0_FLDMASK_LEN 1 + +#define I2C_EN_AUXP_AUX_TX_P0_FLDMASK 0x4000 +#define I2C_EN_AUXP_AUX_TX_P0_FLDMASK_POS 14 +#define I2C_EN_AUXP_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_3678_AUX_TX_P0 0x3678 +#define TEST_AUXTX_AUX_TX_P0_FLDMASK 0xff00 +#define TEST_AUXTX_AUX_TX_P0_FLDMASK_POS 8 +#define TEST_AUXTX_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_367C_AUX_TX_P0 0x367C +#define DPTX_AUXRX_AUX_TX_P0_FLDMASK 0x4 +#define DPTX_AUXRX_AUX_TX_P0_FLDMASK_POS 2 +#define DPTX_AUXRX_AUX_TX_P0_FLDMASK_LEN 1 + +#define DPTX_AUXRX_VALID_AUX_TX_P0_FLDMASK 0x8 +#define DPTX_AUXRX_VALID_AUX_TX_P0_FLDMASK_POS 3 +#define DPTX_AUXRX_VALID_AUX_TX_P0_FLDMASK_LEN 1 + +#define DPTX_AUXRX_WO_TH_AUX_TX_P0_FLDMASK 0x10 +#define DPTX_AUXRX_WO_TH_AUX_TX_P0_FLDMASK_POS 4 +#define DPTX_AUXRX_WO_TH_AUX_TX_P0_FLDMASK_LEN 1 + +#define DPTX_AUXRX_L_TEST_AUX_TX_P0_FLDMASK 0x20 +#define DPTX_AUXRX_L_TEST_AUX_TX_P0_FLDMASK_POS 5 +#define DPTX_AUXRX_L_TEST_AUX_TX_P0_FLDMASK_LEN 1 + +#define EN_AUXRX_AUX_TX_P0_FLDMASK 0x400 +#define EN_AUXRX_AUX_TX_P0_FLDMASK_POS 10 +#define EN_AUXRX_AUX_TX_P0_FLDMASK_LEN 1 + +#define EN_AUXTX_AUX_TX_P0_FLDMASK 0x800 +#define EN_AUXTX_AUX_TX_P0_FLDMASK_POS 11 +#define EN_AUXTX_AUX_TX_P0_FLDMASK_LEN 1 + +#define EN_AUX_AUX_TX_P0_FLDMASK 0x1000 +#define EN_AUX_AUX_TX_P0_FLDMASK_POS 12 +#define EN_AUX_AUX_TX_P0_FLDMASK_LEN 1 + +#define EN_5V_TOL_AUX_TX_P0_FLDMASK 0x2000 +#define EN_5V_TOL_AUX_TX_P0_FLDMASK_POS 13 +#define EN_5V_TOL_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUXP_I_AUX_TX_P0_FLDMASK 0x4000 +#define AUXP_I_AUX_TX_P0_FLDMASK_POS 14 +#define AUXP_I_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUXN_I_AUX_TX_P0_FLDMASK 0x8000 +#define AUXN_I_AUX_TX_P0_FLDMASK_POS 15 +#define AUXN_I_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_3680_AUX_TX_P0 0x3680 +#define AUX_SWAP_TX_AUX_TX_P0_FLDMASK 0x1 +#define AUX_SWAP_TX_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_SWAP_TX_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_3684_AUX_TX_P0 0x3684 +#define TEST_IO_LOOPBK_AUX_TX_P0_FLDMASK 0x1f +#define TEST_IO_LOOPBK_AUX_TX_P0_FLDMASK_POS 0 +#define TEST_IO_LOOPBK_AUX_TX_P0_FLDMASK_LEN 5 + +#define RO_IO_LOOPBKT_AUX_TX_P0_FLDMASK 0x300 +#define RO_IO_LOOPBKT_AUX_TX_P0_FLDMASK_POS 8 +#define RO_IO_LOOPBKT_AUX_TX_P0_FLDMASK_LEN 2 + +#define SEL_TCLK_AUX_TX_P0_FLDMASK 0x3000 +#define SEL_TCLK_AUX_TX_P0_FLDMASK_POS 12 +#define SEL_TCLK_AUX_TX_P0_FLDMASK_LEN 2 + +#define TESTEN_ASIO_AUX_TX_P0_FLDMASK 0x4000 +#define TESTEN_ASIO_AUX_TX_P0_FLDMASK_POS 14 +#define TESTEN_ASIO_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_3688_AUX_TX_P0 0x3688 +#define TEST_AUXRX_VTH_AUX_TX_P0_FLDMASK 0x7 +#define TEST_AUXRX_VTH_AUX_TX_P0_FLDMASK_POS 0 +#define TEST_AUXRX_VTH_AUX_TX_P0_FLDMASK_LEN 3 + +#define REG_368C_AUX_TX_P0 0x368C +#define RX_FIFO_DONE_AUX_TX_P0_FLDMASK 0x1 +#define RX_FIFO_DONE_AUX_TX_P0_FLDMASK_POS 0 +#define RX_FIFO_DONE_AUX_TX_P0_FLDMASK_LEN 1 + +#define RX_FIFO_DONE_CLR_AUX_TX_P0_FLDMASK 0x2 +#define RX_FIFO_DONE_CLR_AUX_TX_P0_FLDMASK_POS 1 +#define RX_FIFO_DONE_CLR_AUX_TX_P0_FLDMASK_LEN 1 + +#define TX_FIFO_DONE_AUX_TX_P0_FLDMASK 0x4 +#define TX_FIFO_DONE_AUX_TX_P0_FLDMASK_POS 2 +#define TX_FIFO_DONE_AUX_TX_P0_FLDMASK_LEN 1 + +#define TX_FIFO_DONE_CLR_AUX_TX_P0_FLDMASK 0x8 +#define TX_FIFO_DONE_CLR_AUX_TX_P0_FLDMASK_POS 3 +#define TX_FIFO_DONE_CLR_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_3690_AUX_TX_P0 0x3690 +#define DATA_LOW_CNT_THRD_AUX_TX_P0_FLDMASK 0x7f +#define DATA_LOW_CNT_THRD_AUX_TX_P0_FLDMASK_POS 0 +#define DATA_LOW_CNT_THRD_AUX_TX_P0_FLDMASK_LEN 7 + +#define RX_REPLY_COMPLETE_MODE_AUX_TX_P0_FLDMASK 0x100 +#define RX_REPLY_COMPLETE_MODE_AUX_TX_P0_FLDMASK_POS 8 +#define RX_REPLY_COMPLETE_MODE_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_36C0_AUX_TX_P0 0x36C0 +#define RX_GTC_VALUE_0_AUX_TX_P0_FLDMASK 0xffff +#define RX_GTC_VALUE_0_AUX_TX_P0_FLDMASK_POS 0 +#define RX_GTC_VALUE_0_AUX_TX_P0_FLDMASK_LEN 16 + +#define REG_36C4_AUX_TX_P0 0x36C4 +#define RX_GTC_VALUE_1_AUX_TX_P0_FLDMASK 0xffff +#define RX_GTC_VALUE_1_AUX_TX_P0_FLDMASK_POS 0 +#define RX_GTC_VALUE_1_AUX_TX_P0_FLDMASK_LEN 16 + +#define REG_36C8_AUX_TX_P0 0x36C8 +#define RX_GTC_MASTER_REQ_AUX_TX_P0_FLDMASK 0x1 +#define RX_GTC_MASTER_REQ_AUX_TX_P0_FLDMASK_POS 0 +#define RX_GTC_MASTER_REQ_AUX_TX_P0_FLDMASK_LEN 1 + +#define TX_GTC_VALUE_PHASE_SKEW_EN_AUX_TX_P0_FLDMASK 0x2 +#define TX_GTC_VALUE_PHASE_SKEW_EN_AUX_TX_P0_FLDMASK_POS 1 +#define TX_GTC_VALUE_PHASE_SKEW_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define RX_GTC_FREQ_LOCK_DONE_AUX_TX_P0_FLDMASK 0x4 +#define RX_GTC_FREQ_LOCK_DONE_AUX_TX_P0_FLDMASK_POS 2 +#define RX_GTC_FREQ_LOCK_DONE_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_36CC_AUX_TX_P0 0x36CC +#define RX_GTC_PHASE_SKEW_OFFSET_AUX_TX_P0_FLDMASK 0xffff +#define RX_GTC_PHASE_SKEW_OFFSET_AUX_TX_P0_FLDMASK_POS 0 +#define RX_GTC_PHASE_SKEW_OFFSET_AUX_TX_P0_FLDMASK_LEN 16 + +#define REG_36D0_AUX_TX_P0 0x36D0 +#define TX_GTC_VALUE_0_AUX_TX_P0_FLDMASK 0xffff +#define TX_GTC_VALUE_0_AUX_TX_P0_FLDMASK_POS 0 +#define TX_GTC_VALUE_0_AUX_TX_P0_FLDMASK_LEN 16 + +#define REG_36D4_AUX_TX_P0 0x36D4 +#define TX_GTC_VALUE_1_AUX_TX_P0_FLDMASK 0xffff +#define TX_GTC_VALUE_1_AUX_TX_P0_FLDMASK_POS 0 +#define TX_GTC_VALUE_1_AUX_TX_P0_FLDMASK_LEN 16 + +#define REG_36D8_AUX_TX_P0 0x36D8 +#define RX_GTC_VALUE_PHASE_SKEW_EN_AUX_TX_P0_FLDMASK 0x1 +#define RX_GTC_VALUE_PHASE_SKEW_EN_AUX_TX_P0_FLDMASK_POS 0 +#define RX_GTC_VALUE_PHASE_SKEW_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define TX_GTC_FREQ_LOCK_DONE_AUX_TX_P0_FLDMASK 0x2 +#define TX_GTC_FREQ_LOCK_DONE_AUX_TX_P0_FLDMASK_POS 1 +#define TX_GTC_FREQ_LOCK_DONE_AUX_TX_P0_FLDMASK_LEN 1 + +#define TX_GTC_VALUE_PHASE_ADJUST_EN_AUX_TX_P0_FLDMASK 0x4 +#define TX_GTC_VALUE_PHASE_ADJUST_EN_AUX_TX_P0_FLDMASK_POS 2 +#define TX_GTC_VALUE_PHASE_ADJUST_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_36DC_AUX_TX_P0 0x36DC +#define TX_GTC_PHASE_SKEW_OFFSET_AUX_TX_P0_FLDMASK 0xffff +#define TX_GTC_PHASE_SKEW_OFFSET_AUX_TX_P0_FLDMASK_POS 0 +#define TX_GTC_PHASE_SKEW_OFFSET_AUX_TX_P0_FLDMASK_LEN 16 + +#define REG_36E0_AUX_TX_P0 0x36E0 +#define GTC_STATE_AUX_TX_P0_FLDMASK 0xf +#define GTC_STATE_AUX_TX_P0_FLDMASK_POS 0 +#define GTC_STATE_AUX_TX_P0_FLDMASK_LEN 4 + +#define RX_MASTER_LOCK_ACCQUI_CHKTIME_AUX_TX_P0_FLDMASK 0xf0 +#define RX_MASTER_LOCK_ACCQUI_CHKTIME_AUX_TX_P0_FLDMASK_POS 4 +#define RX_MASTER_LOCK_ACCQUI_CHKTIME_AUX_TX_P0_FLDMASK_LEN 4 + +#define FREQ_AUX_TX_P0_FLDMASK 0xff00 +#define FREQ_AUX_TX_P0_FLDMASK_POS 8 +#define FREQ_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_36E4_AUX_TX_P0 0x36E4 +#define GTC_TX_1M_ADD_VAL_AUX_TX_P0_FLDMASK 0x3ff +#define GTC_TX_1M_ADD_VAL_AUX_TX_P0_FLDMASK_POS 0 +#define GTC_TX_1M_ADD_VAL_AUX_TX_P0_FLDMASK_LEN 10 + +#define GTC_TX_10M_ADD_VAL_AUX_TX_P0_FLDMASK 0xf000 +#define GTC_TX_10M_ADD_VAL_AUX_TX_P0_FLDMASK_POS 12 +#define GTC_TX_10M_ADD_VAL_AUX_TX_P0_FLDMASK_LEN 4 + +#define REG_36E8_AUX_TX_P0 0x36E8 +#define CHK_TX_PH_ADJUST_CHK_EN_AUX_TX_P0_FLDMASK 0x1 +#define CHK_TX_PH_ADJUST_CHK_EN_AUX_TX_P0_FLDMASK_POS 0 +#define CHK_TX_PH_ADJUST_CHK_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define TX_SLAVE_WAIT_SKEW_EN_AUX_TX_P0_FLDMASK 0x2 +#define TX_SLAVE_WAIT_SKEW_EN_AUX_TX_P0_FLDMASK_POS 1 +#define TX_SLAVE_WAIT_SKEW_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define GTC_SEND_RCV_EN_AUX_TX_P0_FLDMASK 0x4 +#define GTC_SEND_RCV_EN_AUX_TX_P0_FLDMASK_POS 2 +#define GTC_SEND_RCV_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUXTX_HW_ACCS_EN_AUX_TX_P0_FLDMASK 0x8 +#define AUXTX_HW_ACCS_EN_AUX_TX_P0_FLDMASK_POS 3 +#define AUXTX_HW_ACCS_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define GTC_TX_MASTER_EN_AUX_TX_P0_FLDMASK 0x10 +#define GTC_TX_MASTER_EN_AUX_TX_P0_FLDMASK_POS 4 +#define GTC_TX_MASTER_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define GTC_TX_SLAVE_EN_AUX_TX_P0_FLDMASK 0x20 +#define GTC_TX_SLAVE_EN_AUX_TX_P0_FLDMASK_POS 5 +#define GTC_TX_SLAVE_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define OFFSET_TRY_NUM_AUX_TX_P0_FLDMASK 0xf00 +#define OFFSET_TRY_NUM_AUX_TX_P0_FLDMASK_POS 8 +#define OFFSET_TRY_NUM_AUX_TX_P0_FLDMASK_LEN 4 + +#define HW_SW_ARBIT_AUX_TX_P0_FLDMASK 0xc000 +#define HW_SW_ARBIT_AUX_TX_P0_FLDMASK_POS 14 +#define HW_SW_ARBIT_AUX_TX_P0_FLDMASK_LEN 2 + +#define REG_36EC_AUX_TX_P0 0x36EC +#define GTC_DB_OPTION_AUX_TX_P0_FLDMASK 0x7 +#define GTC_DB_OPTION_AUX_TX_P0_FLDMASK_POS 0 +#define GTC_DB_OPTION_AUX_TX_P0_FLDMASK_LEN 3 + +#define TX_SLAVE_CHK_RX_LCK_EN_AUX_TX_P0_FLDMASK 0x8 +#define TX_SLAVE_CHK_RX_LCK_EN_AUX_TX_P0_FLDMASK_POS 3 +#define TX_SLAVE_CHK_RX_LCK_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define GTC_PUL_DELAY_AUX_TX_P0_FLDMASK 0xff00 +#define GTC_PUL_DELAY_AUX_TX_P0_FLDMASK_POS 8 +#define GTC_PUL_DELAY_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_36F0_AUX_TX_P0 0x36F0 +#define GTC_TX_LCK_ACQ_SEND_NUM_AUX_TX_P0_FLDMASK 0x1f +#define GTC_TX_LCK_ACQ_SEND_NUM_AUX_TX_P0_FLDMASK_POS 0 +#define GTC_TX_LCK_ACQ_SEND_NUM_AUX_TX_P0_FLDMASK_LEN 5 + +#define REG_3700_AUX_TX_P0 0x3700 +#define AUX_PHYWAKE_MODE_AUX_TX_P0_FLDMASK 0x1 +#define AUX_PHYWAKE_MODE_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_PHYWAKE_MODE_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_PHYWAKE_ONLY_AUX_TX_P0_FLDMASK 0x2 +#define AUX_PHYWAKE_ONLY_AUX_TX_P0_FLDMASK_POS 1 +#define AUX_PHYWAKE_ONLY_AUX_TX_P0_FLDMASK_LEN 1 + +#define PHYWAKE_PRE_NUM_AUX_TX_P0_FLDMASK 0x70 +#define PHYWAKE_PRE_NUM_AUX_TX_P0_FLDMASK_POS 4 +#define PHYWAKE_PRE_NUM_AUX_TX_P0_FLDMASK_LEN 3 + +#define REG_3704_AUX_TX_P0 0x3704 +#define AUX_PHYWAKE_ACK_RECV_COMPLETE_IRQ_AUX_TX_P0_FLDMASK 0x1 +#define AUX_PHYWAKE_ACK_RECV_COMPLETE_IRQ_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_PHYWAKE_ACK_RECV_COMPLETE_IRQ_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TX_FIFO_WRITE_DATA_NEW_MODE_TOGGLE_AUX_TX_P0_FLDMASK 0x2 +#define AUX_TX_FIFO_WRITE_DATA_NEW_MODE_TOGGLE_AUX_TX_P0_FLDMASK_POS 1 +#define AUX_TX_FIFO_WRITE_DATA_NEW_MODE_TOGGLE_AUX_TX_P0_FLDMASK_LEN 1 + +#define AUX_TX_FIFO_NEW_MODE_EN_AUX_TX_P0_FLDMASK 0x4 +#define AUX_TX_FIFO_NEW_MODE_EN_AUX_TX_P0_FLDMASK_POS 2 +#define AUX_TX_FIFO_NEW_MODE_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_3708_AUX_TX_P0 0x3708 +#define AUX_TX_FIFO_WRITE_DATA_BYTE0_AUX_TX_P0_FLDMASK 0xff +#define AUX_TX_FIFO_WRITE_DATA_BYTE0_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TX_FIFO_WRITE_DATA_BYTE0_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_TX_FIFO_WRITE_DATA_BYTE1_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_TX_FIFO_WRITE_DATA_BYTE1_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_TX_FIFO_WRITE_DATA_BYTE1_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_370C_AUX_TX_P0 0x370C +#define AUX_TX_FIFO_WRITE_DATA_BYTE2_AUX_TX_P0_FLDMASK 0xff +#define AUX_TX_FIFO_WRITE_DATA_BYTE2_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TX_FIFO_WRITE_DATA_BYTE2_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_TX_FIFO_WRITE_DATA_BYTE3_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_TX_FIFO_WRITE_DATA_BYTE3_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_TX_FIFO_WRITE_DATA_BYTE3_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3710_AUX_TX_P0 0x3710 +#define AUX_TX_FIFO_WRITE_DATA_BYTE4_AUX_TX_P0_FLDMASK 0xff +#define AUX_TX_FIFO_WRITE_DATA_BYTE4_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TX_FIFO_WRITE_DATA_BYTE4_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_TX_FIFO_WRITE_DATA_BYTE5_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_TX_FIFO_WRITE_DATA_BYTE5_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_TX_FIFO_WRITE_DATA_BYTE5_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3714_AUX_TX_P0 0x3714 +#define AUX_TX_FIFO_WRITE_DATA_BYTE6_AUX_TX_P0_FLDMASK 0xff +#define AUX_TX_FIFO_WRITE_DATA_BYTE6_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TX_FIFO_WRITE_DATA_BYTE6_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_TX_FIFO_WRITE_DATA_BYTE7_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_TX_FIFO_WRITE_DATA_BYTE7_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_TX_FIFO_WRITE_DATA_BYTE7_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3718_AUX_TX_P0 0x3718 +#define AUX_TX_FIFO_WRITE_DATA_BYTE8_AUX_TX_P0_FLDMASK 0xff +#define AUX_TX_FIFO_WRITE_DATA_BYTE8_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TX_FIFO_WRITE_DATA_BYTE8_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_TX_FIFO_WRITE_DATA_BYTE9_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_TX_FIFO_WRITE_DATA_BYTE9_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_TX_FIFO_WRITE_DATA_BYTE9_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_371C_AUX_TX_P0 0x371C +#define AUX_TX_FIFO_WRITE_DATA_BYTE10_AUX_TX_P0_FLDMASK 0xff +#define AUX_TX_FIFO_WRITE_DATA_BYTE10_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TX_FIFO_WRITE_DATA_BYTE10_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_TX_FIFO_WRITE_DATA_BYTE11_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_TX_FIFO_WRITE_DATA_BYTE11_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_TX_FIFO_WRITE_DATA_BYTE11_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3720_AUX_TX_P0 0x3720 +#define AUX_TX_FIFO_WRITE_DATA_BYTE12_AUX_TX_P0_FLDMASK 0xff +#define AUX_TX_FIFO_WRITE_DATA_BYTE12_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TX_FIFO_WRITE_DATA_BYTE12_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_TX_FIFO_WRITE_DATA_BYTE13_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_TX_FIFO_WRITE_DATA_BYTE13_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_TX_FIFO_WRITE_DATA_BYTE13_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3724_AUX_TX_P0 0x3724 +#define AUX_TX_FIFO_WRITE_DATA_BYTE14_AUX_TX_P0_FLDMASK 0xff +#define AUX_TX_FIFO_WRITE_DATA_BYTE14_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_TX_FIFO_WRITE_DATA_BYTE14_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_TX_FIFO_WRITE_DATA_BYTE15_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_TX_FIFO_WRITE_DATA_BYTE15_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_TX_FIFO_WRITE_DATA_BYTE15_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3740_AUX_TX_P0 0x3740 +#define HPD_OEN_AUX_TX_P0_FLDMASK 0x1 +#define HPD_OEN_AUX_TX_P0_FLDMASK_POS 0 +#define HPD_OEN_AUX_TX_P0_FLDMASK_LEN 1 + +#define HPD_I_AUX_TX_P0_FLDMASK 0x2 +#define HPD_I_AUX_TX_P0_FLDMASK_POS 1 +#define HPD_I_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_3744_AUX_TX_P0 0x3744 +#define TEST_AUXRX_AUX_TX_P0_FLDMASK 0xffff +#define TEST_AUXRX_AUX_TX_P0_FLDMASK_POS 0 +#define TEST_AUXRX_AUX_TX_P0_FLDMASK_LEN 16 + +#define REG_3748_AUX_TX_P0 0x3748 +#define CK_XTAL_AUX_TX_P0_FLDMASK 0x1 +#define CK_XTAL_AUX_TX_P0_FLDMASK_POS 0 +#define CK_XTAL_AUX_TX_P0_FLDMASK_LEN 1 + +#define EN_FT_MUX_AUX_TX_P0_FLDMASK 0x2 +#define EN_FT_MUX_AUX_TX_P0_FLDMASK_POS 1 +#define EN_FT_MUX_AUX_TX_P0_FLDMASK_LEN 1 + +#define EN_GPIO_AUX_TX_P0_FLDMASK 0x4 +#define EN_GPIO_AUX_TX_P0_FLDMASK_POS 2 +#define EN_GPIO_AUX_TX_P0_FLDMASK_LEN 1 + +#define EN_HBR3_AUX_TX_P0_FLDMASK 0x8 +#define EN_HBR3_AUX_TX_P0_FLDMASK_POS 3 +#define EN_HBR3_AUX_TX_P0_FLDMASK_LEN 1 + +#define PD_NGATE_OV_AUX_TX_P0_FLDMASK 0x10 +#define PD_NGATE_OV_AUX_TX_P0_FLDMASK_POS 4 +#define PD_NGATE_OV_AUX_TX_P0_FLDMASK_LEN 1 + +#define PD_NGATE_OVEN_AUX_TX_P0_FLDMASK 0x20 +#define PD_NGATE_OVEN_AUX_TX_P0_FLDMASK_POS 5 +#define PD_NGATE_OVEN_AUX_TX_P0_FLDMASK_LEN 1 + +#define PD_VCM_OP_AUX_TX_P0_FLDMASK 0x40 +#define PD_VCM_OP_AUX_TX_P0_FLDMASK_POS 6 +#define PD_VCM_OP_AUX_TX_P0_FLDMASK_LEN 1 + +#define CK_XTAL_SW_AUX_TX_P0_FLDMASK 0x80 +#define CK_XTAL_SW_AUX_TX_P0_FLDMASK_POS 7 +#define CK_XTAL_SW_AUX_TX_P0_FLDMASK_LEN 1 + +#define SEL_FTMUX_AUX_TX_P0_FLDMASK 0x300 +#define SEL_FTMUX_AUX_TX_P0_FLDMASK_POS 8 +#define SEL_FTMUX_AUX_TX_P0_FLDMASK_LEN 2 + +#define GTC_EN_AUX_TX_P0_FLDMASK 0x400 +#define GTC_EN_AUX_TX_P0_FLDMASK_POS 10 +#define GTC_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define GTC_DATA_IN_MODE_AUX_TX_P0_FLDMASK 0x800 +#define GTC_DATA_IN_MODE_AUX_TX_P0_FLDMASK_POS 11 +#define GTC_DATA_IN_MODE_AUX_TX_P0_FLDMASK_LEN 1 + +#define REG_374C_AUX_TX_P0 0x374C +#define AUX_VALID_DB_TH_AUX_TX_P0_FLDMASK 0xf +#define AUX_VALID_DB_TH_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_VALID_DB_TH_AUX_TX_P0_FLDMASK_LEN 4 + +#define CLK_AUX_MUX_VALID_EN_AUX_TX_P0_FLDMASK 0x100 +#define CLK_AUX_MUX_VALID_EN_AUX_TX_P0_FLDMASK_POS 8 +#define CLK_AUX_MUX_VALID_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define CLK_AUX_MUX_VALID_INV_AUX_TX_P0_FLDMASK 0x200 +#define CLK_AUX_MUX_VALID_INV_AUX_TX_P0_FLDMASK_POS 9 +#define CLK_AUX_MUX_VALID_INV_AUX_TX_P0_FLDMASK_LEN 1 + +#define CLK_AUX_MUX_VALID_SEL_AUX_TX_P0_FLDMASK 0xc00 +#define CLK_AUX_MUX_VALID_SEL_AUX_TX_P0_FLDMASK_POS 10 +#define CLK_AUX_MUX_VALID_SEL_AUX_TX_P0_FLDMASK_LEN 2 + +#define CLK_AUX_MUX_DATA_EN_AUX_TX_P0_FLDMASK 0x1000 +#define CLK_AUX_MUX_DATA_EN_AUX_TX_P0_FLDMASK_POS 12 +#define CLK_AUX_MUX_DATA_EN_AUX_TX_P0_FLDMASK_LEN 1 + +#define CLK_AUX_MUX_DATA_INV_AUX_TX_P0_FLDMASK 0x2000 +#define CLK_AUX_MUX_DATA_INV_AUX_TX_P0_FLDMASK_POS 13 +#define CLK_AUX_MUX_DATA_INV_AUX_TX_P0_FLDMASK_LEN 1 + +#define CLK_AUX_MUX_DATA_SEL_AUX_TX_P0_FLDMASK 0xc000 +#define CLK_AUX_MUX_DATA_SEL_AUX_TX_P0_FLDMASK_POS 14 +#define CLK_AUX_MUX_DATA_SEL_AUX_TX_P0_FLDMASK_LEN 2 + +#define REG_3780_AUX_TX_P0 0x3780 +#define AUX_RX_FIFO_DATA0_AUX_TX_P0_FLDMASK 0xff +#define AUX_RX_FIFO_DATA0_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_FIFO_DATA0_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_RX_FIFO_DATA1_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_RX_FIFO_DATA1_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_RX_FIFO_DATA1_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3784_AUX_TX_P0 0x3784 +#define AUX_RX_FIFO_DATA2_AUX_TX_P0_FLDMASK 0xff +#define AUX_RX_FIFO_DATA2_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_FIFO_DATA2_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_RX_FIFO_DATA3_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_RX_FIFO_DATA3_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_RX_FIFO_DATA3_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3788_AUX_TX_P0 0x3788 +#define AUX_RX_FIFO_DATA4_AUX_TX_P0_FLDMASK 0xff +#define AUX_RX_FIFO_DATA4_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_FIFO_DATA4_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_RX_FIFO_DATA5_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_RX_FIFO_DATA5_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_RX_FIFO_DATA5_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_378C_AUX_TX_P0 0x378C +#define AUX_RX_FIFO_DATA6_AUX_TX_P0_FLDMASK 0xff +#define AUX_RX_FIFO_DATA6_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_FIFO_DATA6_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_RX_FIFO_DATA7_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_RX_FIFO_DATA7_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_RX_FIFO_DATA7_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3790_AUX_TX_P0 0x3790 +#define AUX_RX_FIFO_DATA8_AUX_TX_P0_FLDMASK 0xff +#define AUX_RX_FIFO_DATA8_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_FIFO_DATA8_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_RX_FIFO_DATA9_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_RX_FIFO_DATA9_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_RX_FIFO_DATA9_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3794_AUX_TX_P0 0x3794 +#define AUX_RX_FIFO_DATA10_AUX_TX_P0_FLDMASK 0xff +#define AUX_RX_FIFO_DATA10_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_FIFO_DATA10_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_RX_FIFO_DATA11_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_RX_FIFO_DATA11_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_RX_FIFO_DATA11_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_3798_AUX_TX_P0 0x3798 +#define AUX_RX_FIFO_DATA12_AUX_TX_P0_FLDMASK 0xff +#define AUX_RX_FIFO_DATA12_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_FIFO_DATA12_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_RX_FIFO_DATA13_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_RX_FIFO_DATA13_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_RX_FIFO_DATA13_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_379C_AUX_TX_P0 0x379C +#define AUX_RX_FIFO_DATA14_AUX_TX_P0_FLDMASK 0xff +#define AUX_RX_FIFO_DATA14_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_RX_FIFO_DATA14_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_RX_FIFO_DATA15_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_RX_FIFO_DATA15_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_RX_FIFO_DATA15_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_37C0_AUX_TX_P0 0x37C0 +#define AUX_DRV_EN_TIME_THRD_AUX_TX_P0_FLDMASK 0x1f +#define AUX_DRV_EN_TIME_THRD_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_DRV_EN_TIME_THRD_AUX_TX_P0_FLDMASK_LEN 5 + +#define AUX_DRV_DIS_TIME_THRD_AUX_TX_P0_FLDMASK 0x1f00 +#define AUX_DRV_DIS_TIME_THRD_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_DRV_DIS_TIME_THRD_AUX_TX_P0_FLDMASK_LEN 5 + +#define REG_37C4_AUX_TX_P0 0x37C4 +#define AUX_WAIT_TRANSFER_TIME_THRD_AUX_TX_P0_FLDMASK 0xff +#define AUX_WAIT_TRANSFER_TIME_THRD_AUX_TX_P0_FLDMASK_POS 0 +#define AUX_WAIT_TRANSFER_TIME_THRD_AUX_TX_P0_FLDMASK_LEN 8 + +#define AUX_WAIT_RECEIVE_TIME_THRD_AUX_TX_P0_FLDMASK 0xff00 +#define AUX_WAIT_RECEIVE_TIME_THRD_AUX_TX_P0_FLDMASK_POS 8 +#define AUX_WAIT_RECEIVE_TIME_THRD_AUX_TX_P0_FLDMASK_LEN 8 + +#define REG_37C8_AUX_TX_P0 0x37C8 +#define MTK_ATOP_EN_AUX_TX_P0_FLDMASK 0x1 +#define MTK_ATOP_EN_AUX_TX_P0_FLDMASK_POS 0 +#define MTK_ATOP_EN_AUX_TX_P0_FLDMASK_LEN 1 + +/*-----------------------------------------------------*/ +#define DP_TX_TOP_PWR_STATE (TOP_OFFSET + 0x00) +#define DP_PWR_STATE_FLDMASK 0x3 +#define DP_PWR_STATE_FLDMASK_POS 0 +#define DP_PWR_STATE_FLDMASK_LEN 2 + +#define DP_SCRAMB_EN_FLDMASK 0x4 +#define DP_SCRAMB_EN_FLDMASK_POS 2 +#define DP_SCRAMB_EN_FLDMASK_LEN 1 + +#define DP_DISP_RST_FLDMASK 0x8 +#define DP_DISP_RST_FLDMASK_POS 3 +#define DP_DISP_RST_FLDMASK_LEN 1 + +#define DP_TX_TOP_SWING_EMP (TOP_OFFSET + 0x04) +#define DP_TX0_VOLT_SWING_FLDMASK 0x3 +#define DP_TX0_VOLT_SWING_FLDMASK_POS 0 +#define DP_TX0_VOLT_SWING_FLDMASK_LEN 2 + +#define DP_TX0_PRE_EMPH_FLDMASK 0xc +#define DP_TX0_PRE_EMPH_FLDMASK_POS 2 +#define DP_TX0_PRE_EMPH_FLDMASK_LEN 2 + +#define DP_TX0_DATAK_FLDMASK 0xf0 +#define DP_TX0_DATAK_FLDMASK_POS 4 +#define DP_TX0_DATAK_FLDMASK_LEN 4 + +#define DP_TX1_VOLT_SWING_FLDMASK 0x300 +#define DP_TX1_VOLT_SWING_FLDMASK_POS 8 +#define DP_TX1_VOLT_SWING_FLDMASK_LEN 2 + +#define DP_TX1_PRE_EMPH_FLDMASK 0xc00 +#define DP_TX1_PRE_EMPH_FLDMASK_POS 10 +#define DP_TX1_PRE_EMPH_FLDMASK_LEN 2 + +#define DP_TX1_DATAK_FLDMASK 0xf000 +#define DP_TX1_DATAK_FLDMASK_POS 12 +#define DP_TX1_DATAK_FLDMASK_LEN 4 + +#define DP_TX2_VOLT_SWING_FLDMASK 0x30000 +#define DP_TX2_VOLT_SWING_FLDMASK_POS 16 +#define DP_TX2_VOLT_SWING_FLDMASK_LEN 2 + +#define DP_TX2_PRE_EMPH_FLDMASK 0xc0000 +#define DP_TX2_PRE_EMPH_FLDMASK_POS 18 +#define DP_TX2_PRE_EMPH_FLDMASK_LEN 2 + +#define DP_TX2_DATAK_FLDMASK 0xf00000 +#define DP_TX2_DATAK_FLDMASK_POS 20 +#define DP_TX2_DATAK_FLDMASK_LEN 4 + +#define DP_TX3_VOLT_SWING_FLDMASK 0x3000000 +#define DP_TX3_VOLT_SWING_FLDMASK_POS 24 +#define DP_TX3_VOLT_SWING_FLDMASK_LEN 2 + +#define DP_TX3_PRE_EMPH_FLDMASK 0xc000000 +#define DP_TX3_PRE_EMPH_FLDMASK_POS 26 +#define DP_TX3_PRE_EMPH_FLDMASK_LEN 2 + +#define DP_TX3_DATAK_FLDMASK 0xf0000000L +#define DP_TX3_DATAK_FLDMASK_POS 28 +#define DP_TX3_DATAK_FLDMASK_LEN 4 + +#define DP_TX_TOP_APB_WSTRB (TOP_OFFSET + 0x10) +#define APB_WSTRB_FLDMASK 0xf +#define APB_WSTRB_FLDMASK_POS 0 +#define APB_WSTRB_FLDMASK_LEN 4 + +#define APB_WSTRB_EN_FLDMASK 0x10 +#define APB_WSTRB_EN_FLDMASK_POS 4 +#define APB_WSTRB_EN_FLDMASK_LEN 1 + +#define DP_TX_TOP_RESERVED (TOP_OFFSET + 0x14) +#define RESERVED_FLDMASK 0xffffffffL +#define RESERVED_FLDMASK_POS 0 +#define RESERVED_FLDMASK_LEN 32 + +#define DP_TX_TOP_RESET_AND_PROBE (TOP_OFFSET + 0x20) +#define SW_RST_B_FLDMASK 0x1f +#define SW_RST_B_FLDMASK_POS 0 +#define SW_RST_B_FLDMASK_LEN 5 + +#define PROBE_LOW_SEL_FLDMASK 0x38000 +#define PROBE_LOW_SEL_FLDMASK_POS 15 +#define PROBE_LOW_SEL_FLDMASK_LEN 3 + +#define PROBE_HIGH_SEL_FLDMASK 0x1c0000 +#define PROBE_HIGH_SEL_FLDMASK_POS 18 +#define PROBE_HIGH_SEL_FLDMASK_LEN 3 + +#define PROBE_LOW_HIGH_SWAP_FLDMASK 0x200000 +#define PROBE_LOW_HIGH_SWAP_FLDMASK_POS 21 +#define PROBE_LOW_HIGH_SWAP_FLDMASK_LEN 1 + +#define DP_TX_TOP_SOFT_PROBE (TOP_OFFSET + 0x24) +#define SW_PROBE_VALUE_FLDMASK 0xffffffffL +#define SW_PROBE_VALUE_FLDMASK_POS 0 +#define SW_PROBE_VALUE_FLDMASK_LEN 32 + +#define DP_TX_TOP_IRQ_STATUS (TOP_OFFSET + 0x28) +#define RGS_IRQ_STATUS_FLDMASK 0x7 +#define RGS_IRQ_STATUS_FLDMASK_POS 0 +#define RGS_IRQ_STATUS_FLDMASK_LEN 3 + +#define DP_TX_TOP_IRQ_MASK (TOP_OFFSET + 0x2C) +#define IRQ_MASK_FLDMASK 0x7 +#define IRQ_MASK_FLDMASK_POS 0 +#define IRQ_MASK_FLDMASK_LEN 3 + +#define IRQ_OUT_HIGH_ACTIVE_FLDMASK 0x100 +#define IRQ_OUT_HIGH_ACTIVE_FLDMASK_POS 8 +#define IRQ_OUT_HIGH_ACTIVE_FLDMASK_LEN 1 + +#define DP_TX_TOP_BLACK_SCREEN (TOP_OFFSET + 0x30) +#define BLACK_SCREEN_ENABLE_FLDMASK 0x1 +#define BLACK_SCREEN_ENABLE_FLDMASK_POS 0 +#define BLACK_SCREEN_ENABLE_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_PD (TOP_OFFSET + 0x38) +#define MEM_ISO_EN_FLDMASK 0x1 +#define MEM_ISO_EN_FLDMASK_POS 0 +#define MEM_ISO_EN_FLDMASK_LEN 1 + +#define MEM_PD_FLDMASK 0x2 +#define MEM_PD_FLDMASK_POS 1 +#define MEM_PD_FLDMASK_LEN 1 + +#define FUSE_SEL_FLDMASK 0x4 +#define FUSE_SEL_FLDMASK_POS 2 +#define FUSE_SEL_FLDMASK_LEN 1 + +#define LOAD_PREFUSE_FLDMASK 0x8 +#define LOAD_PREFUSE_FLDMASK_POS 3 +#define LOAD_PREFUSE_FLDMASK_LEN 1 + +#define DP_TX_TOP_MBIST_PREFUSE (TOP_OFFSET + 0x3C) +#define RGS_PREFUSE_FLDMASK 0xffff +#define RGS_PREFUSE_FLDMASK_POS 0 +#define RGS_PREFUSE_FLDMASK_LEN 16 + +#define DP_TX_TOP_MEM_DELSEL_0 (TOP_OFFSET + 0x40) +#define DELSEL_0_FLDMASK 0xfffff +#define DELSEL_0_FLDMASK_POS 0 +#define DELSEL_0_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_0_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_0_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_0_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_DELSEL_1 (TOP_OFFSET + 0x44) +#define DELSEL_1_FLDMASK 0xfffff +#define DELSEL_1_FLDMASK_POS 0 +#define DELSEL_1_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_1_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_1_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_1_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_DELSEL_2 (TOP_OFFSET + 0x48) +#define DELSEL_2_FLDMASK 0xfffff +#define DELSEL_2_FLDMASK_POS 0 +#define DELSEL_2_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_2_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_2_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_2_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_DELSEL_3 (TOP_OFFSET + 0x4C) +#define DELSEL_3_FLDMASK 0xfffff +#define DELSEL_3_FLDMASK_POS 0 +#define DELSEL_3_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_3_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_3_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_3_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_DELSEL_4 (TOP_OFFSET + 0x50) +#define DELSEL_4_FLDMASK 0xfffff +#define DELSEL_4_FLDMASK_POS 0 +#define DELSEL_4_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_4_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_4_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_4_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_DELSEL_5 (TOP_OFFSET + 0x54) +#define DELSEL_5_FLDMASK 0xfffff +#define DELSEL_5_FLDMASK_POS 0 +#define DELSEL_5_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_5_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_5_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_5_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_DELSEL_6 (TOP_OFFSET + 0x58) +#define DELSEL_6_FLDMASK 0xfffff +#define DELSEL_6_FLDMASK_POS 0 +#define DELSEL_6_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_6_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_6_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_6_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_DELSEL_7 (TOP_OFFSET + 0x5C) +#define DELSEL_7_FLDMASK 0xfffff +#define DELSEL_7_FLDMASK_POS 0 +#define DELSEL_7_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_7_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_7_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_7_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_DELSEL_8 (TOP_OFFSET + 0x60) +#define DELSEL_8_FLDMASK 0xfffff +#define DELSEL_8_FLDMASK_POS 0 +#define DELSEL_8_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_8_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_8_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_8_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_DELSEL_9 (TOP_OFFSET + 0x64) +#define DELSEL_9_FLDMASK 0xfffff +#define DELSEL_9_FLDMASK_POS 0 +#define DELSEL_9_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_9_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_9_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_9_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_DELSEL_10 (TOP_OFFSET + 0x68) +#define DELSEL_10_FLDMASK 0xfffff +#define DELSEL_10_FLDMASK_POS 0 +#define DELSEL_10_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_10_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_10_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_10_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_DELSEL_11 (TOP_OFFSET + 0x6C) +#define DELSEL_11_FLDMASK 0xfffff +#define DELSEL_11_FLDMASK_POS 0 +#define DELSEL_11_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_11_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_11_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_11_FLDMASK_LEN 1 + +#define DP_TX_TOP_MEM_DELSEL_12 (TOP_OFFSET + 0x70) +#define DELSEL_12_FLDMASK 0xfffff +#define DELSEL_12_FLDMASK_POS 0 +#define DELSEL_12_FLDMASK_LEN 20 + +#define USE_DEFAULT_DELSEL_12_FLDMASK 0x100000 +#define USE_DEFAULT_DELSEL_12_FLDMASK_POS 20 +#define USE_DEFAULT_DELSEL_12_FLDMASK_LEN 1 + +#define DP_TX_TOP_PWR_ACK (TOP_OFFSET + 0x80) +#define RGS_DP_TX_PWR_ACK_FLDMASK 0x1 +#define RGS_DP_TX_PWR_ACK_FLDMASK_POS 0 +#define RGS_DP_TX_PWR_ACK_FLDMASK_LEN 1 + +#define RGS_DP_TX_PWR_ACK_2ND_FLDMASK 0x2 +#define RGS_DP_TX_PWR_ACK_2ND_FLDMASK_POS 1 +#define RGS_DP_TX_PWR_ACK_2ND_FLDMASK_LEN 1 + +#define DP_TX_SECURE_REG0 (SEC_OFFSET + 0x00) +#define HDCP22_KS_XOR_LC128_KEY_0_FLDMASK 0xffffffffL +#define HDCP22_KS_XOR_LC128_KEY_0_FLDMASK_POS 0 +#define HDCP22_KS_XOR_LC128_KEY_0_FLDMASK_LEN 32 + +#define DP_TX_SECURE_REG1 (SEC_OFFSET + 0x04) +#define HDCP22_KS_XOR_LC128_KEY_1_FLDMASK 0xffffffffL +#define HDCP22_KS_XOR_LC128_KEY_1_FLDMASK_POS 0 +#define HDCP22_KS_XOR_LC128_KEY_1_FLDMASK_LEN 32 + +#define DP_TX_SECURE_REG2 (SEC_OFFSET + 0x08) +#define HDCP22_KS_XOR_LC128_KEY_2_FLDMASK 0xffffffffL +#define HDCP22_KS_XOR_LC128_KEY_2_FLDMASK_POS 0 +#define HDCP22_KS_XOR_LC128_KEY_2_FLDMASK_LEN 32 + +#define DP_TX_SECURE_REG3 (SEC_OFFSET + 0x0c) +#define HDCP22_KS_XOR_LC128_KEY_3_FLDMASK 0xffffffffL +#define HDCP22_KS_XOR_LC128_KEY_3_FLDMASK_POS 0 +#define HDCP22_KS_XOR_LC128_KEY_3_FLDMASK_LEN 32 + +#define DP_TX_SECURE_REG4 (SEC_OFFSET + 0x10) +#define HDCP22_RIV_0_FLDMASK 0xffffffffL +#define HDCP22_RIV_0_FLDMASK_POS 0 +#define HDCP22_RIV_0_FLDMASK_LEN 32 + +#define DP_TX_SECURE_REG5 (SEC_OFFSET + 0x14) +#define HDCP22_RIV_1_FLDMASK 0xffffffffL +#define HDCP22_RIV_1_FLDMASK_POS 0 +#define HDCP22_RIV_1_FLDMASK_LEN 32 + +#define DP_TX_SECURE_REG6 (SEC_OFFSET + 0x18) +#define HDCP13_LN_SEED_FLDMASK 0xff +#define HDCP13_LN_SEED_FLDMASK_POS 0 +#define HDCP13_LN_SEED_FLDMASK_LEN 8 + +#define DP_TX_SECURE_REG7 (SEC_OFFSET + 0x1C) +#define HDCP13_LN_CODE_0_FLDMASK 0xffffffffL +#define HDCP13_LN_CODE_0_FLDMASK_POS 0 +#define HDCP13_LN_CODE_0_FLDMASK_LEN 32 + +#define DP_TX_SECURE_REG8 (SEC_OFFSET + 0x20) +#define HDCP13_LN_CODE_1_FLDMASK 0xffffff +#define HDCP13_LN_CODE_1_FLDMASK_POS 0 +#define HDCP13_LN_CODE_1_FLDMASK_LEN 24 + +#define DP_TX_SECURE_REG9 (SEC_OFFSET + 0x24) +#define HDCP13_AN_CODE_0_FLDMASK 0xffffffffL +#define HDCP13_AN_CODE_0_FLDMASK_POS 0 +#define HDCP13_AN_CODE_0_FLDMASK_LEN 32 + +#define DP_TX_SECURE_REG10 (SEC_OFFSET + 0x28) +#define HDCP13_AN_CODE_1_FLDMASK 0xffffffffL +#define HDCP13_AN_CODE_1_FLDMASK_POS 0 +#define HDCP13_AN_CODE_1_FLDMASK_LEN 32 + +#define DP_TX_SECURE_REG11 (SEC_OFFSET + 0x2C) +#define DP_TX_TRANSMITTER_4P_RESET_SW_SECURE_FLDMASK 0x1 +#define DP_TX_TRANSMITTER_4P_RESET_SW_SECURE_FLDMASK_POS 0 +#define DP_TX_TRANSMITTER_4P_RESET_SW_SECURE_FLDMASK_LEN 1 + +#define HDCP22_RST_SW_SECURE_FLDMASK 0x2 +#define HDCP22_RST_SW_SECURE_FLDMASK_POS 1 +#define HDCP22_RST_SW_SECURE_FLDMASK_LEN 1 + +#define HDCP13_RST_SW_SECURE_FLDMASK 0x4 +#define HDCP13_RST_SW_SECURE_FLDMASK_POS 2 +#define HDCP13_RST_SW_SECURE_FLDMASK_LEN 1 + +#define VIDEO_MUTE_SW_SECURE_FLDMASK 0x8 +#define VIDEO_MUTE_SW_SECURE_FLDMASK_POS 3 +#define VIDEO_MUTE_SW_SECURE_FLDMASK_LEN 1 + +#define VIDEO_MUTE_SEL_SECURE_FLDMASK 0x10 +#define VIDEO_MUTE_SEL_SECURE_FLDMASK_POS 4 +#define VIDEO_MUTE_SEL_SECURE_FLDMASK_LEN 1 + +#define HDCP_FRAME_EN_SECURE_FLDMASK 0x20 +#define HDCP_FRAME_EN_SECURE_FLDMASK_POS 5 +#define HDCP_FRAME_EN_SECURE_FLDMASK_LEN 1 + +#define HDCP_FRAME_EN_SEL_SECURE_FLDMASK 0x40 +#define HDCP_FRAME_EN_SEL_SECURE_FLDMASK_POS 6 +#define HDCP_FRAME_EN_SEL_SECURE_FLDMASK_LEN 1 + +#define VSC_SEL_SECURE_FLDMASK 0x80 +#define VSC_SEL_SECURE_FLDMASK_POS 7 +#define VSC_SEL_SECURE_FLDMASK_LEN 1 + +#define VSC_DATA_TOGGLE_VESA_SECURE_FLDMASK 0x100 +#define VSC_DATA_TOGGLE_VESA_SECURE_FLDMASK_POS 8 +#define VSC_DATA_TOGGLE_VESA_SECURE_FLDMASK_LEN 1 + +#define VSC_DATA_RDY_VESA_SECURE_FLDMASK 0x200 +#define VSC_DATA_RDY_VESA_SECURE_FLDMASK_POS 9 +#define VSC_DATA_RDY_VESA_SECURE_FLDMASK_LEN 1 + +#define VSC_DATA_TOGGLE_CEA_SECURE_FLDMASK 0x400 +#define VSC_DATA_TOGGLE_CEA_SECURE_FLDMASK_POS 10 +#define VSC_DATA_TOGGLE_CEA_SECURE_FLDMASK_LEN 1 + +#define VSC_DATA_RDY_CEA_SECURE_FLDMASK 0x800 +#define VSC_DATA_RDY_CEA_SECURE_FLDMASK_POS 11 +#define VSC_DATA_RDY_CEA_SECURE_FLDMASK_LEN 1 + +#define DP_TX_SECURE_REG12 (SEC_OFFSET + 0x30) +#define VSC_DATA_BYTE7_CEA_SECURE_FLDMASK 0xff000000L +#define VSC_DATA_BYTE7_CEA_SECURE_FLDMASK_POS 24 +#define VSC_DATA_BYTE7_CEA_SECURE_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE6_CEA_SECURE_FLDMASK 0xff0000 +#define VSC_DATA_BYTE6_CEA_SECURE_FLDMASK_POS 16 +#define VSC_DATA_BYTE6_CEA_SECURE_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE5_CEA_SECURE_FLDMASK 0xff00 +#define VSC_DATA_BYTE5_CEA_SECURE_FLDMASK_POS 8 +#define VSC_DATA_BYTE5_CEA_SECURE_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE4_CEA_SECURE_FLDMASK 0xff +#define VSC_DATA_BYTE4_CEA_SECURE_FLDMASK_POS 0 +#define VSC_DATA_BYTE4_CEA_SECURE_FLDMASK_LEN 8 + +#define DP_TX_SECURE_REG13 (SEC_OFFSET + 0x34) +#define VSC_DATA_BYTE3_CEA_SECURE_FLDMASK 0xff000000L +#define VSC_DATA_BYTE3_CEA_SECURE_FLDMASK_POS 24 +#define VSC_DATA_BYTE3_CEA_SECURE_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE2_CEA_SECURE_FLDMASK 0xff0000 +#define VSC_DATA_BYTE2_CEA_SECURE_FLDMASK_POS 16 +#define VSC_DATA_BYTE2_CEA_SECURE_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE1_CEA_SECURE_FLDMASK 0xff00 +#define VSC_DATA_BYTE1_CEA_SECURE_FLDMASK_POS 8 +#define VSC_DATA_BYTE1_CEA_SECURE_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE0_CEA_SECURE_FLDMASK 0xff +#define VSC_DATA_BYTE0_CEA_SECURE_FLDMASK_POS 0 +#define VSC_DATA_BYTE0_CEA_SECURE_FLDMASK_LEN 8 + +#define DP_TX_SECURE_REG14 (SEC_OFFSET + 0x38) +#define VSC_DATA_BYTE7_VESA_SECURE_FLDMASK 0xff000000L +#define VSC_DATA_BYTE7_VESA_SECURE_FLDMASK_POS 24 +#define VSC_DATA_BYTE7_VESA_SECURE_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE6_VESA_SECURE_FLDMASK 0xff0000 +#define VSC_DATA_BYTE6_VESA_SECURE_FLDMASK_POS 16 +#define VSC_DATA_BYTE6_VESA_SECURE_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE5_VESA_SECURE_FLDMASK 0xff00 +#define VSC_DATA_BYTE5_VESA_SECURE_FLDMASK_POS 8 +#define VSC_DATA_BYTE5_VESA_SECURE_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE4_VESA_SECURE_FLDMASK 0xff +#define VSC_DATA_BYTE4_VESA_SECURE_FLDMASK_POS 0 +#define VSC_DATA_BYTE4_VESA_SECURE_FLDMASK_LEN 8 + +#define DP_TX_SECURE_REG15 (SEC_OFFSET + 0x3C) +#define VSC_DATA_BYTE3_VESA_SECURE_FLDMASK 0xff000000L +#define VSC_DATA_BYTE3_VESA_SECURE_FLDMASK_POS 24 +#define VSC_DATA_BYTE3_VESA_SECURE_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE2_VESA_SECURE_FLDMASK 0xff0000 +#define VSC_DATA_BYTE2_VESA_SECURE_FLDMASK_POS 16 +#define VSC_DATA_BYTE2_VESA_SECURE_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE1_VESA_SECURE_FLDMASK 0xff00 +#define VSC_DATA_BYTE1_VESA_SECURE_FLDMASK_POS 8 +#define VSC_DATA_BYTE1_VESA_SECURE_FLDMASK_LEN 8 + +#define VSC_DATA_BYTE0_VESA_SECURE_FLDMASK 0xff +#define VSC_DATA_BYTE0_VESA_SECURE_FLDMASK_POS 0 +#define VSC_DATA_BYTE0_VESA_SECURE_FLDMASK_LEN 8 + +#define DP_TX_SECURE_STATUS_0 (SEC_OFFSET + 0x80) +#define RGS_DP_TX_HDCP13_HDCP_AN_0_FLDMASK 0xffffffffL +#define RGS_DP_TX_HDCP13_HDCP_AN_0_FLDMASK_POS 0 +#define RGS_DP_TX_HDCP13_HDCP_AN_0_FLDMASK_LEN 32 + +#define DP_TX_SECURE_STATUS_1 (SEC_OFFSET + 0x84) +#define RGS_DP_TX_HDCP13_HDCP_AN_1_FLDMASK 0xffffffffL +#define RGS_DP_TX_HDCP13_HDCP_AN_1_FLDMASK_POS 0 +#define RGS_DP_TX_HDCP13_HDCP_AN_1_FLDMASK_LEN 32 + +#define DP_TX_SECURE_STATUS_2 (SEC_OFFSET + 0x88) +#define RGS_DP_TX_HDCP13_HDCP_R0_FLDMASK 0xffff +#define RGS_DP_TX_HDCP13_HDCP_R0_FLDMASK_POS 0 +#define RGS_DP_TX_HDCP13_HDCP_R0_FLDMASK_LEN 16 + +#define DP_TX_SECURE_STATUS_3 (SEC_OFFSET + 0x8C) +#define RGS_DP_TX_HDCP13_HDCP_M0_0_FLDMASK 0xffffffffL +#define RGS_DP_TX_HDCP13_HDCP_M0_0_FLDMASK_POS 0 +#define RGS_DP_TX_HDCP13_HDCP_M0_0_FLDMASK_LEN 32 + +#define DP_TX_SECURE_STATUS_4 (SEC_OFFSET + 0x90) +#define RGS_DP_TX_HDCP13_HDCP_M0_1_FLDMASK 0xffffffffL +#define RGS_DP_TX_HDCP13_HDCP_M0_1_FLDMASK_POS 0 +#define RGS_DP_TX_HDCP13_HDCP_M0_1_FLDMASK_LEN 32 + +#define DP_TX_SECURE_ACC_FAIL (SEC_OFFSET + 0xf0) +#define NO_AUTH_READ_VALUE_FLDMASK 0xffffffffL +#define NO_AUTH_READ_VALUE_FLDMASK_POS 0 +#define NO_AUTH_READ_VALUE_FLDMASK_LEN 32 + +#define DPCD_00000 0x00000 +#define DPCD_00001 0x00001 +#define DPCD_00002 0x00002 +#define DPCD_00003 0x00003 +#define DPCD_00004 0x00004 +#define DPCD_00005 0x00005 +#define DPCD_0000A 0x0000A +#define DPCD_0000E 0x0000E +#define DPCD_00021 0x00021 +#define DPCD_00030 0x00030 +#define DPCD_00060 0x00060 +#define DPCD_00080 0x00080 +#define DPCD_00090 0x00090 +#define DPCD_00100 0x00100 +#define DPCD_00101 0x00101 +#define DPCD_00102 0x00102 +#define DPCD_00103 0x00103 +#define DPCD_00104 0x00104 +#define DPCD_00105 0x00105 +#define DPCD_00106 0x00106 +#define DPCD_00107 0x00107 +#define DPCD_00111 0x00111 +#define DPCD_00120 0x00120 +#define DPCD_00160 0x00160 +#define DPCD_001A1 0x001A1 +#define DPCD_001C0 0x001C0 +#define DPCD_00200 0x00200 +#define DPCD_00201 0x00201 +#define DPCD_00202 0x00202 +#define DPCD_00203 0x00203 +#define DPCD_00204 0x00204 +#define DPCD_00205 0x00205 +#define DPCD_00206 0x00206 +#define DPCD_00210 0x00210 +#define DPCD_00218 0x00218 +#define DPCD_00219 0x00219 +#define DPCD_00220 0x00220 +#define DPCD_00230 0x00230 +#define DPCD_00250 0x00250 +#define DPCD_00260 0x00260 +#define DPCD_00261 0x00261 +#define DPCD_00271 0x00271 +#define DPCD_00280 0x00280 +#define DPCD_00281 0x00281 +#define DPCD_00282 0x00282 +#define DPCD_002C0 0x002C0 +#define DPCD_00600 0x00600 +#define DPCD_01000 0x01000 +#define DPCD_01200 0x01200 +#define DPCD_01400 0x01400 +#define DPCD_01600 0x01600 +#define DPCD_02002 0x02002 +#define DPCD_02003 0x02003 +#define DPCD_0200C 0x0200C +#define DPCD_0200D 0x0200D +#define DPCD_0200E 0x0200E +#define DPCD_0200F 0x0200F +#define DPCD_02200 0x02200 +#define DPCD_02201 0x02201 +#define DPCD_02202 0x02202 +#define DPCD_02203 0x02203 +#define DPCD_02204 0x02204 +#define DPCD_02205 0x02205 +#define DPCD_02206 0x02206 +#define DPCD_02207 0x02207 +#define DPCD_02208 0x02208 +#define DPCD_02209 0x02209 +#define DPCD_0220A 0x0220A +#define DPCD_0220B 0x0220B +#define DPCD_0220C 0x0220C +#define DPCD_0220D 0x0220D +#define DPCD_0220E 0x0220E +#define DPCD_0220F 0x0220F +#define DPCD_02210 0x02210 +#define DPCD_02211 0x02211 +#define DPCD_68000 0x68000 +#define DPCD_68005 0x68005 +#define DPCD_68007 0x68007 +#define DPCD_6800C 0x6800C +#define DPCD_68014 0x68014 +#define DPCD_68018 0x68018 +#define DPCD_6801C 0x6801C +#define DPCD_68020 0x68020 +#define DPCD_68024 0x68024 +#define DPCD_68028 0x68028 +#define DPCD_68029 0x68029 +#define DPCD_6802A 0x6802A +#define DPCD_6802C 0x6802C +#define DPCD_6803B 0x6803B +#define DPCD_6921D 0x6921D +#define DPCD_69000 0x69000 +#define DPCD_69008 0x69008 +#define DPCD_6900B 0x6900B +#define DPCD_69215 0x69215 +#define DPCD_6921D 0x6921D +#define DPCD_69220 0x69220 +#define DPCD_692A0 0x692A0 +#define DPCD_692B0 0x692B0 +#define DPCD_692C0 0x692C0 +#define DPCD_692E0 0x692E0 +#define DPCD_692F0 0x692F0 +#define DPCD_692F8 0x692F8 +#define DPCD_69318 0x69318 +#define DPCD_69328 0x69328 +#define DPCD_69330 0x69330 +#define DPCD_69332 0x69332 +#define DPCD_69335 0x69335 +#define DPCD_69345 0x69345 +#define DPCD_693E0 0x693E0 +#define DPCD_693F0 0x693F0 +#define DPCD_693F3 0x693F3 +#define DPCD_693F5 0x693F5 +#define DPCD_69473 0x69473 +#define DPCD_69493 0x69493 +#define DPCD_69494 0x69494 +#define DPCD_69518 0x69518 + +#endif /* SOC_MEDIATEK_COMMON_DP_DPTX_REG_H */ -- cgit v1.2.3