mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-22 17:33:01 +00:00
pwm: sysfs: Add PWM capture support
Allow a user to read PWM capture results from sysfs. To start a capture and read the result, simply read the file: $ cat $PWMCHIP/capture The output format is "<period> <duty cycle>". Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
This commit is contained in:
parent
3a3d1a4e32
commit
1a366fe915
@ -77,3 +77,12 @@ Description:
|
||||
Enable/disable the PWM signal.
|
||||
0 is disabled
|
||||
1 is enabled
|
||||
|
||||
What: /sys/class/pwm/pwmchipN/pwmX/capture
|
||||
Date: June 2016
|
||||
KernelVersion: 4.8
|
||||
Contact: Lee Jones <lee.jones@linaro.org>
|
||||
Description:
|
||||
Capture information about a PWM signal. The output format is a
|
||||
pair unsigned integers (period and duty cycle), separated by a
|
||||
single space.
|
||||
|
@ -208,16 +208,33 @@ static ssize_t polarity_store(struct device *child,
|
||||
return ret ? : size;
|
||||
}
|
||||
|
||||
static ssize_t capture_show(struct device *child,
|
||||
struct device_attribute *attr,
|
||||
char *buf)
|
||||
{
|
||||
struct pwm_device *pwm = child_to_pwm_device(child);
|
||||
struct pwm_capture result;
|
||||
int ret;
|
||||
|
||||
ret = pwm_capture(pwm, &result, jiffies_to_msecs(HZ));
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
return sprintf(buf, "%u %u\n", result.period, result.duty_cycle);
|
||||
}
|
||||
|
||||
static DEVICE_ATTR_RW(period);
|
||||
static DEVICE_ATTR_RW(duty_cycle);
|
||||
static DEVICE_ATTR_RW(enable);
|
||||
static DEVICE_ATTR_RW(polarity);
|
||||
static DEVICE_ATTR_RO(capture);
|
||||
|
||||
static struct attribute *pwm_attrs[] = {
|
||||
&dev_attr_period.attr,
|
||||
&dev_attr_duty_cycle.attr,
|
||||
&dev_attr_enable.attr,
|
||||
&dev_attr_polarity.attr,
|
||||
&dev_attr_capture.attr,
|
||||
NULL
|
||||
};
|
||||
ATTRIBUTE_GROUPS(pwm);
|
||||
|
Loading…
Reference in New Issue
Block a user