[PATCH v3] doc: document the pwm command

Heinrich Schuchardt heinrich.schuchardt at canonical.com
Fri Aug 2 17:28:29 CEST 2024


On 01.08.24 12:07, Emil Kronborg wrote:
> Signed-off-by: Emil Kronborg <emil.kronborg at protonmail.com>
> ---
> 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



More information about the U-Boot mailing list