/* SPDX-License-Identifier: GPL-2.0 */
/* Linux driver for digital TV devices equipped with B2C2 FlexcopII(b)/III
 * register descriptions
 * see flexcop.c for copyright information
 */
/* This file is automatically generated, do not edit things here. */
#ifndef __FLEXCOP_IBI_VALUE_INCLUDED__
#define __FLEXCOP_IBI_VALUE_INCLUDED__

typedef union {
	u32 raw;

	struct {
		u32 dma_0start                     : 1;
		u32 dma_0No_update                 : 1;
		u32 dma_address0                   :30;
	} dma_0x0;

	struct {
		u32 DMA_maxpackets                 : 8;
		u32 dma_addr_size                  :24;
	} dma_0x4_remap;

	struct {
		u32 dma1timer                      : 7;
		u32 unused                         : 1;
		u32 dma_addr_size                  :24;
	} dma_0x4_read;

	struct {
		u32 unused                         : 1;
		u32 dmatimer                       : 7;
		u32 dma_addr_size                  :24;
	} dma_0x4_write;

	struct {
		u32 unused                         : 2;
		u32 dma_cur_addr                   :30;
	} dma_0x8;

	struct {
		u32 dma_1start                     : 1;
		u32 remap_enable                   : 1;
		u32 dma_address1                   :30;
	} dma_0xc;

	struct {
		u32 chipaddr                       : 7;
		u32 reserved1                      : 1;
		u32 baseaddr                       : 8;
		u32 data1_reg                      : 8;
		u32 working_start                  : 1;
		u32 twoWS_rw                       : 1;
		u32 total_bytes                    : 2;
		u32 twoWS_port_reg                 : 2;
		u32 no_base_addr_ack_error         : 1;
		u32 st_done                        : 1;
	} tw_sm_c_100;

	struct {
		u32 data2_reg                      : 8;
		u32 data3_reg                      : 8;
		u32 data4_reg                      : 8;
		u32 exlicit_stops                  : 1;
		u32 force_stop                     : 1;
		u32 unused                         : 6;
	} tw_sm_c_104;

	struct {
		u32 thi1                           : 6;
		u32 reserved1                      : 2;
		u32 tlo1                           : 5;
		u32 reserved2                      :19;
	} tw_sm_c_108;

	struct {
		u32 thi1                           : 6;
		u32 reserved1                      : 2;
		u32 tlo1                           : 5;
		u32 reserved2                      :19;
	} tw_sm_c_10c;

	struct {
		u32 thi1                           : 6;
		u32 reserved1                      : 2;
		u32 tlo1                           : 5;
		u32 reserved2                      :19;
	} tw_sm_c_110;

	struct {
		u32 LNB_CTLHighCount_sig           :15;
		u32 LNB_CTLLowCount_sig            :15;
		u32 LNB_CTLPrescaler_sig           : 2;
	} lnb_switch_freq_200;

	struct {
		u32 ACPI1_sig                      : 1;
		u32 ACPI3_sig                      : 1;
		u32 LNB_L_H_sig                    : 1;
		u32 Per_reset_sig                  : 1;
		u32 reserved                       :20;
		u32 Rev_N_sig_revision_hi          : 4;
		u32 Rev_N_sig_reserved1            : 2;
		u32 Rev_N_sig_caps                 : 1;
		u32 Rev_N_sig_reserved2            : 1;
	} misc_204;

	struct {
		u32 Stream1_filter_sig             : 1;
		u32 Stream2_filter_sig             : 1;
		u32 PCR_filter_sig                 : 1;
		u32 PMT_filter_sig                 : 1;
		u32 EMM_filter_sig                 : 1;
		u32 ECM_filter_sig                 : 1;
		u32 Null_filter_sig                : 1;
		u32 Mask_filter_sig                : 1;
		u32 WAN_Enable_sig                 : 1;
		u32 WAN_CA_Enable_sig              : 1;
		u32 CA_Enable_sig                  : 1;
		u32 SMC_Enable_sig                 : 1;
		u32 Per_CA_Enable_sig              : 1;
		u32 Multi2_Enable_sig              : 1;
		u32 MAC_filter_Mode_sig            : 1;
		u32 Rcv_Data_sig                   : 1;
		u32 DMA1_IRQ_Enable_sig            : 1;
		u32 DMA1_Timer_Enable_sig          : 1;
		u32 DMA2_IRQ_Enable_sig            : 1;
		u32 DMA2_Timer_Enable_sig          : 1;
		u32 DMA1_Size_IRQ_Enable_sig       : 1;
		u32 DMA2_Size_IRQ_Enable_sig       : 1;
		u32 Mailbox_from_V8_Enable_sig     : 1;
		u32 unused                         : 9;
	} ctrl_208;

	struct {
		u32 DMA1_IRQ_Status                : 1;
		u32 DMA1_Timer_Status              : 1;
		u32 DMA2_IRQ_Status                : 1;
		u32 DMA2_Timer_Status              : 1;
		u32 DMA1_Size_IRQ_Status           : 1;
		u32 DMA2_Size_IRQ_Status           : 1;
		u32 Mailbox_from_V8_Status_sig     : 1;
		u32 Data_receiver_error            : 1;
		u32 Continuity_error_flag          : 1;
		u32 LLC_SNAP_FLAG_set              : 1;
		u32 Transport_Error                : 1;
		u32 reserved                       :21;
	} irq_20c;

	struct {
		u32 reset_block_000                : 1;
		u32 reset_block_100                : 1;
		u32 reset_block_200                : 1;
		u32 reset_block_300                : 1;
		u32 reset_block_400                : 1;
		u32 reset_block_500                : 1;
		u32 reset_block_600                : 1;
		u32 reset_block_700                : 1;
		u32 Block_reset_enable             : 8;
		u32 Special_controls               :16;
	} sw_reset_210;

	struct {
		u32 vuart_oe_sig                   : 1;
		u32 v2WS_oe_sig                    : 1;
		u32 halt_V8_sig                    : 1;
		u32 section_pkg_enable_sig         : 1;
		u32 s2p_sel_sig                    : 1;
		u32 unused1                        : 3;
		u32 polarity_PS_CLK_sig            : 1;
		u32 polarity_PS_VALID_sig          : 1;
		u32 polarity_PS_SYNC_sig           : 1;
		u32 polarity_PS_ERR_sig            : 1;
		u32 unused2                        :20;
	} misc_214;

	struct {
		u32 Mailbox_from_V8                :32;
	} mbox_v8_to_host_218;

	struct {
		u32 sysramaccess_data              : 8;
		u32 sysramaccess_addr              :15;
		u32 unused                         : 7;
		u32 sysramaccess_write             : 1;
		u32 sysramaccess_busmuster         : 1;
	} mbox_host_to_v8_21c;

	struct {
		u32 Stream1_PID                    :13;
		u32 Stream1_trans                  : 1;
		u32 MAC_Multicast_filter           : 1;
		u32 debug_flag_pid_saved           : 1;
		u32 Stream2_PID                    :13;
		u32 Stream2_trans                  : 1;
		u32 debug_flag_write_status00      : 1;
		u32 debug_fifo_problem             : 1;
	} pid_filter_300;

	struct {
		u32 PCR_PID                        :13;
		u32 PCR_trans                      : 1;
		u32 debug_overrun3                 : 1;
		u32 debug_overrun2                 : 1;
		u32 PMT_PID                        :13;
		u32 PMT_trans                      : 1;
		u32 reserved                       : 2;
	} pid_filter_304;

	struct {
		u32 EMM_PID                        :13;
		u32 EMM_trans                      : 1;
		u32 EMM_filter_4                   : 1;
		u32 EMM_filter_6                   : 1;
		u32 ECM_PID                        :13;
		u32 ECM_trans                      : 1;
		u32 reserved                       : 2;
	} pid_filter_308;

	struct {
		u32 Group_PID                      :13;
		u32 Group_trans                    : 1;
		u32 unused1                        : 2;
		u32 Group_mask                     :13;
		u32 unused2                        : 3;
	} pid_filter_30c_ext_ind_0_7;

	struct {
		u32 net_master_read                :17;
		u32 unused                         :15;
	} pid_filter_30c_ext_ind_1;

	struct {
		u32 net_master_write               :17;
		u32 unused                         :15;
	} pid_filter_30c_ext_ind_2;

	struct {
		u32 next_net_master_write          :17;
		u32 unused                         :15;
	} pid_filter_30c_ext_ind_3;

	struct {
		u32 unused1                        : 1;
		u32 state_write                    :10;
		u32 reserved1                      : 6;
		u32 stack_read                     :10;
		u32 reserved2                      : 5;
	} pid_filter_30c_ext_ind_4;

	struct {
		u32 stack_cnt                      :10;
		u32 unused                         :22;
	} pid_filter_30c_ext_ind_5;

	struct {
		u32 pid_fsm_save_reg0              : 2;
		u32 pid_fsm_save_reg1              : 2;
		u32 pid_fsm_save_reg2              : 2;
		u32 pid_fsm_save_reg3              : 2;
		u32 pid_fsm_save_reg4              : 2;
		u32 pid_fsm_save_reg300            : 2;
		u32 write_status1                  : 2;
		u32 write_status4                  : 2;
		u32 data_size_reg                  :12;
		u32 unused                         : 4;
	} pid_filter_30c_ext_ind_6;

	struct {
		u32 index_reg                      : 5;
		u32 extra_index_reg                : 3;
		u32 AB_select                      : 1;
		u32 pass_alltables                 : 1;
		u32 unused                         :22;
	} index_reg_310;

	struct {
		u32 PID                            :13;
		u32 PID_trans                      : 1;
		u32 PID_enable_bit                 : 1;
		u32 reserved                       :17;
	} pid_n_reg_314;

	struct {
		u32 A4_byte                        : 8;
		u32 A5_byte                        : 8;
		u32 A6_byte                        : 8;
		u32 Enable_bit                     : 1;
		u32 HighAB_bit                     : 1;
		u32 reserved                       : 6;
	} mac_low_reg_318;

	struct {
		u32 A1_byte                        : 8;
		u32 A2_byte                        : 8;
		u32 A3_byte                        : 8;
		u32 reserved                       : 8;
	} mac_high_reg_31c;

	struct {
		u32 reserved                       :16;
		u32 data_Tag_ID                    :16;
	} data_tag_400;

	struct {
		u32 Card_IDbyte6                   : 8;
		u32 Card_IDbyte5                   : 8;
		u32 Card_IDbyte4                   : 8;
		u32 Card_IDbyte3                   : 8;
	} card_id_408;

	struct {
		u32 Card_IDbyte2                   : 8;
		u32 Card_IDbyte1                   : 8;
	} card_id_40c;

	struct {
		u32 MAC1                           : 8;
		u32 MAC2                           : 8;
		u32 MAC3                           : 8;
		u32 MAC6                           : 8;
	} mac_address_418;

	struct {
		u32 MAC7                           : 8;
		u32 MAC8                           : 8;
		u32 reserved                       :16;
	} mac_address_41c;

	struct {
		u32 transmitter_data_byte          : 8;
		u32 ReceiveDataReady               : 1;
		u32 ReceiveByteFrameError          : 1;
		u32 txbuffempty                    : 1;
		u32 reserved                       :21;
	} ci_600;

	struct {
		u32 pi_d                           : 8;
		u32 pi_ha                          :20;
		u32 pi_rw                          : 1;
		u32 pi_component_reg               : 3;
	} pi_604;

	struct {
		u32 serialReset                    : 1;
		u32 oncecycle_read                 : 1;
		u32 Timer_Read_req                 : 1;
		u32 Timer_Load_req                 : 1;
		u32 timer_data                     : 7;
		u32 unused                         : 1;
		u32 Timer_addr                     : 5;
		u32 reserved                       : 3;
		u32 pcmcia_a_mod_pwr_n             : 1;
		u32 pcmcia_b_mod_pwr_n             : 1;
		u32 config_Done_stat               : 1;
		u32 config_Init_stat               : 1;
		u32 config_Prog_n                  : 1;
		u32 config_wr_n                    : 1;
		u32 config_cs_n                    : 1;
		u32 config_cclk                    : 1;
		u32 pi_CiMax_IRQ_n                 : 1;
		u32 pi_timeout_status              : 1;
		u32 pi_wait_n                      : 1;
		u32 pi_busy_n                      : 1;
	} pi_608;

	struct {
		u32 PID                            :13;
		u32 key_enable                     : 1;
		u32 key_code                       : 2;
		u32 key_array_col                  : 3;
		u32 key_array_row                  : 5;
		u32 dvb_en                         : 1;
		u32 rw_flag                        : 1;
		u32 reserved                       : 6;
	} dvb_reg_60c;

	struct {
		u32 sram_addr                      :15;
		u32 sram_rw                        : 1;
		u32 sram_data                      : 8;
		u32 sc_xfer_bit                    : 1;
		u32 reserved1                      : 3;
		u32 oe_pin_reg                     : 1;
		u32 ce_pin_reg                     : 1;
		u32 reserved2                      : 1;
		u32 start_sram_ibi                 : 1;
	} sram_ctrl_reg_700;

	struct {
		u32 net_addr_read                  :16;
		u32 net_addr_write                 :16;
	} net_buf_reg_704;

	struct {
		u32 cai_read                       :11;
		u32 reserved1                      : 5;
		u32 cai_write                      :11;
		u32 reserved2                      : 6;
		u32 cai_cnt                        : 4;
	} cai_buf_reg_708;

	struct {
		u32 cao_read                       :11;
		u32 reserved1                      : 5;
		u32 cap_write                      :11;
		u32 reserved2                      : 6;
		u32 cao_cnt                        : 4;
	} cao_buf_reg_70c;

	struct {
		u32 media_read                     :11;
		u32 reserved1                      : 5;
		u32 media_write                    :11;
		u32 reserved2                      : 6;
		u32 media_cnt                      : 4;
	} media_buf_reg_710;

	struct {
		u32 NET_Dest                       : 2;
		u32 CAI_Dest                       : 2;
		u32 CAO_Dest                       : 2;
		u32 MEDIA_Dest                     : 2;
		u32 net_ovflow_error               : 1;
		u32 media_ovflow_error             : 1;
		u32 cai_ovflow_error               : 1;
		u32 cao_ovflow_error               : 1;
		u32 ctrl_usb_wan                   : 1;
		u32 ctrl_sramdma                   : 1;
		u32 ctrl_maximumfill               : 1;
		u32 reserved                       :17;
	} sram_dest_reg_714;

	struct {
		u32 net_cnt                        :12;
		u32 reserved1                      : 4;
		u32 net_addr_read                  : 1;
		u32 reserved2                      : 3;
		u32 net_addr_write                 : 1;
		u32 reserved3                      :11;
	} net_buf_reg_718;

	struct {
		u32 wan_speed_sig                  : 2;
		u32 reserved1                      : 6;
		u32 wan_wait_state                 : 8;
		u32 sram_chip                      : 2;
		u32 sram_memmap                    : 2;
		u32 reserved2                      : 4;
		u32 wan_pkt_frame                  : 4;
		u32 reserved3                      : 4;
	} wan_ctrl_reg_71c;
} flexcop_ibi_value;

#endif
