1
2
3
4
5
6
7
8#ifndef __SERIAL_MCTRL_GPIO__
9#define __SERIAL_MCTRL_GPIO__
10
11#include <linux/err.h>
12#include <linux/device.h>
13#include <linux/gpio/consumer.h>
14
15struct uart_port;
16
17enum mctrl_gpio_idx {
18 UART_GPIO_CTS,
19 UART_GPIO_DSR,
20 UART_GPIO_DCD,
21 UART_GPIO_RNG,
22 UART_GPIO_RI = UART_GPIO_RNG,
23 UART_GPIO_RTS,
24 UART_GPIO_DTR,
25 UART_GPIO_MAX,
26};
27
28
29
30
31struct mctrl_gpios;
32
33#ifdef CONFIG_GPIOLIB
34
35
36
37
38void mctrl_gpio_set(struct mctrl_gpios *gpios, unsigned int mctrl);
39
40
41
42
43
44unsigned int mctrl_gpio_get(struct mctrl_gpios *gpios, unsigned int *mctrl);
45
46
47
48
49
50unsigned int
51mctrl_gpio_get_outputs(struct mctrl_gpios *gpios, unsigned int *mctrl);
52
53
54
55
56struct gpio_desc *mctrl_gpio_to_gpiod(struct mctrl_gpios *gpios,
57 enum mctrl_gpio_idx gidx);
58
59
60
61
62
63
64
65
66struct mctrl_gpios *mctrl_gpio_init(struct uart_port *port, unsigned int idx);
67
68
69
70
71
72
73
74struct mctrl_gpios *mctrl_gpio_init_noauto(struct device *dev,
75 unsigned int idx);
76
77
78
79
80
81
82void mctrl_gpio_free(struct device *dev, struct mctrl_gpios *gpios);
83
84
85
86
87void mctrl_gpio_enable_ms(struct mctrl_gpios *gpios);
88
89
90
91
92void mctrl_gpio_disable_ms(struct mctrl_gpios *gpios);
93
94#else
95
96static inline
97void mctrl_gpio_set(struct mctrl_gpios *gpios, unsigned int mctrl)
98{
99}
100
101static inline
102unsigned int mctrl_gpio_get(struct mctrl_gpios *gpios, unsigned int *mctrl)
103{
104 return *mctrl;
105}
106
107static inline unsigned int
108mctrl_gpio_get_outputs(struct mctrl_gpios *gpios, unsigned int *mctrl)
109{
110 return *mctrl;
111}
112
113static inline
114struct gpio_desc *mctrl_gpio_to_gpiod(struct mctrl_gpios *gpios,
115 enum mctrl_gpio_idx gidx)
116{
117 return NULL;
118}
119
120static inline
121struct mctrl_gpios *mctrl_gpio_init(struct uart_port *port, unsigned int idx)
122{
123 return NULL;
124}
125
126static inline
127struct mctrl_gpios *mctrl_gpio_init_noauto(struct device *dev, unsigned int idx)
128{
129 return NULL;
130}
131
132static inline
133void mctrl_gpio_free(struct device *dev, struct mctrl_gpios *gpios)
134{
135}
136
137static inline void mctrl_gpio_enable_ms(struct mctrl_gpios *gpios)
138{
139}
140
141static inline void mctrl_gpio_disable_ms(struct mctrl_gpios *gpios)
142{
143}
144
145#endif
146
147#endif
148