File Index
Files and directories
Sign in
FILE

pinctrl-sky1.h

File preview with syntax highlighting.

linux-6.19.14/drivers/pinctrl/cix/pinctrl-sky1.h C
 1/* SPDX-License-Identifier: GPL-2.0+ */
 2/*
 3 * Author: Jerry Zhu <Jerry.Zhu@cixtech.com>
 4 */
 5
 6#ifndef __DRIVERS_PINCTRL_SKY1_H
 7#define __DRIVERS_PINCTRL_SKY1_H
 8
 9struct sky1_pinctrl_group {
10	const char *name;
11	unsigned long config;
12	unsigned int pin;
13};
14
15struct sky1_pin_desc {
16	const struct pinctrl_pin_desc pin;
17	const char * const *func_group;
18	unsigned int nfunc;
19};
20
21struct sky1_pinctrl_soc_info {
22	const struct sky1_pin_desc *pins;
23	unsigned int npins;
24};
25
26#define SKY_PINFUNCTION(_pin, _func)				\
27((struct sky1_pin_desc) {					\
28		.pin = _pin,					\
29		.func_group = _func##_group,			\
30		.nfunc = ARRAY_SIZE(_func##_group),		\
31	})
32/**
33 * @dev: a pointer back to containing device
34 * @base: the offset to the controller in virtual memory
35 */
36struct sky1_pinctrl {
37	struct device *dev;
38	struct pinctrl_dev *pctl;
39	void __iomem *base;
40	const struct sky1_pinctrl_soc_info *info;
41	struct sky1_pinctrl_group *groups;
42	const char **grp_names;
43};
44
45int sky1_base_pinctrl_probe(struct platform_device *pdev,
46			const struct sky1_pinctrl_soc_info *info);
47
48#endif /* __DRIVERS_PINCTRL_SKY1_H */
~/ Read-only file preview.