summaryrefslogtreecommitdiff
path: root/zephyr/drivers/cros_displight/cros_displight.c
diff options
context:
space:
mode:
Diffstat (limited to 'zephyr/drivers/cros_displight/cros_displight.c')
-rw-r--r--zephyr/drivers/cros_displight/cros_displight.c21
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);
}
}