Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs
[deliverable/linux.git] / include / uapi / linux / gpio.h
CommitLineData
3c702e99
LW
1/*
2 * <linux/gpio.h> - userspace ABI for the GPIO character devices
3 *
4 * Copyright (C) 2015 Linus Walleij
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 version 2 as published by
8 * the Free Software Foundation.
9 */
10#ifndef _UAPI_GPIO_H_
11#define _UAPI_GPIO_H_
12
13#include <linux/ioctl.h>
14#include <linux/types.h>
15
16/**
17 * struct gpiochip_info - Information about a certain GPIO chip
214338e3
LW
18 * @name: the Linux kernel name of this GPIO chip
19 * @label: a functional name for this GPIO chip, such as a product
20 * number, may be NULL
3c702e99
LW
21 * @lines: number of GPIO lines on this chip
22 */
23struct gpiochip_info {
24 char name[32];
df4878e9 25 char label[32];
3c702e99
LW
26 __u32 lines;
27};
28
521a2ad6
LW
29/* Line is in use by the kernel */
30#define GPIOLINE_FLAG_KERNEL (1UL << 0)
31#define GPIOLINE_FLAG_IS_OUT (1UL << 1)
32#define GPIOLINE_FLAG_ACTIVE_LOW (1UL << 2)
33#define GPIOLINE_FLAG_OPEN_DRAIN (1UL << 3)
34#define GPIOLINE_FLAG_OPEN_SOURCE (1UL << 4)
35
36/**
37 * struct gpioline_info - Information about a certain GPIO line
214338e3
LW
38 * @line_offset: the local offset on this GPIO device, fill this in when
39 * requesting the line information from the kernel
521a2ad6 40 * @flags: various flags for this line
214338e3
LW
41 * @name: the name of this GPIO line, such as the output pin of the line on the
42 * chip, a rail or a pin header name on a board, as specified by the gpio
43 * chip, may be NULL
44 * @consumer: a functional name for the consumer of this GPIO line as set by
45 * whatever is using it, will be NULL if there is no current user but may
46 * also be NULL if the consumer doesn't set this up
521a2ad6
LW
47 */
48struct gpioline_info {
49 __u32 line_offset;
50 __u32 flags;
51 char name[32];
214338e3 52 char consumer[32];
521a2ad6
LW
53};
54
fae98164
LW
55#define GPIO_GET_CHIPINFO_IOCTL _IOR(0xB4, 0x01, struct gpiochip_info)
56#define GPIO_GET_LINEINFO_IOCTL _IOWR(0xB4, 0x02, struct gpioline_info)
3c702e99
LW
57
58#endif /* _UAPI_GPIO_H_ */
This page took 0.038075 seconds and 5 git commands to generate.