1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2 /* 3 * Userspace ABI for Counter character devices 4 * Copyright (C) 2020 William Breathitt Gray 5 */ 6 #ifndef _UAPI_COUNTER_H_ 7 #define _UAPI_COUNTER_H_ 8 9 /* Component scope definitions */ 10 enum counter_scope { 11 COUNTER_SCOPE_DEVICE, 12 COUNTER_SCOPE_SIGNAL, 13 COUNTER_SCOPE_COUNT, 14 }; 15 16 /* Count direction values */ 17 enum counter_count_direction { 18 COUNTER_COUNT_DIRECTION_FORWARD, 19 COUNTER_COUNT_DIRECTION_BACKWARD, 20 }; 21 22 /* Count mode values */ 23 enum counter_count_mode { 24 COUNTER_COUNT_MODE_NORMAL, 25 COUNTER_COUNT_MODE_RANGE_LIMIT, 26 COUNTER_COUNT_MODE_NON_RECYCLE, 27 COUNTER_COUNT_MODE_MODULO_N, 28 }; 29 30 /* Count function values */ 31 enum counter_function { 32 COUNTER_FUNCTION_INCREASE, 33 COUNTER_FUNCTION_DECREASE, 34 COUNTER_FUNCTION_PULSE_DIRECTION, 35 COUNTER_FUNCTION_QUADRATURE_X1_A, 36 COUNTER_FUNCTION_QUADRATURE_X1_B, 37 COUNTER_FUNCTION_QUADRATURE_X2_A, 38 COUNTER_FUNCTION_QUADRATURE_X2_B, 39 COUNTER_FUNCTION_QUADRATURE_X4, 40 }; 41 42 /* Signal values */ 43 enum counter_signal_level { 44 COUNTER_SIGNAL_LEVEL_LOW, 45 COUNTER_SIGNAL_LEVEL_HIGH, 46 }; 47 48 /* Action mode values */ 49 enum counter_synapse_action { 50 COUNTER_SYNAPSE_ACTION_NONE, 51 COUNTER_SYNAPSE_ACTION_RISING_EDGE, 52 COUNTER_SYNAPSE_ACTION_FALLING_EDGE, 53 COUNTER_SYNAPSE_ACTION_BOTH_EDGES, 54 }; 55 56 #endif /* _UAPI_COUNTER_H_ */ 57