drivers/gpu/drm/amd/display/dc/inc/hw/gpio.h

Source file repositories/reference/linux-study-clean/drivers/gpu/drm/amd/display/dc/inc/hw/gpio.h

File Facts

System
Linux kernel
Corpus path
drivers/gpu/drm/amd/display/dc/inc/hw/gpio.h
Extension
.h
Size
2581 bytes
Lines
97
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct gpio {
	struct gpio_service *service;
	struct hw_gpio_pin *pin;
	enum gpio_id id;
	uint32_t en;

	union gpio_hw_container hw_container;
	enum gpio_mode mode;

	/* when GPIO comes from VBIOS, it has defined output state */
	enum gpio_pin_output_state output_state;
};

#if 0
struct gpio_funcs {

	struct hw_gpio_pin *(*create_ddc_data)(
		struct dc_context *ctx,
		enum gpio_id id,
		uint32_t en);
	struct hw_gpio_pin *(*create_ddc_clock)(
		struct dc_context *ctx,
		enum gpio_id id,
		uint32_t en);
	struct hw_gpio_pin *(*create_generic)(
		struct dc_context *ctx,
		enum gpio_id id,
		uint32_t en);
	struct hw_gpio_pin *(*create_hpd)(
		struct dc_context *ctx,
		enum gpio_id id,
		uint32_t en);
	struct hw_gpio_pin *(*create_gpio_pad)(
		struct dc_context *ctx,
		enum gpio_id id,
		uint32_t en);
	struct hw_gpio_pin *(*create_sync)(
		struct dc_context *ctx,
		enum gpio_id id,
		uint32_t en);
	struct hw_gpio_pin *(*create_gsl)(
		struct dc_context *ctx,
		enum gpio_id id,
		uint32_t en);

	/* HW translation */
	bool (*offset_to_id)(
		uint32_t offset,
		uint32_t mask,
		enum gpio_id *id,
		uint32_t *en);
	bool (*id_to_offset)(
		enum gpio_id id,
		uint32_t en,
		struct gpio_pin_info *info);
};
#endif

#endif  /* __DAL_GPIO__ */

Annotation

Implementation Notes