@@ -386,7 +386,9 @@ BBIO_err pwm_setup(const char *key, __attribute__ ((unused)) float duty, __attri
386386 return err ;
387387 }
388388
389- if (!is_dmtimer_pin (p )) {
389+ int dmtimer_pin = is_dmtimer_pin (p );
390+
391+ if (!dmtimer_pin ) {
390392 err = build_path (ocp_dir , p -> chip , pwm_dev_path , sizeof (pwm_dev_path ));
391393 if (err != BBIO_OK ) {
392394 syslog (LOG_ERR , "Adafruit_BBIO: pwm_setup: %s couldn't build pwm_dev_path: %i" , key , err );
@@ -417,10 +419,10 @@ BBIO_err pwm_setup(const char *key, __attribute__ ((unused)) float duty, __attri
417419 syslog (LOG_DEBUG , "Adafruit_BBIO: pwm_start: key: %s, pwm_path: %s" , key , pwm_path );
418420
419421 //pwm with udev patch
420- snprintf (pwm_path_udev , sizeof (pwm_path_udev ), "%s/pwm-%c:%d" , pwm_chip_path , pwm_path [66 ], p -> index );
422+ snprintf (pwm_path_udev , sizeof (pwm_path_udev ), "%s/pwm-%c:%d" , pwm_chip_path , dmtimer_pin ? p -> module [ 5 ] : pwm_path [66 ], p -> index );
421423 syslog (LOG_DEBUG , "Adafruit_BBIO: pwm_start: key: %s, pwm_path_udev: %s" , key , pwm_path_udev );
422424 //ecap output with udev patch
423- snprintf (ecap_path_udev , sizeof (ecap_path_udev ), "%s/pwm-%c:%d" , pwm_chip_path , pwm_path [66 ], p -> index );
425+ snprintf (ecap_path_udev , sizeof (ecap_path_udev ), "%s/pwm-%c:%d" , pwm_chip_path , dmtimer_pin ? p -> module [ 5 ] : pwm_path [66 ], p -> index );
424426 syslog (LOG_DEBUG , "Adafruit_BBIO: pwm_start: key: %s, ecap_path_udev: %s" , key , ecap_path_udev );
425427
426428 // Export PWM if hasn't already been
0 commit comments