#ifndef _I2C_DRV_H #define _I2C_DRV_H #include "type.h" #include "config.h" #if 1//ADD #define FPGA_I2C_NUM 1 #define FPGA_DEV_ADDRESS (0X5A<<1) #define DRYLOOP_DEV_ADDRESS (0x42<<1) #define EXT_I2C_NUM 0 #define TS2IP_DEV_ADDRESS (0x5D<<1) // (0x70<<1) #define TS2IP2_DEV_ADDRESS (0x5E<<1) // (0x90<<1) #define TUNER_I2C_NUM 0 //#define TS2IP_DEV_ADDRESS (0x5D<<1) // (0x70<<1) //#define TS2IP2_DEV_ADDRESS (0x5E<<1) // (0x90<<1) #endif #define TS_NET_I2C_READ 0 #define TS_NET_I2C_WRITE 1 #if USE_TUNER_18273 #define TUNER18273_ADDRESS (0xC6) #else #define TUNER18273_ADDRESS (0xC0) #endif void e2_byte_write(uint16 addr,uint8 data,uint32 chip); uint8 e2_byte_read(uint16 addr,uint32 chip); uint8 e2_byte_read_v2(uint16 addr, uint8 default_value,uint32 chip); uint32 atmel_write_e2rom_buf(uint8* pbuf,uint16 offset,uint16 num,uint8 chip); uint32 atmel_read_e2rom_buf(uint8* pbuf,uint16 offset,uint16 num,uint8 chip); void i2c_hw_init(void); #define E2_PROM_PAGE_SIZE (64) //E2的页大小 #define E2_PROM_TOTLE_SIZE (32*1024) //E2的总大小 #define E2_PROM_OFFSET_SIZE (2) //E2的参数地址字节数 #define I2C_READ_OK 0 #define I2C_WRITE_OK 0 #define I2C_WAIT_TIME_OUT 1 #define I2C_PARA_INVALID 2 #define E2_TOTAL_NUM 3 #define E2_CHIP_1 0 //三个E2 #define E2_CHIP_2 1 #define E2_CHIP_3 2 #define c256_byteread_default(a,b) e2_byte_read_v2(a,b,E2_CHIP_1) // add a new param need this function #define c256_byteread(a) e2_byte_read(a,E2_CHIP_1) #define c256_bytewrite(a,b) e2_byte_write(a,b,E2_CHIP_1) #define c256_byteread2(a) e2_byte_read(a,E2_CHIP_2) #define c256_bytewrite2(a,b) e2_byte_write(a,b,E2_CHIP_2) #define c256_byteread3(a) e2_byte_read(a,E2_CHIP_3) #define c256_bytewrite3(a,b) e2_byte_write(a,b,E2_CHIP_3) //方便后续激励器移植 #define atmel_write_e1(pbuf,offset,num) atmel_write_e2rom_buf(pbuf,offset,num,E2_CHIP_1) #define atmel_read_e1(pbuf,offset,num) atmel_read_e2rom_buf(pbuf,offset,num,E2_CHIP_1) #define atmel_write_e2(pbuf,offset,num) atmel_write_e2rom_buf(pbuf,offset,num,E2_CHIP_2) #define atmel_read_e2(pbuf,offset,num) atmel_read_e2rom_buf(pbuf,offset,num,E2_CHIP_2) #define atmel_write_e3(pbuf,offset,num) atmel_write_e2rom_buf(pbuf,offset,num,E2_CHIP_3) #define atmel_read_e3(pbuf,offset,num) atmel_read_e2rom_buf(pbuf,offset,num,E2_CHIP_3) void fpga_byte_write(uint8 segment,uint32 addr,uint8 data); uint8 fpga_byte_read(uint8 segment,uint32 addr); void fpga_reset_save_segment(void); uint8 dryloop_read(uint32 addr); uint32 dryloop_write(uint32 addr,uint8 data); uint32 tuner_byte_write(uint32 addr,uint8 data); uint8 tuner_byte_read(uint32 addr); void ip2ts_i2c_rw(uint8 *pucData, uint8 addr,uint16 cnt, uint32 rw); #if 1 extern void tsoip_byte_write(int tsoip_index, uint32 addr, uint8 data); extern uint8 tsoip_byte_read(int tsoip_index,uint32 addr); extern void fpga_i2c_sim_spi_read(uint16 addr, uint32 *p_data); extern void fpga_i2c_sim_spi_write(uint16 addr, uint32 data); extern void e_map_init(void); extern void ii2c_hw_init(void); extern uint8 fpga_byte_reads(uint8 segment,uint32 addr,uint8 *pdata,uint8 rlen); extern int fpga_byte_writes(uint8 segment,uint32 addr,uint8 *pdata,uint8 wlen); uint32 tuner_i2c_write(uint8 slave_addr,uint8 *pdata,uint8 length); uint32 tuner_i2c_read(uint8 slave_addr,uint8 *pdata,uint8 length); uint32 tuner_i2c_read_offset8(uint8 slave_addr,uint8 offset,uint8 *pdata,uint8 length); uint32 tuner_i2c_read_offset16(uint8 slave_addr,uint8 offset[8],uint8 *pdata,uint8 length); int tuner_nbytes_write(uint32 dev_addr, uint32 offset, uint8 *pdata, uint32 wlen); /* void fpga_write_axi0(u32 addr, u32 data, u32 count); int fpga_read_axi0(u32 addr, u32 *pdata, u32 count); int fpga_read_axi0_test(uint32 addr, uint32 *pdata, uint32 count); void fpga_write_axi0_test(uint32 addr, uint32 data, uint32 count); */ void fpga_write_axi0_test(uint32 addr, uint32 data, uint32 count); void fpga_write_axi0(uint32 addr, uint32 data, uint32 count); int fpga_read_axi0(uint32 addr, uint32 *pdata, uint32 count); #endif #endif