import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / drivers / misc / mediatek / hdmi / Sii8348 / si_tpi_regs.h
diff --git a/drivers/misc/mediatek/hdmi/Sii8348/si_tpi_regs.h b/drivers/misc/mediatek/hdmi/Sii8348/si_tpi_regs.h
new file mode 100644 (file)
index 0000000..ecaf464
--- /dev/null
@@ -0,0 +1,381 @@
+/*
+
+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