mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-18 02:38:56 +00:00
1b9ee2882e
This PWM is used in rk3399-gru-bob and rk3399-gru-kevin to control the display brightness. We can only change the duty cycle, so on set_config() we just try to match the duty cycle that dividing duty_ns by period_ns gives us. To disable, we set the duty cycle to zero while keeping the old value for when we want to re-enable it. The cros_ec_set_pwm_duty() function is taken from Depthcharge's cros_ec_set_bl_pwm_duty() but modified to use the generic pwm type. The driver itself is very loosely based on rk_pwm.c for the general pwm driver structure. The devicetree binding file is from Linux, before it was converted to YAML at 5df5a577a6b4 ("dt-bindings: pwm: Convert google,cros-ec-pwm.txt to YAML format") in their repo. Signed-off-by: Alper Nebi Yasak <alpernebiyasak@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
93 lines
3.1 KiB
Text
93 lines
3.1 KiB
Text
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_CROS_EC
|
|
bool "Enable support for the Chrome OS EC PWM"
|
|
depends on DM_PWM
|
|
help
|
|
This PWM is found on several Chrome OS devices and controlled by
|
|
the Chrome OS embedded controller. It may be used to control the
|
|
screen brightness and/or the keyboard backlight depending on the
|
|
device.
|
|
|
|
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.
|
|
|
|
config PWM_TI_EHRPWM
|
|
bool "Enable support for EHRPWM PWM"
|
|
depends on DM_PWM && ARCH_OMAP2PLUS
|
|
default y
|
|
help
|
|
PWM driver support for the EHRPWM controller found on TI SOCs.
|