Update DEP-5 uri
[debian/omnibook.git] / ac.c
1 /*
2  * ac.c -- AC adapter related functions
3  * 
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License as published by the
6  * Free Software Foundation; either version 2, or (at your option) any
7  * later version.
8  * 
9  * This program is distributed in the hope that it will be useful, but
10  * WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * General Public License for more details.
13  *
14  * Written by Soós Péter <sp@osb.hu>, 2002-2004
15  * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
16  */
17
18 #include "omnibook.h"
19 #include "hardware.h"
20
21 static int omnibook_ac_read(char *buffer, struct omnibook_operation *io_op)
22 {
23         int len = 0;
24         u8 ac;
25         int retval;
26
27         retval = backend_byte_read(io_op, &ac);
28         if (retval < 0)
29                 return retval;
30
31         len += sprintf(buffer + len, "AC %s\n", (!!ac) ? "on-line" : "off-line");
32
33         return len;
34 }
35
36 static struct omnibook_tbl ac_table[] __initdata = {
37         {XE3GF | TSP10 | TSM30X | TSM70, SIMPLE_BYTE(EC, XE3GF_ADP, XE3GF_ADP_MASK)},
38         {XE3GC | AMILOD, SIMPLE_BYTE(EC, XE3GC_STA1, XE3GC_ADP_MASK)},
39         {OB500 | OB510 | OB6000 | OB6100 | XE4500, SIMPLE_BYTE(EC, OB500_STA2, OB500_ADP_MASK)},
40         {OB4150, SIMPLE_BYTE(EC, OB4150_ADP, OB4150_ADP_MASK)},
41         {XE2, SIMPLE_BYTE(EC, XE2_STA1, XE2_ADP_MASK)},
42         {0,}
43 };
44
45 static struct omnibook_feature __declared_feature ac_driver = {
46         .name = "ac",
47 #ifdef CONFIG_OMNIBOOK_LEGACY
48         .enabled = 1,
49 #else
50         .enabled = 0,
51 #endif
52         .read = omnibook_ac_read,
53         .ectypes = XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | OB4150 | XE2 | AMILOD | TSP10 | TSM70 | TSM30X,
54         .tbl = ac_table,
55 };
56
57 module_param_named(ac, ac_driver.enabled, int, S_IRUGO);
58 MODULE_PARM_DESC(ac, "Use 0 to disable, 1 to enable AC adapter status monitoring");
59
60 /* End of file */