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_pre) (int pin);
mraa_result_t (*pwm_init_post) (mraa_pwm_context pwm); 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_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); 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_replace) (mraa_pwm_context dev, float duty);
mraa_result_t (*pwm_write_pre) (mraa_pwm_context dev, float percentage); 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 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) { if (!dev) {
syslog(LOG_ERR, "pwm: stop: context is NULL"); syslog(LOG_ERR, "pwm: stop: context is NULL");
return 0; 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; return 0;
} }
@@ -103,12 +105,6 @@ mraa_pman_pwm_read_replace(mraa_pwm_context dev)
return -MRAA_ERROR_FEATURE_NOT_SUPPORTED; 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 static mraa_result_t
mraa_pman_uart_init_raw_replace(mraa_uart_context dev, const char* path) 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_init_raw_replace = &mraa_pman_pwm_init_raw_replace;
b->adv_func->pwm_period_replace = &mraa_pman_pwm_period_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_enable_replace = &mraa_pman_pwm_enable_replace;
b->adv_func->pwm_read_replace = &mraa_pman_pwm_read_replace; b->adv_func->pwm_read_replace = &mraa_pman_pwm_read_replace;
b->adv_func->pwm_write_replace = &mraa_pman_pwm_write_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; return pret;
} }
#if defined(PERIPHERALMAN)
return mraa_pwm_init_raw(chip, pin);
#else
return mraa_pwm_init_raw(chip, pinn); return mraa_pwm_init_raw(chip, pinn);
#endif
} }
mraa_pwm_context mraa_pwm_context