mirror of
https://github.com/hardkernel/linux.git
synced 2026-04-13 00:50:39 +09:00
charge display: support
This commit is contained in:
committed by
yj
parent
399b794dd7
commit
08fced76b5
@@ -4,17 +4,15 @@
|
||||
#include <linux/slab.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/errno.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/delay.h>
|
||||
#include <linux/power_supply.h>
|
||||
#include <linux/workqueue.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <asm/unaligned.h>
|
||||
#include <mach/gpio.h>
|
||||
#include <mach/iomux.h>
|
||||
#include <mach/board.h>
|
||||
#include <asm/uaccess.h>
|
||||
#include <linux/power_supply.h>
|
||||
|
||||
#include <linux/rockchip/common.h>
|
||||
|
||||
#if 0
|
||||
#define DBG(x...) printk(KERN_INFO x)
|
||||
@@ -22,16 +20,8 @@
|
||||
#define DBG(x...)
|
||||
#endif
|
||||
|
||||
//#define RK29_PLAY_ON_PIN RK29_PIN6_PA7
|
||||
//#define MAX_PRE_CNT 2
|
||||
//#define DET_CNT 5
|
||||
#define PWR_ON_THRESHD 5 //power on threshd of capacity
|
||||
//unsigned int pre_cnt = 0; //for long press counter
|
||||
//int charge_disp_mode = 0;
|
||||
static int pwr_on_thrsd = 5; //power on capcity threshold
|
||||
|
||||
//extern int boot_mode_init(char * s);
|
||||
|
||||
static int __init pwr_on_thrsd_setup(char *str)
|
||||
{
|
||||
|
||||
@@ -96,26 +86,18 @@ int rk_get_system_battery_capacity(void)
|
||||
}
|
||||
EXPORT_SYMBOL(rk_get_system_battery_capacity);
|
||||
|
||||
#ifdef CONFIG_POWER_ON_CHARGER_DISPLAY
|
||||
//int charger_mode=0; //1:charge,0:not charge
|
||||
#ifdef CONFIG_CHARGER_DISPLAY
|
||||
static void add_bootmode_charger_to_cmdline(void)
|
||||
{
|
||||
char *pmode=" androidboot.mode=charger";
|
||||
//int off = strlen(saved_command_line);
|
||||
char *new_command_line = kzalloc(strlen(saved_command_line) + strlen(pmode) + 1, GFP_KERNEL);
|
||||
|
||||
sprintf(new_command_line, "%s%s", saved_command_line, pmode);
|
||||
saved_command_line = new_command_line;
|
||||
//strcpy(saved_command_line+off,pmode);
|
||||
|
||||
//int off = strlen(boot_command_line);
|
||||
//strcpy(boot_command_line+off,pmode);
|
||||
|
||||
printk("Kernel command line: %s\n", saved_command_line);
|
||||
}
|
||||
|
||||
//display charger logo in kernel CAPACITY
|
||||
|
||||
|
||||
static int __init start_charge_logo_display(void)
|
||||
{
|
||||
union power_supply_propval val_status = {POWER_SUPPLY_STATUS_DISCHARGING};
|
||||
@@ -123,18 +105,15 @@ static int __init start_charge_logo_display(void)
|
||||
|
||||
printk("start_charge_logo_display\n");
|
||||
|
||||
if(board_boot_mode() == BOOT_MODE_RECOVERY) //recovery mode
|
||||
if(rockchip_boot_mode() == BOOT_MODE_RECOVERY) //recovery mode
|
||||
{
|
||||
printk("recovery mode \n");
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
if (rk_get_system_battery_status() != POWER_SUPPLY_TYPE_BATTERY)
|
||||
val_status.intval = POWER_SUPPLY_STATUS_CHARGING;
|
||||
|
||||
val_capacity.intval = rk_get_system_battery_capacity();
|
||||
|
||||
// low power and discharging
|
||||
#if 0
|
||||
if((val_capacity.intval < pwr_on_thrsd )&&(val_status.intval != POWER_SUPPLY_STATUS_CHARGING))
|
||||
@@ -146,37 +125,17 @@ static int __init start_charge_logo_display(void)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
//low power and charging
|
||||
#if 0
|
||||
if((val_capacity.intval < pwr_on_thrsd )&&(val_status.intval == POWER_SUPPLY_STATUS_CHARGING))
|
||||
{
|
||||
while((val_capacity.intval < pwr_on_thrsd ))
|
||||
{
|
||||
list_for_each_entry(psy, &rk_psy_head, rk_psy_node)
|
||||
{
|
||||
psy->get_property(psy,POWER_SUPPLY_PROP_CAPACITY,&val_capacity);
|
||||
}
|
||||
|
||||
//printk("charging ... \n");
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
if(val_status.intval == POWER_SUPPLY_STATUS_CHARGING)
|
||||
{
|
||||
if ((board_boot_mode() == BOOT_MODE_NORMAL) ||(board_boot_mode() == BOOT_MODE_CHARGE)|| (val_capacity.intval <= pwr_on_thrsd)) //do not enter power on charge mode when soft reset
|
||||
if (((rockchip_boot_mode() == BOOT_MODE_NORMAL) ||(rockchip_boot_mode() == BOOT_MODE_CHARGE)) && (val_capacity.intval <= pwr_on_thrsd))
|
||||
{
|
||||
add_bootmode_charger_to_cmdline();
|
||||
//boot_mode_init("charge");
|
||||
printk("power in charge mode\n");
|
||||
}
|
||||
printk("power in charge mode %d %d %d\n\n",rockchip_boot_mode(),val_capacity.intval,pwr_on_thrsd);
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
//subsys_initcall_sync(start_charge_logo_display);
|
||||
module_init(start_charge_logo_display);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user