@@ -182,8 +182,11 @@ int open_value_file(unsigned int gpio)
182182 snprintf (filename , sizeof (filename ), "/sys/class/gpio/gpio%d/value" , gpio );
183183 }
184184
185- if ((fd = open (filename , O_RDONLY | O_NONBLOCK )) < 0 )
186- return -1 ;
185+ fprintf (stderr , "open_value_file: open: filename=%s\n" , filename );
186+ if ((fd = open (filename , O_RDONLY | O_NONBLOCK )) < 0 ) {
187+ fprintf (stderr , "open_value_file: open: failed\n" );
188+ return -1 ;
189+ }
187190 add_fd_list (gpio , fd );
188191 return fd ;
189192}
@@ -288,13 +291,32 @@ int gpio_set_value(unsigned int gpio, unsigned int value)
288291 char vstr [10 ];
289292
290293 if ((gpio >= USR_LED_GPIO_MIN ) && (gpio <= USR_LED_GPIO_MAX )) {
291- snprintf (filename , sizeof (filename ), "/sys/class/leds/beaglebone:green:usr%d/brightness" , gpio - USR_LED_GPIO_MIN );
294+
295+ char * usr_led_trigger [] = { "heartbeat" , "mmc0" , "cpu0" , "mmc1" };
296+ int led = gpio - USR_LED_GPIO_MIN ;
297+
298+ fprintf (stderr , "gpio_set_value: led=%d\n" , led );
299+
300+ snprintf (filename , sizeof (filename ), "/sys/class/leds/beaglebone:green:usr%d/brightness" , led );
301+
302+ fprintf (stderr , "gpio_set_value: open: filename=%s\n" , filename );
303+
304+ if ((fd = open (filename , O_WRONLY )) < 0 ) {
305+ fprintf (stderr , "gpio_set_value: open: failed for led=%d\n" , led );
306+ fprintf (stderr , "gpio_set_value: trying usr_led_trigger\n" );
307+ fprintf (stderr , "gpio_set_value: usr_led_trigger[led]=%s\n" , usr_led_trigger [led ]);
308+ snprintf (filename , sizeof (filename ), "/sys/class/leds/beaglebone:green:%s/brightness" , usr_led_trigger [led ]);
309+ }
310+
292311 } else {
293312 snprintf (filename , sizeof (filename ), "/sys/class/gpio/gpio%d/value" , gpio );
294313 }
295314
296- if ((fd = open (filename , O_WRONLY )) < 0 )
315+ fprintf (stderr , "gpio_set_value: open: filename=%s\n" , filename );
316+ if ((fd = open (filename , O_WRONLY )) < 0 ) {
317+ fprintf (stderr , "gpio_set_value: open: failed\n" );
297318 return -1 ;
319+ }
298320
299321 if (value ) {
300322 strncpy (vstr , "1" , ARRAY_SIZE (vstr ) - 1 );
0 commit comments