diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/pwm.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/include/linux/pwm.h b/include/linux/pwm.h index 21d076c5089e..354764cf5f7a 100644 --- a/include/linux/pwm.h +++ b/include/linux/pwm.h | |||
@@ -34,6 +34,20 @@ void pwm_disable(struct pwm_device *pwm); | |||
34 | #ifdef CONFIG_PWM | 34 | #ifdef CONFIG_PWM |
35 | struct pwm_chip; | 35 | struct pwm_chip; |
36 | 36 | ||
37 | /** | ||
38 | * enum pwm_polarity - polarity of a PWM signal | ||
39 | * @PWM_POLARITY_NORMAL: a high signal for the duration of the duty- | ||
40 | * cycle, followed by a low signal for the remainder of the pulse | ||
41 | * period | ||
42 | * @PWM_POLARITY_INVERSED: a low signal for the duration of the duty- | ||
43 | * cycle, followed by a high signal for the remainder of the pulse | ||
44 | * period | ||
45 | */ | ||
46 | enum pwm_polarity { | ||
47 | PWM_POLARITY_NORMAL, | ||
48 | PWM_POLARITY_INVERSED, | ||
49 | }; | ||
50 | |||
37 | enum { | 51 | enum { |
38 | PWMF_REQUESTED = 1 << 0, | 52 | PWMF_REQUESTED = 1 << 0, |
39 | PWMF_ENABLED = 1 << 1, | 53 | PWMF_ENABLED = 1 << 1, |
@@ -61,11 +75,17 @@ static inline unsigned int pwm_get_period(struct pwm_device *pwm) | |||
61 | return pwm ? pwm->period : 0; | 75 | return pwm ? pwm->period : 0; |
62 | } | 76 | } |
63 | 77 | ||
78 | /* | ||
79 | * pwm_set_polarity - configure the polarity of a PWM signal | ||
80 | */ | ||
81 | int pwm_set_polarity(struct pwm_device *pwm, enum pwm_polarity polarity); | ||
82 | |||
64 | /** | 83 | /** |
65 | * struct pwm_ops - PWM controller operations | 84 | * struct pwm_ops - PWM controller operations |
66 | * @request: optional hook for requesting a PWM | 85 | * @request: optional hook for requesting a PWM |
67 | * @free: optional hook for freeing a PWM | 86 | * @free: optional hook for freeing a PWM |
68 | * @config: configure duty cycles and period length for this PWM | 87 | * @config: configure duty cycles and period length for this PWM |
88 | * @set_polarity: configure the polarity of this PWM | ||
69 | * @enable: enable PWM output toggling | 89 | * @enable: enable PWM output toggling |
70 | * @disable: disable PWM output toggling | 90 | * @disable: disable PWM output toggling |
71 | * @dbg_show: optional routine to show contents in debugfs | 91 | * @dbg_show: optional routine to show contents in debugfs |
@@ -79,6 +99,9 @@ struct pwm_ops { | |||
79 | int (*config)(struct pwm_chip *chip, | 99 | int (*config)(struct pwm_chip *chip, |
80 | struct pwm_device *pwm, | 100 | struct pwm_device *pwm, |
81 | int duty_ns, int period_ns); | 101 | int duty_ns, int period_ns); |
102 | int (*set_polarity)(struct pwm_chip *chip, | ||
103 | struct pwm_device *pwm, | ||
104 | enum pwm_polarity polarity); | ||
82 | int (*enable)(struct pwm_chip *chip, | 105 | int (*enable)(struct pwm_chip *chip, |
83 | struct pwm_device *pwm); | 106 | struct pwm_device *pwm); |
84 | void (*disable)(struct pwm_chip *chip, | 107 | void (*disable)(struct pwm_chip *chip, |