diff options
Diffstat (limited to 'src/drivers/ao_cc115l.c')
| -rw-r--r-- | src/drivers/ao_cc115l.c | 37 | 
1 files changed, 22 insertions, 15 deletions
diff --git a/src/drivers/ao_cc115l.c b/src/drivers/ao_cc115l.c index f0f72d4d..f250e714 100644 --- a/src/drivers/ao_cc115l.c +++ b/src/drivers/ao_cc115l.c @@ -52,8 +52,8 @@ struct ao_cc115l_reg {  #if CC115L_TRACE -const static struct ao_cc115l_reg ao_cc115l_reg[]; -const static char *cc115l_state_name[]; +static const struct ao_cc115l_reg ao_cc115l_reg[]; +static const char *cc115l_state_name[];  enum ao_cc115l_trace_type {  	trace_strobe, @@ -88,6 +88,8 @@ static void trace_add(enum ao_cc115l_trace_type type, int16_t addr, int16_t valu  	case trace_strobe:  		comment = cc115l_state_name[(value >> 4) & 0x7];  		break; +	default: +		break;  	}  	trace[trace_i].type = type;  	trace[trace_i].addr = addr; @@ -197,24 +199,22 @@ ao_radio_tx_fifo_space(void)  	return CC115L_FIFO_SIZE - (ao_radio_reg_read(CC115L_TXBYTES) & CC115L_TXBYTES_NUM_TX_BYTES_MASK);  } -#if UNUSED +#if CC115L_DEBUG  static uint8_t  ao_radio_status(void)  {  	return ao_radio_strobe (CC115L_SNOP);  } -#endif -#define ao_radio_rdf_value 0x55 - -#if UNUSED  static uint8_t  ao_radio_get_marcstate(void)  {  	return ao_radio_reg_read(CC115L_MARCSTATE) & CC115L_MARCSTATE_MASK;  }  #endif -	   + +#define ao_radio_rdf_value 0x55 +  static void  ao_radio_done_isr(void)  { @@ -612,6 +612,12 @@ ao_radio_rdf_abort(void)  #define POWER_STEP	0x08 +#if HAS_RADIO_POWER +#define RADIO_POWER	ao_config.radio_power +#else +#define RADIO_POWER	0xc0 +#endif +  static void  ao_radio_stx(void)  { @@ -619,9 +625,10 @@ ao_radio_stx(void)  	ao_radio_pa_on();  	ao_radio_reg_write(CC115L_PA, 0);  	ao_radio_strobe(CC115L_STX); -	for (power = POWER_STEP; power < ao_config.radio_power; power += POWER_STEP) +	for (power = POWER_STEP; power < RADIO_POWER; power += POWER_STEP)  		ao_radio_reg_write(CC115L_PA, power); -	ao_radio_reg_write(CC115L_PA, ao_config.radio_power); +	if (power != RADIO_POWER) +		ao_radio_reg_write(CC115L_PA, RADIO_POWER);  }  static void @@ -668,8 +675,8 @@ ao_radio_test_cmd(void)  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)); +	return ((ao_gpio_get(AO_CC115L_DONE_INT_PORT, AO_CC115L_DONE_INT_PIN, AO_CC115L_DONE_INT) << 1) | +		ao_gpio_get(AO_CC115L_FIFO_INT_PORT, AO_CC115L_FIFO_INT_PIN, AO_CC115L_FIFO_INT));  }  #endif @@ -819,7 +826,7 @@ ao_radio_send_aprs(ao_radio_fill_func fill)  }  #if CC115L_DEBUG -const static char *cc115l_state_name[] = { +static const char *cc115l_state_name[] = {  	[CC115L_STATUS_STATE_IDLE] = "IDLE",  	[CC115L_STATUS_STATE_TX] = "TX",  	[CC115L_STATUS_STATE_FSTXON] = "FSTXON", @@ -828,7 +835,7 @@ const static char *cc115l_state_name[] = {  	[CC115L_STATUS_STATE_TX_FIFO_UNDERFLOW] = "TX_FIFO_UNDERFLOW",  }; -const static struct ao_cc115l_reg ao_cc115l_reg[] = { +static const struct ao_cc115l_reg ao_cc115l_reg[] = {  	{ .addr = CC115L_IOCFG2, .name = "IOCFG2" },  	{ .addr = CC115L_IOCFG1, .name = "IOCFG1" },  	{ .addr = CC115L_IOCFG0, .name = "IOCFG0" }, @@ -874,7 +881,7 @@ const static struct ao_cc115l_reg ao_cc115l_reg[] = {  static void ao_radio_show(void) {  	uint8_t	status = ao_radio_status(); -	int	i; +	unsigned int	i;  	ao_radio_get();  	status = ao_radio_status();  | 
