078abcf95c
Patch from Richard Purdie This patch adds a power and battery management core driver which with the addition of the right device files, supports the c7x0 and cxx00 series of Sharp Zaurus handhelds. The driver is complex for several reasons. Battery charging is manually monitored and controlled. When suspended, the device needs to periodically partially resume, check the charging status and then re-suspend. It does without bothering the higher linux layers as a full resume and re-suspend is unnecessary. The code is carefully written to avoid interrupts or calling code outside the module under these circumstances. It also vets the various wake up sources and monitors the device's power situation. Hooks to limit the backlight intensity and to notify the battery monitoring code of backlight events are connected/added as the backlight is one of the biggest users of power on the device. Signed-off-by: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
38 lines
807 B
C
38 lines
807 B
C
/*
|
|
* SharpSL SSP Driver
|
|
*/
|
|
|
|
unsigned long corgi_ssp_ads7846_putget(unsigned long);
|
|
unsigned long corgi_ssp_ads7846_get(void);
|
|
void corgi_ssp_ads7846_put(unsigned long data);
|
|
void corgi_ssp_ads7846_lock(void);
|
|
void corgi_ssp_ads7846_unlock(void);
|
|
void corgi_ssp_lcdtg_send (unsigned char adrs, unsigned char data);
|
|
void corgi_ssp_blduty_set(int duty);
|
|
int corgi_ssp_max1111_get(unsigned long data);
|
|
|
|
/*
|
|
* SharpSL Touchscreen Driver
|
|
*/
|
|
|
|
struct corgits_machinfo {
|
|
unsigned long (*get_hsync_len)(void);
|
|
void (*put_hsync)(void);
|
|
void (*wait_hsync)(void);
|
|
};
|
|
|
|
|
|
/*
|
|
* SharpSL Backlight
|
|
*/
|
|
struct corgibl_machinfo {
|
|
int max_intensity;
|
|
void (*set_bl_intensity)(int intensity);
|
|
};
|
|
extern void corgibl_limit_intensity(int limit);
|
|
|
|
|
|
/*
|
|
* SharpSL Battery/PM Driver
|
|
*/
|
|
extern void sharpsl_battery_kick(void);
|