1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * enumerations for HopeRf rf69 radio module
4  *
5  * Copyright (C) 2016 Wolf-Entwicklungen
6  *	Marcus Wolf <linux@wolf-entwicklungen.de>
7  */
8 
9 #ifndef RF69_ENUM_H
10 #define RF69_ENUM_H
11 
12 enum mode {
13 	mode_sleep,
14 	standby,
15 	synthesizer,
16 	transmit,
17 	receive
18 };
19 
20 enum modulation {
21 	OOK,
22 	FSK,
23 	UNDEF
24 };
25 
26 enum mod_shaping {
27 	SHAPING_OFF,
28 	SHAPING_1_0,
29 	SHAPING_0_5,
30 	SHAPING_0_3,
31 	SHAPING_BR,
32 	SHAPING_2BR
33 };
34 
35 enum pa_ramp {
36 	ramp3400,
37 	ramp2000,
38 	ramp1000,
39 	ramp500,
40 	ramp250,
41 	ramp125,
42 	ramp100,
43 	ramp62,
44 	ramp50,
45 	ramp40,
46 	ramp31,
47 	ramp25,
48 	ramp20,
49 	ramp15,
50 	ramp12,
51 	ramp10
52 };
53 
54 enum antenna_impedance {
55 	fifty_ohm,
56 	two_hundred_ohm
57 };
58 
59 enum lna_gain {
60 	automatic,
61 	max,
62 	max_minus_6,
63 	max_minus_12,
64 	max_minus_24,
65 	max_minus_36,
66 	max_minus_48,
67 	undefined
68 };
69 
70 enum mantisse {
71 	mantisse16,
72 	mantisse20,
73 	mantisse24
74 };
75 
76 enum threshold_decrement {
77 	dec_every8th,
78 	dec_every4th,
79 	dec_every2nd,
80 	dec_once,
81 	dec_twice,
82 	dec_4times,
83 	dec_8times,
84 	dec_16times
85 };
86 
87 enum fifo_fill_condition {
88 	after_sync_interrupt,
89 	always
90 };
91 
92 enum packet_format {
93 	/*
94 	 * Used when the size of payload is fixed in advance. This mode of
95 	 * operation may be of interest to minimize RF overhead by 1 byte as
96 	 * no length byte field is required
97 	 */
98 	packet_length_fix,
99 	/*
100 	 * Used when the size of payload isn't known in advance. It requires the
101 	 * transmitter to send the length byte in each packet so the receiver
102 	 * would know how to operate properly
103 	 */
104 	packet_length_var
105 };
106 
107 enum tx_start_condition {
108 	/* the number of bytes in the FIFO exceeds FIFO_THRESHOLD */
109 	fifo_level,
110 	/* at least one byte in the FIFO */
111 	fifo_not_empty
112 };
113 
114 enum address_filtering {
115 	filtering_off,
116 	node_address,
117 	node_or_broadcast_address
118 };
119 
120 enum dagc {
121 	normal_mode,
122 	improve,
123 	improve_for_low_modulation_index
124 };
125 
126 #endif
127