Пример #1
0
void Mode9_open_Timer_ON_ComingCall(void)
{
		static int sizeof_on_ComingCall;
		static int count;
		//sizeof_on_ComingCall=2;
		sizeof_on_ComingCall=(sizeof(PWMup_ComingCall))/sizeof(PWMup_ComingCall[0]);
		//Mode_Close_all();
  		//led_share_red_grean_blue();	    
		//count++;
		if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x22,PWMup_ComingCall[count++]))
			{
		  return;
		}
		if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x21,PWMup_ComingCall[count++]))
			{
		  return;
		}
		if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x20,PWMup_ComingCall[count++]))
			{
		  return;
		}
		if(sizeof_on_ComingCall<=count)
			{
				Mode_Close_all();
			  //led_red_grean_blue();
			  count=0;
			  return;
			}
		SANLED_Timer.data = (unsigned long)9;
		mod_timer(&SANLED_Timer,(jiffies + 5));     //20
}
Пример #2
0
void Mode13_open_Timer_ON_PowerOn(void)
{
		static int sizeof_on_PowerOn;
		static int count;
		//sizeof_on_PowerOn=2;
		sizeof_on_PowerOn=(sizeof(PWMup_PowerOn))/sizeof(PWMup_PowerOn[0]);
		//Mode_Close_all();
		//led_share_red_grean_blue();	
		//count++;
		if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x22,PWMup_PowerOn[count++]))
			{
		  return;
		}
		if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x21,PWMup_PowerOn[count++]))
			{
		  return;
		}
		if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x20,PWMup_PowerOn[count++]))
			{
		  return;
		}
		if(sizeof_on_PowerOn<=count)
			{
				Mode_Close_all();
			  //led_red_grean_blue();
			  count=0;
			  return;
			}
		SANLED_Timer.data = (unsigned long)13;
		mod_timer(&SANLED_Timer,(jiffies + 20));
}
Пример #3
0
void Mode12_open_Timer_ON_PowerOff(void)
{
		static int sizeof_on_PowerOff;
		static int count;
		//sizeof_on_PowerOff=2;
		sizeof_on_PowerOff=(sizeof(PWMup_PowerOff))/sizeof(PWMup_PowerOff[0]);
		//Mode_Close_all();
		//led_share_grean_grean();	
		//count++;
		if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x22,PWMup_PowerOff[count++]))
			{
		  return;
		}
		if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x21,PWMup_PowerOff[count++]))
			{
		  return;
		}
		if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x20,PWMup_PowerOff[count++]))
			{
		  return;
		}
		if(sizeof_on_PowerOff<=count)
			{
				Mode_Close_all();
			  //led_share_grean();
			  count=0;
			  return;
			}
		SANLED_Timer.data = (unsigned long)12;
		mod_timer(&SANLED_Timer,(jiffies + 10));
}
Пример #4
0
static  void led_red_grean_blue() 
{ 
        static int led_red_grean_blue; 
        if(led_red_grean_blue==0) 
        { 
               if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x22,0x3F))
							 {
								  	;
							 }
                 led_red_grean_blue+=1; 
        } 
        else if(led_red_grean_blue==1) 
        { 
                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x21,0x3F))
							  {
								  	;
							  }
                 led_red_grean_blue+=1; 
        } 
        else if(led_red_grean_blue==2) 
        { 
                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x20,0x3F))
							  {
								  	;
							  }
                led_red_grean_blue=0; 
        } 
} 
Пример #5
0
void Mode2_open_Timer_ON_Charge()
{
		static int sizeof_on_charge;
		static int count;
		//sizeof_on_charge=10;
		sizeof_on_charge=(sizeof(PWMup_Charge))/sizeof(PWMup_Charge[0]);
		//Mode_Close_all();
   		//led_share_red_red();
   // printk("Mode2_open_Timer_ON_Charge  \n");
		//count++;
		if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x22,PWMup_Charge[count++]))
			{
		  return;
		}
		if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x21,PWMup_Charge[count++]))
			{
		  return;
		}
		if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x20,PWMup_Charge[count++]))
			{
		  return;
		}
		if(sizeof_on_charge<=count)
			{
				Mode_Close_all();
			  //led_share_red();
			  count=0;
			  return;
			}
		SANLED_Timer.data = (unsigned long)2;
		mod_timer(&SANLED_Timer,(jiffies + 20));     //60
}
Пример #6
0
static  void led_share_red()
{
                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x20,0x3F))
							  {
								  	;
							  }
}
Пример #7
0
void SANLED_Chip_Pin_Off()
{
		
	if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x20,0x00))//OUT0口调光,调光等级为0-255。OUT0~OUT9的调光指令依次为0x20~0x29. 写0关闭
	{
	  return;
	}
	
	if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x21,0x00))//OUT0口调光,调光等级为0-255。OUT0~OUT9的调光指令依次为0x20~0x29. 写0关闭
	{
	  return;
	}
	
	if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x22,0x00))//OUT0口调光,调光等级为0-255。OUT0~OUT9的调光指令依次为0x20~0x29. 写0关闭
	{
	  return;
	}
}
Пример #8
0
static  void led_share_grean_grean()
{
	static int led_grean_grean;
	if(led_grean_grean/2==0) 
        { 
            if ((led_grean_grean % 2) == 0){ 

                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x21,0x3F))
								{
								  	return;
								}
            }else{ 
               //mdelay(100); 
                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x21,0x00))
								{
								  	return;
								}
            } 
            
        } 
        else if(led_grean_grean/2==1) 
        { 
             if ((led_grean_grean % 2) == 0){ 
               //mdelay(100); 
               if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x21,0x3F))
							 {
								  	return;
							 }
               } 
               else{ 
               if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x21,0x00))
							 {
								  	return;
							 }
                } 
        } 
         
             if (led_grean_grean >= 3) 
                led_grean_grean=0; 
             else 
                 led_grean_grean+=1; 


}
Пример #9
0
static  void led_share_red_red()
{
	static int led_red_red;
	if(led_red_red/2==0) 
        { 
            if ((led_red_red % 2) == 0){ 

                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x22,0x3F))
								{
								  	return;
								}
            }else{ 
           //    schedule_timeout(100); 
                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x22,0x00))
								{
								  	return;
								}
            } 
            
        } 
        else if(led_red_red/2==1) 
        { 
             if ((led_red_red % 2) == 0){ 

                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x22,0x3F))
								{
								  	return;
								}
           //    schedule_timeout(100); 
               } 
               else{ 
                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x22,0x00))
								{
								  	return;
								}
                } 
        } 
         
             if (led_red_red >= 3) 
                led_red_red=0; 
             else 
                 led_red_red+=1; 

}
Пример #10
0
/*----------------------------------------------------------------------------*/
int hwmsen_clr_bits(struct i2c_client *client, u8 addr, u8 bits)
{
    int err;
    u8 cur, nxt;

    if ((err = hwmsen_read_byte(client, addr, &cur))) {
        HWM_ERR("read err: 0x%02X\n", addr);
        return -EFAULT;
    }
    
    nxt = cur & (~bits);
    
    if (nxt ^ cur) {
        if ((err = hwmsen_write_byte(client, addr, nxt))) {
            HWM_ERR("write err: 0x%02X\n", addr);
            return -EFAULT;
        }
    }
    return 0;    
}
Пример #11
0
static  void led_share_red_grean_blue() 
{ 
        static int led_red_grean_blue; 
        if(led_red_grean_blue/2==0) 
        { 
            if ((led_red_grean_blue % 2) == 0){ 

                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x22,0x3F))
								{
								  	return;
								}
	
            }else{ 
               //mdelay(100); 
               if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x22,0x00))
							 {
								  	return;
							 }
            } 
            
        } 
        else if(led_red_grean_blue/2==1) 
        { 
             if ((led_red_grean_blue % 2) == 0){ 

                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x21,0x3F))
								{
								  	return;
								}
               //mdelay(100); 
               } 
               else{ 
                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x21,0x00))
							 	{
								  	return;
							 	}
               } 
        } 
        else if(led_red_grean_blue/2==2) 
        { 
            if ((led_red_grean_blue % 2) == 0){ 

                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x20,0x3F))
								{
								  	return;
								}
             }else{ 
          // mdelay(100); 
                if(hwmsen_write_byte(SANLED_marquee_i2c_client,0x20,0x00))
							 	{
								  	return;
							 	}
             } 
        } 

             if (led_red_grean_blue >= 5) 
                led_red_grean_blue=0; 
             else 
                 led_red_grean_blue+=1; 
        
} 
Пример #12
0
static int aw9523b_init_device(struct i2c_client *client)
{
	u8 buf =0;
	u8  dat;
	int err = 0;
	
	printk("aw9523b_init_device.........\r\n");
	/*if(hwmsen_write_byte(client,0x7F,0x00))
	{
	  return -EFAULT;
	}
	*/
	
	if(hwmsen_write_byte(client,0x11,0x02))
	{
	  return -EFAULT;
	}
	
	//refor to datasheet
	if(hwmsen_write_byte(client,0x12,0x00))//P1_0 P1_1 P1_2 配置为呼吸灯模式
	{
	  return -EFAULT;
	}

	if(hwmsen_write_byte(client,0x13,0x00))//P1_0 P1_1 P1_2 配置为呼吸灯模式
	{
	  return -EFAULT;
	}
	/*
	mdelay(10);
	if(hwmsen_write_byte(client,0x06,0xFF))
	{
	  return -EFAULT;
	}
	mdelay(10);
	if(hwmsen_write_byte(client,0x07,0xFF))
	{
	  return -EFAULT;
	}
	mdelay(10);
	if(hwmsen_write_byte(client,0x04,0x00))
	{
	  return -EFAULT;
	}
	mdelay(10);
	if(hwmsen_write_byte(client,0x05,0x00))
	{
	  return -EFAULT;
	}
	mdelay(10);
	if(hwmsen_write_byte(client,0x02,0x00))
	{
	  return -EFAULT;
	}
	mdelay(10);
	if(hwmsen_write_byte(client,0x03,0x00))
	{
	  return -EFAULT;
	}
	mdelay(10);
	*/
	
	
	if(hwmsen_write_byte(client,0x20,0x00))//OUT0口调光,调光等级为0-255。OUT0~OUT9的调光指令依次为0x20~0x29. 写0关闭
	{
	  return -EFAULT;
	}
	
	if(hwmsen_write_byte(client,0x21,0x00))//OUT0口调光,调光等级为0-255。OUT0~OUT9的调光指令依次为0x20~0x29. 写0关闭
	{
	  return -EFAULT;
	}
	
	if(hwmsen_write_byte(client,0x22,0x00))//OUT0口调光,调光等级为0-255。OUT0~OUT9的调光指令依次为0x20~0x29. 写0关闭
	{
	  return -EFAULT;
	}

	printk("aw9523b_init_device.........OK \r\n");
	return 0;
}