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, 9 insertions, 12 deletions
diff --git a/zephyr/drivers/cros_displight/cros_displight.c b/zephyr/drivers/cros_displight/cros_displight.c index 98d1dd0823..850b0d7c90 100644 --- a/zephyr/drivers/cros_displight/cros_displight.c +++ b/zephyr/drivers/cros_displight/cros_displight.c @@ -5,29 +5,27 @@ #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 "common.h" -#include "util.h" +#include <drivers/cros_displight.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."); -#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 const struct pwm_dt_spec displight_pwm = PWM_DT_SPEC_INST_GET(0); static int displight_percent; static void displight_set_duty(int percent) { - const struct device *pwm_dev = DEVICE_DT_GET(DISPLIGHT_PWM_NODE); + const struct device *pwm_dev = displight_pwm.dev; uint32_t pulse_ns; int rv; @@ -36,15 +34,14 @@ static void displight_set_duty(int percent) return; } - pulse_ns = DIV_ROUND_NEAREST(DISPLIGHT_PWM_PERIOD_NS * percent, 100); + pulse_ns = DIV_ROUND_NEAREST(displight_pwm.period * percent, 100); LOG_DBG("displight PWM %s set percent (%d), pulse %d", pwm_dev->name, percent, pulse_ns); - rv = pwm_set(pwm_dev, DISPLIGHT_PWM_CHANNEL, DISPLIGHT_PWM_PERIOD_NS, - pulse_ns, DISPLIGHT_PWM_FLAGS); + rv = pwm_set_pulse_dt(&displight_pwm, pulse_ns); if (rv) { - LOG_ERR("pwm_set() failed %s (%d)", pwm_dev->name, rv); + LOG_ERR("pwm_set_pulse_dt failed %s (%d)", pwm_dev->name, rv); } } |