blob: 6b815b67bbd7e26d733968268e7d8c9dc20b3103 [file] [log] [blame]
/*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
*
* 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; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* Description:
*/
/* ----------------------------------------------------------------------*/
/* This file is automatically generated from the script:*/
/**/
/* ./create_stb_define_for_C_code.pl*/
/**/
/* and was applied to the file*/
/**/
/* ./stb_define.h*/
/**/
/* DO NOT EDIT!!!!!*/
/* ----------------------------------------------------------------------*/
/**/
#ifdef C_STB_DEFINE_H
#else
#define C_STB_DEFINE_H
/*=================================================*/
/* STB Registers Start*/
/*=================================================*/
/* -----------------------------------------------*/
/*#define STB_CBUS_BASE 0x1600*/
/* -----------------------------------------------*/
/* There are two instantiations under one CBUS slave.
* Each CBUS slave can support*/
/* 256 registers.
* Each demux is allocated 128 registers so set the offset in*/
/* the middle*/
/* Copy this define but don't add a base address*/
/*#define DEMUX_1_OFFSET 0x00*/
/*#define DEMUX_2_OFFSET 0x50*/
/*#define DEMUX_3_OFFSET 0xa0*/
/*======================================================*/
/* STB TOP Registers (8'hf0 - 8'hf7)*/
/*======================================================*/
/* bit 30:28 -- ciplus_o_sel*/
/* bit 27:26 -- ciplus_i_sel*/
/* bit 25 -- use FAIL fro TS2*/
/* bit 24 -- use FAIL fro TS1*/
/* bit 23 -- use FAIL fro TS0*/
/* bit 22 -- invert fec_error for S2P1*/
/* bit 21 -- invert fec_data for S2P1*/
/* bit 20 -- invert fec_sync for S2P1*/
/* bit 19 -- invert fec_valid for S2P1*/
/* bit 18 -- invert fec_clk for S2P1*/
/* bit 17:16 -- fec_s_sel for S2P1
* 00 - select TS0, 01 -- select TS1, 10 -- select TS2, 11 - TS3*/
/* Bit 15 -- enable_des_pl_clk*/
/* Bit 14 -- reserved*/
/* Bit 13 -- use FAIL for TS3*/
/* Bit 12:10 -- ts_out_select,
* 0-TS0, 1-TS1, 2-TS2, 3-TS3,4-S2P2, 5-S2P1, 6-S2P0, 7-File*/
/* bit 9:8 -- des_i_sel 00 -- select demux0 as des input,
* 01 -- select_demux1, 10 -- select_demux2, 11 - reserved*/
/* bit 7 -- enable_des_pl*/
/* bit 6 -- invert fec_error for S2P0*/
/* bit 5 -- invert fec_data for S2P0*/
/* bit 4 -- invert fec_sync for S2P0*/
/* bit 3 -- invert fec_valid for S2P0*/
/* bit 2 -- invert fec_clk for S2P0*/
/* bit 1:0 -- fec_s_sel for S2P0
* 00 - select TS0, 01 -- select TS1, 10 -- select TS2, 11 - reserved*/
/*#define STB_TOP_CONFIG (STB_CBUS_BASE + 0xf0) // 0x16f0*/
/*----------- bit define -----------*/
#define INVERT_S2P1_FEC_ERROR 22
#define INVERT_S2P1_FEC_DATA 21
#define INVERT_S2P1_FEC_SYNC 20
#define INVERT_S2P1_FEC_VALID 19
#define INVERT_S2P1_FEC_CLK 18
#define S2P1_FEC_SERIAL_SEL 16
#define ENABLE_DES_PL_CLK 15
#define FAIL_TS3 13
#define TS_OUTPUT_SOURCE 10
#define DES_INPUT_SEL 8
#define ENABLE_DES_PL 7
#define INVERT_S2P0_FEC_ERROR 6
#define INVERT_S2P0_FEC_DATA 5
#define INVERT_S2P0_FEC_SYNC 4
#define INVERT_S2P0_FEC_VALID 3
#define INVERT_S2P0_FEC_CLK 2
#define S2P0_FEC_SERIAL_SEL 0
//define STB_S2P2_CONFIG
#define S2P2_DISABLE 11
#define S2P2_CLK_DIV 7
#define INVERT_S2P2_FEC_ERROR 6
#define INVERT_S2P2_FEC_DATA 5
#define INVERT_S2P2_FEC_SYNC 4
#define INVERT_S2P2_FEC_VALID 3
#define INVERT_S2P2_FEC_CLK 2
#define S2P2_FEC_SERIAL_SEL 0
/* 31:24 -- file_m2ts_skip_bytes_hiu1*/
/* 21 -- ts_hiu_enable_hiu1 */
/*20:16 -- fec_clk_div_hiu1*/
/*15:8 -- TS_package_length_sub_1_hiu1 */
/*7:0 -- fec_sync_byte_hiu1*/
/*#define TS_HIU1_CONFIG (STB_CBUS_BASE + 0x4e)*/
#define FILE_M2TS_SKIP_BYTES_HIU1 24
#define TS_HIU_ENABLE_HIU1 21
#define FEC_CLK_DIV_HIU1 16
#define TS_PACKAGE_LENGTH_SUB_1_HIU1 8
#define FEC_SYNC_BYTE_HIU1 0
/*5:4 -- fec_sel_demux_2, default:2*/
/*3:2 -- fec_sel_demux_1, default:1*/
/*1:0 -- fec_sel_demux_0, default:0*/
/*#define TS_TOP_CONFIG1 (STB_CBUS_BASE + 0x4f)*/
#define FEC_SEL_DEMUX_2 4
#define FEC_SEL_DEMUX_1 2
#define FEC_SEL_DEMUX_0 0
/* 31:28 - s2p1_clk_div*/
/* 27:24 - s2p0_clk_div*/
/* 23 - s2p1_disable*/
/* 22 - s2p0_disable*/
/* 21 - Reserved*/
/* 20 -- TS_OUT_error_INVERT*/
/* 19 -- TS_OUT_data_INVERT*/
/* 18 -- TS_OUT_sync_INVERT*/
/* 17 -- TS_OUT_valid_INVERT*/
/* 16 -- TS_OUT_clk_INVERT*/
/* 15:8 -- TS_package_length_sub_1 (default : 187)*/
/* 7:0 -- fec_sync_byte (default : 0x47)*/
/*#define TS_TOP_CONFIG (STB_CBUS_BASE + 0xf1) // 0x16f1*/
/*----------- bit define -----------*/
#define TS_OUT_CLK_INVERT 16
#define TS_PACKAGE_LENGTH_SUB_1 8
#define FEC_DEFAULT_SYNC_BYTE 0
/* Bit 25:24 -- transport_scrambling_control_odd_2 // should be 3*/
/* Bit 23:16 -- file_m2ts_skip_bytes*/
/* Bit 15:8 -- des_out_dly*/
/* Bit 7:6 -- transport_scrambling_control_odd // should be 3*/
/* Bit 5 -- ts_hiu_enable*/
/* Bit 4:0 -- fec_clk_div*/
/*#define TS_FILE_CONFIG (STB_CBUS_BASE + 0xf2) // 0x16f2*/
/*----------- bit define -----------*/
#define TRANSPORT_SCRAMBLING_CONTROL_ODD_2 24
#define FILE_M2TS_SKIP_BYTES 16
#define DES_OUT_DLY 8
#define TRANSPORT_SCRAMBLING_CONTROL_ODD 6
#define TS_HIU_ENABLE 5
#define FEC_FILE_CLK_DIV 0
/* Bit 19:14 -- des_2 ts pl state -- Read Only*/
/* Bit 13:8 -- des ts pl state -- Read Only*/
/* Bit 3:0 PID index to 8 PID to get key-set*/
/* auto increse after TS_PL_PID_DATA read/write*/
/*#define TS_PL_PID_INDEX (STB_CBUS_BASE + 0xf3) // 0x16f3*/
/*----------- bit define -----------*/
#define DES_TS_PL_STATE 8
#define DES_2_TS_PL_STATE 14
/* Bit 13 -- PID match disble*/
/* Bit 12:0 -- PID*/
/*#define TS_PL_PID_DATA (STB_CBUS_BASE + 0xf4) // 0x16f4*/
/*----------- bit define -----------*/
#define PID_MATCH_DISABLE_HIGH 29
#define PID_MATCH_HIGH 16
#define PID_MATCH_DISABLE_LOW 13
#define PID_MATCH_LOW 0
/*#define COMM_DESC_KEY0
* (STB_CBUS_BASE + 0xf5) // 0x16f5
Common descrambler key (key bits[63:32])*/
/*#define COMM_DESC_KEY1
* (STB_CBUS_BASE + 0xf6) // 0x16f6
Common descrambler key (key bits[31:0])*/
/*#define COMM_DESC_KEY_RW
* (STB_CBUS_BASE + 0xf7) // 0x16f7 // bits[3:0]
* point to the address to write the key
* {COMM_DESC_KEY3,...,COMM_DESC_KEY0}*/
/* Writing this register writes the key to RAM*/
/* bit 15:8 - des_out_dly_2*/
/* bit 7 - reserved*/
/* Bit 6-- enable_des_pl_clk_2*/
/* bit 5 - enable_des_pl_2*/
/* bit 4:2 -- use_des_2 bit[2] -- demux0, bit[3] -- demux1, bit[4] -- demux2*/
/* bit 1:0 -- des_i_sel_2 00 -- select_fec_0, 01 -- select_fec_1,
* 10 -- select_fec_2, 11 - reserved*/
/*#define COMM_DESC_2_CTL (STB_CBUS_BASE + 0xff) *//*0x16ff*/
/*=======================================================*/
/* Multiple STB Registers (8'h00 - 8'h45)*/
/*=======================================================*/
/* STB registers are 8'h0x*/
/* Bit 15:0 -- version number : 0x0002 (v0.01)*/
/*#define STB_VERSION
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x00) // 0x1600 // read only*/
/*#define STB_VERSION_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x00) // 0x1650 // read only*/
/*#define STB_VERSION_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x00) // 0x16a0 // read only*/
/*#define STB_TEST_REG
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x01) // 0x1601*/
/*#define STB_TEST_REG_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x01) // 0x1651*/
/*#define STB_TEST_REG_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x01) // 0x16a1*/
/* Bit 15 -- fec_core_select 1 - select descramble output*/
/* Bit 14:12 - fec_select
* 0-TS0, 1-TS1, 2-TS2, 3,4-Reserved, 5-S2P1, 6-S2P0, 7-File*/
/* Bit 11 -- FEC_CLK*/
/* Bit 10 -- SOP*/
/* Bit 9 -- D_VALID*/
/* Bit 8 -- D_FAIL*/
/* Bit 7:0 -- D_DATA 7:0*/
/*#define FEC_INPUT_CONTROL
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x02) // 0x1602*/
/*#define FEC_INPUT_CONTROL_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x02) // 0x1652*/
/*#define FEC_INPUT_CONTROL_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x02) // 0x16a2*/
/*----------- bit define -----------*/
#define FEC_SEL_3BIT 16
#define FEC_CORE_SEL 15
#define FEC_SEL 12
#define FEC_INPUT_FEC_CLK 11
#define FEC_INPUT_SOP 10
#define FEC_INPUT_D_VALID 9
#define FEC_INPUT_D_FAIL 8
/*#define FEC_INPUT_DATA
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x03) // 0x1603 // read only*/
/*#define FEC_INPUT_DATA_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x03) // 0x1653 // read only*/
/*#define FEC_INPUT_DATA_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x03) // 0x16a3 // read only*/
/* bit 31 -- enable_free_clk_fec_data_valid*/
/* bit 30 -- enable_free_clk_stb_reg*/
/* bit 29 -- always_use_pes_package_length*/
/* bit 28 -- disable_pre_incomplete_section_fix*/
/* bit 27 -- pointer_field_multi_pre_en*/
/* bit 26 -- ignore_pre_incomplete_section*/
/* bit 25 -- video2_enable*/
/* bit 24:22 -- video2_type*/
/* bit 21 -- do_not_trust_pes_package_length*/
/* bit 20 (bit 4) -- Bypass use recoder path*/
/* bit 19 (bit 3) -- clear_PID_continuity_counter_valid*/
/* bit 18 (bit 2) -- Disable Splicing*/
/* bit 17 (bit 1) -- Insert PES_STRONG_SYNC in Audio PES*/
/* bit 16 (bit 0) -- Insert PES_STRONG_SYNC in Video PES*/
/* Bit 15 - do not trust section length*/
/* Bit 14 - om cmd push even zero*/
/* Bit 13 - reserved*/
/* Bit 12 - SUB, OTHER PES interrupt at beginning of PES*/
/* Bit 11 - discard_av_package -- for ts_recorder use only*/
/* Bit 10 - ts_recorder_select 0:after PID filter 1:before PID filter*/
/* Bit 9 - ts_recorder_enable*/
/* Bit 8 - (table_id == 0xff) means section_end*/
/* Bit 7 - do not send uncomplete section*/
/* Bit 6 - do not discard duplicate package*/
/* Bit 5 - search SOP when trasport_error_indicator*/
/* Bit 4 - stb demux enable*/
/* Bit 3 - do not reset state machine on SOP*/
/* Bit 2 - search SOP when error happened
* ( when ignore_fail_n_sop, will have this case)*/
/* Bit 1 - do not use SOP input ( check FEC sync byte instead )*/
/* Bit 0 - ignore fec_error bit when non sop ( check error on SOP only)*/
/*#define DEMUX_CONTROL
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x04) // 0x1604*/
/*#define DEMUX_CONTROL_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x04) // 0x1654*/
/*#define DEMUX_CONTROL_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x04) // 0x16a4*/
/*----------- bit define -----------*/
#define ENABLE_FREE_CLK_FEC_DATA_VALID 31
#define ENABLE_FREE_CLK_STB_REG 30
#define BYPASS_USE_RECODER_PATH 20
#define CLEAR_PID_CONTINUITY_COUNTER_VALID 19
#define DISABLE_SPLICING 18
#define INSERT_AUDIO_PES_STRONG_SYNC 17
#define INSERT_VIDEO_PES_STRONG_SYNC 16
#define SECTION_LENGTH_UNTRUSTY 15
#define OM_CMD_PUSH_EVEN_ZERO 14
#define OTHER_INT_AT_PES_BEGINING 12
#define DISCARD_AV_PACKAGE 11
#define TS_RECORDER_SELECT 10
#define TS_RECORDER_ENABLE 9
#define SECTION_END_WITH_TABLE_ID 8
#define SEND_COMPLETE_SECTION_ONLY 7
#define KEEP_DUPLICATE_PACKAGE 6
#define SEACH_SOP_ON_TRANSPORT_ERROR 5
#define STB_DEMUX_ENABLE 4
#define NO_RESET_ON_SOP 3
#define SEARCH_SOP_ON_ERROR 2
#define NOT_USE_OF_SOP_INPUT 1
#define IGNORE_NONSOP_FEC_ERROR 0
/* bit 15:8 demux package length - 1 ( default : 187 )*/
/* bit 7:0 default is 0x47*/
/*#define FEC_SYNC_BYTE
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x05) // 0x1605*/
/*#define FEC_SYNC_BYTE_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x05) // 0x1655*/
/*#define FEC_SYNC_BYTE_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x05) // 0x16a5*/
/****************************************
* FM Memory Usage :
* 0-15 (32 PID filter target) ---- 15:13-PID type 12:0-PID target or force data
* (force data : 1 will mask corespoding bit,
* 0 will disable this PID filter channel)
* advanced setting -- bit 7:0
* bit 7 -- PID bit 12:11 compare result force
* bit 6 -- PID bit 10:9 compare result force
* bit 5 -- PID bit 8:7 compare result force
* bit 4 -- PID bit 6:5 compare result force
* bit 3 -- PID bit 4:3 compare result force
* bit 2 -- PID bit 2 compare result force
* bit 1 -- PID bit 1 compare result force
* bit 0 -- PID bit 0 compare result force
* 16-255(15x32 Section filter target)
* For first byte : Table_ID
* ---- 15-Mask High 4-bits
* 14-Mask Low 4-bits
* 13-disable_PID_check
* 12:8-PIDindex
* 7:0-section target (always EQ)
* For rest of bytes :
* ---- 15-Mask 14-EQ/NE 13-disable_PID_check
* ----12:8-PIDindex 7:0-section target (or force data)
* advanced setting -- bit 7:0 force compare result
**************************************************/
/*----------- bit define -----------*/
#define PID_TYPE 13
#define PID_TARGET 0
#define SECTION_FIRSTBYTE_MASKHIGH 15
#define SECTION_FIRSTBYTE_MASKLOW 14
#define SECTION_FIRSTBYTE_DISABLE_PID_CHECK 13
#define SECTION_FIRSTBYTE_PID_INDEX 8
#define SECTION_TARGET 0
#define SECTION_RESTBYTE_MASK 15
#define SECTION_RESTBYTE_MASK_EQ 14
#define SECTION_RESTBYTE_DISABLE_PID_CHECK 13
#define SECTION_RESTBYTE_PID_INDEX 8
/* bit 31:16 -- filter memory write data hi[31:16]*/
/* bit 15:0 -- filter memory write data low [15:0]*/
/*#define FM_WR_DATA
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x06) // 0x1606*/
/*#define FM_WR_DATA_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x06) // 0x1656*/
/*#define FM_WR_DATA_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x06) // 0x16a6*/
/*----------- bit define -----------*/
#define FM_WR_DATA_HI 16
/* bit 31:24 -- advanced setting hi*/
/* bit 23:16 -- advanced setting low*/
/* bit 15 -- filter memory write data request*/
/* bit 7:0 -- filter memory write addr*/
/*#define FM_WR_ADDR
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x07) // 0x1607*/
/*#define FM_WR_ADDR_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x07) // 0x1657*/
/*#define FM_WR_ADDR_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x07) // 0x16a7*/
/*----------- bit define -----------*/
#define FM_ADVANCED_SETTING_HI 24
#define FM_ADVANCED_SETTING_LO 16
#define FM_WR_DATA_REQUEST 15
/* bit 13:8 demux state -- read only*/
/* bit 7:4 -- maxnum section filter compare address*/
/* bit 3:0 -- maxnum PID filter compare address*/
/*#define MAX_FM_COMP_ADDR
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x08) // 0x1608*/
/*#define MAX_FM_COMP_ADDR_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x08) // 0x1658*/
/*#define MAX_FM_COMP_ADDR_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x08) // 0x16a8*/
/*----------- bit define -----------*/
#define DEMUX_STATE 8
#define MAX_FM_SECTION_FILTER_COMP_ADDR 4
/* bit 15 - transport_error_indicator*/
/* bit 14 - payload_unit_start_indicator*/
/* bit 13 - transport_priority*/
/* bit 12:0 - PID*/
/*#define TS_HEAD_0
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x09) // 0x1609*/
/*#define TS_HEAD_0_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x09) // 0x1659*/
/*#define TS_HEAD_0_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x09) // 0x16a9*/
/*----------- bit define -----------*/
#define TRANSPORT_ERROR_INDICATOR 15
#define PAYLOAD_UNIT_START_INDICATOR 14
#define TRANSPORT_PRIORITY 13
/* bit 7:6 transport_scrambling_control*/
/* bit 5:4 adaptation_field_control*/
/* bit 3:0 continuity_counter*/
/*#define TS_HEAD_1
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x0a) // 0x160a*/
/*#define TS_HEAD_1_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x0a) // 0x165a*/
/*#define TS_HEAD_1_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x0a) // 0x16aa*/
/*----------- bit define -----------*/
#define TRANSPORT_SCRAMBLING_CONTROL 6
#define ADAPTATION_FIELD_CONTROL 4
/* bit 15:12 -- om_cmd_count (read only)*/
/* bit 11:9 -- overflow_count // bit 11:9 -- om_cmd_wr_ptr (read only)*/
/* bit 8:6 -- om_overwrite_count // bit 8:6 -- om_cmd_rd_ptr (read only)*/
/* bit 5:3 -- type_stb_om_w_rd (read only)*/
/* bit 2 -- unit_start_stb_om_w_rd (read only)*/
/* bit 1 -- om_cmd_overflow (read only)*/
/* bit 0 -- om_cmd_pending (read)*/
/* bit 0 -- om_cmd_read_finished (write)*/
/*#define OM_CMD_STATUS
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x0b) // 0x160b*/
/*#define OM_CMD_STATUS_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x0b) // 0x165b*/
/*#define OM_CMD_STATUS_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x0b) // 0x16ab*/
/*----------- bit define -----------*/
#define OM_CMD_COUNT 12
#define OM_OVERFLOW_COUNT 9
#define OM_OVERWRITE_COUNT 6
#define TYPE_STB_OM_W_RD 3
#define UNIT_START_STB_OM_W_RD 2
#define OM_CMD_OVERFLOW 1
/* bit 15:9 -- count_stb_om_w_rd (read only)*/
/* bit 8:0 -- start_stb_om_wa_rd (read only)*/
/*#define OM_CMD_DATA
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x0c) // 0x160c*/
/*#define OM_CMD_DATA_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x0c) // 0x165c*/
/*#define OM_CMD_DATA_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x0c) // 0x16ac*/
/*----------- bit define -----------*/
#define COUNT_STB_OM_W_RD 9
/* bit 11:0 -- offset for section data*/
/*#define OM_CMD_DATA2
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x0d) // 0x160d*/
/*#define OM_CMD_DATA2_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x0d) // 0x165d*/
/*#define OM_CMD_DATA2_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x0d) // 0x16ad*/
/* bit 31:16 -- base address for section buffer group 0
* (*0x400 to get real address)*/
/* bit 15:0 -- base address for section buffer group 1
* (*0x400 to get real address)*/
/*#define SEC_BUFF_01_START
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x0e) // 0x160e*/
/*#define SEC_BUFF_01_START_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x0e) // 0x165e*/
/*#define SEC_BUFF_01_START_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x0e) // 0x16ae*/
/*----------- bit define -----------*/
#define SEC_BUFF_0_BASE_ADDR 16
/* bit 31:16 -- base address for section buffer group 2
* (*0x400 to get real address)*/
/* bit 15:0 -- base address for section buffer group 3
* (*0x400 to get real address)*/
/*#define SEC_BUFF_23_START
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x0f) // 0x160f*/
/*#define SEC_BUFF_23_START_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x0f) // 0x165f*/
/*#define SEC_BUFF_23_START_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x0f) // 0x16af*/
/*----------- bit define -----------*/
#define SEC_BUFF_2_BASE_ADDR 16
/* bit 15:12 -- section buffer size for group 3*/
/* bit 11:8 -- section buffer size for group 2*/
/* bit 7:4 -- section buffer size for group 1*/
/* bit 3:0 -- section buffer size for group 0
* (bit used, for example, 10 means 1K)*/
/*#define SEC_BUFF_SIZE
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x10) // 0x1610*/
/*#define SEC_BUFF_SIZE_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x10) // 0x1660*/
/*#define SEC_BUFF_SIZE_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x10) // 0x16b0*/
/*----------- bit define -----------*/
#define SEC_BUFF_3_SIZE 12
#define SEC_BUFF_2_SIZE 8
#define SEC_BUFF_1_SIZE 4
/* section buffer busy status for buff 31:0 ( Read Only )*/
/*#define SEC_BUFF_BUSY
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x11) // 0x1611*/
/*#define SEC_BUFF_BUSY_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x11) // 0x1661*/
/*#define SEC_BUFF_BUSY_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x11) // 0x16b1*/
/* section buffer write status for buff 31:0 -- Read*/
/* clear buffer status ( buff READY and BUSY ) -- write*/
/*#define SEC_BUFF_READY
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x12) // 0x1612*/
/*#define SEC_BUFF_READY_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x12) // 0x1662*/
/*#define SEC_BUFF_READY_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x12) // 0x16b2*/
/* bit 15 -- section_reset_busy (Read Only)*/
/* bit 14 -- output_section_buffer_valid*/
/* bit 12:8 -- SEC_BUFFER_NUMBER for the INDEX buffer Read_Only*/
/* bit 4:0 -- SEC_BUFFER_INDEX RW*/
/*#define SEC_BUFF_NUMBER
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x13) // 0x1613*/
/*#define SEC_BUFF_NUMBER_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x13) // 0x1663*/
/*#define SEC_BUFF_NUMBER_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x13) // 0x16b3*/
/*----------- bit define -----------*/
#define SECTION_RESET_BUSY 15
#define OUTPUT_SECTION_BUFFER_VALID 14
#define INDEXED_SEC_BUFF_NUMBER 8
/* bit 9:5 -- BYPASS PID number*/
/* bit 4:0 -- PCR PID number*/
/*#define ASSIGN_PID_NUMBER
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x14) // 0x1614*/
/*#define ASSIGN_PID_NUMBER_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x14) // 0x1664*/
/*#define ASSIGN_PID_NUMBER_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x14) // 0x16b4*/
/*----------- bit define -----------*/
#define BYPASS_PID_NUMBER 5
/* bit 15:0 -- stream_id filter bit enable*/
/* bit 7:0 -- stream_id filter target*/
/*#define VIDEO_STREAM_ID
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x15) // 0x1615*/
/*#define VIDEO_STREAM_ID_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x15) // 0x1665*/
/*#define VIDEO_STREAM_ID_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x15) // 0x16b5*/
/*#define AUDIO_STREAM_ID
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x16) // 0x1616*/
/*#define AUDIO_STREAM_ID_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x16) // 0x1666*/
/*#define AUDIO_STREAM_ID_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x16) // 0x16b6*/
/*#define SUB_STREAM_ID
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x17) // 0x1617*/
/*#define SUB_STREAM_ID_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x17) // 0x1667*/
/*#define SUB_STREAM_ID_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x17) // 0x16b7*/
/*#define OTHER_STREAM_ID
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x18) // 0x1618*/
/*#define OTHER_STREAM_ID_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x18) // 0x1668*/
/*#define OTHER_STREAM_ID_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x18) // 0x16b8*/
/* bit 12 -- PCR_EN*/
/* bit 11:0 -- PCR90K_DIV*/
/*#define PCR90K_CTL
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x19) // 0x1619*/
/*#define PCR90K_CTL_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x19) // 0x1669*/
/*#define PCR90K_CTL_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x19) // 0x16b9*/
/*----------- bit define -----------*/
#define PCR_EN 12
/* bit 15:0 -- PCR[31:0] R/W*/
/*#define PCR_DEMUX
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x1a) // 0x161a*/
/*#define PCR_DEMUX_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x1a) // 0x166a*/
/*#define PCR_DEMUX_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x1a) // 0x16ba*/
/* bit 15:0 -- VPTS[31:0] R/W*/
/*#define VIDEO_PTS_DEMUX
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x1b) // 0x161b*/
/*#define VIDEO_PTS_DEMUX_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x1b) // 0x166b*/
/*#define VIDEO_PTS_DEMUX_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x1b) // 0x16bb*/
/* bit 15:0 -- VDTS[31:0] R/W*/
/*#define VIDEO_DTS_DEMUX
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x1c) // 0x161c*/
/*#define VIDEO_DTS_DEMUX_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x1c) // 0x166c*/
/*#define VIDEO_DTS_DEMUX_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x1c) // 0x16bc*/
/* bit 15:0 -- APTS[31:0] R/W*/
/*#define AUDIO_PTS_DEMUX
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x1d) // 0x161d*/
/*#define AUDIO_PTS_DEMUX_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x1d) // 0x166d*/
/*#define AUDIO_PTS_DEMUX_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x1d) // 0x16bd*/
/* bit 15:0 -- SPTS[31:0] R/W*/
/*#define SUB_PTS_DEMUX
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x1e) // 0x161e*/
/*#define SUB_PTS_DEMUX_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x1e) // 0x166e*/
/*#define SUB_PTS_DEMUX_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x1e) // 0x16be*/
/* read -- status, write 1 clear status*/
/* bit 15 -- SUB_PTS[32]*/
/* bit 14 -- AUDIO_PTS[32]*/
/* bit 13 -- VIDEO_DTS[32]*/
/* bit 12 -- VIDEO_PTS[32]*/
/* bit 3 -- sub_pts_ready*/
/* bit 2 -- audio_pts_ready*/
/* bit 1 -- video_dts_ready*/
/* bit 0 -- video_pts_ready*/
/*#define STB_PTS_DTS_STATUS
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x1f) // 0x161f*/
/*#define STB_PTS_DTS_STATUS_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x1f) // 0x166f*/
/*#define STB_PTS_DTS_STATUS_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x1f) // 0x16bf*/
/*----------- bit define -----------*/
#define SUB_PTS_BIT32 15
#define AUDIO_PTS_BIT32 14
#define VIDEO_DTS_BIT32 13
#define VIDEO_PTS_BIT32 12
#define SUB_PTS_READY 3
#define AUDIO_PTS_READY 2
#define VIDEO_DTS_READY 1
#define VIDEO_PTS_READY 0
/* bit 3:0 --*/
/* 0 -- adaptation_field_length[7:0], adaption_field_byte_1[7:0]*/
/* 1 -- stream_id[7:0], pes_header_bytes_left[7:0]*/
/* 2 -- pes_package_bytes_left[15:0]*/
/* 3 -- pes_ctr_byte[7:0], pes_flag_byte[7:0]*/
/*#define STB_DEBUG_INDEX
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x20) // 0x1620*/
/*#define STB_DEBUG_INDEX_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x20) // 0x1670*/
/*#define STB_DEBUG_INDEX_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x20) // 0x16c0*/
/* read only*/
/*#define STB_DEBUG_DATA_OUT
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x21) // 0x1621*/
/*#define STB_DEBUG_DATA_OUT_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x21) // 0x1671*/
/*#define STB_DEBUG_DATA_OUT_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x21) // 0x16c1*/
/* bit[31] -- no_match_record_en*/
/* bit[30:16] - reserved*/
/* default : 0x807f*/
/* bit 15:9 -- MAX OM DMA COUNT (default: 0x40)*/
/* bit 8:0 -- LAST ADDR OF OM ADDR (default: 127)*/
/*#define STB_OM_CTL \
(STB_CBUS_BASE + DEMUX_1_OFFSET + 0x22) // 0x1622*/
/*#define STB_OM_CTL_2 \
(STB_CBUS_BASE + DEMUX_2_OFFSET + 0x22) // 0x1672*/
/*#define STB_OM_CTL_3 \
(STB_CBUS_BASE + DEMUX_3_OFFSET + 0x22) // 0x16c2*/
/*----------- bit define -----------*/
#define MAX_OM_DMA_COUNT 9
#define LAST_OM_ADDR 0
/* 15:0 WRITE 1 CLEAR to clear interrupt source*/
/*12 -- INPUT_TIME_OUT*/
/*11 -- PCR_ready*/
/*10 -- audio_splicing_point*/
/* 9 -- video_splicing_point*/
/* 8 -- other_PES_int*/
/* 7 -- sub_PES_int*/
/* 6 -- discontinuity*/
/* 5 -- duplicated_pack_found*/
/* 4 -- New PDTS ready*/
/* 3 -- om_cmd_buffer ready for access*/
/* 2 -- section buffer ready*/
/* 1 -- transport_error_indicator*/
/* 0 -- TS ERROR PIN*/
/*#define STB_INT_STATUS
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x23) // 0x1623*/
/*#define STB_INT_STATUS_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x23) // 0x1673*/
/*#define STB_INT_STATUS_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x23) // 0x16c3*/
/*----------- bit define -----------*/
#define INPUT_TIME_OUT 12
#define PCR_READY 11
#define AUDIO_SPLICING_POINT 10
#define VIDEO_SPLICING_POINT 9
#define OTHER_PES_READY 8
#define SUB_PES_READY 7
#define DIS_CONTINUITY_PACKET 6
#define DUPLICATED_PACKET 5
#define NEW_PDTS_READY 4
#define OM_CMD_READ_PENDING 3
#define SECTION_BUFFER_READY 2
#define TS_ERROR_PACKAGE 1
#define TS_ERROR_PIN 0
/* When Bit 31 - 1 write will indicate all type use sepertate endian
* (Write Only)*/
/* When Bit 31 - 0 write will indicate all type else use Bit 8:6*/
/* Bit 23:21 - demux om write endian control for OTHER_PES_PACKET*/
/* Bit 20:18 - demux om write endian control for SCR_ONLY_PACKET*/
/* Bit 17:15 - demux om write endian control for SUB_PACKET*/
/* Bit 14:12 - demux om write endian control for AUDIO_PACKET*/
/* Bit 11:9 - demux om write endian control for VIDEO_PACKET*/
/* Bit 8:6 - demux om write endian control for else*/
/* Bit 5:3 - demux om write endian control for bypass*/
/* Bit 2:0 - demux om write endian control for section*/
/*#define DEMUX_ENDIAN
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x24) // 0x1624*/
/*#define DEMUX_ENDIAN_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x24) // 0x1674*/
/*#define DEMUX_ENDIAN_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x24) // 0x16c4*/
/*----------- bit define -----------*/
#define SEPERATE_ENDIAN 31
#define OTHER_PES_ENDIAN 21
#define SCR_ENDIAN 18
#define SUB_ENDIAN 15
#define AUDIO_ENDIAN 12
#define VIDEO_ENDIAN 9
#define OTHER_ENDIAN 6
#define BYPASS_ENDIAN 3
#define SECTION_ENDIAN 0
/* Bit 10:9 -- PDTS_wr_sel: 0 select video_PDTS_wr_ptr; 1 select video_PDTS_wr_ptr_parser_B; */
/* Bit 7:8 -- use hi_bsf interface*/
/* Bit 6:2 - fec_clk_div*/
/* Bit 1 ts_source_sel */
/* Bit 0 - Hiu TS generate enable */
/*#define TS_HIU_CTL
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x25) // 0x1625*/
/*#define TS_HIU_CTL_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x25) // 0x1675*/
/*#define TS_HIU_CTL_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x25) // 0x16c5*/
/*----------- bit define -----------*/
//#define LAST_BURST_THRESHOLD 8
#define PDTS_WR_SEL 9
#define USE_HI_BSF_INTERFACE 7
/* bit 15:0 -- base address for section buffer start
* (*0x10000 to get real base)*/
/*#define SEC_BUFF_BASE
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x26) // 0x1626*/
/*#define SEC_BUFF_BASE_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x26) // 0x1676*/
/*#define SEC_BUFF_BASE_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x26) // 0x16c6*/
/* bit 11 -- mask bit for OTHER_PES_AHB_DMA_EN*/
/* bit 10 -- mask bit for SUB_AHB_DMA_EN*/
/* bit 9 -- mask bit for BYPASS_AHB_DMA_EN*/
/* bit 8 -- mask bit for SECTION_AHB_DMA_EN*/
/* bit 7 -- mask bit for recoder stream*/
/* bit 6:0 -- mask bit for each type*/
/*#define DEMUX_MEM_REQ_EN
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x27) // 0x1627*/
/*#define DEMUX_MEM_REQ_EN_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x27) // 0x1677*/
/*#define DEMUX_MEM_REQ_EN_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x27) // 0x16c7*/
/*----------- bit define -----------*/
#define VIDEO2_DMA_EN_BIT 12
#define OTHER_PES_AHB_DMA_EN 11
#define SUB_AHB_DMA_EN 10
#define BYPASS_AHB_DMA_EN 9
#define SECTION_AHB_DMA_EN 8
#define RECORDER_STREAM 7
#define OTHER_PES_PACKET 6
#define SCR_ONLY_PACKET 5 /*will never be used*/
#define BYPASS_PACKET 4
#define SECTION_PACKET 3
#define SUB_PACKET 2
#define AUDIO_PACKET 1
#define VIDEO_PACKET 0
/* bit 31:0 -- vb_wr_ptr for video PDTS*/
/*#define VIDEO_PDTS_WR_PTR
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x28) // 0x1628*/
/*#define VIDEO_PDTS_WR_PTR_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x28) // 0x1678*/
/*#define VIDEO_PDTS_WR_PTR_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x28) // 0x16c8*/
/* bit 31:0 -- ab_wr_ptr for audio PDTS*/
/*#define AUDIO_PDTS_WR_PTR
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x29) // 0x1629*/
/*#define AUDIO_PDTS_WR_PTR_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x29) // 0x1679*/
/*#define AUDIO_PDTS_WR_PTR_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x29) // 0x16c9*/
/* bit 20:0 -- SB_WRITE_PTR (sb_wr_ptr << 3 == byte write position)*/
/*#define SUB_WR_PTR
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x2a) // 0x162a*/
/*#define SUB_WR_PTR_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x2a) // 0x167a*/
/*#define SUB_WR_PTR_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x2a) // 0x16ca*/
/* bit 19:0 -- SB_START (sb_start << 12 == byte address);*/
/*#define SB_START
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x2b) // 0x162b*/
/*#define SB_START_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x2b) // 0x167b*/
/*#define SB_START_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x2b) // 0x16cb*/
/* bit 20:0 -- SB_SIZE (sb_size << 3 == byte size, 16M maximun)*/
/*#define SB_LAST_ADDR
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x2c) // 0x162c*/
/*#define SB_LAST_ADDR_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x2c) // 0x167c*/
/*#define SB_LAST_ADDR_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x2c) // 0x16cc*/
/* bit 31:0 -- sb_wr_ptr for sub PES*/
/*#define SB_PES_WRITE_PTR
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x2d) // 0x162d*/
/*#define SB_PES_WRITE_PTR_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x2d) // 0x167d*/
/*#define SB_PES_WRITE_PTR_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x2d) // 0x16cd*/
/* bit 31:16 -- ob_wr_ptr for other PES*/
/* bit 20:0 -- OB_WRITE_PTR (ob_wr_ptr << 3 == byte write position)*/
/*#define OTHER_WR_PTR
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x2e) // 0x162e*/
/*#define OTHER_WR_PTR_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x2e) // 0x167e*/
/*#define OTHER_WR_PTR_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x2e) // 0x16ce*/
/* bit 19:0 -- OB_START (ob_start << 12 == byte address);*/
/*#define OB_START
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x2f) // 0x162f*/
/*#define OB_START_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x2f) // 0x167f*/
/*#define OB_START_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x2f) // 0x16cf*/
/* bit 20:0 -- OB_SIZE (ob_size << 3 == byte size, 16M maximun)*/
/*#define OB_LAST_ADDR
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x30) // 0x1630*/
/*#define OB_LAST_ADDR_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x30) // 0x1680*/
/*#define OB_LAST_ADDR_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x30) // 0x16d0*/
/* bit 31:0 -- ob_wr_ptr for sub PES*/
/*#define OB_PES_WRITE_PTR
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x31) // 0x1631*/
/*#define OB_PES_WRITE_PTR_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x31) // 0x1681*/
/*#define OB_PES_WRITE_PTR_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x31) // 0x16d1*/
/* 15:0 DEMUX interrupt MASK*/
/* 11 -- PCR_READY*/
/* 10 -- audio_splicing_point*/
/* 9 -- video_splicing_point*/
/* 8 -- other_PES_int*/
/* 7 -- sub_PES_int*/
/* 6 -- discontinuity*/
/* 5 -- duplicated_pack_found*/
/* 4 -- New PDTS ready*/
/* 3 -- om_cmd_buffer ready for access*/
/* 2 -- section buffer ready*/
/* 1 -- transport_error_indicator*/
/* 0 -- TS ERROR PIN*/
/*#define STB_INT_MASK
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x32) // 0x1632*/
/*#define STB_INT_MASK_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x32) // 0x1682*/
/*#define STB_INT_MASK_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x32) // 0x16d2*/
/* 31:16 VIDEO PID filter data*/
/*15 -- splicing VIDEO PID change enable*/
/*14:10 -- VIDEO PID FILTER ADDRESS*/
/* 9 -- PES splicing active (Read Only)*/
/* 8 -- splicing active (Read Only)*/
/* 7:0 splicing countdown (Read Only)*/
/*#define VIDEO_SPLICING_CTL
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x33) // 0x1633*/
/*#define VIDEO_SPLICING_CTL_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x33) // 0x1683*/
/*#define VIDEO_SPLICING_CTL_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x33) // 0x16d3*/
/*----------- bit define -----------*/
#define VIDEO_PID_FILTER_DATA 16
#define VIDEO_SPLICING_PID_CHANGE_ENABLE 15
#define VIDEO_PID_FILTER_ADDRESS 10
#define VIDEO_PES_SPLICING_ACTIVE 9
#define VIDEO_SPLICING_ACTIVE 8
/* 31:16 AUDIO PID filter data*/
/*15 -- splicing AUDIO PID change enable*/
/*14:10 -- AUDIO PID FILTER ADDRESS*/
/* 9 -- PES splicing active (Read Only)*/
/* 8 -- splicing active (Read Only)*/
/* 7:0 splicing countdown (Read Only)*/
/*#define AUDIO_SPLICING_CTL
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x34) // 0x1634*/
/*#define AUDIO_SPLICING_CTL_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x34) // 0x1684*/
/*#define AUDIO_SPLICING_CTL_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x34) // 0x16d4*/
/*----------- bit define -----------*/
#define AUDIO_PID_FILTER_DATA 16
#define AUDIO_SPLICING_PID_CHANGE_ENABLE 15
#define AUDIO_PID_FILTER_ADDRESS 10
#define AUDIO_PES_SPLICING_ACTIVE 9
#define AUDIO_SPLICING_ACTIVE 8
/* 23:16 M2TS_SKIP_BYTES*/
/* 15:8 LAST TS PACKAGE BYTE COUNT (Read Only)*/
/* 7:0 PACKAGE BYTE COUNT (Read Only)*/
/*#define TS_PACKAGE_BYTE_COUNT
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x35) // 0x1635*/
/*#define TS_PACKAGE_BYTE_COUNT_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x35) // 0x1685*/
/*#define TS_PACKAGE_BYTE_COUNT_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x35) // 0x16d5*/
/*----------- bit define -----------*/
#define M2TS_SKIP_BYTES 16
#define LAST_TS_PACKAGE_BYTE_COUNT 8
/* 15:0 2 bytes strong sync add to PES*/
/*#define PES_STRONG_SYNC
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x36) // 0x1636*/
/*#define PES_STRONG_SYNC_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x36) // 0x1686*/
/*#define PES_STRONG_SYNC_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x36) // 0x16d6*/
/* bit 15 -- stb_om_ren*/
/* bit 14:11 -- reserved*/
/* bit 10:0 -- OM_DATA_RD_ADDR*/
/*#define OM_DATA_RD_ADDR
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x37) // 0x1637*/
/*#define OM_DATA_RD_ADDR_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x37) // 0x1687*/
/*#define OM_DATA_RD_ADDR_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x37) // 0x16d7*/
/*----------- bit define -----------*/
#define STB_OM_REN 15
/* bit 15:0 -- OM_DATA_RD*/
/*#define OM_DATA_RD
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x38) // 0x1638*/
/*#define OM_DATA_RD_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x38) // 0x1688*/
/*#define OM_DATA_RD_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x38) // 0x16d8*/
/* AUTO STOP SETTING for 32 channels*/
/* 4-bits per channel*/
/* when write*/
/* bit 3 -- set section active*/
/* bit 2:0 -- auto stop after count (0 means never stop)*/
/* when read*/
/* bit 3 -- current active status (1 - active, 0 - stopped )*/
/* bit 2:0 -- count down to auto stop*/
/* section 31:24*/
/*#define SECTION_AUTO_STOP_3
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x39) // 0x1639*/
/*#define SECTION_AUTO_STOP_3_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x39) // 0x1689*/
/*#define SECTION_AUTO_STOP_3_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x39) // 0x16d9*/
/* section 23:16*/
/*#define SECTION_AUTO_STOP_2
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x3a) // 0x163a*/
/*#define SECTION_AUTO_STOP_2_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x3a) // 0x168a*/
/*#define SECTION_AUTO_STOP_2_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x3a) // 0x16da*/
/* section 15:8*/
/*#define SECTION_AUTO_STOP_1
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x3b) // 0x163b*/
/*#define SECTION_AUTO_STOP_1_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x3b) // 0x168b*/
/*#define SECTION_AUTO_STOP_1_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x3b) // 0x16db*/
/* section 7:0*/
/*#define SECTION_AUTO_STOP_0
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x3c) // 0x163c*/
/*#define SECTION_AUTO_STOP_0_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x3c) // 0x168c*/
/*#define SECTION_AUTO_STOP_0_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x3c) // 0x16dc*/
/* bit 31:0 reset channel status - each bit reset each channel*/
/* read -- 32 channel status*/
/*#define DEMUX_CHANNEL_RESET
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x3d) // 0x163d*/
/*#define DEMUX_CHANNEL_RESET_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x3d) // 0x168d*/
/*#define DEMUX_CHANNEL_RESET_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x3d) // 0x16dd*/
/*#define DEMUX_SCRAMBLING_STATE
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x3e) // 0x163e*/
/*#define DEMUX_SCRAMBLING_STATE_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x3e) // 0x168e*/
/*#define DEMUX_SCRAMBLING_STATE_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x3e) // 0x16de*/
/*#define DEMUX_CHANNEL_ACTIVITY
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x3f) // 0x163f*/
/*#define DEMUX_CHANNEL_ACTIVITY_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x3f) // 0x168f*/
/*#define DEMUX_CHANNEL_ACTIVITY_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x3f) // 0x16df*/
/* bit 4 -- video_stamp_use_dts*/
/* bit 3 -- audio_stamp_sync_1_en*/
/* bit 2 -- audio_stamp_insert_en*/
/* bit 1 -- video_stamp_sync_1_en*/
/* bit 0 -- video_stamp_insert_en*/
/*#define DEMUX_STAMP_CTL
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x40) // 0x1640*/
/*#define DEMUX_STAMP_CTL_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x40) // 0x1690*/
/*#define DEMUX_STAMP_CTL_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x40) // 0x16e0*/
/*#define DEMUX_VIDEO_STAMP_SYNC_0
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x41) // 0x1641*/
/*#define DEMUX_VIDEO_STAMP_SYNC_0_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x41) // 0x1691*/
/*#define DEMUX_VIDEO_STAMP_SYNC_0_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x41) // 0x16e1*/
/*#define DEMUX_VIDEO_STAMP_SYNC_1
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x42) // 0x1642*/
/*#define DEMUX_VIDEO_STAMP_SYNC_1_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x42) // 0x1692*/
/*#define DEMUX_VIDEO_STAMP_SYNC_1_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x42) // 0x16e2*/
/*#define DEMUX_AUDIO_STAMP_SYNC_0
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x43) // 0x1643*/
/*#define DEMUX_AUDIO_STAMP_SYNC_0_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x43) // 0x1693*/
/*#define DEMUX_AUDIO_STAMP_SYNC_0_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x43) // 0x16e3*/
/*#define DEMUX_AUDIO_STAMP_SYNC_1
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x44) // 0x1644*/
/*#define DEMUX_AUDIO_STAMP_SYNC_1_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x44) // 0x1694*/
/*#define DEMUX_AUDIO_STAMP_SYNC_1_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x44) // 0x16e4*/
/* Write : Bit[4:0] secter filter number for reset*/
/* Read : select according to output_section_buffer_valid :*/
/* per bit per section buffer valid status*/
/* or section_buffer_ignore*/
/*#define DEMUX_SECTION_RESET
* (STB_CBUS_BASE + DEMUX_1_OFFSET + 0x45) // 0x1645*/
/*#define DEMUX_SECTION_RESET_2
* (STB_CBUS_BASE + DEMUX_2_OFFSET + 0x45) // 0x1695*/
/*#define DEMUX_SECTION_RESET_3
* (STB_CBUS_BASE + DEMUX_3_OFFSET + 0x45) // 0x16e5*/
/* bit[31:0] - channel_reset_timeout_disable*/
/*#define DEMUX_INPUT_TIMEOUT_C \
(STB_CBUS_BASE + DEMUX_1_OFFSET + 0x46) // 0x1646*/
/*#define DEMUX_INPUT_TIMEOUT_C_2 \
(STB_CBUS_BASE + DEMUX_2_OFFSET + 0x46) // 0x1696*/
/*#define DEMUX_INPUT_TIMEOUT_C_3 \
(STB_CBUS_BASE + DEMUX_3_OFFSET + 0x46) // 0x16e6*/
/* bit[31] - no_match_reset_timeout_disable*/
/* bit[30:0] input_time_out_int_cnt (0 -- means disable) Wr-setting, Rd-count*/
/*#define DEMUX_INPUT_TIMEOUT \
(STB_CBUS_BASE + DEMUX_1_OFFSET + 0x47) // 0x1647*/
/*#define DEMUX_INPUT_TIMEOUT_2 \
(STB_CBUS_BASE + DEMUX_2_OFFSET + 0x47) // 0x1697*/
/*#define DEMUX_INPUT_TIMEOUT_3 \
(STB_CBUS_BASE + DEMUX_3_OFFSET + 0x47) // 0x16e7*/
/* bit[31:0] - channel_packet_count_disable*/
/*#define DEMUX_PACKET_COUNT_C \
(STB_CBUS_BASE + DEMUX_1_OFFSET + 0x48) // 0x1648*/
/*#define DEMUX_PACKET_COUNT_C_2 \
(STB_CBUS_BASE + DEMUX_2_OFFSET + 0x48) // 0x1698*/
/*#define DEMUX_PACKET_COUNT_C_3 \
(STB_CBUS_BASE + DEMUX_3_OFFSET + 0x48)*/ /* 0x16e8*/
/* bit[31] - no_match_packet_count_disable*/
/* bit[30:0] input_packet_count*/
/*#define DEMUX_PACKET_COUNT \
(STB_CBUS_BASE + DEMUX_1_OFFSET + 0x49) // 0x1649*/
/*#define DEMUX_PACKET_COUNT_2 \
(STB_CBUS_BASE + DEMUX_2_OFFSET + 0x49) // 0x1699*/
/*#define DEMUX_PACKET_COUNT_3 \
(STB_CBUS_BASE + DEMUX_3_OFFSET + 0x49) // 0x16e9*/
/* bit[31:0] channel_record_enable*/
/*#define DEMUX_CHAN_RECORD_EN \
(STB_CBUS_BASE + DEMUX_1_OFFSET + 0x4a) // 0x164a*/
/*#define DEMUX_CHAN_RECORD_EN_2 \
(STB_CBUS_BASE + DEMUX_2_OFFSET + 0x4a) // 0x169a*/
/*#define DEMUX_CHAN_RECORD_EN_3 \
(STB_CBUS_BASE + DEMUX_3_OFFSET + 0x4a) // 0x16ea*/
/* bit[31:0] channel_process_enable*/
/*#define DEMUX_CHAN_PROCESS_EN \
(STB_CBUS_BASE + DEMUX_1_OFFSET + 0x4b) // 0x164b*/
/*#define DEMUX_CHAN_PROCESS_EN_2 \
(STB_CBUS_BASE + DEMUX_2_OFFSET + 0x4b) */ /* 0x169b*/
/*#define DEMUX_CHAN_PROCESS_EN_3 \
(STB_CBUS_BASE + DEMUX_3_OFFSET + 0x4b) // 0x16eb*/
/* bit[31:24] small_sec_size ((n+1) * 256 Bytes)*/
/* bit[23:16] small_sec_rd_ptr */
/* bit[15:8] small_sec_wr_ptr */
/* bit[7:2] reserved*/
/* bit[1] small_sec_wr_ptr_wr_enable*/
/* bit[0] small_section_enable*/
/*#define DEMUX_SMALL_SEC_CTL \
(STB_CBUS_BASE + DEMUX_1_OFFSET + 0x4c)*/ /* 0x164c*/
/*#define DEMUX_SMALL_SEC_CTL_2 \
(STB_CBUS_BASE + DEMUX_2_OFFSET + 0x4c) // 0x169c*/
/*#define DEMUX_SMALL_SEC_CTL_3 \
(STB_CBUS_BASE + DEMUX_3_OFFSET + 0x4c) // 0x16ec*/
/* bit[31:0] small_sec_start_addr*/
/*#define DEMUX_SMALL_SEC_ADDR \
(STB_CBUS_BASE + DEMUX_1_OFFSET + 0x4d) // 0x164d*/
/*#define DEMUX_SMALL_SEC_ADDR_2 \
(STB_CBUS_BASE + DEMUX_2_OFFSET + 0x4d) // 0x169d*/
/*#define DEMUX_SMALL_SEC_ADDR_3 \
(STB_CBUS_BASE + DEMUX_3_OFFSET + 0x4d) // 0x16ed*/
/*======================================================*/
/* STB Registers End*/
/*====================================================*/
/* ----------------------------*/
/* ASYNC FIFO (4)*/
/* ----------------------------*/
/*#define ASYNC_FIFO_REG0 0x2310*/
/*#define ASYNC_FIFO_REG1 0x2311*/
#define ASYNC_FIFO_FLUSH_STATUS 31
#define ASYNC_FIFO_ERR 30
#define ASYNC_FIFO_FIFO_EMPTY 29
#define ASYNC_FIFO_TO_HIU 24
#define ASYNC_FIFO_FLUSH 23
#define ASYNC_FIFO_RESET 22
#define ASYNC_FIFO_WRAP_EN 21
#define ASYNC_FIFO_FLUSH_EN 20
#define ASYNC_FIFO_RESIDUAL_MSB 19
#define ASYNC_FIFO_RESIDUAL_LSB 15
#define ASYNC_FIFO_FLUSH_CNT_MSB 14
#define ASYNC_FIFO_FLUSH_CNT_LSB 0
/*#define ASYNC_FIFO_REG2 0x2312*/
#define ASYNC_FIFO_FIFO_FULL 26
#define ASYNC_FIFO_FILL_STATUS 25
#define ASYNC_FIFO_SOURCE_MSB 24
#define ASYNC_FIFO_SOURCE_LSB 23
#define ASYNC_FIFO_ENDIAN_MSB 22
#define ASYNC_FIFO_ENDIAN_LSB 21
#define ASYNC_FIFO_FILL_EN 20
#define ASYNC_FIFO_FILL_CNT_MSB 19
#define ASYNC_FIFO_FILL_CNT_LSB 0
/*#define ASYNC_FIFO_REG3 0x2313*/
#define ASYNC_FLUSH_SIZE_IRQ_MSB 15
#define ASYNC_FLUSH_SIZE_IRQ_LSB 0
/* ----------------------------*/
/* ASYNC FIFO (4)*/
/* ----------------------------*/
/*#define ASYNC_FIFO2_REG0 0x2314*/
/*#define ASYNC_FIFO2_REG1 0x2315*/
/*#define ASYNC_FIFO2_REG2 0x2316*/
/*#define ASYNC_FIFO2_REG3 0x2317*/
#define RESET_DEMUXSTB (1 << 1)
#endif /* C_STB_DEFINE_H*/