On 01.08.24 12:07, Emil Kronborg wrote:
Signed-off-by: Emil Kronborg <[email protected]>
---
Changes in v3:
- The help text for 'pwm config' in the examples section is more
explicit about 20 us and 14 us for the period and duty cycle,
respectively.
- Fixed 'pwm enable' and 'pwm disable' in the examples section to only
expect 2 arguments.
- Rebased on top of master.
doc/usage/cmd/pwm.rst | 80 +++++++++++++++++++++++++++++++++++++++++++
doc/usage/index.rst | 1 +
2 files changed, 81 insertions(+)
create mode 100644 doc/usage/cmd/pwm.rst
diff --git a/doc/usage/cmd/pwm.rst b/doc/usage/cmd/pwm.rst
new file mode 100644
index 000000000000..bd1255d82186
--- /dev/null
+++ b/doc/usage/cmd/pwm.rst
@@ -0,0 +1,80 @@
+.. SPDX-License-Identifier: GPL-2.0+:
+
+.. index::
+ single: pwm (command)
+
+pwm command
+===========
+
+Synopsis
+--------
+
+::
+
+ pwm invert <pwm_dev_num> <channel> <polarity> - invert polarity
+ pwm config <pwm_dev_num> <channel> <period_ns> <duty_ns> - config PWM
+ pwm enable <pwm_dev_num> <channel> - enable PWM output
+ pwm disable <pwm_dev_num> <channel> - disable PWM output
Thank you for documenting the command.
To stay consistent with other pages, please, remove the descriptions
here. They are available below.
+
+
+Description
+-----------
+
+The ``pwm`` command is used to access and configure PWM (Pulse Width
Modulation)
+signals. For all subcommands, the following arguments are common:
+
+pwm_dev_num
+ device number
+
+channel
+ channel on chosen device
+
+pwm invert
+----------
+
+The signal's active and inactive states are swapped.
This would imply that all invocations irrespective of the polarity value
swap the active and inactive state.
I guess we could say here:
The polarity of the signal is set.
If the value of `polarity` is 0, the default polarity is used.
If the value of `polarity` is 1, the polarity is inverted.
+
+pwm config
+----------
+
+Configure the period and duty cycle in nanoseconds.
According to https://en.wikipedia.org/wiki/Duty_cycle "duty cycle" is
the ratio of "pulse active time" and "total period". This implies that
it is dimensionless.
%s/duty cycle/pulse width/ or "duty period" as in pwm.h.
+
+pwm enable
+----------
+
+Enable output on the configured device and channel.
What happens if the device-channel combination is not configured yet?
+
+pwm disable
+-----------
+
+Disable output on the configured device and channel.
Please, describe the parameters here:
pwm_dev_num
Device number of the pulse width modulation device
channel
Output channel of the PWM device
polarity
* 0 - use normal polarity
* 1 - use inverted polarity
duty_ns
pulse width in ns
period_ns
cycle time in ns
+
+Examples
+--------
+
+Configure device 0 channel 0 to 20 us period and 14 us (that is, 70%) duty
cycle::
Please, add comma, use 'µs', and don't misuse 'duty cycle':
"Configure device 0, channel 0 to 20 µs period time and 14 µs (that is,
70%) pulse width::"
Best regards
Heinrich
+
+ => pwm config 0 0 20000 14000
+
+Enable output on the configured device and channel::
+
+ => pwm enable 0 0
+
+Disable output on the configured device and channel::
+
+ => pwm disable 0 0
+
+Invert the signal on the configured device and channel::
+
+ => pwm invert 0 0 1
+
+Configuration
+-------------
+
+The ``pwm`` command is only available if CONFIG_CMD_PWM=y.
+
+Return value
+------------
+
+If the command succeeds, the return value ``$?`` is set to 0. If an error
occurs, the
+return value ``$?`` is set to 1.
diff --git a/doc/usage/index.rst b/doc/usage/index.rst
index 49b354e6ffd2..1adab5283950 100644
--- a/doc/usage/index.rst
+++ b/doc/usage/index.rst
@@ -92,6 +92,7 @@ Shell commands
cmd/pinmux
cmd/printenv
cmd/pstore
+ cmd/pwm
cmd/qfw
cmd/read
cmd/reset
base-commit: 7010f22eba35b2a6b66ba37ce565e566ca08c68f