FreeCalypso > hg > freecalypso-sw
annotate loadtools/gtapower.c @ 680:04d1b20eb7b0
alr_main.c compiles
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> | 
|---|---|
| date | Mon, 29 Sep 2014 17:47:47 +0000 | 
| parents | ccc5161848c7 | 
| children | 
| rev | line source | 
|---|---|
| 
84
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
2 * This module is included only when loadtools are being built to run on the | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
3 * GTA0x application processor (AP). It provides automated modem power | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
4 * control, i.e., coordinates modem power control with loadtools operations | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
5 * for convenience. | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
6 */ | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
7 | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
8 #include <sys/types.h> | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
9 #include <sys/file.h> | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
10 #include <stdio.h> | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
11 #include <stdlib.h> | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
12 #include <unistd.h> | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
13 | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
14 /* | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
15 * Check this pathname: it is correct for the kernel version I'm using | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
16 * on my test GTA02, but it differs for some other kernel versions. | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
17 */ | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
18 static char modem_powerctl_pathname[] = | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
19 "/sys/bus/platform/devices/gta02-pm-gsm.0/power_on"; | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
20 | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
21 void | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
22 set_gta_modem_power_ctrl(boolval) | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
23 { | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
24 char strbuf[16]; | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
25 int len, fd; | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
26 | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
27 len = sprintf(strbuf, "%d\n", boolval); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
28 fd = open(modem_powerctl_pathname, O_WRONLY); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
29 if (fd < 0) { | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
30 perror(modem_powerctl_pathname); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
31 exit(1); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
32 } | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
33 write(fd, strbuf, len); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
34 close(fd); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
35 } | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
36 | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
37 void | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
38 fork_gta_modem_poweron() | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
39 { | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
40 int i; | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
41 | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
42 i = fork(); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
43 if (i < 0) { | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
44 perror("fork"); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
45 exit(1); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
46 } | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
47 if (i) | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
48 return; | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
49 printf("Toggling %s\n", modem_powerctl_pathname); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
50 set_gta_modem_power_ctrl(0); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
51 usleep(350000); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
52 set_gta_modem_power_ctrl(1); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
53 exit(0); | 
| 
 
ccc5161848c7
loadtools: support building for GTA0x AP
 
Michael Spacefalcon <msokolov@ivan.Harhan.ORG> 
parents:  
diff
changeset
 | 
54 } | 
