GNU Linux-libre 4.19.245-gnu1
[releases.git] / drivers / pinctrl / cirrus / pinctrl-madera.h
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Pinctrl for Cirrus Logic Madera codecs
4  *
5  * Copyright (C) 2016-2017 Cirrus Logic
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by the
9  * Free Software Foundation; version 2.
10  */
11
12 #ifndef PINCTRL_MADERA_H
13 #define PINCTRL_MADERA_H
14
15 struct madera_pin_groups {
16         const char *name;
17         const unsigned int *pins;
18         unsigned int n_pins;
19 };
20
21 struct madera_pin_chip {
22         unsigned int n_pins;
23
24         const struct madera_pin_groups *pin_groups;
25         unsigned int n_pin_groups;
26 };
27
28 struct madera_pin_private {
29         struct madera *madera;
30
31         const struct madera_pin_chip *chip; /* chip-specific groups */
32
33         struct device *dev;
34         struct pinctrl_dev *pctl;
35 };
36
37 extern const struct madera_pin_chip cs47l35_pin_chip;
38 extern const struct madera_pin_chip cs47l85_pin_chip;
39 extern const struct madera_pin_chip cs47l90_pin_chip;
40
41 #endif