diff options
author | H Hartley Sweeten <hartleys@visionengravers.com> | 2013-06-11 13:38:59 -0400 |
---|---|---|
committer | Thierry Reding <thierry.reding@gmail.com> | 2013-06-21 05:32:51 -0400 |
commit | 76abbdde2d95a3807d0dc6bf9f84d03d0dbd4f3d (patch) | |
tree | 63a5476d6fbf80ec90b813461ec7ec67ff462684 /Documentation/pwm.txt | |
parent | 3dd0a909479c1d372341d749b4ff94cd638b57da (diff) |
pwm: Add sysfs interface
Add a simple sysfs interface to the generic PWM framework.
/sys/class/pwm/
`-- pwmchipN/ for each PWM chip
|-- export (w/o) ask the kernel to export a PWM channel
|-- npwm (r/o) number of PWM channels in this PWM chip
|-- pwmX/ for each exported PWM channel
| |-- duty_cycle (r/w) duty cycle (in nanoseconds)
| |-- enable (r/w) enable/disable PWM
| |-- period (r/w) period (in nanoseconds)
| `-- polarity (r/w) polarity of PWM (normal/inversed)
`-- unexport (w/o) return a PWM channel to the kernel
Based on work by Lars Poeschel.
Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Lars Poeschel <poeschel@lemonage.de>
Cc: Ryan Mallon <rmallon@gmail.com>
Cc: Rob Landley <rob@landley.net>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
Diffstat (limited to 'Documentation/pwm.txt')
-rw-r--r-- | Documentation/pwm.txt | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/Documentation/pwm.txt b/Documentation/pwm.txt index 7d2b4c9b544b..1039b68fe9c6 100644 --- a/Documentation/pwm.txt +++ b/Documentation/pwm.txt | |||
@@ -45,6 +45,43 @@ int pwm_config(struct pwm_device *pwm, int duty_ns, int period_ns); | |||
45 | 45 | ||
46 | To start/stop toggling the PWM output use pwm_enable()/pwm_disable(). | 46 | To start/stop toggling the PWM output use pwm_enable()/pwm_disable(). |
47 | 47 | ||
48 | Using PWMs with the sysfs interface | ||
49 | ----------------------------------- | ||
50 | |||
51 | If CONFIG_SYSFS is enabled in your kernel configuration a simple sysfs | ||
52 | interface is provided to use the PWMs from userspace. It is exposed at | ||
53 | /sys/class/pwm/. Each probed PWM controller/chip will be exported as | ||
54 | pwmchipN, where N is the base of the PWM chip. Inside the directory you | ||
55 | will find: | ||
56 | |||
57 | npwm - The number of PWM channels this chip supports (read-only). | ||
58 | |||
59 | export - Exports a PWM channel for use with sysfs (write-only). | ||
60 | |||
61 | unexport - Unexports a PWM channel from sysfs (write-only). | ||
62 | |||
63 | The PWM channels are numbered using a per-chip index from 0 to npwm-1. | ||
64 | |||
65 | When a PWM channel is exported a pwmX directory will be created in the | ||
66 | pwmchipN directory it is associated with, where X is the number of the | ||
67 | channel that was exported. The following properties will then be available: | ||
68 | |||
69 | period - The total period of the PWM signal (read/write). | ||
70 | Value is in nanoseconds and is the sum of the active and inactive | ||
71 | time of the PWM. | ||
72 | |||
73 | duty_cycle - The active time of the PWM signal (read/write). | ||
74 | Value is in nanoseconds and must be less than the period. | ||
75 | |||
76 | polarity - Changes the polarity of the PWM signal (read/write). | ||
77 | Writes to this property only work if the PWM chip supports changing | ||
78 | the polarity. The polarity can only be changed if the PWM is not | ||
79 | enabled. Value is the string "normal" or "inversed". | ||
80 | |||
81 | enable - Enable/disable the PWM signal (read/write). | ||
82 | 0 - disabled | ||
83 | 1 - enabled | ||
84 | |||
48 | Implementing a PWM driver | 85 | Implementing a PWM driver |
49 | ------------------------- | 86 | ------------------------- |
50 | 87 | ||