pwm: removed unused code and optimized flow for subplatform support
Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com> Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
This commit is contained in:
committed by
Brendan Le Foll
parent
9a5abb7d56
commit
0e5dadeb8c
@@ -189,16 +189,18 @@ mraa_result_t mraa_pwm_config_percent(mraa_pwm_context dev, int period, float du
|
||||
/**
|
||||
* Get the maximum pwm period in us
|
||||
*
|
||||
* @param dev The pwm context to use
|
||||
* @return max pwm in us
|
||||
*/
|
||||
int mraa_pwm_get_max_period();
|
||||
int mraa_pwm_get_max_period(mraa_pwm_context dev);
|
||||
|
||||
/**
|
||||
* Get the minimum pwm period in us
|
||||
*
|
||||
* @param dev The pwm context to use
|
||||
* @return min pwm in us
|
||||
*/
|
||||
int mraa_pwm_get_min_period();
|
||||
int mraa_pwm_get_min_period(mraa_pwm_context dev);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -176,10 +176,7 @@ class Pwm
|
||||
Result
|
||||
enable(bool enable)
|
||||
{
|
||||
if (enable)
|
||||
return (Result) mraa_pwm_enable(m_pwm, 1);
|
||||
else
|
||||
return (Result) mraa_pwm_enable(m_pwm, 0);
|
||||
return (Result) mraa_pwm_enable(m_pwm, enable);
|
||||
}
|
||||
/**
|
||||
* Set the period and duty of a PWM object.
|
||||
@@ -213,7 +210,7 @@ class Pwm
|
||||
int
|
||||
max_period()
|
||||
{
|
||||
return mraa_pwm_get_max_period();
|
||||
return mraa_pwm_get_max_period(m_pwm);
|
||||
}
|
||||
/**
|
||||
* Get the minimum pwm period in us
|
||||
@@ -223,7 +220,7 @@ class Pwm
|
||||
int
|
||||
min_period()
|
||||
{
|
||||
return mraa_pwm_get_min_period();
|
||||
return mraa_pwm_get_min_period(m_pwm);
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
@@ -98,6 +98,10 @@ mraa_pwm_write_duty(mraa_pwm_context dev, int duty)
|
||||
static int
|
||||
mraa_pwm_read_period(mraa_pwm_context dev)
|
||||
{
|
||||
if (IS_FUNC_DEFINED(dev, pwm_read_replace)) {
|
||||
return dev->period;
|
||||
}
|
||||
|
||||
char bu[MAX_SIZE];
|
||||
char output[MAX_SIZE];
|
||||
snprintf(bu, MAX_SIZE, "/sys/class/pwm/pwmchip%d/pwm%d/period", dev->chipid, dev->pin);
|
||||
@@ -134,6 +138,10 @@ mraa_pwm_read_period(mraa_pwm_context dev)
|
||||
static int
|
||||
mraa_pwm_read_duty(mraa_pwm_context dev)
|
||||
{
|
||||
if (IS_FUNC_DEFINED(dev, pwm_read_replace)) {
|
||||
return dev->advance_func->pwm_read_replace(dev);
|
||||
}
|
||||
|
||||
if (dev->duty_fp == -1) {
|
||||
if (mraa_pwm_setup_duty_fp(dev) == 1) {
|
||||
return MRAA_ERROR_INVALID_HANDLE;
|
||||
@@ -316,9 +324,6 @@ mraa_pwm_write(mraa_pwm_context dev, float percentage)
|
||||
float
|
||||
mraa_pwm_read(mraa_pwm_context dev)
|
||||
{
|
||||
if (IS_FUNC_DEFINED(dev, pwm_read_replace)) {
|
||||
return dev->advance_func->pwm_read_replace(dev);
|
||||
}
|
||||
int period = mraa_pwm_read_period(dev);
|
||||
if (period > 0) {
|
||||
return (mraa_pwm_read_duty(dev) / (float) period);
|
||||
@@ -341,7 +346,15 @@ mraa_pwm_period_ms(mraa_pwm_context dev, int ms)
|
||||
mraa_result_t
|
||||
mraa_pwm_period_us(mraa_pwm_context dev, int us)
|
||||
{
|
||||
if (us < plat->pwm_min_period || us > plat->pwm_max_period) {
|
||||
int min, max;
|
||||
if (mraa_is_sub_platform_id(dev->chipid)) {
|
||||
min = plat->sub_platform->pwm_min_period;
|
||||
max = plat->sub_platform->pwm_max_period;
|
||||
} else {
|
||||
min = plat->pwm_min_period;
|
||||
max = plat->pwm_max_period;
|
||||
}
|
||||
if (us < min || us > max) {
|
||||
syslog(LOG_ERR, "pwm: period value outside platform range");
|
||||
return MRAA_ERROR_INVALID_PARAMETER;
|
||||
}
|
||||
@@ -373,11 +386,6 @@ mraa_pwm_enable(mraa_pwm_context dev, int enable)
|
||||
return dev->advance_func->pwm_enable_replace(dev, enable);
|
||||
}
|
||||
int status;
|
||||
if (enable != 0) {
|
||||
status = 1;
|
||||
} else {
|
||||
status = enable;
|
||||
}
|
||||
char bu[MAX_SIZE];
|
||||
snprintf(bu, MAX_SIZE, "/sys/class/pwm/pwmchip%d/pwm%d/enable", dev->chipid, dev->pin);
|
||||
|
||||
@@ -498,19 +506,25 @@ mraa_pwm_config_percent(mraa_pwm_context dev, int ms, float percentage)
|
||||
}
|
||||
|
||||
int
|
||||
mraa_pwm_get_max_period()
|
||||
mraa_pwm_get_max_period(mraa_pwm_context dev)
|
||||
{
|
||||
if (plat == NULL) {
|
||||
return -1;
|
||||
}
|
||||
if (mraa_is_sub_platform_id(dev->chipid)) {
|
||||
return plat->sub_platform->pwm_max_period;
|
||||
}
|
||||
return plat->pwm_max_period;
|
||||
}
|
||||
|
||||
int
|
||||
mraa_pwm_get_min_period()
|
||||
mraa_pwm_get_min_period(mraa_pwm_context dev)
|
||||
{
|
||||
if (plat == NULL) {
|
||||
return -1;
|
||||
}
|
||||
if (mraa_is_sub_platform_id(dev->chipid)) {
|
||||
return plat->sub_platform->pwm_min_period;
|
||||
}
|
||||
return plat->pwm_min_period;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user