mirror of
https://github.com/ByteWelder/Tactility.git
synced 2026-04-18 17:35:05 +00:00
22 lines
846 B
C
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;
|
|
};
|