mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
synced 2025-10-25 13:41:08 +00:00
This class is result of "external power" and "battery" classes merge,
as suggested by David Woodhouse. He also implemented uevent support.
Here how userspace seeing it now:
# ls /sys/class/power\ supply/
ac main-battery usb
# cat /sys/class/power\ supply/ac/type
AC
# cat /sys/class/power\ supply/usb/type
USB
# cat /sys/class/power\ supply/main-battery/type
Battery
# cat /sys/class/power\ supply/ac/online
1
# cat /sys/class/power\ supply/usb/online
0
# cat /sys/class/power\ supply/main-battery/status
Charging
# cat /sys/class/leds/h5400\:red-left/trigger
none h5400-radio timer hwtimer ac-online usb-online
main-battery-charging-or-full [main-battery-charging]
main-battery-full
Signed-off-by: Anton Vorontsov <cbou@mail.ru>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
43 lines
1.3 KiB
C
43 lines
1.3 KiB
C
/*
|
|
* Functions private to power supply class
|
|
*
|
|
* Copyright © 2007 Anton Vorontsov <cbou@mail.ru>
|
|
* Copyright © 2004 Szabolcs Gyurko
|
|
* Copyright © 2003 Ian Molton <spyro@f2s.com>
|
|
*
|
|
* Modified: 2004, Oct Szabolcs Gyurko
|
|
*
|
|
* You may use this code as per GPL version 2
|
|
*/
|
|
|
|
#ifdef CONFIG_SYSFS
|
|
|
|
extern int power_supply_create_attrs(struct power_supply *psy);
|
|
extern void power_supply_remove_attrs(struct power_supply *psy);
|
|
extern int power_supply_uevent(struct device *dev, char **envp, int num_envp,
|
|
char *buffer, int buffer_size);
|
|
|
|
#else
|
|
|
|
static inline int power_supply_create_attrs(struct power_supply *psy)
|
|
{ return 0; }
|
|
static inline void power_supply_remove_attrs(struct power_supply *psy) {}
|
|
#define power_supply_uevent NULL
|
|
|
|
#endif /* CONFIG_SYSFS */
|
|
|
|
#ifdef CONFIG_LEDS_TRIGGERS
|
|
|
|
extern void power_supply_update_leds(struct power_supply *psy);
|
|
extern int power_supply_create_triggers(struct power_supply *psy);
|
|
extern void power_supply_remove_triggers(struct power_supply *psy);
|
|
|
|
#else
|
|
|
|
static inline void power_supply_update_leds(struct power_supply *psy) {}
|
|
static inline int power_supply_create_triggers(struct power_supply *psy)
|
|
{ return 0; }
|
|
static inline void power_supply_remove_triggers(struct power_supply *psy) {}
|
|
|
|
#endif /* CONFIG_LEDS_TRIGGERS */
|