Hello Sanjay, One point - should powerdebug unexport these free gpios when it exits? Otherwise, all the entries will remain in /sys/class/gpio/* and /sys/kernel/debug/gpio file until next reboot which user may not want.
-- Thanks, - Meraj On Mon, Jun 2, 2014 at 2:46 PM, Sanjay Singh Rawat <sanjay.ra...@linaro.org> wrote: > - GPIOs in the SoC will be free/used state, this patch make free gpios > accessible to the user by exporting them. > - bug 1229658 > > Signed-off-by: Sanjay Singh Rawat <sanjay.ra...@linaro.org> > --- > gpio.c | 27 +++++++++++++++------------ > 1 file changed, 15 insertions(+), 12 deletions(-) > > diff --git a/gpio.c b/gpio.c > index 4a42cb7..39480b0 100644 > --- a/gpio.c > +++ b/gpio.c > @@ -320,10 +320,10 @@ static struct display_ops gpio_ops = { > .change = gpio_change, > }; > > -void export_gpios(void) > +void export_free_gpios(void) > { > FILE *fgpio, *fgpio_export; > - int gpio[256], num = 0; > + int i, gpio_max = 0; > char *line = NULL; > ssize_t read, len; > > @@ -340,15 +340,18 @@ void export_gpios(void) > } > > /* export the gpios */ > - while (read = getline(&line, &len, fgpio) != -1) { > - char *str; > - > - if (strstr(line, "gpio-")) { > - str = strtok(line, " "); > - sscanf(str, "gpio-%d", &gpio[num]); > - fprintf(fgpio_export, "%d", gpio[num]); > - num++; > - } > + while ((read = getline(&line, &len, fgpio)) != -1) { > + if (strstr(line, "GPIOs")) > + sscanf(line, "%*[^-]-%d%*", &gpio_max); > + } > + > + printf("log: total gpios = %d\n", gpio_max); > + for (i = 0 ; i <= gpio_max ; i++) { > + char command[50] = ""; > + > + sprintf(command, "echo %d > /sys/class/gpio/export", i); > + if (system(command) < 0) > + printf("error: failed to export gpio-%d\n", i); > } > out: > return; > @@ -368,7 +371,7 @@ int gpio_init(void) > if (access(SYSFS_GPIO, F_OK)) > gpio_error = true; /* set the flag */ > > - export_gpios(); > + export_free_gpios(); > > gpio_tree = tree_load(SYSFS_GPIO, gpio_filter_cb, false); > if (!gpio_tree) > -- > 1.7.10.4 > > > _______________________________________________ > linaro-dev mailing list > linaro-dev@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/linaro-dev >
_______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev