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.
- 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
linux/types.h
Detected Declarations
struct dentrystruct seq_filestruct pinctrl_devstruct pinctrl_gpio_rangestruct pinctrl_mapstruct pinctrl_settingstruct function_descfunction pinmux_check_opsfunction pinmux_validate_mapfunction pinmux_can_be_used_for_gpiofunction pinmux_request_gpiofunction pinmux_free_gpiofunction pinmux_map_to_settingfunction pinmux_free_settingfunction pinmux_disable_settingfunction pinmux_show_mapfunction pinmux_generic_free_functions
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
- Immediate include surface: `linux/types.h`.
- Detected declarations: `struct dentry`, `struct seq_file`, `struct pinctrl_dev`, `struct pinctrl_gpio_range`, `struct pinctrl_map`, `struct pinctrl_setting`, `struct function_desc`, `function pinmux_check_ops`, `function pinmux_validate_map`, `function pinmux_can_be_used_for_gpio`.
- Atlas domain: Driver Families / drivers/pinctrl.
- 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.