]> Git Repo - linux.git/blob - include/linux/pinctrl/devinfo.h
HID: hid-sensor-custom: Fix big on-stack allocation in hid_sensor_custom_get_known()
[linux.git] / include / linux / pinctrl / devinfo.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Per-device information from the pin control system.
4  * This is the stuff that get included into the device
5  * core.
6  *
7  * Copyright (C) 2012 ST-Ericsson SA
8  * Written on behalf of Linaro for ST-Ericsson
9  * This interface is used in the core to keep track of pins.
10  *
11  * Author: Linus Walleij <[email protected]>
12  */
13
14 #ifndef PINCTRL_DEVINFO_H
15 #define PINCTRL_DEVINFO_H
16
17 struct device;
18
19 #ifdef CONFIG_PINCTRL
20
21 /* The device core acts as a consumer toward pinctrl */
22 #include <linux/pinctrl/consumer.h>
23
24 struct pinctrl;
25
26 /**
27  * struct dev_pin_info - pin state container for devices
28  * @p: pinctrl handle for the containing device
29  * @default_state: the default state for the handle, if found
30  * @init_state: the state at probe time, if found
31  * @sleep_state: the state at suspend time, if found
32  * @idle_state: the state at idle (runtime suspend) time, if found
33  */
34 struct dev_pin_info {
35         struct pinctrl *p;
36         struct pinctrl_state *default_state;
37         struct pinctrl_state *init_state;
38 #ifdef CONFIG_PM
39         struct pinctrl_state *sleep_state;
40         struct pinctrl_state *idle_state;
41 #endif
42 };
43
44 extern int pinctrl_bind_pins(struct device *dev);
45 extern int pinctrl_init_done(struct device *dev);
46
47 #else
48
49 /* Stubs if we're not using pinctrl */
50
51 static inline int pinctrl_bind_pins(struct device *dev)
52 {
53         return 0;
54 }
55
56 static inline int pinctrl_init_done(struct device *dev)
57 {
58         return 0;
59 }
60
61 #endif /* CONFIG_PINCTRL */
62 #endif /* PINCTRL_DEVINFO_H */
This page took 0.038795 seconds and 4 git commands to generate.