mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-08-20 00:48:52 +09:00
![Neil Armstrong](/assets/img/avatar_default.png)
This adds the driver for the PWM controller found in the Amlogic SoCs. This PWM is only a set of Gates, Dividers and Counters: PWM output is achieved by calculating a clock that permits calculating two periods (low and high). The counter then has to be set to switch after N cycles for the first half period. The hardware has no "polarity" setting. This driver reverses the period cycles (the low length is inverted with the high length) for PWM_POLARITY_INVERSED. Disabling the PWM stops the output immediately (without waiting for the current period to complete first). Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
78 lines
2.6 KiB
Plaintext
78 lines
2.6 KiB
Plaintext
config DM_PWM
|
|
bool "Enable support for pulse-width modulation devices (PWM)"
|
|
depends on DM
|
|
help
|
|
A pulse-width modulator emits a pulse of varying width and provides
|
|
control over the duty cycle (high and low time) of the signal. This
|
|
is often used to control a voltage level. The more time the PWM
|
|
spends in the 'high' state, the higher the voltage. The PWM's
|
|
frequency/period can be controlled along with the proportion of that
|
|
time that the signal is high.
|
|
|
|
config PWM_EXYNOS
|
|
bool "Enable support for the Exynos PWM"
|
|
depends on DM_PWM
|
|
help
|
|
This PWM is found on Samsung Exynos 5250 and other Samsung SoCs. It
|
|
supports a programmable period and duty cycle. A 32-bit counter is
|
|
used. It provides 5 channels which can be independently
|
|
programmed. Channel 4 (the last) is normally used as a timer.
|
|
|
|
config PWM_IMX
|
|
bool "Enable support for i.MX27 and later PWM"
|
|
help
|
|
This PWM is found i.MX27 and later i.MX SoCs.
|
|
|
|
config PWM_MESON
|
|
bool "Enable support for Amlogic Meson SoCs PWM"
|
|
depends on DM_PWM
|
|
help
|
|
This PWM is found on Amlogic Meson SoCs. It supports a
|
|
programmable period and duty cycle for 2 independant channels.
|
|
|
|
config PWM_MTK
|
|
bool "Enable support for MediaTek PWM"
|
|
depends on DM_PWM
|
|
help
|
|
This PWM is found on MT7622, MT7623, and MT7629. It supports a
|
|
programmable period and duty cycle.
|
|
|
|
config PWM_ROCKCHIP
|
|
bool "Enable support for the Rockchip PWM"
|
|
depends on DM_PWM
|
|
help
|
|
This PWM is found on RK3288 and other Rockchip SoCs. It supports a
|
|
programmable period and duty cycle. A 32-bit counter is used.
|
|
Various options provided in the hardware (such as capture mode and
|
|
continuous/single-shot) are not supported by the driver.
|
|
|
|
config PWM_SANDBOX
|
|
bool "Enable support for the sandbox PWM"
|
|
help
|
|
This is a sandbox PWM used for testing. It provides 3 channels and
|
|
records the settings passed into it, but otherwise does nothing
|
|
useful. The PWM can be enabled but is not connected to any outputs
|
|
so this is not very useful.
|
|
|
|
config PWM_SIFIVE
|
|
bool "Enable support for SiFive PWM"
|
|
depends on DM_PWM
|
|
help
|
|
This PWM is found SiFive's FU540 and other SoCs.
|
|
|
|
config PWM_TEGRA
|
|
bool "Enable support for the Tegra PWM"
|
|
depends on DM_PWM
|
|
help
|
|
This PWM is found on Tegra 20 and other Nvidia SoCs. It supports
|
|
four channels with a programmable period and duty cycle. Only a
|
|
32KHz clock is supported by the driver but the duty cycle is
|
|
configurable.
|
|
|
|
config PWM_SUNXI
|
|
bool "Enable support for the Allwinner Sunxi PWM"
|
|
depends on DM_PWM
|
|
help
|
|
This PWM is found on H3, A64 and other Allwinner SoCs. It supports a
|
|
programmable period and duty cycle. A 16-bit counter is used.
|