--- /dev/null
+/*
+
+SiI8348 Linux Driver
+
+Copyright (C) 2013 Silicon Image, Inc.
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as
+published by the Free Software Foundation version 2.
+This program is distributed AS-IS WITHOUT ANY WARRANTY of any
+kind, whether express or implied; INCLUDING without the implied warranty
+of MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE or NON-INFRINGEMENT. See
+the GNU General Public License for more details at http://www.gnu.org/licenses/gpl-2.0.html.
+
+*/
+
+// ===================================================== //
+
+#define REG_TPI_HDCP_TIMER_1_SEC TX_PAGE_TPI , 0x0002
+
+#define REG_TPI_INPUT TX_PAGE_TPI , 0x0009
+#define REG_TPI_INPUT_DEFVAL 0x00
+#define BIT_TPI_INPUT_FORMAT_MASK 0x03
+#define BIT_TPI_INPUT_FORMAT_RGB 0x00
+#define BIT_TPI_INPUT_FORMAT_YCbCr444 0x01
+#define BIT_TPI_INPUT_FORMAT_YCbCr422 0x02
+#define BIT_TPI_INPUT_FORMAT_INTERNAL_RGB 0x03
+
+#define BIT_TPI_INPUT_QUAN_RANGE_MASK 0x0C
+#define BIT_TPI_INPUT_QUAN_RANGE_AUTO 0x00
+#define BIT_TPI_INPUT_QUAN_RANGE_FULL 0x04 // Design: expand input to full color space range // TODO: FD, TBD, not used
+#define BIT_TPI_INPUT_QUAN_RANGE_LIMITED 0x08 // Design: leave input color space range as is // TODO: FD, TBD, not used
+#define BIT_TPI_INPUT_QUAN_RANGE_RSVD 0x0C
+
+#define REG_TPI_OUTPUT TX_PAGE_TPI , 0x000A
+#define REG_TPI_OUTPUT_DEFVAL 0x00
+#define BIT_TPI_OUTPUT_FORMAT_MASK 0x03
+#define BIT_TPI_OUTPUT_FORMAT_HDMI_TO_RGB 0x00
+#define BIT_TPI_OUTPUT_FORMAT_YCbCr444 0x01
+#define BIT_TPI_OUTPUT_FORMAT_YCbCr422 0x02
+#define BIT_TPI_OUTPUT_FORMAT_DVI_TO_RGB 0x03
+
+#define BIT_TPI_OUTPUT_QUAN_RANGE_MASK 0x0C
+#define BIT_TPI_OUTPUT_QUAN_RANGE_AUTO 0x00
+#define BIT_TPI_OUTPUT_QUAN_RANGE_FULL 0x04 // Design: compress output to limited color space range // TODO: FD, TBD, not used
+#define BIT_TPI_OUTPUT_QUAN_RANGE_LIMITED 0x08 // Design: leave output color space range as is // TODO: FD, TBD, not used
+#define BIT_TPI_OUTPUT_QUAN_RANGE_RSVD 0x0C
+
+#define REG_TPI_AVI_CHSUM TX_PAGE_TPI , 0x000C
+
+#define REG_TPI_AVI_BYTE13 TX_PAGE_TPI , 0x0019
+
+#define TPI_SYSTEM_CONTROL_DATA_REG TX_PAGE_TPI , 0x001A
+
+#define TPI_1A_AUTO_REAUTHENTICATION_MASK (0x40) // TODO: FD, TBD, not used, not in PR, should be removed
+#define TPI_1A_AUTO_REAUTHENTICATION_OFF (0x00) // TODO: FD, TBD, not used, not in PR, should be removed
+#define TPI_1A_AUTO_REAUTHENTICATION_ENABLE (0x40) // TODO: FD, TBD, not used, not in PR, should be removed
+
+#define TMDS_OUTPUT_CONTROL_MASK (0x10)
+#define TMDS_OUTPUT_CONTROL_ACTIVE (0x00)
+#define TMDS_OUTPUT_CONTROL_POWER_DOWN (0x10)
+
+#define AV_MUTE_MASK (0x08)
+#define AV_MUTE_NORMAL (0x00)
+#define AV_MUTE_MUTED (0x08)
+
+#define DDC_BUS_REQUEST_MASK (0x04) // TODO: FD, TBD, not used, not in PR, should be removed
+#define DDC_BUS_REQUEST_NOT_USING (0x00) // TODO: FD, TBD, not used, not in PR, should be removed
+#define DDC_BUS_REQUEST_REQUESTED (0x04) // TODO: FD, TBD, not used, not in PR, should be removed
+
+#define DDC_BUS_GRANT_MASK (0x02) // TODO: FD, TBD, not used, not in PR, should be removed
+#define DDC_BUS_GRANT_NOT_AVAILABLE (0x00) // TODO: FD, TBD, not used, not in PR, should be removed
+#define DDC_BUS_GRANT_GRANTED (0x02) // TODO: FD, TBD, not used, not in PR, should be removed
+
+#define TMDS_OUTPUT_MODE_MASK (0x01) // confirmed with design
+#define TMDS_OUTPUT_MODE_DVI (0x00)
+#define TMDS_OUTPUT_MODE_HDMI (0x01)
+
+// ===================================================== //
+
+#define TPI_DEVICE_POWER_STATE_CTRL_REG TX_PAGE_TPI , 0x001E
+
+#define TX_POWER_STATE_MASK (0x03)
+#define TX_POWER_STATE_D0 (0x00)
+#define TX_POWER_STATE_D2 (0x02)
+#define TX_POWER_STATE_D3 (0x03)
+
+
+#define REG_TPI_AUDIO_MAPPING_CONFIG TX_PAGE_TPI , 0x001F
+#define BIT_TPI_AUDIO_SD_ENABLE (0x80)
+#define BIT_TPI_AUDIO_SD_DISABLE (0x00)
+#define BIT_TPI_AUDIO_FIFO_MAP_3 (0x30)
+#define BIT_TPI_AUDIO_FIFO_MAP_2 (0x20)
+#define BIT_TPI_AUDIO_FIFO_MAP_1 (0x10)
+#define BIT_TPI_AUDIO_FIFO_MAP_0 (0x00)
+#define BIT_TPI_AUDIO_SD_SEL_3 (0x03)
+#define BIT_TPI_AUDIO_SD_SEL_2 (0x02)
+#define BIT_TPI_AUDIO_SD_SEL_1 (0x01)
+#define BIT_TPI_AUDIO_SD_SEL_0 (0x00)
+
+#define REG_TPI_CONFIG1 TX_PAGE_TPI , 0x0024
+typedef enum{
+ BIT_TPI_CONFIG1_AUDIO_FREQUENCY_192K = 0x0E
+ ,BIT_TPI_CONFIG1_AUDIO_FREQUENCY_96K = 0x0A
+ ,BIT_TPI_CONFIG1_AUDIO_FREQUENCY_48K = 0x02
+ ,BIT_TPI_CONFIG1_AUDIO_FREQUENCY_44K = 0x00
+ ,BIT_TPI_CONFIG1_AUDIO_FREQUENCY_32K = 0x03
+}TpiConfig1Bits_e;
+
+#define REG_TPI_CONFIG2 TX_PAGE_TPI , 0x0025 // TODO: FD, TBD, not used
+typedef enum{
+ BIT_TPI_AUDIO_HANDLING_MASK = 0x03
+ ,BIT_TPI_AUDIO_HANDLING_PASS_BASIC_AUDIO_ONLY = 0x00
+ ,BIT_TPI_AUDIO_HANDLING_PASS_ALL_AUDIO_MODES = 0x01
+ ,BIT_TPI_AUDIO_HANDLING_DOWNSAMPLE_INCOMING_AS_NEEDED= 0x02
+ ,BIT_TPI_AUDIO_HANDLING_DO_NOT_CHECK_AUDIO_STREAM = 0x03
+}TpiConfig2Bits_e;
+
+#define REG_TPI_CONFIG3 TX_PAGE_TPI , 0x0026 // TODO: FD, TBD, not used
+typedef enum{
+ BIT_TPI_AUDIO_CODING_TYPE_MASK = 0x0F
+ ,BIT_TPI_AUDIO_CODING_TYPE_STREAM_HEADER = 0x00
+ ,BIT_TPI_AUDIO_CODING_TYPE_PCM = 0x01
+ ,BIT_TPI_AUDIO_CODING_TYPE_AC3 = 0x02
+ ,BIT_TPI_AUDIO_CODING_TYPE_MPEG1 = 0x03
+ ,BIT_TPI_AUDIO_CODING_TYPE_MP3 = 0x04
+ ,BIT_TPI_AUDIO_CODING_TYPE_MPEG2 = 0x05
+ ,BIT_TPI_AUDIO_CODING_TYPE_AAC = 0x06
+ ,BIT_TPI_AUDIO_CODING_TYPE_DTS = 0x07
+ ,BIT_TPI_AUDIO_CODING_TYPE_ATRAC = 0x08
+
+ ,BIT_TPI_CONFIG3_MUTE_MASK = 0x10
+ ,BIT_TPI_CONFIG3_MUTE_NORMAL = 0x00
+ ,BIT_TPI_CONFIG3_MUTE_MUTED = 0x10
+
+ ,BIT_TPI_CONFIG3_AUDIO_PACKET_HEADER_LAYOUT_MASK = 0x20
+ ,BIT_TPI_CONFIG3_AUDIO_PACKET_HEADER_LAYOUT_2CH = 0x00
+ ,BIT_TPI_CONFIG3_AUDIO_PACKET_HEADER_LAYOUT_8CH_MAX = 0x20
+
+ ,BIT_TPI_CONFIG3_AUDIO_TDM_MSB_No_DELAY = 0x00
+ ,BIT_TPI_CONFIG3_AUDIO_TDM_MSB_1CLK_DEALY = 0x01
+ ,BIT_TPI_CONFIG3_AUDIO_TDM_MSB_2CLK_DELAY = 0x02
+
+ ,BIT_TPI_CONFIG3_AUDIO_TDM_FS_POL = 0x00
+ ,BIT_TPI_CONFIG3_AUDIO_TDM_FS_NEG = 0x04
+
+ ,BIT_TPI_CONFIG3_AUDIO_TDM_32B_CH = 0x00
+ ,BIT_TPI_CONFIG3_AUDIO_TDM_16B_CH = 0x08
+
+ ,BIT_TPI_CONFIG_3_AUDIO_INTERFACE_MASK = 0xC0
+ ,BIT_TPI_CONFIG_3_AUDIO_INTERFACE_DISABLED = 0x00
+ ,BIT_TPI_CONFIG_3_AUDIO_INTERFACE_SPDIF = 0x40
+ ,BIT_TPI_CONFIG_3_AUDIO_INTERFACE_I2S = 0x80
+ ,BIT_TPI_CONFIG_3_AUDIO_INTERFACE_HD_AUDIO = 0xC0
+}TpiConfig3Bits_e;
+
+#define REG_TPI_CONFIG4 TX_PAGE_TPI , 0x0027
+typedef enum{
+ BIT_TPI_CONFIG4_AUDIO_Refer_To_Stream_Header = 0x00
+ ,BIT_TPI_CONFIG4_AUDIO_WIDTH_16_BIT = 0x40
+ ,BIT_TPI_CONFIG4_AUDIO_WIDTH_20_BIT = 0x80
+ ,BIT_TPI_CONFIG4_AUDIO_WIDTH_24_BIT = 0xC0
+ ,BIT_TPI_CONFIG4_AUDIO_FREQUENCY_192K = 0x38
+ ,BIT_TPI_CONFIG4_AUDIO_FREQUENCY_48K = 0x18
+ ,BIT_TPI_CONFIG4_AUDIO_FREQUENCY_96K = 0x28
+ ,BIT_TPI_CONFIG4_AUDIO_FREQUENCY_44K = 0x10
+ ,BIT_TPI_CONFIG4_AUDIO_FREQUENCY_32K = 0x08
+ ,BIT_TPI_CONFIG4_AUDIO_CHANNEL_8CH = 0x07
+ ,BIT_TPI_CONFIG4_AUDIO_CHANNEL_2CH = 0x01
+}TpiConfig4Bits_e;
+/*\
+ HDCP Implementation
+
+ HDCP link security logic is implemented in certain transmitters; unique
+ keys are embedded in each chip as part of the solution. The security
+ scheme is fully automatic and handled completely by the hardware.
+\*/
+
+/// HDCP Query Data Register ============================================== ///
+
+#define TPI_HDCP_QUERY_DATA_REG TX_PAGE_TPI , 0x0029
+
+#define EXTENDED_LINK_PROTECTION_MASK (0x80)
+#define EXTENDED_LINK_PROTECTION_NONE (0x00)
+#define EXTENDED_LINK_PROTECTION_SECURE (0x80)
+
+#define LOCAL_LINK_PROTECTION_MASK (0x40)
+#define LOCAL_LINK_PROTECTION_NONE (0x00)
+#define LOCAL_LINK_PROTECTION_SECURE (0x40)
+
+#define LINK_STATUS_MASK (0x30)
+#define LINK_STATUS_NORMAL (0x00)
+#define LINK_STATUS_LINK_LOST (0x10)
+#define LINK_STATUS_RENEGOTIATION_REQ (0x20)
+#define LINK_STATUS_LINK_SUSPENDED (0x30)
+
+#define HDCP_REPEATER_MASK (0x08)
+#define HDCP_REPEATER_NO (0x00)
+#define HDCP_REPEATER_YES (0x08)
+
+#define CONNECTOR_TYPE_MASK (0x05)
+#define CONNECTOR_TYPE_DVI (0x00) // confirmed with design
+#define CONNECTOR_TYPE_RSVD (0x01)
+#define CONNECTOR_TYPE_HDMI (0x04) // confirmed with design
+#define CONNECTOR_TYPE_FUTURE (0x05)
+
+#define PROTECTION_TYPE_MASK (0x02)
+#define PROTECTION_TYPE_NONE (0x00)
+#define PROTECTION_TYPE_HDCP (0x02)
+
+/// HDCP Control Data Register ============================================ ///
+
+#define TPI_HDCP_CONTROL_DATA_REG TX_PAGE_TPI , 0x002A
+
+typedef enum
+{
+ BIT_TPI_HDCP_CONTROL_DATA_COPP_PROTLEVEL_MASK = 0x01
+ ,BIT_TPI_HDCP_CONTROL_DATA_COPP_PROTLEVEL_MIN = 0x00
+ ,BIT_TPI_HDCP_CONTROL_DATA_COPP_PROTLEVEL_MAX = 0x01
+
+ ,BIT_TPI_HDCP_CONTROL_DATA_DOUBLE_RI_CHECK_MASK = 0x04
+ ,BIT_TPI_HDCP_CONTROL_DATA_DOUBLE_RI_CHECK_DISABLE= 0x00
+ ,BIT_TPI_HDCP_CONTROL_DATA_DOUBLE_RI_CHECK_ENABLE = 0x04
+
+}TpiHdcpControlDataBits_e;
+
+#define PROTECTION_LEVEL_MASK (0x01)
+#define PROTECTION_LEVEL_MIN (0x00)
+#define PROTECTION_LEVEL_MAX (0x01)
+
+#define KSV_FORWARD_MASK (0x10)
+#define KSV_FORWARD_ENABLE (0x10)
+#define KSV_FORWARD_DISABLE (0x00)
+
+/// HDCP BKSV Registers =================================================== ///
+
+#define TPI_BKSV_1_REG TX_PAGE_TPI , 0x002B
+#define TPI_BKSV_2_REG TX_PAGE_TPI , 0x002C
+#define TPI_BKSV_3_REG TX_PAGE_TPI , 0x002D
+#define TPI_BKSV_4_REG TX_PAGE_TPI , 0x002E
+#define TPI_BKSV_5_REG TX_PAGE_TPI , 0x002F
+
+/// HDCP Revision Data Register =========================================== ///
+
+#define TPI_HDCP_REVISION_DATA_REG TX_PAGE_TPI , 0x0030 // TODO: FD, TBD, not used
+
+#define HDCP_MAJOR_REVISION_MASK (0xF0)
+#define HDCP_MAJOR_REVISION_VALUE (0x10)
+
+#define HDCP_MINOR_REVISION_MASK (0x0F)
+#define HDCP_MINOR_REVISION_VALUE (0x02)
+
+/// HDCP KSV and V' Value Data Register =================================== ///
+
+
+#define TPI_V_PRIME_SELECTOR_REG TX_PAGE_TPI , 0x0031
+
+/// V' Value Readback Registers =========================================== ///
+
+#define TPI_V_PRIME_7_0_REG TX_PAGE_TPI , 0x0032
+#define TPI_V_PRIME_15_9_REG TX_PAGE_TPI , 0x0033
+#define TPI_V_PRIME_23_16_REG TX_PAGE_TPI , 0x0034
+#define TPI_V_PRIME_31_24_REG TX_PAGE_TPI , 0x0035
+
+/// HDCP AKSV Registers =================================================== ///
+
+#define TPI_AKSV_1_REG TX_PAGE_TPI , 0x0036
+#define TPI_AKSV_2_REG TX_PAGE_TPI , 0x0037
+#define TPI_AKSV_3_REG TX_PAGE_TPI , 0x0038
+#define TPI_AKSV_4_REG TX_PAGE_TPI , 0x0039
+#define TPI_AKSV_5_REG TX_PAGE_TPI , 0x003A
+
+/// Interrupt Enable Register ============================================= ///
+
+#define REG_TPI_INTR_ST0_ENABLE TX_PAGE_TPI , 0x003C
+#define REG_TPI_INTR_ST1_ENABLE TX_PAGE_TPI , 0x003F
+
+
+/// Interrupt Status Register ============================================= ///
+
+#define REG_TPI_INTR_ST0 TX_PAGE_TPI , 0x003D
+typedef enum{
+ BIT_TPI_INTR_ST0_AUDIO_ERROR_EVENT = 0x10
+ ,BIT_TPI_INTR_ST0_HDCP_SECURITY_CHANGE_EVENT = 0x20
+ ,BIT_TPI_INTR_ST0_HDCP_VPRIME_VALUE_READY_EVENT = 0x40
+ ,BIT_TPI_INTR_ST0_HDCP_AUTH_STATUS_CHANGE_EVENT = 0x80
+}TpiIntrSt0Bits_e;
+
+#define REG_TPI_INTR_ST1 TX_PAGE_TPI , 0x003E
+typedef enum{
+ BIT_TPI_INTR_ST1_BKSV_ERR = 0x02
+ ,BIT_TPI_INTR_ST1_BKSV_DONE = 0x04
+ ,BIT_TPI_INTR_ST1_KSV_FIFO_FIRST = 0x08
+}TpiIntrSt1Bits_e;
+
+#define REG_TPI_BSTATUS2 TX_PAGE_TPI , 0x46
+typedef enum{
+ BIT_DS_CASC_EXCEEDED = 0x08
+}tpi_bstatus2_e;
+
+#define REG_TPI_HW_DBG1 TX_PAGE_TPI , 0x79
+#define REG_TPI_HW_DBG2 TX_PAGE_TPI , 0x7A
+#define REG_TPI_HW_DBG3 TX_PAGE_TPI , 0x7B
+#define REG_TPI_HW_DBG4 TX_PAGE_TPI , 0x7C
+#define REG_TPI_HW_DBG5 TX_PAGE_TPI , 0x7D
+#define REG_TPI_HW_DBG6 TX_PAGE_TPI , 0x7E
+#define REG_TPI_HW_DBG7 TX_PAGE_TPI , 0x7F
+
+// Define the rest here when needed.
+
+#define TPI_REG_HW_OPT1_B9 TX_PAGE_TPI , 0x00B9 // TODO: FD, TBD, not used
+
+#define REG_TPI_HW_OPT3 TX_PAGE_TPI , 0x00BB
+
+#define REG_TPI_INFO_FSEL TX_PAGE_TPI , 0x00BF
+typedef enum{
+ BIT_TPI_INFO_SEL_MASK = 0x07
+ ,BIT_TPI_INFO_SEL_AVI = 0x00
+ ,BIT_TPI_INFO_SEL_SPD = 0x01
+ ,BIT_TPI_INFO_SEL_Audio = 0x02
+ ,BIT_TPI_INFO_SEL_MPEG = 0x03
+ ,BIT_TPI_INFO_SEL_GENERIC = 0x04
+ ,BIT_TPI_INFO_SEL_GENERIC2 = 0x05
+ ,BIT_TPI_INFO_SEL_3D_VSIF = 0x06
+
+ ,BIT_TPI_INFO_READ_FLAG_MASK = 0x20
+ ,BIT_TPI_INFO_READ_FLAG_NO_READ = 0x00
+ ,BIT_TPI_INFO_READ_FLAG_READ = 0x20
+ ,BIT_TPI_INFO_RPT = 0x40
+ ,BIT_TPI_INFO_EN = 0x80
+}TpiInfoFSelBits_e;
+
+
+#define REG_TPI_INFO_BYTE00 TX_PAGE_TPI , 0x00C0
+#define REG_TPI_INFO_BYTE01 TX_PAGE_TPI , 0x00C1
+#define REG_TPI_INFO_BYTE02 TX_PAGE_TPI , 0x00C2
+#define REG_TPI_INFO_BYTE03 TX_PAGE_TPI , 0x00C3
+#define REG_TPI_INFO_BYTE04 TX_PAGE_TPI , 0x00C4
+#define REG_TPI_INFO_BYTE05 TX_PAGE_TPI , 0x00C5
+#define REG_TPI_INFO_BYTE06 TX_PAGE_TPI , 0x00C6
+#define REG_TPI_INFO_BYTE07 TX_PAGE_TPI , 0x00C7
+#define REG_TPI_INFO_BYTE08 TX_PAGE_TPI , 0x00C8
+#define REG_TPI_INFO_BYTE09 TX_PAGE_TPI , 0x00C9
+#define REG_TPI_INFO_BYTE10 TX_PAGE_TPI , 0x00CA
+#define REG_TPI_INFO_BYTE11 TX_PAGE_TPI , 0x00CB
+#define REG_TPI_INFO_BYTE12 TX_PAGE_TPI , 0x00CC
+#define REG_TPI_INFO_BYTE13 TX_PAGE_TPI , 0x00CD
+#define REG_TPI_INFO_BYTE14 TX_PAGE_TPI , 0x00CE
+#define REG_TPI_INFO_BYTE15 TX_PAGE_TPI , 0x00CF
+#define REG_TPI_INFO_BYTE16 TX_PAGE_TPI , 0x00D0
+#define REG_TPI_INFO_BYTE17 TX_PAGE_TPI , 0x00D1
+#define REG_TPI_INFO_BYTE18 TX_PAGE_TPI , 0x00D2
+#define REG_TPI_INFO_BYTE19 TX_PAGE_TPI , 0x00D3
+#define REG_TPI_INFO_BYTE20 TX_PAGE_TPI , 0x00D4
+#define REG_TPI_INFO_BYTE21 TX_PAGE_TPI , 0x00D5
+#define REG_TPI_INFO_BYTE22 TX_PAGE_TPI , 0x00D6
+#define REG_TPI_INFO_BYTE23 TX_PAGE_TPI , 0x00D7
+#define REG_TPI_INFO_BYTE24 TX_PAGE_TPI , 0x00D8
+#define REG_TPI_INFO_BYTE25 TX_PAGE_TPI , 0x00D9
+#define REG_TPI_INFO_BYTE26 TX_PAGE_TPI , 0x00DA
+#define REG_TPI_INFO_BYTE27 TX_PAGE_TPI , 0x00DB
+#define REG_TPI_INFO_BYTE28 TX_PAGE_TPI , 0x00DC
+#define REG_TPI_INFO_BYTE29 TX_PAGE_TPI , 0x00DD
+#define REG_TPI_INFO_BYTE30 TX_PAGE_TPI , 0x00DE
+#define REG_TPI_INFO_BYTE31 TX_PAGE_TPI , 0x00DF
+#define REG_TPI_INFO_BYTE32 TX_PAGE_TPI , 0x00E0
+#define REG_TPI_INFO_BYTE33 TX_PAGE_TPI , 0x00E1
+#define REG_TPI_INFO_BYTE34 TX_PAGE_TPI , 0x00E2
+#define REG_TPI_INFO_BYTE35 TX_PAGE_TPI , 0x00E3
+#define REG_TPI_INFO_BYTE36 TX_PAGE_TPI , 0x00E4
+#define REG_TPI_INFO_BYTE37 TX_PAGE_TPI , 0x00E5
+#define REG_TPI_INFO_BYTE38 TX_PAGE_TPI , 0x00E6
+#define REG_TPI_INFO_BYTE39 TX_PAGE_TPI , 0x00E7
+#define REG_TPI_INFO_BYTE40 TX_PAGE_TPI , 0x00E8
+#define REG_TPI_INFO_BYTE41 TX_PAGE_TPI , 0x00E9
+#define REG_TPI_INFO_BYTE42 TX_PAGE_TPI , 0x00EA
+#define REG_TPI_INFO_BYTE43 TX_PAGE_TPI , 0x00EB
+#define REG_TPI_INFO_BYTE44 TX_PAGE_TPI , 0x00EC
+#define REG_TPI_INFO_BYTE45 TX_PAGE_TPI , 0x00ED
+#define REG_TPI_INFO_BYTE46 TX_PAGE_TPI , 0x00EE
+#define REG_TPI_INFO_BYTE47 TX_PAGE_TPI , 0x00EF