Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.8.
 1#ifndef PINCTRL_PINCTRL_NOMADIK_H
 2#define PINCTRL_PINCTRL_NOMADIK_H
 3
 4#include <plat/gpio-nomadik.h>
 5
 6/* Package definitions */
 7#define PINCTRL_NMK_STN8815	0
 8#define PINCTRL_NMK_DB8500	1
 9
10/**
11 * struct nmk_function - Nomadik pinctrl mux function
12 * @name: The name of the function, exported to pinctrl core.
13 * @groups: An array of pin groups that may select this function.
14 * @ngroups: The number of entries in @groups.
15 */
16struct nmk_function {
17	const char *name;
18	const char * const *groups;
19	unsigned ngroups;
20};
21
22/**
23 * struct nmk_pingroup - describes a Nomadik pin group
24 * @name: the name of this specific pin group
25 * @pins: an array of discrete physical pins used in this group, taken
26 *	from the driver-local pin enumeration space
27 * @num_pins: the number of pins in this group array, i.e. the number of
28 *	elements in .pins so we can iterate over that array
29 * @altsetting: the altsetting to apply to all pins in this group to
30 *	configure them to be used by a function
31 */
32struct nmk_pingroup {
33	const char *name;
34	const unsigned int *pins;
35	const unsigned npins;
36	int altsetting;
37};
38
39/**
40 * struct nmk_pinctrl_soc_data - Nomadik pin controller per-SoC configuration
41 * @gpio_ranges: An array of GPIO ranges for this SoC
42 * @gpio_num_ranges: The number of GPIO ranges for this SoC
43 * @pins:	An array describing all pins the pin controller affects.
44 *		All pins which are also GPIOs must be listed first within the
45 *		array, and be numbered identically to the GPIO controller's
46 *		numbering.
47 * @npins:	The number of entries in @pins.
48 * @functions:	The functions supported on this SoC.
49 * @nfunction:	The number of entries in @functions.
50 * @groups:	An array describing all pin groups the pin SoC supports.
51 * @ngroups:	The number of entries in @groups.
52 */
53struct nmk_pinctrl_soc_data {
54	struct pinctrl_gpio_range *gpio_ranges;
55	unsigned gpio_num_ranges;
56	const struct pinctrl_pin_desc *pins;
57	unsigned npins;
58	const struct nmk_function *functions;
59	unsigned nfunctions;
60	const struct nmk_pingroup *groups;
61	unsigned ngroups;
62};
63
64#ifdef CONFIG_PINCTRL_DB8500
65
66void nmk_pinctrl_db8500_init(const struct nmk_pinctrl_soc_data **soc);
67
68#else
69
70static inline void
71nmk_pinctrl_db8500_init(const struct nmk_pinctrl_soc_data **soc)
72{
73}
74
75#endif
76
77#endif /* PINCTRL_PINCTRL_NOMADIK_H */