• Brian Norris's avatar
    pwm: Add ChromeOS EC PWM driver · 1f0d3bb0
    Brian Norris authored
    Use the new ChromeOS EC EC_CMD_PWM_{GET,SET}_DUTY commands to control
    one or more PWMs attached to the Embedded Controller. Because the EC
    allows us to modify the duty cycle (as a percentage, where U16_MAX is
    100%) but not the period, we assign the period a fixed value of
    EC_PWM_MAX_DUTY and reject all attempts to change it.
    
    This driver supports only device tree at the moment, because that
    provides a very flexible way of describing the relationship between PWMs
    and their consumer devices (e.g., backlight). On a non-DT system, we'll
    probably want to use the non-GENERIC addressing (i.e., we'll need to
    make special device instances that will use EC_PWM_TYPE_KB_LIGHT or
    EC_PWM_TYPE_DISPLAY_LIGHT), as well as the relatively inflexible
    pwm_lookup infrastructure for matching devices. Defer that work for now.
    Signed-off-by: default avatarBrian Norris <briannorris@chromium.org>
    Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
    1f0d3bb0
pwm-cros-ec.c 5.97 KB