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:
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user