Linux kernel & device driver programming

Cross-Referenced Linux and Device Driver Code

[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ]
Version: [ 2.6.11.8 ] [ 2.6.25 ] [ 2.6.25.8 ] [ 2.6.31.13 ] Architecture: [ i386 ]
  1 /*
  2  * SharpSL Battery/PM Driver
  3  *
  4  * Copyright (c) 2004-2005 Richard Purdie
  5  *
  6  * This program is free software; you can redistribute it and/or modify
  7  * it under the terms of the GNU General Public License version 2 as
  8  * published by the Free Software Foundation.
  9  *
 10  */
 11 #ifndef _MACH_SHARPSL_PM
 12 #define _MACH_SHARPSL_PM
 13 
 14 struct sharpsl_charger_machinfo {
 15         void (*init)(void);
 16         void (*exit)(void);
 17         int gpio_acin;
 18         int gpio_batfull;
 19         int batfull_irq;
 20         int gpio_batlock;
 21         int gpio_fatal;
 22         void (*discharge)(int);
 23         void (*discharge1)(int);
 24         void (*charge)(int);
 25         void (*measure_temp)(int);
 26         void (*presuspend)(void);
 27         void (*postsuspend)(void);
 28         void (*earlyresume)(void);
 29         unsigned long (*read_devdata)(int);
 30 #define SHARPSL_BATT_VOLT       1
 31 #define SHARPSL_BATT_TEMP       2
 32 #define SHARPSL_ACIN_VOLT       3
 33 #define SHARPSL_STATUS_ACIN     4
 34 #define SHARPSL_STATUS_LOCK     5
 35 #define SHARPSL_STATUS_CHRGFULL 6
 36 #define SHARPSL_STATUS_FATAL    7
 37         unsigned long (*charger_wakeup)(void);
 38         int (*should_wakeup)(unsigned int resume_on_alarm);
 39         void (*backlight_limit)(int);
 40         int (*backlight_get_status) (void);
 41         int charge_on_volt;
 42         int charge_on_temp;
 43         int charge_acin_high;
 44         int charge_acin_low;
 45         int fatal_acin_volt;
 46         int fatal_noacin_volt;
 47         int bat_levels;
 48         struct battery_thresh *bat_levels_noac;
 49         struct battery_thresh *bat_levels_acin;
 50         struct battery_thresh *bat_levels_noac_bl;
 51         struct battery_thresh *bat_levels_acin_bl;
 52         int status_high_acin;
 53         int status_low_acin;
 54         int status_high_noac;
 55         int status_low_noac;
 56 };
 57 
 58 struct battery_thresh {
 59         int voltage;
 60         int percentage;
 61 };
 62 
 63 struct battery_stat {
 64         int ac_status;         /* APM AC Present/Not Present */
 65         int mainbat_status;    /* APM Main Battery Status */
 66         int mainbat_percent;   /* Main Battery Percentage Charge */
 67         int mainbat_voltage;   /* Main Battery Voltage */
 68 };
 69 
 70 struct sharpsl_pm_status {
 71         struct device *dev;
 72         struct timer_list ac_timer;
 73         struct timer_list chrg_full_timer;
 74 
 75         int charge_mode;
 76 #define CHRG_ERROR    (-1)
 77 #define CHRG_OFF      (0)
 78 #define CHRG_ON       (1)
 79 #define CHRG_DONE     (2)
 80 
 81         unsigned int flags;
 82 #define SHARPSL_SUSPENDED       (1 << 0)  /* Device is Suspended */
 83 #define SHARPSL_ALARM_ACTIVE    (1 << 1)  /* Alarm is for charging event (not user) */
 84 #define SHARPSL_BL_LIMIT        (1 << 2)  /* Backlight Intensity Limited */
 85 #define SHARPSL_APM_QUEUED      (1 << 3)  /* APM Event Queued */
 86 #define SHARPSL_DO_OFFLINE_CHRG (1 << 4)  /* Trigger the offline charger */
 87 
 88         int full_count;
 89         unsigned long charge_start_time;
 90         struct sharpsl_charger_machinfo *machinfo;
 91         struct battery_stat battstat;
 92 };
 93 
 94 extern struct sharpsl_pm_status sharpsl_pm;
 95 
 96 
 97 #define SHARPSL_LED_ERROR  2
 98 #define SHARPSL_LED_ON     1
 99 #define SHARPSL_LED_OFF    0
100 
101 void sharpsl_battery_kick(void);
102 void sharpsl_pm_led(int val);
103 
104 #endif
105 
  This page was automatically generated by the LXR engine.