blob: 09d479e05a67663423511f1d74a121aee108531f [file] [log] [blame]
// SPDX-License-Identifier: Apache-2.0
// SPDX-FileCopyrightText: 2025 NVIDIA
#pragma once
#include <gpiod.hpp>
#include <chrono>
#include <string>
namespace gpio
{
void set(const char* line_name, int value,
std::chrono::milliseconds find_timeout = std::chrono::milliseconds{1});
void set_raw(unsigned int chip_num, unsigned bit_num, int value);
int get(const char* line_name);
enum class EventResult
{
Error,
Asserted,
Timeout
};
struct Event
{
Event(const char* line_name_in, int value_in);
EventResult wait();
gpiod::line line;
std::string line_name;
int value;
};
int find_chip_idx_from_dir(std::string_view device_path);
} // namespace gpio