1*8d67ca89SAndroid Build Coastguard Worker /* 2*8d67ca89SAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*8d67ca89SAndroid Build Coastguard Worker * 4*8d67ca89SAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*8d67ca89SAndroid Build Coastguard Worker * for more information. 6*8d67ca89SAndroid Build Coastguard Worker */ 7*8d67ca89SAndroid Build Coastguard Worker #ifndef __XILINX_SDFEC_H__ 8*8d67ca89SAndroid Build Coastguard Worker #define __XILINX_SDFEC_H__ 9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h> 10*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_LDPC_SC_TABLE_ADDR_BASE (0x10000) 11*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_LDPC_SC_TABLE_ADDR_HIGH (0x10400) 12*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_LDPC_LA_TABLE_ADDR_BASE (0x18000) 13*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_LDPC_LA_TABLE_ADDR_HIGH (0x19000) 14*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_LDPC_QC_TABLE_ADDR_BASE (0x20000) 15*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_LDPC_QC_TABLE_ADDR_HIGH (0x28000) 16*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_SC_TABLE_DEPTH (XSDFEC_LDPC_SC_TABLE_ADDR_HIGH - XSDFEC_LDPC_SC_TABLE_ADDR_BASE) 17*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_LA_TABLE_DEPTH (XSDFEC_LDPC_LA_TABLE_ADDR_HIGH - XSDFEC_LDPC_LA_TABLE_ADDR_BASE) 18*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_QC_TABLE_DEPTH (XSDFEC_LDPC_QC_TABLE_ADDR_HIGH - XSDFEC_LDPC_QC_TABLE_ADDR_BASE) 19*8d67ca89SAndroid Build Coastguard Worker enum xsdfec_code { 20*8d67ca89SAndroid Build Coastguard Worker XSDFEC_TURBO_CODE = 0, 21*8d67ca89SAndroid Build Coastguard Worker XSDFEC_LDPC_CODE, 22*8d67ca89SAndroid Build Coastguard Worker }; 23*8d67ca89SAndroid Build Coastguard Worker enum xsdfec_order { 24*8d67ca89SAndroid Build Coastguard Worker XSDFEC_MAINTAIN_ORDER = 0, 25*8d67ca89SAndroid Build Coastguard Worker XSDFEC_OUT_OF_ORDER, 26*8d67ca89SAndroid Build Coastguard Worker }; 27*8d67ca89SAndroid Build Coastguard Worker enum xsdfec_turbo_alg { 28*8d67ca89SAndroid Build Coastguard Worker XSDFEC_MAX_SCALE = 0, 29*8d67ca89SAndroid Build Coastguard Worker XSDFEC_MAX_STAR, 30*8d67ca89SAndroid Build Coastguard Worker XSDFEC_TURBO_ALG_MAX, 31*8d67ca89SAndroid Build Coastguard Worker }; 32*8d67ca89SAndroid Build Coastguard Worker enum xsdfec_state { 33*8d67ca89SAndroid Build Coastguard Worker XSDFEC_INIT = 0, 34*8d67ca89SAndroid Build Coastguard Worker XSDFEC_STARTED, 35*8d67ca89SAndroid Build Coastguard Worker XSDFEC_STOPPED, 36*8d67ca89SAndroid Build Coastguard Worker XSDFEC_NEEDS_RESET, 37*8d67ca89SAndroid Build Coastguard Worker XSDFEC_PL_RECONFIGURE, 38*8d67ca89SAndroid Build Coastguard Worker }; 39*8d67ca89SAndroid Build Coastguard Worker enum xsdfec_axis_width { 40*8d67ca89SAndroid Build Coastguard Worker XSDFEC_1x128b = 1, 41*8d67ca89SAndroid Build Coastguard Worker XSDFEC_2x128b = 2, 42*8d67ca89SAndroid Build Coastguard Worker XSDFEC_4x128b = 4, 43*8d67ca89SAndroid Build Coastguard Worker }; 44*8d67ca89SAndroid Build Coastguard Worker enum xsdfec_axis_word_include { 45*8d67ca89SAndroid Build Coastguard Worker XSDFEC_FIXED_VALUE = 0, 46*8d67ca89SAndroid Build Coastguard Worker XSDFEC_IN_BLOCK, 47*8d67ca89SAndroid Build Coastguard Worker XSDFEC_PER_AXI_TRANSACTION, 48*8d67ca89SAndroid Build Coastguard Worker XSDFEC_AXIS_WORDS_INCLUDE_MAX, 49*8d67ca89SAndroid Build Coastguard Worker }; 50*8d67ca89SAndroid Build Coastguard Worker struct xsdfec_turbo { 51*8d67ca89SAndroid Build Coastguard Worker __u32 alg; 52*8d67ca89SAndroid Build Coastguard Worker __u8 scale; 53*8d67ca89SAndroid Build Coastguard Worker }; 54*8d67ca89SAndroid Build Coastguard Worker struct xsdfec_ldpc_params { 55*8d67ca89SAndroid Build Coastguard Worker __u32 n; 56*8d67ca89SAndroid Build Coastguard Worker __u32 k; 57*8d67ca89SAndroid Build Coastguard Worker __u32 psize; 58*8d67ca89SAndroid Build Coastguard Worker __u32 nlayers; 59*8d67ca89SAndroid Build Coastguard Worker __u32 nqc; 60*8d67ca89SAndroid Build Coastguard Worker __u32 nmqc; 61*8d67ca89SAndroid Build Coastguard Worker __u32 nm; 62*8d67ca89SAndroid Build Coastguard Worker __u32 norm_type; 63*8d67ca89SAndroid Build Coastguard Worker __u32 no_packing; 64*8d67ca89SAndroid Build Coastguard Worker __u32 special_qc; 65*8d67ca89SAndroid Build Coastguard Worker __u32 no_final_parity; 66*8d67ca89SAndroid Build Coastguard Worker __u32 max_schedule; 67*8d67ca89SAndroid Build Coastguard Worker __u32 sc_off; 68*8d67ca89SAndroid Build Coastguard Worker __u32 la_off; 69*8d67ca89SAndroid Build Coastguard Worker __u32 qc_off; 70*8d67ca89SAndroid Build Coastguard Worker __u32 * sc_table; 71*8d67ca89SAndroid Build Coastguard Worker __u32 * la_table; 72*8d67ca89SAndroid Build Coastguard Worker __u32 * qc_table; 73*8d67ca89SAndroid Build Coastguard Worker __u16 code_id; 74*8d67ca89SAndroid Build Coastguard Worker }; 75*8d67ca89SAndroid Build Coastguard Worker struct xsdfec_status { 76*8d67ca89SAndroid Build Coastguard Worker __u32 state; 77*8d67ca89SAndroid Build Coastguard Worker __s8 activity; 78*8d67ca89SAndroid Build Coastguard Worker }; 79*8d67ca89SAndroid Build Coastguard Worker struct xsdfec_irq { 80*8d67ca89SAndroid Build Coastguard Worker __s8 enable_isr; 81*8d67ca89SAndroid Build Coastguard Worker __s8 enable_ecc_isr; 82*8d67ca89SAndroid Build Coastguard Worker }; 83*8d67ca89SAndroid Build Coastguard Worker struct xsdfec_config { 84*8d67ca89SAndroid Build Coastguard Worker __u32 code; 85*8d67ca89SAndroid Build Coastguard Worker __u32 order; 86*8d67ca89SAndroid Build Coastguard Worker __u32 din_width; 87*8d67ca89SAndroid Build Coastguard Worker __u32 din_word_include; 88*8d67ca89SAndroid Build Coastguard Worker __u32 dout_width; 89*8d67ca89SAndroid Build Coastguard Worker __u32 dout_word_include; 90*8d67ca89SAndroid Build Coastguard Worker struct xsdfec_irq irq; 91*8d67ca89SAndroid Build Coastguard Worker __s8 bypass; 92*8d67ca89SAndroid Build Coastguard Worker __s8 code_wr_protect; 93*8d67ca89SAndroid Build Coastguard Worker }; 94*8d67ca89SAndroid Build Coastguard Worker struct xsdfec_stats { 95*8d67ca89SAndroid Build Coastguard Worker __u32 isr_err_count; 96*8d67ca89SAndroid Build Coastguard Worker __u32 cecc_count; 97*8d67ca89SAndroid Build Coastguard Worker __u32 uecc_count; 98*8d67ca89SAndroid Build Coastguard Worker }; 99*8d67ca89SAndroid Build Coastguard Worker struct xsdfec_ldpc_param_table_sizes { 100*8d67ca89SAndroid Build Coastguard Worker __u32 sc_size; 101*8d67ca89SAndroid Build Coastguard Worker __u32 la_size; 102*8d67ca89SAndroid Build Coastguard Worker __u32 qc_size; 103*8d67ca89SAndroid Build Coastguard Worker }; 104*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_MAGIC 'f' 105*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_START_DEV _IO(XSDFEC_MAGIC, 0) 106*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_STOP_DEV _IO(XSDFEC_MAGIC, 1) 107*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_GET_STATUS _IOR(XSDFEC_MAGIC, 2, struct xsdfec_status) 108*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_SET_IRQ _IOW(XSDFEC_MAGIC, 3, struct xsdfec_irq) 109*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_SET_TURBO _IOW(XSDFEC_MAGIC, 4, struct xsdfec_turbo) 110*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_ADD_LDPC_CODE_PARAMS _IOW(XSDFEC_MAGIC, 5, struct xsdfec_ldpc_params) 111*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_GET_CONFIG _IOR(XSDFEC_MAGIC, 6, struct xsdfec_config) 112*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_GET_TURBO _IOR(XSDFEC_MAGIC, 7, struct xsdfec_turbo) 113*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_SET_ORDER _IOW(XSDFEC_MAGIC, 8, unsigned long) 114*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_SET_BYPASS _IOW(XSDFEC_MAGIC, 9, bool) 115*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_IS_ACTIVE _IOR(XSDFEC_MAGIC, 10, bool) 116*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_CLEAR_STATS _IO(XSDFEC_MAGIC, 11) 117*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_GET_STATS _IOR(XSDFEC_MAGIC, 12, struct xsdfec_stats) 118*8d67ca89SAndroid Build Coastguard Worker #define XSDFEC_SET_DEFAULT_CONFIG _IO(XSDFEC_MAGIC, 13) 119*8d67ca89SAndroid Build Coastguard Worker #endif 120