Linux Audio

Check our new training course

Loading...
v6.13.7
  1/* SPDX-License-Identifier: GPL-2.0-only */
  2/*
  3 * SharpSL Battery/PM Driver
  4 *
  5 * Copyright (c) 2004-2005 Richard Purdie
 
 
 
 
 
  6 */
  7#ifndef _MACH_SHARPSL_PM
  8#define _MACH_SHARPSL_PM
  9
 10struct sharpsl_charger_machinfo {
 11	void (*init)(void);
 12	void (*exit)(void);
 13	int gpio_acin;
 14	int gpio_batfull;
 15	int batfull_irq;
 16	int gpio_batlock;
 17	int gpio_fatal;
 18	void (*discharge)(int);
 19	void (*discharge1)(int);
 20	void (*charge)(int);
 21	void (*measure_temp)(int);
 22	void (*presuspend)(void);
 23	void (*postsuspend)(void);
 24	void (*earlyresume)(void);
 25	unsigned long (*read_devdata)(int);
 26#define SHARPSL_BATT_VOLT       1
 27#define SHARPSL_BATT_TEMP       2
 28#define SHARPSL_ACIN_VOLT       3
 29#define SHARPSL_STATUS_ACIN     4
 30#define SHARPSL_STATUS_LOCK     5
 31#define SHARPSL_STATUS_CHRGFULL 6
 32#define SHARPSL_STATUS_FATAL    7
 33	bool (*charger_wakeup)(void);
 34	int (*should_wakeup)(unsigned int resume_on_alarm);
 35	void (*backlight_limit)(int);
 36	int (*backlight_get_status) (void);
 37	int charge_on_volt;
 38	int charge_on_temp;
 39	int charge_acin_high;
 40	int charge_acin_low;
 41	int fatal_acin_volt;
 42	int fatal_noacin_volt;
 43	int bat_levels;
 44	struct battery_thresh *bat_levels_noac;
 45	struct battery_thresh *bat_levels_acin;
 46	struct battery_thresh *bat_levels_noac_bl;
 47	struct battery_thresh *bat_levels_acin_bl;
 48	int status_high_acin;
 49	int status_low_acin;
 50	int status_high_noac;
 51	int status_low_noac;
 52};
 53
 54struct battery_thresh {
 55	int voltage;
 56	int percentage;
 57};
 58
 59struct battery_stat {
 60	int ac_status;         /* APM AC Present/Not Present */
 61	int mainbat_status;    /* APM Main Battery Status */
 62	int mainbat_percent;   /* Main Battery Percentage Charge */
 63	int mainbat_voltage;   /* Main Battery Voltage */
 64};
 65
 66struct sharpsl_pm_status {
 67	struct device *dev;
 68	struct timer_list ac_timer;
 69	struct timer_list chrg_full_timer;
 70
 71	int charge_mode;
 72#define CHRG_ERROR    (-1)
 73#define CHRG_OFF      (0)
 74#define CHRG_ON       (1)
 75#define CHRG_DONE     (2)
 76
 77	unsigned int flags;
 78#define SHARPSL_SUSPENDED       (1 << 0)  /* Device is Suspended */
 79#define SHARPSL_ALARM_ACTIVE    (1 << 1)  /* Alarm is for charging event (not user) */
 80#define SHARPSL_BL_LIMIT        (1 << 2)  /* Backlight Intensity Limited */
 81#define SHARPSL_APM_QUEUED      (1 << 3)  /* APM Event Queued */
 82#define SHARPSL_DO_OFFLINE_CHRG (1 << 4)  /* Trigger the offline charger */
 83
 84	int full_count;
 85	unsigned long charge_start_time;
 86	struct sharpsl_charger_machinfo *machinfo;
 87	struct battery_stat battstat;
 88};
 89
 90extern struct sharpsl_pm_status sharpsl_pm;
 91
 92extern struct battery_thresh sharpsl_battery_levels_acin[];
 93extern struct battery_thresh sharpsl_battery_levels_noac[];
 94
 95#define SHARPSL_LED_ERROR  2
 96#define SHARPSL_LED_ON     1
 97#define SHARPSL_LED_OFF    0
 98
 99void sharpsl_battery_kick(void);
100void sharpsl_pm_led(int val);
101
102/* MAX1111 Channel Definitions */
103#define MAX1111_BATT_VOLT   4u
104#define MAX1111_BATT_TEMP   2u
105#define MAX1111_ACIN_VOLT   6u
106int sharpsl_pm_pxa_read_max1111(int channel);
107
 
108#endif
v4.17
 
  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
 14struct 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	bool (*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
 58struct battery_thresh {
 59	int voltage;
 60	int percentage;
 61};
 62
 63struct 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
 70struct 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
 94extern struct sharpsl_pm_status sharpsl_pm;
 95
 96extern struct battery_thresh sharpsl_battery_levels_acin[];
 97extern struct battery_thresh sharpsl_battery_levels_noac[];
 98
 99#define SHARPSL_LED_ERROR  2
100#define SHARPSL_LED_ON     1
101#define SHARPSL_LED_OFF    0
102
103void sharpsl_battery_kick(void);
104void sharpsl_pm_led(int val);
105
106/* MAX1111 Channel Definitions */
107#define MAX1111_BATT_VOLT   4u
108#define MAX1111_BATT_TEMP   2u
109#define MAX1111_ACIN_VOLT   6u
110int sharpsl_pm_pxa_read_max1111(int channel);
111
112void corgi_lcd_limit_intensity(int limit);
113#endif