|
@@ -455,4 +455,31 @@ X!Ilib/fonts/fonts.c
|
|
|
!Edrivers/hsi/hsi.c
|
|
|
</chapter>
|
|
|
|
|
|
+ <chapter id="pwm">
|
|
|
+ <title>Pulse-Width Modulation (PWM)</title>
|
|
|
+ <para>
|
|
|
+ Pulse-width modulation is a modulation technique primarily used to
|
|
|
+ control power supplied to electrical devices.
|
|
|
+ </para>
|
|
|
+ <para>
|
|
|
+ The PWM framework provides an abstraction for providers and consumers
|
|
|
+ of PWM signals. A controller that provides one or more PWM signals is
|
|
|
+ registered as <structname>struct pwm_chip</structname>. Providers are
|
|
|
+ expected to embed this structure in a driver-specific structure. This
|
|
|
+ structure contains fields that describe a particular chip.
|
|
|
+ </para>
|
|
|
+ <para>
|
|
|
+ A chip exposes one or more PWM signal sources, each of which exposed
|
|
|
+ as a <structname>struct pwm_device</structname>. Operations can be
|
|
|
+ performed on PWM devices to control the period, duty cycle, polarity
|
|
|
+ and active state of the signal.
|
|
|
+ </para>
|
|
|
+ <para>
|
|
|
+ Note that PWM devices are exclusive resources: they can always only be
|
|
|
+ used by one consumer at a time.
|
|
|
+ </para>
|
|
|
+!Iinclude/linux/pwm.h
|
|
|
+!Edrivers/pwm/core.c
|
|
|
+ </chapter>
|
|
|
+
|
|
|
</book>
|