drivers/gpu/drm/amd/display/include/gpio_interface.h
Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/include/gpio_interface.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/gpu/drm/amd/display/include/gpio_interface.h- Extension
.h- Size
- 2983 bytes
- Lines
- 110
- Domain
- Driver Families
- Bucket
- drivers/gpu
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
gpio_types.hgrph_object_defs.h
Detected Declarations
struct gpio
Annotated Snippet
#ifndef __DAL_GPIO_INTERFACE_H__
#define __DAL_GPIO_INTERFACE_H__
#include "gpio_types.h"
#include "grph_object_defs.h"
struct gpio;
/* Open the handle for future use */
enum gpio_result dal_gpio_open(
struct gpio *gpio,
enum gpio_mode mode);
enum gpio_result dal_gpio_open_ex(
struct gpio *gpio,
enum gpio_mode mode);
/* Get high or low from the pin */
enum gpio_result dal_gpio_get_value(
const struct gpio *gpio,
uint32_t *value);
/* Set pin high or low */
enum gpio_result dal_gpio_set_value(
const struct gpio *gpio,
uint32_t value);
/* Get current mode */
enum gpio_mode dal_gpio_get_mode(
const struct gpio *gpio);
/* Change mode of the handle */
enum gpio_result dal_gpio_change_mode(
struct gpio *gpio,
enum gpio_mode mode);
/* Lock Pin */
enum gpio_result dal_gpio_lock_pin(
struct gpio *gpio);
/* Unlock Pin */
enum gpio_result dal_gpio_unlock_pin(
struct gpio *gpio);
/* Get the GPIO id */
enum gpio_id dal_gpio_get_id(
const struct gpio *gpio);
/* Get the GPIO enum */
uint32_t dal_gpio_get_enum(
const struct gpio *gpio);
/* Set the GPIO pin configuration */
enum gpio_result dal_gpio_set_config(
struct gpio *gpio,
const struct gpio_config_data *config_data);
/* Obtain GPIO pin info */
enum gpio_result dal_gpio_get_pin_info(
const struct gpio *gpio,
struct gpio_pin_info *pin_info);
/* Obtain GPIO sync source */
enum sync_source dal_gpio_get_sync_source(
const struct gpio *gpio);
/* Obtain GPIO pin output state (active low or active high) */
enum gpio_pin_output_state dal_gpio_get_output_state(
const struct gpio *gpio);
struct hw_ddc *dal_gpio_get_ddc(struct gpio *gpio);
struct hw_hpd *dal_gpio_get_hpd(struct gpio *gpio);
struct hw_generic *dal_gpio_get_generic(struct gpio *gpio);
/* Close the handle */
void dal_gpio_close(
struct gpio *gpio);
#endif
Annotation
- Immediate include surface: `gpio_types.h`, `grph_object_defs.h`.
- Detected declarations: `struct gpio`.
- Atlas domain: Driver Families / drivers/gpu.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.