aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Lezcano <daniel.lezcano@linaro.org>2011-08-25 15:46:13 +0200
committerDaniel Lezcano <daniel.lezcano@linaro.org>2011-08-25 15:46:13 +0200
commit716b23e5c94867f5e1f9729880f8b2abcb776e17 (patch)
tree6b21912f3ead9b63cd5c3fe2deeeac3750ffae26
parent5e26728f1f4ed90ae9335bcc007eecfdbe3ee99c (diff)
downloadpowerdebug-716b23e5c94867f5e1f9729880f8b2abcb776e17.tar.gz
plug the gpio subsys with the main function
Let's create the command options parameters and plug the gpio code with the main code. Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
-rw-r--r--powerdebug.c26
1 files changed, 22 insertions, 4 deletions
diff --git a/powerdebug.c b/powerdebug.c
index b4575c4..cc9e871 100644
--- a/powerdebug.c
+++ b/powerdebug.c
@@ -24,6 +24,7 @@
#include "display.h"
#include "clocks.h"
#include "sensor.h"
+#include "gpio.h"
#include "mainloop.h"
#include "powerdebug.h"
@@ -54,9 +55,10 @@ void version()
/*
* Options:
- * -r, --regulator : regulator
+ * -r, --regulator : regulators
* -s, --sensor : sensors
* -c, --clock : clocks
+ * -g, --gpio : gpios
* -p, --findparents : clockname whose parents have to be found
* -t, --time : ticktime
* -d, --dump : dump
@@ -70,6 +72,7 @@ static struct option long_options[] = {
{ "regulator", 0, 0, 'r' },
{ "sensor", 0, 0, 's' },
{ "clock", 0, 0, 'c' },
+ { "gpio", 0, 0, 'g' },
{ "findparents", 1, 0, 'p' },
{ "time", 1, 0, 't' },
{ "dump", 0, 0, 'd' },
@@ -84,6 +87,7 @@ struct powerdebug_options {
bool regulators;
bool sensors;
bool clocks;
+ bool gpios;
bool dump;
unsigned int ticktime;
int selectedwindow;
@@ -101,7 +105,7 @@ int getoptions(int argc, char *argv[], struct powerdebug_options *options)
while (1) {
int optindex = 0;
- c = getopt_long(argc, argv, "rscp:t:dvVh",
+ c = getopt_long(argc, argv, "rscgp:t:dvVh",
long_options, &optindex);
if (c == -1)
break;
@@ -119,6 +123,10 @@ int getoptions(int argc, char *argv[], struct powerdebug_options *options)
options->clocks = true;
options->selectedwindow = CLOCK;
break;
+ case 'g':
+ options->gpios = true;
+ options->selectedwindow = GPIO;
+ break;
case 'p':
options->clkname = strdup(optarg);
if (!options->clkname) {
@@ -149,8 +157,10 @@ int getoptions(int argc, char *argv[], struct powerdebug_options *options)
}
/* No system specified to be dump, let's default to all */
- if (!options->regulators && !options->clocks && !options->sensors)
- options->regulators = options->clocks = options->sensors = true;
+ if (!options->regulators && !options->clocks &&
+ !options->sensors && !options->gpios)
+ options->regulators = options->clocks =
+ options->sensors = options->gpios = true;
if (options->selectedwindow == -1)
options->selectedwindow = CLOCK;
@@ -169,6 +179,9 @@ static int powerdebug_dump(struct powerdebug_options *options)
if (options->sensors)
sensor_dump();
+ if (options->gpios)
+ gpio_dump();
+
return 0;
}
@@ -234,6 +247,11 @@ int main(int argc, char **argv)
options->sensors = false;
}
+ if (gpio_init()) {
+ printf("failed to initialize gpios\n");
+ options->gpios = false;
+ }
+
ret = options->dump ? powerdebug_dump(options) :
powerdebug_display(options);