@@ -313,10 +313,11 @@ BBIO_err pwm_setup(const char *key, __attribute__ ((unused)) float duty, __attri
313313 char pwm_addr_path [60 ]; // "/sys/devices/platform/ocp/48300000.epwmss/48300200.ehrpwm"
314314 char pwm_chip_path [75 ]; // "/sys/devices/platform/ocp/48300000.epwmss/48300200.ehrpwm/pwm/pwmchip0"
315315 char pwm_export_path [80 ]; // "/sys/devices/platform/ocp/48300000.epwmss/48300200.ehrpwm/pwm/pwmchip0/export"
316- char pwm_path [80 ]; // "/sys/devices/platform/ocp/48300000.epwmss/48300200.ehrpwm/pwm/pwmchip0/pwm1"
317- char duty_path [90 ]; // "/sys/devices/platform/ocp/48300000.epwmss/48300200.ehrpwm/pwm/pwmchip0/pwm1/duty_cycle"
318- char period_path [90 ];
319- char polarity_path [90 ];
316+ char pwm_path [85 ]; // "/sys/devices/platform/ocp/48300000.epwmss/48300200.ehrpwm/pwm/pwmchip0/pwm1"
317+ char pwm_path_udev [85 ]; // "/sys/devices/platform/ocp/48300000.epwmss/48300200.ehrpwm/pwm/pwmchip0/pwm-0:1"
318+ char duty_path [95 ]; // "/sys/devices/platform/ocp/48300000.epwmss/48300200.ehrpwm/pwm/pwmchip0/pwm1/duty_cycle"
319+ char period_path [95 ];
320+ char polarity_path [95 ];
320321 char enable_path [90 ];
321322 char pin_mode [PIN_MODE_LEN ]; // "pwm" or "pwm2"
322323
@@ -387,6 +388,7 @@ BBIO_err pwm_setup(const char *key, __attribute__ ((unused)) float duty, __attri
387388 }
388389
389390 snprintf (pwm_path , sizeof (pwm_path ), "%s/pwm%d" , pwm_chip_path , p -> index );
391+ snprintf (pwm_path_udev , sizeof (pwm_path_udev ), "%s/pwm-%s:%d" , pwm_chip_path , pwm_chip_path , p -> index );
390392
391393 // Export PWM if hasn't already been
392394 e = stat (pwm_path , & s );
@@ -422,7 +424,17 @@ BBIO_err pwm_setup(const char *key, __attribute__ ((unused)) float duty, __attri
422424 if (ENOENT == errno ) {
423425 // Directory still doesn't exist, exit with error
424426 syslog (LOG_ERR , "pwm_setup: %s %s doesn't exist" , key , pwm_path );
425- return BBIO_GEN ;
427+ //return BBIO_GEN;
428+
429+ e = stat (pwm_path_udev , & s );
430+ if (-1 == e ) {
431+ if (ENOENT == errno ) {
432+ // Directory still doesn't exist, exit with error
433+ syslog (LOG_ERR , "pwm_setup: %s %s doesn't exist" , key , pwm_path_udev );
434+ return BBIO_GEN ;
435+ }
436+ }
437+ strncpy (pwm_path , pwm_path_udev , sizeof (pwm_path_udev ));
426438 }
427439 }
428440
0 commit comments