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
|
* Get the maximum pwm period in us
|
||||||
*
|
*
|
||||||
|
* @param dev The pwm context to use
|
||||||
* @return max pwm in us
|
* @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
|
* Get the minimum pwm period in us
|
||||||
*
|
*
|
||||||
|
* @param dev The pwm context to use
|
||||||
* @return min pwm in us
|
* @return min pwm in us
|
||||||
*/
|
*/
|
||||||
int mraa_pwm_get_min_period();
|
int mraa_pwm_get_min_period(mraa_pwm_context dev);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -176,10 +176,7 @@ class Pwm
|
|||||||
Result
|
Result
|
||||||
enable(bool enable)
|
enable(bool enable)
|
||||||
{
|
{
|
||||||
if (enable)
|
return (Result) mraa_pwm_enable(m_pwm, enable);
|
||||||
return (Result) mraa_pwm_enable(m_pwm, 1);
|
|
||||||
else
|
|
||||||
return (Result) mraa_pwm_enable(m_pwm, 0);
|
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Set the period and duty of a PWM object.
|
* Set the period and duty of a PWM object.
|
||||||
@@ -213,7 +210,7 @@ class Pwm
|
|||||||
int
|
int
|
||||||
max_period()
|
max_period()
|
||||||
{
|
{
|
||||||
return mraa_pwm_get_max_period();
|
return mraa_pwm_get_max_period(m_pwm);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* Get the minimum pwm period in us
|
* Get the minimum pwm period in us
|
||||||
@@ -223,7 +220,7 @@ class Pwm
|
|||||||
int
|
int
|
||||||
min_period()
|
min_period()
|
||||||
{
|
{
|
||||||
return mraa_pwm_get_min_period();
|
return mraa_pwm_get_min_period(m_pwm);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -98,6 +98,10 @@ mraa_pwm_write_duty(mraa_pwm_context dev, int duty)
|
|||||||
static int
|
static int
|
||||||
mraa_pwm_read_period(mraa_pwm_context dev)
|
mraa_pwm_read_period(mraa_pwm_context dev)
|
||||||
{
|
{
|
||||||
|
if (IS_FUNC_DEFINED(dev, pwm_read_replace)) {
|
||||||
|
return dev->period;
|
||||||
|
}
|
||||||
|
|
||||||
char bu[MAX_SIZE];
|
char bu[MAX_SIZE];
|
||||||
char output[MAX_SIZE];
|
char output[MAX_SIZE];
|
||||||
snprintf(bu, MAX_SIZE, "/sys/class/pwm/pwmchip%d/pwm%d/period", dev->chipid, dev->pin);
|
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
|
static int
|
||||||
mraa_pwm_read_duty(mraa_pwm_context dev)
|
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 (dev->duty_fp == -1) {
|
||||||
if (mraa_pwm_setup_duty_fp(dev) == 1) {
|
if (mraa_pwm_setup_duty_fp(dev) == 1) {
|
||||||
return MRAA_ERROR_INVALID_HANDLE;
|
return MRAA_ERROR_INVALID_HANDLE;
|
||||||
@@ -316,9 +324,6 @@ mraa_pwm_write(mraa_pwm_context dev, float percentage)
|
|||||||
float
|
float
|
||||||
mraa_pwm_read(mraa_pwm_context dev)
|
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);
|
int period = mraa_pwm_read_period(dev);
|
||||||
if (period > 0) {
|
if (period > 0) {
|
||||||
return (mraa_pwm_read_duty(dev) / (float) period);
|
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_result_t
|
||||||
mraa_pwm_period_us(mraa_pwm_context dev, int us)
|
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");
|
syslog(LOG_ERR, "pwm: period value outside platform range");
|
||||||
return MRAA_ERROR_INVALID_PARAMETER;
|
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);
|
return dev->advance_func->pwm_enable_replace(dev, enable);
|
||||||
}
|
}
|
||||||
int status;
|
int status;
|
||||||
if (enable != 0) {
|
|
||||||
status = 1;
|
|
||||||
} else {
|
|
||||||
status = enable;
|
|
||||||
}
|
|
||||||
char bu[MAX_SIZE];
|
char bu[MAX_SIZE];
|
||||||
snprintf(bu, MAX_SIZE, "/sys/class/pwm/pwmchip%d/pwm%d/enable", dev->chipid, dev->pin);
|
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
|
int
|
||||||
mraa_pwm_get_max_period()
|
mraa_pwm_get_max_period(mraa_pwm_context dev)
|
||||||
{
|
{
|
||||||
if (plat == NULL) {
|
if (plat == NULL) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (mraa_is_sub_platform_id(dev->chipid)) {
|
||||||
|
return plat->sub_platform->pwm_max_period;
|
||||||
|
}
|
||||||
return plat->pwm_max_period;
|
return plat->pwm_max_period;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
mraa_pwm_get_min_period()
|
mraa_pwm_get_min_period(mraa_pwm_context dev)
|
||||||
{
|
{
|
||||||
if (plat == NULL) {
|
if (plat == NULL) {
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
if (mraa_is_sub_platform_id(dev->chipid)) {
|
||||||
|
return plat->sub_platform->pwm_min_period;
|
||||||
|
}
|
||||||
return plat->pwm_min_period;
|
return plat->pwm_min_period;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user