diff options
Diffstat (limited to 'zephyr/drivers/cros_displight/cros_displight.c')
-rw-r--r-- | zephyr/drivers/cros_displight/cros_displight.c | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/zephyr/drivers/cros_displight/cros_displight.c b/zephyr/drivers/cros_displight/cros_displight.c index 850b0d7c90..98d1dd0823 100644 --- a/zephyr/drivers/cros_displight/cros_displight.c +++ b/zephyr/drivers/cros_displight/cros_displight.c @@ -5,27 +5,29 @@ #define DT_DRV_COMPAT cros_ec_displight -#include "common.h" -#include "util.h" - #include <zephyr/devicetree.h> +#include <drivers/cros_displight.h> #include <zephyr/drivers/pwm.h> #include <zephyr/logging/log.h> -#include <drivers/cros_displight.h> +#include "common.h" +#include "util.h" LOG_MODULE_REGISTER(displight, LOG_LEVEL_ERR); BUILD_ASSERT(DT_NUM_INST_STATUS_OKAY(DT_DRV_COMPAT) == 1, "Exactly one instance of cros-ec,displight should be defined."); -static const struct pwm_dt_spec displight_pwm = PWM_DT_SPEC_INST_GET(0); +#define DISPLIGHT_PWM_NODE DT_INST_PWMS_CTLR(0) +#define DISPLIGHT_PWM_CHANNEL DT_INST_PWMS_CHANNEL(0) +#define DISPLIGHT_PWM_FLAGS DT_INST_PWMS_FLAGS(0) +#define DISPLIGHT_PWM_PERIOD_NS DT_INST_PWMS_PERIOD(0) static int displight_percent; static void displight_set_duty(int percent) { - const struct device *pwm_dev = displight_pwm.dev; + const struct device *pwm_dev = DEVICE_DT_GET(DISPLIGHT_PWM_NODE); uint32_t pulse_ns; int rv; @@ -34,14 +36,15 @@ static void displight_set_duty(int percent) return; } - pulse_ns = DIV_ROUND_NEAREST(displight_pwm.period * percent, 100); + pulse_ns = DIV_ROUND_NEAREST(DISPLIGHT_PWM_PERIOD_NS * percent, 100); LOG_DBG("displight PWM %s set percent (%d), pulse %d", pwm_dev->name, percent, pulse_ns); - rv = pwm_set_pulse_dt(&displight_pwm, pulse_ns); + rv = pwm_set(pwm_dev, DISPLIGHT_PWM_CHANNEL, DISPLIGHT_PWM_PERIOD_NS, + pulse_ns, DISPLIGHT_PWM_FLAGS); if (rv) { - LOG_ERR("pwm_set_pulse_dt failed %s (%d)", pwm_dev->name, rv); + LOG_ERR("pwm_set() failed %s (%d)", pwm_dev->name, rv); } } |