Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / drivers / pinctrl / cirrus / pinctrl-madera.h
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 cs47l35_pin_chip;
34 extern const struct madera_pin_chip cs47l85_pin_chip;
35 extern const struct madera_pin_chip cs47l90_pin_chip;
36
37 #endif