示例#1
0
static int mtktsbattery_get_hw_temp(void)
{
	int t_ret=0;
	static int battery[60]={0};
	static int counter=0, first_time=0;


	if(ts_battery_at_boot_time==0)
	{
		ts_battery_at_boot_time=1;
		mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] at boot time, return 25000 as default\n");
		battery[counter]=25000;
		counter++;
		return 25000;
	}

	mutex_lock(&Battery_lock);

    //get HW battery temp (TSBATTERY)
    //cat /sys/class/power_supply/battery/batt_temp
	t_ret = get_hw_battery_temp();
	t_ret = t_ret * 100;

	mutex_unlock(&Battery_lock);

	if(t_ret)

	mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] counter=%d, first_time =%d\n", counter, first_time);
	mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] T_Battery, %d\n", t_ret);
	return t_ret;
}
示例#2
0
static int mtktsbattery_get_temp(struct thermal_zone_device *thermal,
			       unsigned long *t)
{
	*t = (unsigned long)get_hw_battery_temp() * 1000;
	mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] T_Battery, %d\n", *t);

	return 0;
}
static int mtktsbattery_get_hw_temp(void)
{
    int t_ret=0;
		static int battery[60]={0};
		static int counter=0, first_time=0;
		int i=0;

    if(ts_battery_at_boot_time==0){            
        ts_battery_at_boot_time=1;
        mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] at boot time, return 25000 as default\n");
        battery[counter]=25000;
        counter++;
	      return 25000;
    }

mutex_lock(&Battery_lock);
		//if(battery_write_flag==1)
		//{
		//		counter=0;
		//		first_time=0;
		//		battery_write_flag=0;
		//}

    //get HW battery temp (TSBATTERY)
    //cat /sys/class/power_supply/battery/batt_temp
		t_ret = get_hw_battery_temp();
    t_ret = t_ret * 100;
		battery[counter]=t_ret;

		if(first_time!=0)
		{
				t_ret = 0;
				for(i=0; i<MA_len; i++)
				{
						t_ret += battery[i];
				}
				t_ret = t_ret / MA_len;
		}

		counter++;
		if(counter==MA_len)
		{
				counter=0;
				first_time=1;
		}
		if(counter>MA_len)
		{
				counter=0;
				first_time=0;
		}
mutex_unlock(&Battery_lock);

		mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] counter=%d, first_time =%d, MA_len=%d\n", counter, first_time, MA_len);
    mtktsbattery_dprintk("[mtktsbattery_get_hw_temp] T_Battery, %d\n", t_ret);
    return t_ret;
}