drivers/pinctrl/bcm/pinctrl-brcmstb.h
Source file repositories/reference/linux-study-clean/drivers/pinctrl/bcm/pinctrl-brcmstb.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/pinctrl/bcm/pinctrl-brcmstb.h- Extension
.h- Size
- 2939 bytes
- Lines
- 94
- 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.hlinux/platform_device.h
Detected Declarations
struct pin_regsstruct brcmstb_pin_funcsstruct brcmstb_pdata
Annotated Snippet
struct pin_regs {
u16 mux_bit;
u16 pad_bit;
};
/**
* struct brcmstb_pin_funcs - pins provide their primary/alternate
* functions in this struct
* @func_mask: mask representing valid bits of the function selector
* in the registers
* @funcs: array of function identifiers
* @n_funcs: number of identifiers of the @funcs array above
*/
struct brcmstb_pin_funcs {
const u32 func_mask;
const u8 *funcs;
const unsigned int n_funcs;
};
/**
* struct brcmstb_pdata - specific data for a pinctrl chip implementation
* @pctl_desc: pin controller descriptor for this implementation
* @gpio_range: range of GPIOs served by this controller
* @pin_regs: array of register descriptors for each pin
* @pin_funcs: array of all possible assignable function for each pin
* @func_count: total number of functions
* @func_gpio: which function number is GPIO (usually 0)
* @func_names: an array listing all function names
*/
struct brcmstb_pdata {
const struct pinctrl_desc *pctl_desc;
const struct pinctrl_gpio_range *gpio_range;
const struct pin_regs *pin_regs;
const struct brcmstb_pin_funcs *pin_funcs;
const unsigned int func_count;
const unsigned int func_gpio;
const char * const *func_names;
};
int brcmstb_pinctrl_probe(struct platform_device *pdev);
#endif
Annotation
- Immediate include surface: `linux/types.h`, `linux/platform_device.h`.
- Detected declarations: `struct pin_regs`, `struct brcmstb_pin_funcs`, `struct brcmstb_pdata`.
- 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.