/* * Copyright (c) 2019-2020, yzrh * * SPDX-License-Identifier: Apache-2.0 */ #define GPIO_LOW 0x00 #define GPIO_HIGH 0x01 #ifdef __FreeBSD__ #include #include #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 */