0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef TEGRA_CEC_H
0015 #define TEGRA_CEC_H
0016
0017
0018 #define TEGRA_CEC_SW_CONTROL 0x000
0019 #define TEGRA_CEC_HW_CONTROL 0x004
0020 #define TEGRA_CEC_INPUT_FILTER 0x008
0021 #define TEGRA_CEC_TX_REGISTER 0x010
0022 #define TEGRA_CEC_RX_REGISTER 0x014
0023 #define TEGRA_CEC_RX_TIMING_0 0x018
0024 #define TEGRA_CEC_RX_TIMING_1 0x01c
0025 #define TEGRA_CEC_RX_TIMING_2 0x020
0026 #define TEGRA_CEC_TX_TIMING_0 0x024
0027 #define TEGRA_CEC_TX_TIMING_1 0x028
0028 #define TEGRA_CEC_TX_TIMING_2 0x02c
0029 #define TEGRA_CEC_INT_STAT 0x030
0030 #define TEGRA_CEC_INT_MASK 0x034
0031 #define TEGRA_CEC_HW_DEBUG_RX 0x038
0032 #define TEGRA_CEC_HW_DEBUG_TX 0x03c
0033
0034 #define TEGRA_CEC_HWCTRL_RX_LADDR_MASK 0x7fff
0035 #define TEGRA_CEC_HWCTRL_RX_LADDR(x) \
0036 ((x) & TEGRA_CEC_HWCTRL_RX_LADDR_MASK)
0037 #define TEGRA_CEC_HWCTRL_RX_SNOOP BIT(15)
0038 #define TEGRA_CEC_HWCTRL_RX_NAK_MODE BIT(16)
0039 #define TEGRA_CEC_HWCTRL_TX_NAK_MODE BIT(24)
0040 #define TEGRA_CEC_HWCTRL_FAST_SIM_MODE BIT(30)
0041 #define TEGRA_CEC_HWCTRL_TX_RX_MODE BIT(31)
0042
0043 #define TEGRA_CEC_INPUT_FILTER_MODE BIT(31)
0044 #define TEGRA_CEC_INPUT_FILTER_FIFO_LENGTH_SHIFT 0
0045
0046 #define TEGRA_CEC_TX_REG_DATA_SHIFT 0
0047 #define TEGRA_CEC_TX_REG_EOM BIT(8)
0048 #define TEGRA_CEC_TX_REG_BCAST BIT(12)
0049 #define TEGRA_CEC_TX_REG_START_BIT BIT(16)
0050 #define TEGRA_CEC_TX_REG_RETRY BIT(17)
0051
0052 #define TEGRA_CEC_RX_REGISTER_SHIFT 0
0053 #define TEGRA_CEC_RX_REGISTER_EOM BIT(8)
0054 #define TEGRA_CEC_RX_REGISTER_ACK BIT(9)
0055
0056 #define TEGRA_CEC_RX_TIM0_START_BIT_MAX_LO_TIME_SHIFT 0
0057 #define TEGRA_CEC_RX_TIM0_START_BIT_MIN_LO_TIME_SHIFT 8
0058 #define TEGRA_CEC_RX_TIM0_START_BIT_MAX_DURATION_SHIFT 16
0059 #define TEGRA_CEC_RX_TIM0_START_BIT_MIN_DURATION_SHIFT 24
0060
0061 #define TEGRA_CEC_RX_TIM1_DATA_BIT_MAX_LO_TIME_SHIFT 0
0062 #define TEGRA_CEC_RX_TIM1_DATA_BIT_SAMPLE_TIME_SHIFT 8
0063 #define TEGRA_CEC_RX_TIM1_DATA_BIT_MAX_DURATION_SHIFT 16
0064 #define TEGRA_CEC_RX_TIM1_DATA_BIT_MIN_DURATION_SHIFT 24
0065
0066 #define TEGRA_CEC_RX_TIM2_END_OF_BLOCK_TIME_SHIFT 0
0067
0068 #define TEGRA_CEC_TX_TIM0_START_BIT_LO_TIME_SHIFT 0
0069 #define TEGRA_CEC_TX_TIM0_START_BIT_DURATION_SHIFT 8
0070 #define TEGRA_CEC_TX_TIM0_BUS_XITION_TIME_SHIFT 16
0071 #define TEGRA_CEC_TX_TIM0_BUS_ERROR_LO_TIME_SHIFT 24
0072
0073 #define TEGRA_CEC_TX_TIM1_LO_DATA_BIT_LO_TIME_SHIFT 0
0074 #define TEGRA_CEC_TX_TIM1_HI_DATA_BIT_LO_TIME_SHIFT 8
0075 #define TEGRA_CEC_TX_TIM1_DATA_BIT_DURATION_SHIFT 16
0076 #define TEGRA_CEC_TX_TIM1_ACK_NAK_BIT_SAMPLE_TIME_SHIFT 24
0077
0078 #define TEGRA_CEC_TX_TIM2_BUS_IDLE_TIME_ADDITIONAL_FRAME_SHIFT 0
0079 #define TEGRA_CEC_TX_TIM2_BUS_IDLE_TIME_NEW_FRAME_SHIFT 4
0080 #define TEGRA_CEC_TX_TIM2_BUS_IDLE_TIME_RETRY_FRAME_SHIFT 8
0081
0082 #define TEGRA_CEC_INT_STAT_TX_REGISTER_EMPTY BIT(0)
0083 #define TEGRA_CEC_INT_STAT_TX_REGISTER_UNDERRUN BIT(1)
0084 #define TEGRA_CEC_INT_STAT_TX_FRAME_OR_BLOCK_NAKD BIT(2)
0085 #define TEGRA_CEC_INT_STAT_TX_ARBITRATION_FAILED BIT(3)
0086 #define TEGRA_CEC_INT_STAT_TX_BUS_ANOMALY_DETECTED BIT(4)
0087 #define TEGRA_CEC_INT_STAT_TX_FRAME_TRANSMITTED BIT(5)
0088 #define TEGRA_CEC_INT_STAT_RX_REGISTER_FULL BIT(8)
0089 #define TEGRA_CEC_INT_STAT_RX_REGISTER_OVERRUN BIT(9)
0090 #define TEGRA_CEC_INT_STAT_RX_START_BIT_DETECTED BIT(10)
0091 #define TEGRA_CEC_INT_STAT_RX_BUS_ANOMALY_DETECTED BIT(11)
0092 #define TEGRA_CEC_INT_STAT_RX_BUS_ERROR_DETECTED BIT(12)
0093 #define TEGRA_CEC_INT_STAT_FILTERED_RX_DATA_PIN_TRANSITION_H2L BIT(13)
0094 #define TEGRA_CEC_INT_STAT_FILTERED_RX_DATA_PIN_TRANSITION_L2H BIT(14)
0095
0096 #define TEGRA_CEC_INT_MASK_TX_REGISTER_EMPTY BIT(0)
0097 #define TEGRA_CEC_INT_MASK_TX_REGISTER_UNDERRUN BIT(1)
0098 #define TEGRA_CEC_INT_MASK_TX_FRAME_OR_BLOCK_NAKD BIT(2)
0099 #define TEGRA_CEC_INT_MASK_TX_ARBITRATION_FAILED BIT(3)
0100 #define TEGRA_CEC_INT_MASK_TX_BUS_ANOMALY_DETECTED BIT(4)
0101 #define TEGRA_CEC_INT_MASK_TX_FRAME_TRANSMITTED BIT(5)
0102 #define TEGRA_CEC_INT_MASK_RX_REGISTER_FULL BIT(8)
0103 #define TEGRA_CEC_INT_MASK_RX_REGISTER_OVERRUN BIT(9)
0104 #define TEGRA_CEC_INT_MASK_RX_START_BIT_DETECTED BIT(10)
0105 #define TEGRA_CEC_INT_MASK_RX_BUS_ANOMALY_DETECTED BIT(11)
0106 #define TEGRA_CEC_INT_MASK_RX_BUS_ERROR_DETECTED BIT(12)
0107 #define TEGRA_CEC_INT_MASK_FILTERED_RX_DATA_PIN_TRANSITION_H2L BIT(13)
0108 #define TEGRA_CEC_INT_MASK_FILTERED_RX_DATA_PIN_TRANSITION_L2H BIT(14)
0109
0110 #define TEGRA_CEC_HW_DEBUG_TX_DURATION_COUNT_SHIFT 0
0111 #define TEGRA_CEC_HW_DEBUG_TX_TXBIT_COUNT_SHIFT 17
0112 #define TEGRA_CEC_HW_DEBUG_TX_STATE_SHIFT 21
0113 #define TEGRA_CEC_HW_DEBUG_TX_FORCELOOUT BIT(25)
0114 #define TEGRA_CEC_HW_DEBUG_TX_TXDATABIT_SAMPLE_TIMER BIT(26)
0115
0116 #endif