| 1 | |
| 2 | * Definitions for talking to the PMU. The PMU is a microcontroller
|
| 3 | * which controls battery charging and system power on PowerBook 3400
|
| 4 | * and 2400 models as well as the RTC and various other things.
|
| 5 | *
|
| 6 | * Copyright (C) 1998 Paul Mackerras.
|
| 7 |
|
| 8 | #ifndef _LINUX_PMU_H
|
| 9 | #define _LINUX_PMU_H
|
| 10 |
|
| 11 | #include <uapi/linux/pmu.h>
|
| 12 |
|
| 13 |
|
| 14 | extern int find_via_pmu(void);
|
| 15 |
|
| 16 | extern int pmu_request(struct adb_request *req,
|
| 17 | void (*done)(struct adb_request *), int nbytes, ...);
|
| 18 | extern int pmu_queue_request(struct adb_request *req);
|
| 19 | extern void pmu_poll(void);
|
| 20 | extern void pmu_poll_adb(void);
|
| 21 | extern void pmu_wait_complete(struct adb_request *req);
|
| 22 |
|
| 23 | |
| 24 | * warning: not stackable
|
| 25 |
|
| 26 | #if defined(CONFIG_ADB_PMU)
|
| 27 | extern void pmu_suspend(void);
|
| 28 | extern void pmu_resume(void);
|
| 29 | #else
|
| 30 | static inline void pmu_suspend(void)
|
| 31 | {}
|
| 32 | static inline void pmu_resume(void)
|
| 33 | {}
|
| 34 | #endif
|
| 35 |
|
| 36 | extern void pmu_enable_irled(int on);
|
| 37 |
|
| 38 | extern void pmu_restart(void);
|
| 39 | extern void pmu_shutdown(void);
|
| 40 | extern void pmu_unlock(void);
|
| 41 |
|
| 42 | extern int pmu_present(void);
|
| 43 | extern int pmu_get_model(void);
|
| 44 |
|
| 45 | extern void pmu_backlight_set_sleep(int sleep);
|
| 46 |
|
| 47 | #define PMU_MAX_BATTERIES 2
|
| 48 |
|
| 49 |
|
| 50 | #define PMU_PWR_AC_PRESENT 0x00000001
|
| 51 |
|
| 52 |
|
| 53 | #define PMU_BATT_PRESENT 0x00000001
|
| 54 | #define PMU_BATT_CHARGING 0x00000002
|
| 55 | #define PMU_BATT_TYPE_MASK 0x000000f0
|
| 56 | #define PMU_BATT_TYPE_SMART 0x00000010
|
| 57 | #define PMU_BATT_TYPE_HOOPER 0x00000020
|
| 58 | #define PMU_BATT_TYPE_COMET 0x00000030
|
| 59 |
|
| 60 | struct pmu_battery_info
|
| 61 | {
|
| 62 | unsigned int flags;
|
| 63 | unsigned int charge;
|
| 64 | unsigned int max_charge;
|
| 65 | signed int amperage;
|
| 66 | unsigned int voltage;
|
| 67 | unsigned int time_remaining;
|
| 68 | };
|
| 69 |
|
| 70 | extern int pmu_battery_count;
|
| 71 | extern struct pmu_battery_info pmu_batteries[PMU_MAX_BATTERIES];
|
| 72 | extern unsigned int pmu_power_flags;
|
| 73 |
|
| 74 |
|
| 75 | extern void pmu_backlight_init(void);
|
| 76 |
|
| 77 |
|
| 78 | #if defined(CONFIG_SUSPEND) && defined(CONFIG_PPC32)
|
| 79 | extern int pmu_sys_suspended;
|
| 80 | #else
|
| 81 |
|
| 82 | #define pmu_sys_suspended 0
|
| 83 | #endif
|
| 84 |
|
| 85 | #endif
|