altos: Remove ao_radio_gpio_bits from normal build
[fw/altos] / src / drivers / ao_cc115l.c
index 9a4908b501d0030b7f9a2fd169a2bf7bb51d72a3..56afc3c75229c98aed314f1a92eca82ae4b6ed69 100644 (file)
@@ -23,7 +23,7 @@
 
 #define AO_RADIO_MAX_SEND      sizeof (struct ao_telemetry_generic)
 
-static uint8_t ao_radio_mutex;
+uint8_t ao_radio_mutex;
 
 static uint8_t ao_radio_fifo;          /* fifo drained interrupt received */
 static uint8_t ao_radio_done;          /* tx done interrupt received */
@@ -328,11 +328,13 @@ static const uint16_t rdf_setup[] = {
 };
 
 /*
- * APRS deviation is the same as RDF
+ * APRS deviation is 3kHz
+ *
+ * 26e6 / (2 ** 17) * (8 + 7) * (2 ** 0) = 2975
  */
 
-#define APRS_DEV_E     RDF_DEV_E
-#define APRS_DEV_M     RDF_DEV_M
+#define APRS_DEV_E     0
+#define APRS_DEV_M     7
 
 /*
  * For our APRS beacon, set the symbol rate to 9.6kBaud (8x oversampling for 1200 baud data rate)
@@ -442,15 +444,10 @@ static const uint16_t radio_setup[] = {
        AO_CC115L_DONE_INT_GPIO_IOCFG,      CC115L_IOCFG_GPIO_CFG_PA_PD | (1 << CC115L_IOCFG_GPIO_INV),
 
         CC115L_FIFOTHR,                     0x47,       /* TX FIFO Thresholds */
-        CC115L_FREQ2,                       0x10,       /* Frequency Control Word, High Byte */
-        CC115L_FREQ1,                       0xb6,       /* Frequency Control Word, Middle Byte */
-        CC115L_FREQ0,                       0xa5,       /* Frequency Control Word, Low Byte */
-        CC115L_MDMCFG2,                     0x13,       /* Modem Configuration */
        CC115L_MDMCFG1,                     (0x00 |
                                             (CC115L_MDMCFG1_NUM_PREAMBLE_4 << CC115L_MDMCFG1_NUM_PREAMBLE) |
                                             (1 << CC115L_MDMCFG1_CHANSPC_E)),
        CC115L_MDMCFG0,                     248,        /* Channel spacing M value (100kHz channels) */
-        CC115L_DEVIATN,                     0x35,       /* Modem Deviation Setting */
         CC115L_MCSM0,                       0x38,       /* Main Radio Control State Machine Configuration */
         CC115L_RESERVED_0X20,               0xfb,       /* Use setting from SmartRF Studio */
         CC115L_FSCAL3,                      0xe9,       /* Frequency Synthesizer Calibration */
@@ -460,7 +457,6 @@ static const uint16_t radio_setup[] = {
         CC115L_TEST2,                       0x81,       /* Various Test Settings */
         CC115L_TEST1,                       0x35,       /* Various Test Settings */
         CC115L_TEST0,                       0x09,       /* Various Test Settings */
-       CC115L_PA,                          0x00,       /* Power setting (as low as possible) */
 };
 
 static uint8_t ao_radio_configured = 0;
@@ -638,7 +634,7 @@ ao_radio_test_cmd(void)
 #endif
                ao_radio_get();
                ao_radio_set_len(0xff);
-               ao_radio_set_mode(AO_RADIO_MODE_PACKET_TX | AO_RADIO_MODE_BITS_FIXED);
+               ao_radio_set_mode(AO_RADIO_MODE_RDF|AO_RADIO_MODE_BITS_FIXED);
                ao_radio_strobe(CC115L_SFTX);
                ao_radio_pa_on();
                ao_radio_strobe(CC115L_STX);
@@ -659,12 +655,14 @@ ao_radio_test_cmd(void)
        }
 }
 
+#if CC115L_TRACE
 static inline int16_t
 ao_radio_gpio_bits(void)
 {
        return AO_CC115L_DONE_INT_PORT->idr & ((1 << AO_CC115L_FIFO_INT_PIN) |
                                               (1 << AO_CC115L_DONE_INT_PIN));
 }
+#endif
 
 static void
 ao_radio_wait_fifo(void)