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
v6.8
  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