~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/linux/mfd/wm8350/gpio.h

Version: ~ [ linux-4.20-rc5 ] ~ [ linux-4.19.6 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.85 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.142 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.166 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.19.8 ] ~ [ linux-3.18.128 ] ~ [ linux-3.17.8 ] ~ [ linux-3.16.61 ] ~ [ linux-3.15.10 ] ~ [ linux-3.14.79 ] ~ [ linux-3.13.11 ] ~ [ linux-3.12.74 ] ~ [ linux-3.11.10 ] ~ [ linux-3.10.108 ] ~ [ linux-3.9.11 ] ~ [ linux-3.8.13 ] ~ [ linux-3.7.10 ] ~ [ linux-3.6.11 ] ~ [ linux-3.5.7 ] ~ [ linux-3.4.113 ] ~ [ linux-3.3.8 ] ~ [ linux-3.2.102 ] ~ [ linux-3.1.10 ] ~ [ linux-3.0.101 ] ~ [ linux-2.6.39.4 ] ~ [ linux-2.6.38.8 ] ~ [ linux-2.6.37.6 ] ~ [ linux-2.6.36.4 ] ~ [ linux-2.6.35.14 ] ~ [ linux-2.6.34.15 ] ~ [ linux-2.6.33.20 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.31.14 ] ~ [ linux-2.6.30.10 ] ~ [ linux-2.6.29.6 ] ~ [ linux-2.6.28.10 ] ~ [ linux-2.6.27.62 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * gpio.h  --  GPIO Driver for Wolfson WM8350 PMIC
  3  *
  4  * Copyright 2007 Wolfson Microelectronics PLC
  5  *
  6  *  This program is free software; you can redistribute  it and/or modify it
  7  *  under  the terms of  the GNU General  Public License as published by the
  8  *  Free Software Foundation;  either version 2 of the  License, or (at your
  9  *  option) any later version.
 10  *
 11  */
 12 
 13 #ifndef __LINUX_MFD_WM8350_GPIO_H_
 14 #define __LINUX_MFD_WM8350_GPIO_H_
 15 
 16 #include <linux/platform_device.h>
 17 
 18 /*
 19  * GPIO Registers.
 20  */
 21 #define WM8350_GPIO_DEBOUNCE                    0x80
 22 #define WM8350_GPIO_PIN_PULL_UP_CONTROL         0x81
 23 #define WM8350_GPIO_PULL_DOWN_CONTROL           0x82
 24 #define WM8350_GPIO_INT_MODE                    0x83
 25 #define WM8350_GPIO_CONTROL                     0x85
 26 #define WM8350_GPIO_CONFIGURATION_I_O           0x86
 27 #define WM8350_GPIO_PIN_POLARITY_TYPE           0x87
 28 #define WM8350_GPIO_FUNCTION_SELECT_1           0x8C
 29 #define WM8350_GPIO_FUNCTION_SELECT_2           0x8D
 30 #define WM8350_GPIO_FUNCTION_SELECT_3           0x8E
 31 #define WM8350_GPIO_FUNCTION_SELECT_4           0x8F
 32 #define WM8350_GPIO_LEVEL                       0xE6
 33 
 34 /*
 35  * GPIO Functions
 36  */
 37 #define WM8350_GPIO0_GPIO_IN                    0x0
 38 #define WM8350_GPIO0_GPIO_OUT                   0x0
 39 #define WM8350_GPIO0_PWR_ON_IN                  0x1
 40 #define WM8350_GPIO0_PWR_ON_OUT                 0x1
 41 #define WM8350_GPIO0_LDO_EN_IN                  0x2
 42 #define WM8350_GPIO0_VRTC_OUT                   0x2
 43 #define WM8350_GPIO0_LPWR1_IN                   0x3
 44 #define WM8350_GPIO0_POR_B_OUT                  0x3
 45 
 46 #define WM8350_GPIO1_GPIO_IN                    0x0
 47 #define WM8350_GPIO1_GPIO_OUT                   0x0
 48 #define WM8350_GPIO1_PWR_ON_IN                  0x1
 49 #define WM8350_GPIO1_DO_CONF_OUT                0x1
 50 #define WM8350_GPIO1_LDO_EN_IN                  0x2
 51 #define WM8350_GPIO1_RESET_OUT                  0x2
 52 #define WM8350_GPIO1_LPWR2_IN                   0x3
 53 #define WM8350_GPIO1_MEMRST_OUT                 0x3
 54 
 55 #define WM8350_GPIO2_GPIO_IN                    0x0
 56 #define WM8350_GPIO2_GPIO_OUT                   0x0
 57 #define WM8350_GPIO2_PWR_ON_IN                  0x1
 58 #define WM8350_GPIO2_PWR_ON_OUT                 0x1
 59 #define WM8350_GPIO2_WAKE_UP_IN                 0x2
 60 #define WM8350_GPIO2_VRTC_OUT                   0x2
 61 #define WM8350_GPIO2_32KHZ_IN                   0x3
 62 #define WM8350_GPIO2_32KHZ_OUT                  0x3
 63 
 64 #define WM8350_GPIO3_GPIO_IN                    0x0
 65 #define WM8350_GPIO3_GPIO_OUT                   0x0
 66 #define WM8350_GPIO3_PWR_ON_IN                  0x1
 67 #define WM8350_GPIO3_P_CLK_OUT                  0x1
 68 #define WM8350_GPIO3_LDO_EN_IN                  0x2
 69 #define WM8350_GPIO3_VRTC_OUT                   0x2
 70 #define WM8350_GPIO3_PWR_OFF_IN                 0x3
 71 #define WM8350_GPIO3_32KHZ_OUT                  0x3
 72 
 73 #define WM8350_GPIO4_GPIO_IN                    0x0
 74 #define WM8350_GPIO4_GPIO_OUT                   0x0
 75 #define WM8350_GPIO4_MR_IN                      0x1
 76 #define WM8350_GPIO4_MEM_RST_OUT                0x1
 77 #define WM8350_GPIO4_FLASH_IN                   0x2
 78 #define WM8350_GPIO4_ADA_OUT                    0x2
 79 #define WM8350_GPIO4_HIBERNATE_IN               0x3
 80 #define WM8350_GPIO4_FLASH_OUT                  0x3
 81 #define WM8350_GPIO4_MICDET_OUT                 0x4
 82 #define WM8350_GPIO4_MICSHT_OUT                 0x5
 83 
 84 #define WM8350_GPIO5_GPIO_IN                    0x0
 85 #define WM8350_GPIO5_GPIO_OUT                   0x0
 86 #define WM8350_GPIO5_LPWR1_IN                   0x1
 87 #define WM8350_GPIO5_P_CLK_OUT                  0x1
 88 #define WM8350_GPIO5_ADCLRCLK_IN                0x2
 89 #define WM8350_GPIO5_ADCLRCLK_OUT               0x2
 90 #define WM8350_GPIO5_HIBERNATE_IN               0x3
 91 #define WM8350_GPIO5_32KHZ_OUT                  0x3
 92 #define WM8350_GPIO5_MICDET_OUT                 0x4
 93 #define WM8350_GPIO5_MICSHT_OUT                 0x5
 94 #define WM8350_GPIO5_ADA_OUT                    0x6
 95 #define WM8350_GPIO5_OPCLK_OUT                  0x7
 96 
 97 #define WM8350_GPIO6_GPIO_IN                    0x0
 98 #define WM8350_GPIO6_GPIO_OUT                   0x0
 99 #define WM8350_GPIO6_LPWR2_IN                   0x1
100 #define WM8350_GPIO6_MEMRST_OUT                 0x1
101 #define WM8350_GPIO6_FLASH_IN                   0x2
102 #define WM8350_GPIO6_ADA_OUT                    0x2
103 #define WM8350_GPIO6_HIBERNATE_IN               0x3
104 #define WM8350_GPIO6_RTC_OUT                    0x3
105 #define WM8350_GPIO6_MICDET_OUT                 0x4
106 #define WM8350_GPIO6_MICSHT_OUT                 0x5
107 #define WM8350_GPIO6_ADCLRCLKB_OUT              0x6
108 #define WM8350_GPIO6_SDOUT_OUT                  0x7
109 
110 #define WM8350_GPIO7_GPIO_IN                    0x0
111 #define WM8350_GPIO7_GPIO_OUT                   0x0
112 #define WM8350_GPIO7_LPWR3_IN                   0x1
113 #define WM8350_GPIO7_P_CLK_OUT                  0x1
114 #define WM8350_GPIO7_MASK_IN                    0x2
115 #define WM8350_GPIO7_VCC_FAULT_OUT              0x2
116 #define WM8350_GPIO7_HIBERNATE_IN               0x3
117 #define WM8350_GPIO7_BATT_FAULT_OUT             0x3
118 #define WM8350_GPIO7_MICDET_OUT                 0x4
119 #define WM8350_GPIO7_MICSHT_OUT                 0x5
120 #define WM8350_GPIO7_ADA_OUT                    0x6
121 #define WM8350_GPIO7_CSB_IN                     0x7
122 
123 #define WM8350_GPIO8_GPIO_IN                    0x0
124 #define WM8350_GPIO8_GPIO_OUT                   0x0
125 #define WM8350_GPIO8_MR_IN                      0x1
126 #define WM8350_GPIO8_VCC_FAULT_OUT              0x1
127 #define WM8350_GPIO8_ADCBCLK_IN                 0x2
128 #define WM8350_GPIO8_ADCBCLK_OUT                0x2
129 #define WM8350_GPIO8_PWR_OFF_IN                 0x3
130 #define WM8350_GPIO8_BATT_FAULT_OUT             0x3
131 #define WM8350_GPIO8_ALTSCL_IN                  0xf
132 
133 #define WM8350_GPIO9_GPIO_IN                    0x0
134 #define WM8350_GPIO9_GPIO_OUT                   0x0
135 #define WM8350_GPIO9_HEARTBEAT_IN               0x1
136 #define WM8350_GPIO9_VCC_FAULT_OUT              0x1
137 #define WM8350_GPIO9_MASK_IN                    0x2
138 #define WM8350_GPIO9_LINE_GT_BATT_OUT           0x2
139 #define WM8350_GPIO9_PWR_OFF_IN                 0x3
140 #define WM8350_GPIO9_BATT_FAULT_OUT             0x3
141 #define WM8350_GPIO9_ALTSDA_OUT                 0xf
142 
143 #define WM8350_GPIO10_GPIO_IN                   0x0
144 #define WM8350_GPIO10_GPIO_OUT                  0x0
145 #define WM8350_GPIO10_ISINKC_OUT                0x1
146 #define WM8350_GPIO10_PWR_OFF_IN                0x2
147 #define WM8350_GPIO10_LINE_GT_BATT_OUT          0x2
148 #define WM8350_GPIO10_CHD_IND_IN                0x3
149 
150 #define WM8350_GPIO11_GPIO_IN                   0x0
151 #define WM8350_GPIO11_GPIO_OUT                  0x0
152 #define WM8350_GPIO11_ISINKD_OUT                0x1
153 #define WM8350_GPIO11_WAKEUP_IN                 0x2
154 #define WM8350_GPIO11_LINE_GT_BATT_OUT          0x2
155 #define WM8350_GPIO11_CHD_IND_IN                0x3
156 
157 #define WM8350_GPIO12_GPIO_IN                   0x0
158 #define WM8350_GPIO12_GPIO_OUT                  0x0
159 #define WM8350_GPIO12_ISINKE_OUT                0x1
160 #define WM8350_GPIO12_LINE_GT_BATT_OUT          0x2
161 #define WM8350_GPIO12_LINE_EN_OUT               0x3
162 #define WM8350_GPIO12_32KHZ_OUT                 0x4
163 
164 #define WM8350_GPIO_DIR_IN                      0
165 #define WM8350_GPIO_DIR_OUT                     1
166 #define WM8350_GPIO_ACTIVE_LOW                  0
167 #define WM8350_GPIO_ACTIVE_HIGH                 1
168 #define WM8350_GPIO_PULL_NONE                   0
169 #define WM8350_GPIO_PULL_UP                     1
170 #define WM8350_GPIO_PULL_DOWN                   2
171 #define WM8350_GPIO_INVERT_OFF                  0
172 #define WM8350_GPIO_INVERT_ON                   1
173 #define WM8350_GPIO_DEBOUNCE_OFF                0
174 #define WM8350_GPIO_DEBOUNCE_ON                 1
175 
176 /*
177  * R30 (0x1E) - GPIO Interrupt Status
178  */
179 #define WM8350_GP12_EINT                        0x1000
180 #define WM8350_GP11_EINT                        0x0800
181 #define WM8350_GP10_EINT                        0x0400
182 #define WM8350_GP9_EINT                         0x0200
183 #define WM8350_GP8_EINT                         0x0100
184 #define WM8350_GP7_EINT                         0x0080
185 #define WM8350_GP6_EINT                         0x0040
186 #define WM8350_GP5_EINT                         0x0020
187 #define WM8350_GP4_EINT                         0x0010
188 #define WM8350_GP3_EINT                         0x0008
189 #define WM8350_GP2_EINT                         0x0004
190 #define WM8350_GP1_EINT                         0x0002
191 #define WM8350_GP0_EINT                         0x0001
192 
193 
194 /*
195  * R128 (0x80) - GPIO Debounce
196  */
197 #define WM8350_GP12_DB                          0x1000
198 #define WM8350_GP11_DB                          0x0800
199 #define WM8350_GP10_DB                          0x0400
200 #define WM8350_GP9_DB                           0x0200
201 #define WM8350_GP8_DB                           0x0100
202 #define WM8350_GP7_DB                           0x0080
203 #define WM8350_GP6_DB                           0x0040
204 #define WM8350_GP5_DB                           0x0020
205 #define WM8350_GP4_DB                           0x0010
206 #define WM8350_GP3_DB                           0x0008
207 #define WM8350_GP2_DB                           0x0004
208 #define WM8350_GP1_DB                           0x0002
209 #define WM8350_GP0_DB                           0x0001
210 
211 /*
212  * R129 (0x81) - GPIO Pin pull up Control
213  */
214 #define WM8350_GP12_PU                          0x1000
215 #define WM8350_GP11_PU                          0x0800
216 #define WM8350_GP10_PU                          0x0400
217 #define WM8350_GP9_PU                           0x0200
218 #define WM8350_GP8_PU                           0x0100
219 #define WM8350_GP7_PU                           0x0080
220 #define WM8350_GP6_PU                           0x0040
221 #define WM8350_GP5_PU                           0x0020
222 #define WM8350_GP4_PU                           0x0010
223 #define WM8350_GP3_PU                           0x0008
224 #define WM8350_GP2_PU                           0x0004
225 #define WM8350_GP1_PU                           0x0002
226 #define WM8350_GP0_PU                           0x0001
227 
228 /*
229  * R130 (0x82) - GPIO Pull down Control
230  */
231 #define WM8350_GP12_PD                          0x1000
232 #define WM8350_GP11_PD                          0x0800
233 #define WM8350_GP10_PD                          0x0400
234 #define WM8350_GP9_PD                           0x0200
235 #define WM8350_GP8_PD                           0x0100
236 #define WM8350_GP7_PD                           0x0080
237 #define WM8350_GP6_PD                           0x0040
238 #define WM8350_GP5_PD                           0x0020
239 #define WM8350_GP4_PD                           0x0010
240 #define WM8350_GP3_PD                           0x0008
241 #define WM8350_GP2_PD                           0x0004
242 #define WM8350_GP1_PD                           0x0002
243 #define WM8350_GP0_PD                           0x0001
244 
245 /*
246  * R131 (0x83) - GPIO Interrupt Mode
247  */
248 #define WM8350_GP12_INTMODE                     0x1000
249 #define WM8350_GP11_INTMODE                     0x0800
250 #define WM8350_GP10_INTMODE                     0x0400
251 #define WM8350_GP9_INTMODE                      0x0200
252 #define WM8350_GP8_INTMODE                      0x0100
253 #define WM8350_GP7_INTMODE                      0x0080
254 #define WM8350_GP6_INTMODE                      0x0040
255 #define WM8350_GP5_INTMODE                      0x0020
256 #define WM8350_GP4_INTMODE                      0x0010
257 #define WM8350_GP3_INTMODE                      0x0008
258 #define WM8350_GP2_INTMODE                      0x0004
259 #define WM8350_GP1_INTMODE                      0x0002
260 #define WM8350_GP0_INTMODE                      0x0001
261 
262 /*
263  * R133 (0x85) - GPIO Control
264  */
265 #define WM8350_GP_DBTIME_MASK                   0x00C0
266 
267 /*
268  * R134 (0x86) - GPIO Configuration (i/o)
269  */
270 #define WM8350_GP12_DIR                         0x1000
271 #define WM8350_GP11_DIR                         0x0800
272 #define WM8350_GP10_DIR                         0x0400
273 #define WM8350_GP9_DIR                          0x0200
274 #define WM8350_GP8_DIR                          0x0100
275 #define WM8350_GP7_DIR                          0x0080
276 #define WM8350_GP6_DIR                          0x0040
277 #define WM8350_GP5_DIR                          0x0020
278 #define WM8350_GP4_DIR                          0x0010
279 #define WM8350_GP3_DIR                          0x0008
280 #define WM8350_GP2_DIR                          0x0004
281 #define WM8350_GP1_DIR                          0x0002
282 #define WM8350_GP0_DIR                          0x0001
283 
284 /*
285  * R135 (0x87) - GPIO Pin Polarity / Type
286  */
287 #define WM8350_GP12_CFG                         0x1000
288 #define WM8350_GP11_CFG                         0x0800
289 #define WM8350_GP10_CFG                         0x0400
290 #define WM8350_GP9_CFG                          0x0200
291 #define WM8350_GP8_CFG                          0x0100
292 #define WM8350_GP7_CFG                          0x0080
293 #define WM8350_GP6_CFG                          0x0040
294 #define WM8350_GP5_CFG                          0x0020
295 #define WM8350_GP4_CFG                          0x0010
296 #define WM8350_GP3_CFG                          0x0008
297 #define WM8350_GP2_CFG                          0x0004
298 #define WM8350_GP1_CFG                          0x0002
299 #define WM8350_GP0_CFG                          0x0001
300 
301 /*
302  * R140 (0x8C) - GPIO Function Select 1
303  */
304 #define WM8350_GP3_FN_MASK                      0xF000
305 #define WM8350_GP2_FN_MASK                      0x0F00
306 #define WM8350_GP1_FN_MASK                      0x00F0
307 #define WM8350_GP0_FN_MASK                      0x000F
308 
309 /*
310  * R141 (0x8D) - GPIO Function Select 2
311  */
312 #define WM8350_GP7_FN_MASK                      0xF000
313 #define WM8350_GP6_FN_MASK                      0x0F00
314 #define WM8350_GP5_FN_MASK                      0x00F0
315 #define WM8350_GP4_FN_MASK                      0x000F
316 
317 /*
318  * R142 (0x8E) - GPIO Function Select 3
319  */
320 #define WM8350_GP11_FN_MASK                     0xF000
321 #define WM8350_GP10_FN_MASK                     0x0F00
322 #define WM8350_GP9_FN_MASK                      0x00F0
323 #define WM8350_GP8_FN_MASK                      0x000F
324 
325 /*
326  * R143 (0x8F) - GPIO Function Select 4
327  */
328 #define WM8350_GP12_FN_MASK                     0x000F
329 
330 /*
331  * R230 (0xE6) - GPIO Pin Status
332  */
333 #define WM8350_GP12_LVL                         0x1000
334 #define WM8350_GP11_LVL                         0x0800
335 #define WM8350_GP10_LVL                         0x0400
336 #define WM8350_GP9_LVL                          0x0200
337 #define WM8350_GP8_LVL                          0x0100
338 #define WM8350_GP7_LVL                          0x0080
339 #define WM8350_GP6_LVL                          0x0040
340 #define WM8350_GP5_LVL                          0x0020
341 #define WM8350_GP4_LVL                          0x0010
342 #define WM8350_GP3_LVL                          0x0008
343 #define WM8350_GP2_LVL                          0x0004
344 #define WM8350_GP1_LVL                          0x0002
345 #define WM8350_GP0_LVL                          0x0001
346 
347 struct wm8350;
348 
349 int wm8350_gpio_config(struct wm8350 *wm8350, int gpio, int dir, int func,
350                        int pol, int pull, int invert, int debounce);
351 
352 struct wm8350_gpio {
353         struct platform_device *pdev;
354 };
355 
356 /*
357  * GPIO Interrupts
358  */
359 #define WM8350_IRQ_GPIO(x)                      (50 + x)
360 
361 #endif
362 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp