2026-02-28 17:00:49 +01:00

22 lines
846 B
C

#pragma once
#include "gpio.h"
struct Device;
struct GpioDescriptor {
/** @brief The controller that owns this pin */
struct Device* controller;
/** @brief Physical pin number */
gpio_pin_t pin;
/** @brief Current owner */
enum GpioOwnerType owner_type;
/**
* @brief Implementation-specific context (e.g. from esp32 controller internally)
* Unlike other drivers, a GPIO controller's internal data is created and set by gpio_controller_init_descriptors()
* This means that the specific controller implementation cannot set the device's driver data, as it's already set by the GPIO controller base coded.
* When calling init descriptors, the caller can pass a controller_context, which is an optional pointer that holds the implementation's internal data.
*/
void* controller_context;
};