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.

Dependency Surface

Detected Declarations

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

Implementation Notes