1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Chapter 13. Pulse-Width Modulation (PWM)</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="Linux Device Drivers"><link rel="up" href="index.html" title="Linux Device Drivers"><link rel="prev" href="API-hsi-get-channel-id-by-name.html" title="hsi_get_channel_id_by_name"><link rel="next" href="API-enum-pwm-polarity.html" title="enum pwm_polarity"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter 13. Pulse-Width Modulation (PWM)</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-hsi-get-channel-id-by-name.html">Prev</a> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="API-enum-pwm-polarity.html">Next</a></td></tr></table><hr></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a name="pwm"></a>Chapter 13. Pulse-Width Modulation (PWM)</h1></div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="refentrytitle"><a href="API-enum-pwm-polarity.html"><span class="phrase">enum pwm_polarity</span></a></span><span class="refpurpose"> — 2 polarity of a PWM signal 3 </span></dt><dt><span class="refentrytitle"><a href="API-struct-pwm-device.html"><span class="phrase">struct pwm_device</span></a></span><span class="refpurpose"> — 4 PWM channel object 5 </span></dt><dt><span class="refentrytitle"><a href="API-struct-pwm-ops.html"><span class="phrase">struct pwm_ops</span></a></span><span class="refpurpose"> — 6 PWM controller operations 7 </span></dt><dt><span class="refentrytitle"><a href="API-struct-pwm-chip.html"><span class="phrase">struct pwm_chip</span></a></span><span class="refpurpose"> — 8 abstract a PWM controller 9 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-set-chip-data.html"><span class="phrase">pwm_set_chip_data</span></a></span><span class="refpurpose"> — 10 set private chip data for a PWM 11 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-get-chip-data.html"><span class="phrase">pwm_get_chip_data</span></a></span><span class="refpurpose"> — 12 get private chip data for a PWM 13 </span></dt><dt><span class="refentrytitle"><a href="API-pwmchip-add-with-polarity.html"><span class="phrase">pwmchip_add_with_polarity</span></a></span><span class="refpurpose"> — 14 register a new PWM chip 15 </span></dt><dt><span class="refentrytitle"><a href="API-pwmchip-add.html"><span class="phrase">pwmchip_add</span></a></span><span class="refpurpose"> — 16 register a new PWM chip 17 </span></dt><dt><span class="refentrytitle"><a href="API-pwmchip-remove.html"><span class="phrase">pwmchip_remove</span></a></span><span class="refpurpose"> — 18 remove a PWM chip 19 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-request.html"><span class="phrase">pwm_request</span></a></span><span class="refpurpose"> — 20 request a PWM device 21 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-request-from-chip.html"><span class="phrase">pwm_request_from_chip</span></a></span><span class="refpurpose"> — 22 request a PWM device relative to a PWM chip 23 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-free.html"><span class="phrase">pwm_free</span></a></span><span class="refpurpose"> — 24 free a PWM device 25 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-config.html"><span class="phrase">pwm_config</span></a></span><span class="refpurpose"> — 26 change a PWM device configuration 27 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-set-polarity.html"><span class="phrase">pwm_set_polarity</span></a></span><span class="refpurpose"> — 28 configure the polarity of a PWM signal 29 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-enable.html"><span class="phrase">pwm_enable</span></a></span><span class="refpurpose"> — 30 start a PWM output toggling 31 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-disable.html"><span class="phrase">pwm_disable</span></a></span><span class="refpurpose"> — 32 stop a PWM output toggling 33 </span></dt><dt><span class="refentrytitle"><a href="API-of-pwm-get.html"><span class="phrase">of_pwm_get</span></a></span><span class="refpurpose"> — 34 request a PWM via the PWM framework 35 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-get.html"><span class="phrase">pwm_get</span></a></span><span class="refpurpose"> — 36 look up and request a PWM device 37 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-put.html"><span class="phrase">pwm_put</span></a></span><span class="refpurpose"> — 38 release a PWM device 39 </span></dt><dt><span class="refentrytitle"><a href="API-devm-pwm-get.html"><span class="phrase">devm_pwm_get</span></a></span><span class="refpurpose"> 40 resource managed pwm_get 41 </span></dt><dt><span class="refentrytitle"><a href="API-devm-of-pwm-get.html"><span class="phrase">devm_of_pwm_get</span></a></span><span class="refpurpose"> 42 resource managed of_pwm_get 43 </span></dt><dt><span class="refentrytitle"><a href="API-devm-pwm-put.html"><span class="phrase">devm_pwm_put</span></a></span><span class="refpurpose"> 44 resource managed pwm_put 45 </span></dt><dt><span class="refentrytitle"><a href="API-pwm-can-sleep.html"><span class="phrase">pwm_can_sleep</span></a></span><span class="refpurpose"> — 46 report whether PWM access will sleep 47 </span></dt></dl></div><p> 48 Pulse-width modulation is a modulation technique primarily used to 49 control power supplied to electrical devices. 50 </p><p> 51 The PWM framework provides an abstraction for providers and consumers 52 of PWM signals. A controller that provides one or more PWM signals is 53 registered as <span class="structname"><a class="link" href="API-struct-pwm-chip.html" title="struct pwm_chip">struct pwm_chip</a></span>. Providers are 54 expected to embed this structure in a driver-specific structure. This 55 structure contains fields that describe a particular chip. 56 </p><p> 57 A chip exposes one or more PWM signal sources, each of which exposed 58 as a <span class="structname"><a class="link" href="API-struct-pwm-device.html" title="struct pwm_device">struct pwm_device</a></span>. Operations can be 59 performed on PWM devices to control the period, duty cycle, polarity 60 and active state of the signal. 61 </p><p> 62 Note that PWM devices are exclusive resources: they can always only be 63 used by one consumer at a time. 64 </p></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-hsi-get-channel-id-by-name.html">Prev</a> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="API-enum-pwm-polarity.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">hsi_get_channel_id_by_name</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">enum pwm_polarity</span></td></tr></table></div></body></html> 65