blob: 0b6b75d650d26f1557e9da6f9b54ee468753c63d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
/*
* Copyright (c) 2019-2020, yzrh <yzrh@noema.org>
*
* SPDX-License-Identifier: Apache-2.0
*/
#define GPIO_LOW 0x00
#define GPIO_HIGH 0x01
#ifdef __FreeBSD__
#include <stdint.h>
#include <sys/gpio.h>
#define GPIO_IN GPIO_PIN_INPUT
#define GPIO_OUT GPIO_PIN_OUTPUT
#define GPIO_INT GPIO_INTR_EDGE_FALLING
#elif __linux__
#define GPIO_IN 0x00
#define GPIO_OUT 0x01
/*
* 0: falling
* 1: rising
*/
#define GPIO_INT 0
#endif /* __FreeBSD__ */
/* Raspberry Pi 3 */
#define GPIO_PIN_IN0 4 /* 7: DPAD_LEFT */
#define GPIO_PIN_IN1 14 /* 8: DPAD_UP */
#define GPIO_PIN_IN2 15 /* 10: DPAD_DOWN */
#define GPIO_PIN_IN3 17 /* 11: DPAD_RIGHT */
#define GPIO_PIN_IN4 18 /* 12: BACK */
#define GPIO_PIN_IN5 27 /* 13: GUIDE */
#define GPIO_PIN_IN6 22 /* 15: START */
#define GPIO_PIN_IN7 23 /* 16: A */
#define GPIO_PIN_IN8 24 /* 18: B */
#define GPIO_PIN_IN9 10 /* 19: X */
#define GPIO_PIN_IN10 9 /* 21: Y */
#define GPIO_PIN_IN11 25 /* 22: LEFTSHOULDER */
#define GPIO_PIN_IN12 11 /* 23: RIGHTSHOULDER */
#define GPIO_PIN_IN13 8 /* 24: LEFTSTICK */
#define GPIO_PIN_IN14 7 /* 26: RIGHTSTICK */
/* Second controller */
#define GPIO_PIN_IN15 0 /* 27: DPAD_LEFT */
#define GPIO_PIN_IN16 1 /* 28: DPAD_UP */
#define GPIO_PIN_IN17 5 /* 29: DPAD_DOWN */
#define GPIO_PIN_IN18 6 /* 31: DPAD_RIGHT */
/* Unused */
#define GPIO_PIN_IN19 12 /* 32: NULL */
#define GPIO_PIN_IN20 13 /* 33: NULL */
#define GPIO_PIN_IN21 19 /* 35: NULL */
#define GPIO_PIN_IN22 16 /* 36: NULL */
#define GPIO_PIN_IN23 26 /* 37: NULL */
#define GPIO_PIN_IN24 20 /* 38: NULL */
#define GPIO_PIN_IN25 21 /* 40: NULL */
|