drivers/pinctrl/sunplus/sppctl.h

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

File Facts

System
Linux kernel
Corpus path
drivers/pinctrl/sunplus/sppctl.h
Extension
.h
Size
4600 bytes
Lines
171
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 grp2fp_map {
	u16 f_idx;
	u16 g_idx;
};

struct sppctl_gpio_chip;

struct sppctl_pdata {
	void __iomem *moon2_base;	/* MOON2                                 */
	void __iomem *gpioxt_base;	/* MASTER, OE, OUT, IN, I_INV, O_INV, OD */
	void __iomem *first_base;	/* FIRST                                 */
	void __iomem *moon1_base;	/* MOON1               */

	struct pinctrl_desc pctl_desc;
	struct pinctrl_dev *pctl_dev;
	struct pinctrl_gpio_range pctl_grange;
	struct sppctl_gpio_chip *spp_gchip;

	char const **unq_grps;
	size_t unq_grps_sz;
	struct grp2fp_map *g2fp_maps;
};

struct sppctl_grp {
	const char * const name;
	const u8 gval;                  /* group number   */
	const unsigned * const pins;    /* list of pins   */
	const unsigned int pnum;        /* number of pins */
};

struct sppctl_func {
	const char * const name;
	const enum pinmux_type type;    /* function type          */
	const u8 roff;                  /* register offset        */
	const u8 boff;                  /* bit offset             */
	const u8 blen;                  /* bit length             */
	const struct sppctl_grp * const grps; /* list of groups   */
	const unsigned int gnum;        /* number of groups       */
};

extern const struct sppctl_func sppctl_list_funcs[];
extern const char * const sppctl_pmux_list_s[];
extern const char * const sppctl_gpio_list_s[];
extern const struct pinctrl_pin_desc sppctl_pins_all[];
extern const unsigned int sppctl_pins_gpio[];

extern const size_t sppctl_list_funcs_sz;
extern const size_t sppctl_pmux_list_sz;
extern const size_t sppctl_gpio_list_sz;
extern const size_t sppctl_pins_all_sz;

#endif

Annotation

Implementation Notes