@@ -125,7 +125,7 @@ BBIO_err gpio_export(unsigned int gpio)
125125 gpio , gpio_export , errno , strerror (errno ));
126126 ret = BBIO_SYSFS ;
127127 }
128- usleep (100000 ); // Hack to wait for newly exported pins to get correct ownership
128+ usleep (200000 ); // Hack to wait for newly exported pins to get correct ownership
129129 return ret ;
130130}
131131
@@ -195,13 +195,40 @@ int open_value_file(unsigned int gpio)
195195 // create file descriptor of value file
196196 if ((gpio >= USR_LED_GPIO_MIN ) && (gpio <= USR_LED_GPIO_MAX )) {
197197 snprintf (filename , sizeof (filename ), "/sys/class/leds/beaglebone:green:usr%d/brightness" , gpio - USR_LED_GPIO_MIN );
198- } else if (gpio == USR_LED_RED ) { // red LED
199- snprintf (filename , sizeof (filename ), "/sys/class/leds/red/brightness" );
200- } else if (gpio == USR_LED_GREEN ) { // green LED
201- snprintf (filename , sizeof (filename ), "/sys/class/leds/green/brightness" );
202- } else {
203- snprintf (filename , sizeof (filename ), "/sys/class/gpio/gpio%d/value" , gpio );
198+ } else switch (gpio ) {
199+ case USR_LED_RED :
200+ snprintf (filename , sizeof (filename ), "/sys/class/leds/red/brightness" );
201+ break ;
202+ case USR_LED_GREEN :
203+ snprintf (filename , sizeof (filename ), "/sys/class/leds/green/brightness" );
204+ break ;
205+ case BAT25 :
206+ snprintf (filename , sizeof (filename ), "/sys/class/leds/bat25/brightness" );
207+ break ;
208+ case BAT50 :
209+ snprintf (filename , sizeof (filename ), "/sys/class/leds/bat50/brightness" );
210+ break ;
211+ case BAT75 :
212+ snprintf (filename , sizeof (filename ), "/sys/class/leds/bat75/brightness" );
213+ break ;
214+ case BAT100 :
215+ snprintf (filename , sizeof (filename ), "/sys/class/leds/bat100/brightness" );
216+ break ;
217+ case WIFI :
218+ snprintf (filename , sizeof (filename ), "/sys/class/leds/wifi/brightness" );
219+ break ;
220+ default :
221+ snprintf (filename , sizeof (filename ), "/sys/class/gpio/gpio%d/value" , gpio );
222+ break ;
204223 }
224+
225+ // if(gpio == USR_LED_RED) { // red LED
226+ // snprintf(filename, sizeof(filename), "/sys/class/leds/red/brightness");
227+ // } else if(gpio == USR_LED_GREEN) { // green LED
228+ // snprintf(filename, sizeof(filename), "/sys/class/leds/green/brightness");
229+ // } else {
230+ // snprintf(filename, sizeof(filename), "/sys/class/gpio/gpio%d/value", gpio);
231+ // }
205232
206233 if ((fd = open (filename , O_RDONLY | O_NONBLOCK )) < 0 ) {
207234 syslog (LOG_ERR , "gpio open_value_file: %u couldn't open '%s': %i-%s" ,
@@ -253,7 +280,10 @@ BBIO_err gpio_set_direction(unsigned int gpio, unsigned int in_flag)
253280 char direction [10 ] = { 0 };
254281
255282 if (((gpio >= USR_LED_GPIO_MIN ) && (gpio <= USR_LED_GPIO_MAX )) ||
256- (gpio == USR_LED_RED ) || (gpio == USR_LED_GREEN )) {
283+ (gpio == USR_LED_RED ) || (gpio == USR_LED_GREEN )
284+ || (gpio == BAT25 ) || (gpio == BAT50 )
285+ || (gpio == BAT75 ) || (gpio == BAT100 )
286+ || (gpio == WIFI )) {
257287 syslog (LOG_DEBUG , "gpio_set_direction: %u not applicable to the USR LED" , gpio );
258288 return BBIO_OK ; // direction is not applicable to the USR LED pins
259289 }
@@ -331,13 +361,40 @@ BBIO_err gpio_set_value(unsigned int gpio, unsigned int value)
331361 snprintf (filename , sizeof (filename ), "/sys/class/leds/beaglebone:green:%s/brightness" , usr_led_trigger [led ]);
332362 }
333363
334- } else if (gpio == USR_LED_RED ) {
335- snprintf (filename , sizeof (filename ), "/sys/class/leds/red/brightness" );
336- } else if (gpio == USR_LED_GREEN ) {
337- snprintf (filename , sizeof (filename ), "/sys/class/leds/green/brightness" );
338- } else {
339- snprintf (filename , sizeof (filename ), "/sys/class/gpio/gpio%d/value" , gpio );
340- }
364+ } else switch (gpio ) {
365+ case USR_LED_RED :
366+ snprintf (filename , sizeof (filename ), "/sys/class/leds/red/brightness" );
367+ break ;
368+ case USR_LED_GREEN :
369+ snprintf (filename , sizeof (filename ), "/sys/class/leds/green/brightness" );
370+ break ;
371+ case BAT25 :
372+ snprintf (filename , sizeof (filename ), "/sys/class/leds/bat25/brightness" );
373+ break ;
374+ case BAT50 :
375+ snprintf (filename , sizeof (filename ), "/sys/class/leds/bat50/brightness" );
376+ break ;
377+ case BAT75 :
378+ snprintf (filename , sizeof (filename ), "/sys/class/leds/bat75/brightness" );
379+ break ;
380+ case BAT100 :
381+ snprintf (filename , sizeof (filename ), "/sys/class/leds/bat100/brightness" );
382+ break ;
383+ case WIFI :
384+ snprintf (filename , sizeof (filename ), "/sys/class/leds/wifi/brightness" );
385+ break ;
386+ default :
387+ snprintf (filename , sizeof (filename ), "/sys/class/gpio/gpio%d/value" , gpio );
388+ break ;
389+ }
390+
391+ // if(gpio == USR_LED_RED) {
392+ // snprintf(filename, sizeof(filename), "/sys/class/leds/red/brightness");
393+ // } else if(gpio == USR_LED_GREEN) {
394+ // snprintf(filename, sizeof(filename), "/sys/class/leds/green/brightness");
395+ // } else {
396+ // snprintf(filename, sizeof(filename), "/sys/class/gpio/gpio%d/value", gpio);
397+ // }
341398
342399 fd = open (filename , O_WRONLY );
343400 if (fd < 0 ) {
0 commit comments