1 /* 2 * Copyright (c) 2016 Nordic Semiconductor ASA 3 * Copyright (c) 2016 Vinayak Kariappa Chettimada 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 */ 7 8 #define RADIO_TXP_DEFAULT 0 9 10 11 typedef void (*radio_isr_cb_t) (void *param); 12 13 void isr_radio(void *arg); 14 void radio_isr_set(radio_isr_cb_t cb, void *param); 15 16 void radio_setup(void); 17 void radio_reset(void); 18 void radio_phy_set(uint8_t phy, uint8_t flags); 19 void radio_tx_power_set(uint32_t power); 20 void radio_tx_power_max_set(void); 21 void radio_freq_chan_set(uint32_t chan); 22 void radio_whiten_iv_set(uint32_t iv); 23 void radio_aa_set(const uint8_t *aa); 24 void radio_pkt_configure(uint8_t bits_len, uint8_t max_len, uint8_t flags); 25 void radio_pkt_rx_set(void *rx_packet); 26 void radio_pkt_tx_set(void *tx_packet); 27 uint32_t radio_tx_ready_delay_get(uint8_t phy, uint8_t flags); 28 uint32_t radio_tx_chain_delay_get(uint8_t phy, uint8_t flags); 29 uint32_t radio_rx_ready_delay_get(uint8_t phy, uint8_t flags); 30 uint32_t radio_rx_chain_delay_get(uint8_t phy, uint8_t flags); 31 void radio_rx_enable(void); 32 void radio_tx_enable(void); 33 void radio_disable(void); 34 35 void radio_status_reset(void); 36 uint32_t radio_is_ready(void); 37 uint32_t radio_is_done(void); 38 uint32_t radio_has_disabled(void); 39 uint32_t radio_is_idle(void); 40 41 void radio_crc_configure(uint32_t polynomial, uint32_t iv); 42 uint32_t radio_crc_is_valid(void); 43 44 void *radio_pkt_empty_get(void); 45 void *radio_pkt_scratch_get(void); 46 47 void radio_switch_complete_and_rx(uint8_t phy_rx); 48 void radio_switch_complete_and_tx(uint8_t phy_rx, uint8_t flags_rx, uint8_t phy_tx, 49 uint8_t flags_tx); 50 void radio_switch_complete_and_disable(void); 51 52 void radio_rssi_measure(void); 53 uint32_t radio_rssi_get(void); 54 void radio_rssi_status_reset(void); 55 uint32_t radio_rssi_is_ready(void); 56 57 void radio_filter_configure(uint8_t bitmask_enable, uint8_t bitmask_addr_type, 58 uint8_t *bdaddr); 59 void radio_filter_disable(void); 60 void radio_filter_status_reset(void); 61 uint32_t radio_filter_has_match(void); 62 uint32_t radio_filter_match_get(void); 63 64 void radio_bc_configure(uint32_t n); 65 void radio_bc_status_reset(void); 66 uint32_t radio_bc_has_match(void); 67 68 void radio_tmr_status_reset(void); 69 void radio_tmr_tifs_set(uint32_t tifs); 70 uint32_t radio_tmr_start(uint8_t trx, uint32_t ticks_start, uint32_t remainder); 71 uint32_t radio_tmr_start_tick(uint8_t trx, uint32_t tick); 72 void radio_tmr_start_us(uint8_t trx, uint32_t us); 73 uint32_t radio_tmr_start_now(uint8_t trx); 74 uint32_t radio_tmr_start_get(void); 75 void radio_tmr_stop(void); 76 void radio_tmr_hcto_configure(uint32_t hcto); 77 void radio_tmr_aa_capture(void); 78 uint32_t radio_tmr_aa_get(void); 79 void radio_tmr_aa_save(uint32_t aa); 80 uint32_t radio_tmr_aa_restore(void); 81 uint32_t radio_tmr_ready_get(void); 82 void radio_tmr_end_capture(void); 83 uint32_t radio_tmr_end_get(void); 84 uint32_t radio_tmr_tifs_base_get(void); 85 void radio_tmr_sample(void); 86 uint32_t radio_tmr_sample_get(void); 87 88 void radio_gpio_pa_setup(void); 89 void radio_gpio_lna_setup(void); 90 void radio_gpio_lna_on(void); 91 void radio_gpio_lna_off(void); 92 void radio_gpio_pa_lna_enable(uint32_t trx_us); 93 void radio_gpio_pa_lna_disable(void); 94 95 void *radio_ccm_rx_pkt_set(struct ccm *ccm, uint8_t phy, void *pkt); 96 void *radio_ccm_tx_pkt_set(struct ccm *ccm, void *pkt); 97 uint32_t radio_ccm_is_done(void); 98 uint32_t radio_ccm_mic_is_valid(void); 99 uint32_t radio_ccm_is_available(void); 100 101 void radio_ar_configure(uint32_t nirk, void *irk); 102 uint32_t radio_ar_match_get(void); 103 void radio_ar_status_reset(void); 104 uint32_t radio_ar_has_match(void); 105 106 uint32_t radio_sleep(void); 107 uint32_t radio_wake(void); 108 uint32_t radio_is_off(void); 109