1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Pinctrl for Cirrus Logic Madera codecs
4  *
5  * Copyright (C) 2016-2017 Cirrus Logic
6  */
7 
8 #ifndef PINCTRL_MADERA_H
9 #define PINCTRL_MADERA_H
10 
11 struct madera_pin_groups {
12 	const char *name;
13 	const unsigned int *pins;
14 	unsigned int n_pins;
15 };
16 
17 struct madera_pin_chip {
18 	unsigned int n_pins;
19 
20 	const struct madera_pin_groups *pin_groups;
21 	unsigned int n_pin_groups;
22 };
23 
24 struct madera_pin_private {
25 	struct madera *madera;
26 
27 	const struct madera_pin_chip *chip; /* chip-specific groups */
28 
29 	struct device *dev;
30 	struct pinctrl_dev *pctl;
31 };
32 
33 extern const struct madera_pin_chip cs47l15_pin_chip;
34 extern const struct madera_pin_chip cs47l35_pin_chip;
35 extern const struct madera_pin_chip cs47l85_pin_chip;
36 extern const struct madera_pin_chip cs47l90_pin_chip;
37 extern const struct madera_pin_chip cs47l92_pin_chip;
38 
39 #endif
40