#include "actuator.h"
#include <zephyr/drivers/gpio.h>
#include <zephyr/sys/printk.h>

#define USER_NODE DT_PATH(zephyr_user)
static const struct gpio_dt_spec do1 = GPIO_DT_SPEC_GET(USER_NODE, do1_gpios);
static const struct gpio_dt_spec do2 = GPIO_DT_SPEC_GET(USER_NODE, do2_gpios);
static const struct gpio_dt_spec do_en = GPIO_DT_SPEC_GET(USER_NODE, do_en_gpios);

void digital_out_init(void) {
    gpio_pin_configure_dt(&do1, GPIO_OUTPUT_INACTIVE);
    gpio_pin_configure_dt(&do2, GPIO_OUTPUT_INACTIVE);
    gpio_pin_configure_dt(&do_en, GPIO_OUTPUT_INACTIVE);
}

void digital_out_set_do1(int state) { gpio_pin_set_dt(&do1, state); }
void digital_out_set_do2(int state) { gpio_pin_set_dt(&do2, state); }
void digital_out_set_do_en(int state) { gpio_pin_set_dt(&do_en, state); }
void digital_out_toggle_do1(void) { gpio_pin_toggle_dt(&do1); }
void digital_out_toggle_do2(void) { gpio_pin_toggle_dt(&do2); }
void digital_out_toggle_do_en(void) { gpio_pin_toggle_dt(&do_en); }
