Path: blob/main/sys/arm/nvidia/drm2/tegra_hdmi_reg.h
39482 views
/*-1* Copyright 1992-2016 Michal Meloun2* All rights reserved.3*4* Redistribution and use in source and binary forms, with or without5* modification, are permitted provided that the following conditions6* are met:7* 1. Redistributions of source code must retain the above copyright8* notice, this list of conditions and the following disclaimer.9* 2. Redistributions in binary form must reproduce the above copyright10* notice, this list of conditions and the following disclaimer in the11* documentation and/or other materials provided with the distribution.12*13* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND14* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE15* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE16* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE17* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL18* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS19* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)20* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT21* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY22* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF23* SUCH DAMAGE.24*/25#ifndef _TEGRA_HDMI_REG_H_26#define _TEGRA_HDMI_REG_H_2728/*29* !!! WARNING !!!30* Tegra manual uses registers index (and not register addreses).31* We follow the TRM notation and index is converted to offset in32* WR4 / RD4 macros33*/34#define HDMI_NV_PDISP_SOR_STATE0 0x00135#define SOR_STATE0_UPDATE (1 << 0)3637#define HDMI_NV_PDISP_SOR_STATE1 0x00238#define SOR_STATE1_ATTACHED (1 << 3)39#define SOR_STATE1_ASY_ORMODE_NORMAL (1 << 2)40#define SOR_STATE1_ASY_HEAD_OPMODE(x) (((x) & 0x3) << 0)41#define ASY_HEAD_OPMODE_SLEEP 042#define ASY_HEAD_OPMODE_SNOOZE 143#define ASY_HEAD_OPMODE_AWAKE 24445#define HDMI_NV_PDISP_SOR_STATE2 0x00346#define SOR_STATE2_ASY_DEPOL_NEG (1 << 14)47#define SOR_STATE2_ASY_VSYNCPOL_NEG (1 << 13)48#define SOR_STATE2_ASY_HSYNCPOL_NEG (1 << 12)49#define SOR_STATE2_ASY_PROTOCOL(x) (((x) & 0xf) << 8)50#define ASY_PROTOCOL_SINGLE_TMDS_A 151#define ASY_PROTOCOL_CUSTOM 1552#define SOR_STATE2_ASY_CRCMODE(x) (((x) & 0x3) << 6)53#define ASY_CRCMODE_ACTIVE 054#define ASY_CRCMODE_COMPLETE 155#define ASY_CRCMODE_NON_ACTIVE 256#define SOR_STATE2_ASY_SUBOWNER(x) (((x) & 0x3) << 4)57#define ASY_SUBOWNER_NONE 058#define ASY_SUBOWNER_SUBHEAD0 159#define ASY_SUBOWNER_SUBHEAD1 260#define SUBOWNER_BOTH 361#define SOR_STATE2_ASY_OWNER(x) (((x) & 0x3) << 0)62#define ASY_OWNER_NONE 063#define ASY_OWNER_HEAD0 16465#define HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_CTRL 0x01e66#define AUDIO_INFOFRAME_CTRL_ENABLE (1 << 0)67#define HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_STATUS 0x01f68#define HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_HEADER 0x02069#define HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_SUBPACK0_LOW 0x02170#define HDMI_NV_PDISP_HDMI_AUDIO_INFOFRAME_SUBPACK0_HIGH 0x02271#define INFOFRAME_HEADER_LEN(x) (((x) & 0x0f) << 16)72#define INFOFRAME_HEADER_VERSION(x) (((x) & 0xff) << 8)73#define INFOFRAME_HEADER_TYPE(x) (((x) & 0xff) << 0)7475#define HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_CTRL 0x02376#define AVI_INFOFRAME_CTRL_ENABLE (1 << 0)77#define HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_STATUS 0x02478#define HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_HEADER 0x02579#define HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_SUBPACK0_LOW 0x02680#define HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_SUBPACK0_HIGH 0x02781#define HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_SUBPACK1_LOW 0x02882#define HDMI_NV_PDISP_HDMI_AVI_INFOFRAME_SUBPACK1_HIGH 0x0298384#define HDMI_NV_PDISP_HDMI_GENERIC_CTRL 0x02a85#define GENERIC_CTRL_AUDIO (1 << 16)86#define GENERIC_CTRL_HBLANK (1 << 12)87#define GENERIC_CTRL_SINGLE (1 << 8)88#define GENERIC_CTRL_OTHER (1 << 4)89#define GENERIC_CTRL_ENABLE (1 << 0)90#define HDMI_NV_PDISP_HDMI_GENERIC_STATUS 0x02b91#define HDMI_NV_PDISP_HDMI_GENERIC_HEADER 0x02c92#define HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK0_LOW 0x02d93#define HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK0_HIGH 0x02e94#define HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK1_LOW 0x02f95#define HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK1_HIGH 0x03096#define HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK2_LOW 0x03197#define HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK2_HIGH 0x03298#define HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK3_LOW 0x03399#define HDMI_NV_PDISP_HDMI_GENERIC_SUBPACK3_HIGH 0x034100101#define HDMI_NV_PDISP_HDMI_ACR_CTRL 0x035102#define HDMI_NV_PDISP_HDMI_ACR_0320_SUBPACK_LOW 0x036103#define HDMI_NV_PDISP_HDMI_ACR_0320_SUBPACK_HIGH 0x037104#define HDMI_NV_PDISP_HDMI_ACR_0441_SUBPACK_LOW 0x038105#define HDMI_NV_PDISP_HDMI_ACR_0441_SUBPACK_HIGH 0x039106#define HDMI_NV_PDISP_HDMI_ACR_0882_SUBPACK_LOW 0x03a107#define HDMI_NV_PDISP_HDMI_ACR_0882_SUBPACK_HIGH 0x03b108#define HDMI_NV_PDISP_HDMI_ACR_1764_SUBPACK_LOW 0x03c109#define HDMI_NV_PDISP_HDMI_ACR_1764_SUBPACK_HIGH 0x03d110#define HDMI_NV_PDISP_HDMI_ACR_0480_SUBPACK_LOW 0x03e111#define HDMI_NV_PDISP_HDMI_ACR_0480_SUBPACK_HIGH 0x03f112#define HDMI_NV_PDISP_HDMI_ACR_0960_SUBPACK_LOW 0x040113#define HDMI_NV_PDISP_HDMI_ACR_0960_SUBPACK_HIGH 0x041114#define HDMI_NV_PDISP_HDMI_ACR_1920_SUBPACK_LOW 0x042115#define HDMI_NV_PDISP_HDMI_ACR_1920_SUBPACK_HIGH 0x043116#define ACR_ENABLE (1U << 31)117#define ACR_SUBPACK_CTS(x) (((x) & 0xffffff) << 8)118#define ACR_SUBPACK_N(x) (((x) & 0xffffff) << 0)119120#define HDMI_NV_PDISP_HDMI_CTRL 0x044121#define HDMI_CTRL_ENABLE (1 << 30)122#define HDMI_CTRL_CA_SELECT (1 << 28)123#define HDMI_CTRL_SS_SELECT (1 << 27)124#define HDMI_CTRL_SF_SELECT (1 << 26)125#define HDMI_CTRL_CC_SELECT (1 << 25)126#define HDMI_CTRL_CT_SELECT (1 << 24)127#define HDMI_CTRL_MAX_AC_PACKET(x) (((x) & 0x1f) << 16)128#define HDMI_CTRL_SAMPLE_FLAT (1 << 12)129#define HDMI_CTRL_AUDIO_LAYOUT_SELECT (1 << 10)130#define HDMI_CTRL_AUDIO_LAYOUT (1 << 8)131#define HDMI_CTRL_REKEY(x) (((x) & 0x7f) << 0)132133#define HDMI_NV_PDISP_HDMI_VSYNC_WINDOW 0x046134#define VSYNC_WINDOW_ENABLE (1U << 31)135#define VSYNC_WINDOW_START(x) (((x) & 0x3ff) << 16)136#define VSYNC_WINDOW_END(x) (((x) & 0x3ff) << 0)137138#define HDMI_NV_PDISP_HDMI_SPARE 0x04f139#define SPARE_ACR_PRIORITY (1U << 31)140#define SPARE_CTS_RESET_VAL(x) (((x) & 0x7) << 16)141#define SPARE_SUPRESS_SP_B (1 << 2)142#define SPARE_FORCE_SW_CTS (1 << 1)143#define SPARE_HW_CTS (1 << 0)144145#define HDMI_NV_PDISP_SOR_PWR 0x055146#define SOR_PWR_SETTING_NEW (1U << 31)147#define SOR_PWR_SAFE_STATE_PU (1 << 16)148#define SOR_PWR_NORMAL_START_ALT (1 << 1)149#define SOR_PWR_NORMAL_STATE_PU (1 << 0)150151#define HDMI_NV_PDISP_SOR_PLL0 0x057152#define SOR_PLL0_TX_REG_LOAD(x) (((x) & 0xf) << 28)153#define SOR_PLL0_ICHPMP(x) (((x) & 0xf) << 24)154#define SOR_PLL0_FILTER(x) (((x) & 0xf) << 16)155#define SOR_PLL0_BG_V17_S(x) (((x) & 0xf) << 12)156#define SOR_PLL0_VCOCAP(x) (((x) & 0xf) << 8)157#define SOR_PLL0_PULLDOWN (1 << 5)158#define SOR_PLL0_RESISTORSEL (1 << 4)159#define SOR_PLL0_PDPORT (1 << 3)160#define SOR_PLL0_VCOPD (1 << 2)161#define SOR_PLL0_PDBG (1 << 1)162#define SOR_PLL0_PWR (1 << 0)163164#define HDMI_NV_PDISP_SOR_PLL1 0x058165#define SOR_PLL1_S_D_PIN_PE (1 << 30)166#define SOR_PLL1_HALF_FULL_PE (1 << 29)167#define SOR_PLL1_PE_EN (1 << 28)168#define SOR_PLL1_LOADADJ(x) (((x) & 0xf) << 20)169#define SOR_PLL1_TMDS_TERMADJ(x) (((x) & 0xf) << 9)170#define SOR_PLL1_TMDS_TERM (1 << 8)171172#define HDMI_NV_PDISP_SOR_CSTM 0x05a173#define SOR_CSTM_ROTAT(x) (((x) & 0xf) << 28)174#define SOR_CSTM_ROTCLK(x) (((x) & 0xf) << 24)175#define SOR_CSTM_PLLDIV (1 << 21)176#define SOR_CSTM_BALANCED (1 << 19)177#define SOR_CSTM_NEW_MODE (1 << 18)178#define SOR_CSTM_DUP_SYNC (1 << 17)179#define SOR_CSTM_LVDS_ENABLE (1 << 16)180#define SOR_CSTM_LINKACTB (1 << 15)181#define SOR_CSTM_LINKACTA (1 << 14)182#define SOR_CSTM_MODE(x) (((x) & 0x3) << 12)183#define CSTM_MODE_LVDS 0184#define CSTM_MODE_TMDS 1185186#define HDMI_NV_PDISP_SOR_SEQ_CTL 0x05f187#define SOR_SEQ_SWITCH (1 << 30)188#define SOR_SEQ_STATUS (1 << 28)189#define SOR_SEQ_PC(x) (((x) & 0xf) << 16)190#define SOR_SEQ_PD_PC_ALT(x) (((x) & 0xf) << 12)191#define SOR_SEQ_PD_PC(x) (((x) & 0xf) << 8)192#define SOR_SEQ_PU_PC_ALT(x) (((x) & 0xf) << 4)193#define SOR_SEQ_PU_PC(x) (((x) & 0xf) << 0)194195#define HDMI_NV_PDISP_SOR_SEQ_INST(x) (0x060 + (x))196#define SOR_SEQ_INST_PLL_PULLDOWN (1U << 31)197#define SOR_SEQ_INST_POWERDOWN_MACRO (1 << 30)198#define SOR_SEQ_INST_ASSERT_PLL_RESETV (1 << 29)199#define SOR_SEQ_INST_BLANK_V (1 << 28)200#define SOR_SEQ_INST_BLANK_H (1 << 27)201#define SOR_SEQ_INST_BLANK_DE (1 << 26)202#define SOR_SEQ_INST_BLACK_DATA (1 << 25)203#define SOR_SEQ_INST_TRISTATE_IOS (1 << 24)204#define SOR_SEQ_INST_DRIVE_PWM_OUT_LO (1 << 23)205#define SOR_SEQ_INST_PIN_B_HIGH (1 << 22)206#define SOR_SEQ_INST_PIN_A_HIGH (1 << 21)207#define SOR_SEQ_INST_HALT (1 << 15)208#define SOR_SEQ_INST_WAIT_UNITS(x) (((x) & 0x3) << 12)209#define WAIT_UNITS_US 0210#define WAIT_UNITS_MS 1211#define WAIT_UNITS_VSYNC 2212#define SOR_SEQ_INST_WAIT_TIME(x) (((x) & 0x3ff) << 0)213214#define HDMI_NV_PDISP_SOR_LANE_DRIVE_CURRENT 0x07e215216#define HDMI_NV_PDISP_AUDIO_N 0x08c217#define AUDIO_N_LOOKUP (1 << 28)218#define AUDIO_N_GENERATE_ALTERNATE (1 << 24)219#define AUDIO_N_RESETF (1 << 20)220#define AUDIO_N_VALUE(x) (((x) & 0xfffff) << 0)221222#define HDMI_NV_PDISP_SOR_REFCLK 0x095223#define SOR_REFCLK_DIV_INT(x) (((x) & 0xff) << 8)224#define SOR_REFCLK_DIV_FRAC(x) (((x) & 0x03) << 6)225226#define HDMI_NV_PDISP_INPUT_CONTROL 0x097227#define ARM_VIDEO_RANGE_LIMITED (1 << 1)228#define HDMI_SRC_DISPLAYB (1 << 0)229230#define HDMI_NV_PDISP_PE_CURRENT 0x099231#define HDMI_NV_PDISP_SOR_AUDIO_CNTRL0 0x0ac232#define SOR_AUDIO_CNTRL0_INJECT_NULLSMPL (1 << 29)233#define SOR_AUDIO_CNTRL0_SOURCE_SELECT(x) (((x) & 0x03) << 20)234#define SOURCE_SELECT_AUTO 0235#define SOURCE_SELECT_SPDIF 1236#define SOURCE_SELECT_HDAL 2237#define SOR_AUDIO_CNTRL0_AFIFO_FLUSH (1 << 12)238239#define HDMI_NV_PDISP_SOR_AUDIO_SPARE0 0x0ae240#define SOR_AUDIO_SPARE0_HBR_ENABLE (1 << 27)241242#define HDMI_NV_PDISP_SOR_AUDIO_NVAL_0320 0x0af243#define HDMI_NV_PDISP_SOR_AUDIO_NVAL_0441 0x0b0244#define HDMI_NV_PDISP_SOR_AUDIO_NVAL_0882 0x0b1245#define HDMI_NV_PDISP_SOR_AUDIO_NVAL_1764 0x0b2246#define HDMI_NV_PDISP_SOR_AUDIO_NVAL_0480 0x0b3247#define HDMI_NV_PDISP_SOR_AUDIO_NVAL_0960 0x0b4248#define HDMI_NV_PDISP_SOR_AUDIO_NVAL_1920 0x0b5249#define HDMI_NV_PDISP_SOR_AUDIO_HDA_SCRATCH0 0x0b6250#define HDMI_NV_PDISP_SOR_AUDIO_HDA_SCRATCH1 0x0b7251#define HDMI_NV_PDISP_SOR_AUDIO_HDA_SCRATCH2 0x0b8252#define HDMI_NV_PDISP_SOR_AUDIO_HDA_SCRATCH3 0x0b9253#define HDMI_NV_PDISP_SOR_AUDIO_HDA_CODEC_SCRATCH0 0x0ba254#define HDMI_NV_PDISP_SOR_AUDIO_HDA_CODEC_SCRATCH1 0x0bb255#define HDMI_NV_PDISP_SOR_AUDIO_HDA_ELD_BUFWR 0x0bc256#define HDMI_NV_PDISP_SOR_AUDIO_HDA_PRESENSE 0x0bd257#define SOR_AUDIO_HDA_PRESENSE_VALID (1 << 1)258#define SOR_AUDIO_HDA_PRESENSE_PRESENT (1 << 0)259260#define HDMI_NV_PDISP_SOR_AUDIO_AVAL_0320 0x0bf261#define HDMI_NV_PDISP_SOR_AUDIO_AVAL_0441 0x0c0262#define HDMI_NV_PDISP_SOR_AUDIO_AVAL_0882 0x0c1263#define HDMI_NV_PDISP_SOR_AUDIO_AVAL_1764 0x0c2264#define HDMI_NV_PDISP_SOR_AUDIO_AVAL_0480 0x0c3265#define HDMI_NV_PDISP_SOR_AUDIO_AVAL_0960 0x0c4266#define HDMI_NV_PDISP_SOR_AUDIO_AVAL_1920 0x0c5267#define HDMI_NV_PDISP_SOR_AUDIO_AVAL_DEFAULT 0x0c6268269#define HDMI_NV_PDISP_INT_STATUS 0x0cc270#define INT_SCRATCH (1 << 3)271#define INT_CP_REQUEST (1 << 2)272#define INT_CODEC_SCRATCH1 (1 << 1)273#define INT_CODEC_SCRATCH0 (1 << 0)274275#define HDMI_NV_PDISP_INT_MASK 0x0cd276#define HDMI_NV_PDISP_INT_ENABLE 0x0ce277#define HDMI_NV_PDISP_SOR_IO_PEAK_CURRENT 0x0d1278#define HDMI_NV_PDISP_SOR_PAD_CTLS0 0x0d2279280#endif /* _TEGRA_HDMI_REG_H_ */281282283