Private
Public Access
2
0

periphmraa: fix pwm calls to PIO

Signed-off-by: Sanrio Alvares <sanrio.alvares@intel.com>
Signed-off-by: Noel Eck <noel.eck@intel.com>
This commit is contained in:
Sanrio Alvares
2017-04-28 14:55:31 -07:00
parent ef2fddc1e1
commit 35e17ee25a
3 changed files with 9 additions and 10 deletions

View File

@@ -90,7 +90,6 @@ typedef struct {
mraa_result_t (*pwm_init_pre) (int pin);
mraa_result_t (*pwm_init_post) (mraa_pwm_context pwm);
mraa_result_t (*pwm_period_replace) (mraa_pwm_context dev, int period);
mraa_result_t (*pwm_duty_cycle_replace) (mraa_pwm_context dev, int duty_cycle);
float (*pwm_read_replace) (mraa_pwm_context dev);
mraa_result_t (*pwm_write_replace) (mraa_pwm_context dev, float duty);
mraa_result_t (*pwm_write_pre) (mraa_pwm_context dev, float percentage);

View File

@@ -68,14 +68,16 @@ mraa_pman_pwm_period_replace(mraa_pwm_context dev, int period)
}
static mraa_result_t
mraa_pman_pwm_duty_cycle_replace(mraa_pwm_context dev, int duty_cycle)
mraa_pman_pwm_write_replace(mraa_pwm_context dev, float duty)
{
if (!dev) {
syslog(LOG_ERR, "pwm: stop: context is NULL");
return 0;
}
if (APwm_setDutyCycle(dev->bpwm, duty_cycle) != 0) {
// PIO can only take values between 0 <= duty <= 100
int d = (int) (duty > 100 ) ? 100 : duty;
if (APwm_setDutyCycle(dev->bpwm, d) != 0) {
return 0;
}
@@ -103,12 +105,6 @@ mraa_pman_pwm_read_replace(mraa_pwm_context dev)
return -MRAA_ERROR_FEATURE_NOT_SUPPORTED;
}
static mraa_result_t
mraa_pman_pwm_write_replace(mraa_pwm_context dev, float duty)
{
return -MRAA_ERROR_FEATURE_NOT_SUPPORTED;
}
static mraa_result_t
mraa_pman_uart_init_raw_replace(mraa_uart_context dev, const char* path)
{
@@ -867,7 +863,6 @@ mraa_peripheralman_plat_init()
b->adv_func->pwm_init_raw_replace = &mraa_pman_pwm_init_raw_replace;
b->adv_func->pwm_period_replace = &mraa_pman_pwm_period_replace;
b->adv_func->pwm_duty_cycle_replace = &mraa_pman_pwm_duty_cycle_replace;
b->adv_func->pwm_enable_replace = &mraa_pman_pwm_enable_replace;
b->adv_func->pwm_read_replace = &mraa_pman_pwm_read_replace;
b->adv_func->pwm_write_replace = &mraa_pman_pwm_write_replace;

View File

@@ -269,7 +269,12 @@ mraa_pwm_init(int pin)
}
return pret;
}
#if defined(PERIPHERALMAN)
return mraa_pwm_init_raw(chip, pin);
#else
return mraa_pwm_init_raw(chip, pinn);
#endif
}
mraa_pwm_context