drivers/pinctrl/pinmux.h

Source file repositories/reference/linux-study-clean/drivers/pinctrl/pinmux.h

File Facts

System
Linux kernel
Corpus path
drivers/pinctrl/pinmux.h
Extension
.h
Size
4627 bytes
Lines
182
Domain
Driver Families
Bucket
drivers/pinctrl
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 function_desc {
	const struct pinfunction *func;
	void *data;
};

int pinmux_generic_get_function_count(struct pinctrl_dev *pctldev);

const char *
pinmux_generic_get_function_name(struct pinctrl_dev *pctldev,
				 unsigned int selector);

int pinmux_generic_get_function_groups(struct pinctrl_dev *pctldev,
				       unsigned int selector,
				       const char * const **groups,
				       unsigned int * const ngroups);

const struct function_desc *
pinmux_generic_get_function(struct pinctrl_dev *pctldev, unsigned int selector);

int pinmux_generic_add_function(struct pinctrl_dev *pctldev,
				const char *name,
				const char * const *groups,
				unsigned int const ngroups,
				void *data);

int pinmux_generic_add_pinfunction(struct pinctrl_dev *pctldev,
				   const struct pinfunction *func, void *data);

int pinmux_generic_remove_function(struct pinctrl_dev *pctldev,
				   unsigned int selector);

void pinmux_generic_free_functions(struct pinctrl_dev *pctldev);

bool pinmux_generic_function_is_gpio(struct pinctrl_dev *pctldev,
				     unsigned int selector);

#else

static inline void pinmux_generic_free_functions(struct pinctrl_dev *pctldev)
{
}

#endif /* CONFIG_GENERIC_PINMUX_FUNCTIONS */

Annotation

Implementation Notes