/* * Copyright (c) 2023 Libre Solar Technologies GmbH * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include #if !DT_NODE_EXISTS(DT_NODELABEL(load_switch)) #error "Overlay for power output node not properly defined." #endif static const struct gpio_dt_spec load_switch = GPIO_DT_SPEC_GET_OR(DT_NODELABEL(load_switch), gpios, {0}); int main(void) { int err; if (!gpio_is_ready_dt(&load_switch)) { printf("The load switch pin GPIO port is not ready.\n"); return 0; } printf("Initializing pin with inactive level.\n"); err = gpio_pin_configure_dt(&load_switch, GPIO_OUTPUT_INACTIVE); if (err != 0) { printf("Configuring GPIO pin failed: %d\n", err); return 0; } printf("Waiting one second.\n"); k_sleep(K_MSEC(1000)); printf("Setting pin to active level.\n"); err = gpio_pin_set_dt(&load_switch, 1); if (err != 0) { printf("Setting GPIO pin level failed: %d\n", err); } return 0; }