18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Pinctrl for Cirrus Logic Madera codecs 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2016-2017 Cirrus Logic 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#ifndef PINCTRL_MADERA_H 98c2ecf20Sopenharmony_ci#define PINCTRL_MADERA_H 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_cistruct madera_pin_groups { 128c2ecf20Sopenharmony_ci const char *name; 138c2ecf20Sopenharmony_ci const unsigned int *pins; 148c2ecf20Sopenharmony_ci unsigned int n_pins; 158c2ecf20Sopenharmony_ci}; 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_cistruct madera_pin_chip { 188c2ecf20Sopenharmony_ci unsigned int n_pins; 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci const struct madera_pin_groups *pin_groups; 218c2ecf20Sopenharmony_ci unsigned int n_pin_groups; 228c2ecf20Sopenharmony_ci}; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_cistruct madera_pin_private { 258c2ecf20Sopenharmony_ci struct madera *madera; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci const struct madera_pin_chip *chip; /* chip-specific groups */ 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci struct device *dev; 308c2ecf20Sopenharmony_ci struct pinctrl_dev *pctl; 318c2ecf20Sopenharmony_ci}; 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ciextern const struct madera_pin_chip cs47l15_pin_chip; 348c2ecf20Sopenharmony_ciextern const struct madera_pin_chip cs47l35_pin_chip; 358c2ecf20Sopenharmony_ciextern const struct madera_pin_chip cs47l85_pin_chip; 368c2ecf20Sopenharmony_ciextern const struct madera_pin_chip cs47l90_pin_chip; 378c2ecf20Sopenharmony_ciextern const struct madera_pin_chip cs47l92_pin_chip; 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci#endif 40