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  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  */
18 
19 #ifndef RF69_ENUM_H
20 #define RF69_ENUM_H
21 
22 enum mode {
23 	mode_sleep,
24 	standby,
25 	synthesizer,
26 	transmit,
27 	receive
28 };
29 
30 enum modulation {
31 	OOK,
32 	FSK,
33 	UNDEF
34 };
35 
36 enum mod_shaping {
37 	SHAPING_OFF,
38 	SHAPING_1_0,
39 	SHAPING_0_5,
40 	SHAPING_0_3,
41 	SHAPING_BR,
42 	SHAPING_2BR
43 };
44 
45 enum pa_ramp {
46 	ramp3400,
47 	ramp2000,
48 	ramp1000,
49 	ramp500,
50 	ramp250,
51 	ramp125,
52 	ramp100,
53 	ramp62,
54 	ramp50,
55 	ramp40,
56 	ramp31,
57 	ramp25,
58 	ramp20,
59 	ramp15,
60 	ramp12,
61 	ramp10
62 };
63 
64 enum antenna_impedance {
65 	fifty_ohm,
66 	two_hundred_ohm
67 };
68 
69 enum lna_gain {
70 	automatic,
71 	max,
72 	max_minus_6,
73 	max_minus_12,
74 	max_minus_24,
75 	max_minus_36,
76 	max_minus_48,
77 	undefined
78 };
79 
80 enum mantisse {
81 	mantisse16,
82 	mantisse20,
83 	mantisse24
84 };
85 
86 enum threshold_decrement {
87 	dec_every8th,
88 	dec_every4th,
89 	dec_every2nd,
90 	dec_once,
91 	dec_twice,
92 	dec_4times,
93 	dec_8times,
94 	dec_16times
95 };
96 
97 enum flag {
98 	mode_switch_completed,
99 	ready_to_receive,
100 	ready_to_send,
101 	pll_locked,
102 	rssi_exceeded_threshold,
103 	timeout,
104 	automode,
105 	sync_address_match,
106 	fifo_full,
107 //	fifo_not_empty, collision with next enum; replaced by following enum...
108 	fifo_empty,
109 	fifo_level_below_threshold,
110 	fifo_overrun,
111 	packet_sent,
112 	payload_ready,
113 	crc_ok,
114 	battery_low
115 };
116 
117 enum fifo_fill_condition {
118 	after_sync_interrupt,
119 	always
120 };
121 
122 enum packet_format {
123 	packet_length_fix,
124 	packet_length_var
125 };
126 
127 enum tx_start_condition {
128 	fifo_level,
129 	fifo_not_empty
130 };
131 
132 enum address_filtering {
133 	filtering_off,
134 	node_address,
135 	node_or_broadcast_address
136 };
137 
138 enum dagc {
139 	normal_mode,
140 	improve,
141 	improve_for_low_modulation_index
142 };
143 
144 #endif
145