Пример #1
0
static void gsl_reset_core(void)
{
	u8 buf[4] = {0x00};
	
	buf[0] = 0x88;
	gsl_write_interface(0xe0,buf,4);
    delay_ms(5);

	buf[0] = 0x04;
	gsl_write_interface(0xe4,buf,4);
    delay_ms(5);
	
	buf[0] = 0;
	gsl_write_interface(0xbc,buf,4);
    delay_ms(5);
}
Пример #2
0
static void gsl_clear_reg(void)
{
	u8 buf[4]={0};
	//clear reg
	buf[0]=0x88;
	gsl_write_interface(0xe0,buf,4);
    delay_ms(5);
	buf[0]=0x1;
	gsl_write_interface(0x80,buf,4);
    delay_ms(5);
	buf[0]=0x4;
	gsl_write_interface(0xe4,buf,4);
    delay_ms(5);
	buf[0]=0x0;
	gsl_write_interface(0xe0,buf,4);
    delay_ms(5);
	//clear reg
}
static int gsl_ts_write(struct i2c_client *client, u8 addr, u8 *pdata, u32 datalen)
{
	int ret = 0;
	if (datalen > 125)
	{
		printk("%s too big datalen = %d!\n", __func__, datalen);
		return -1;
	}
	
	ret = gsl_write_interface(client,addr,pdata,datalen);
	return ret;
}
static void 
gsl_load_fw(struct i2c_client *client,const struct fw_data *GSL_DOWNLOAD_DATA,int data_len)
{
	u8 buf[DMA_TRANS_LEN*4] = {0};
	u8 send_flag = 1;
	u8 addr=0;
	u32 source_line = 0;
	u32 source_len = data_len;//ARRAY_SIZE(GSL_DOWNLOAD_DATA);

	//print_info("=============gsl_load_fw start==============\n");

	for (source_line = 0; source_line < source_len; source_line++) 
	{
		/* init page trans, set the page val */
		if (0xf0 == GSL_DOWNLOAD_DATA[source_line].offset)
		{
			memcpy(buf,&GSL_DOWNLOAD_DATA[source_line].val,4);	
			gsl_write_interface(client, 0xf0, buf, 4);
			send_flag = 1;
		}
		else 
		{
			if (1 == send_flag % (DMA_TRANS_LEN < 0x20 ? DMA_TRANS_LEN : 0x20))
	    			addr = (u8)GSL_DOWNLOAD_DATA[source_line].offset;

			memcpy((buf+send_flag*4 -4),&GSL_DOWNLOAD_DATA[source_line].val,4);	

			if (0 == send_flag % (DMA_TRANS_LEN < 0x20 ? DMA_TRANS_LEN : 0x20)) 
			{
	    		gsl_write_interface(client, addr, buf, DMA_TRANS_LEN * 4);
				send_flag = 0;
			}

			send_flag++;
		}
	}

	//print_info("=============gsl_load_fw end==============\n");

}
Пример #5
0
static void gsl_load_fw(fw_data *GSL_FW_DATA,u32 len)
{
	u8 buf[4] = {0};
    u8 addr;
    u32 source_line = 0;
	u32 source_len = data_len;//ARRAY_SIZE(GSL_DOWNLOAD_DATA);
    for (source_line = 0; source_line < source_len; source_line++)
    {
        addr = GSL_FW_DATA[source_line].addr;
        memcpy(buf,&GSL_DOWNLOAD_DATA[source_line].val,4);
        gsl_write_interface(addr,buf,4);
    }
}
static int gsl_read_MorePage(struct i2c_client *client,u32 addr,u8 *buf,u32 num)
{
	u8 tmp_buf[4];
	int i;
	int err;
	u32 temp1=addr;
	for(i=0;i<num/128;i++){
		temp1 = addr+i*0x80;
		tmp_buf[3]=(u8)((temp1/0x80)>>24);
		tmp_buf[2]=(u8)((temp1/0x80)>>16);
		tmp_buf[1]=(u8)((temp1/0x80)>>8);
		tmp_buf[0]=(u8)((temp1/0x80));
		gsl_write_interface(client,0xf0,tmp_buf,4);
		err = gsl_read_interface(client,temp1%0x80,&buf[i*128],128);
	}
	if(i*128 < num){
		temp1=addr+i*0x80;
		tmp_buf[3]=(u8)((temp1/0x80)>>24);
		tmp_buf[2]=(u8)((temp1/0x80)>>16);
		tmp_buf[1]=(u8)((temp1/0x80)>>8);
		tmp_buf[0]=(u8)((temp1/0x80));
		gsl_write_interface(client,0xf0,tmp_buf,4);
		err=gsl_read_interface(client,temp1%0x80,&buf[i*128],(num-i*0x80));
	}
static void 
gsl_load_fw(struct i2c_client *client,const struct fw_data *GSL_DOWNLOAD_DATA,int data_len)
{
	u8 buf[4] = {0};
	//u8 send_flag = 1;
	u8 addr=0;
	u32 source_line = 0;
	u32 source_len = data_len;//ARRAY_SIZE(GSL_DOWNLOAD_DATA);

	//print_info("=============gsl_load_fw start==============\n");

	for (source_line = 0; source_line < source_len; source_line++) 
	{
		/* init page trans, set the page val */
    		addr = (u8)GSL_DOWNLOAD_DATA[source_line].offset;
			memcpy(buf,&GSL_DOWNLOAD_DATA[source_line].val,4);
    		gsl_write_interface(client, addr, buf, 4);	
	}
	//print_info("=============gsl_load_fw end==============\n");
}
Пример #8
0
static void gsl_start_core(void)
{
    u8 buf[4] = {0};
    gsl_write_interface(0xe0,buf,4);
}