63 GPIO_Port_TypeDef gpio_port;
67 TIMER_TypeDef *rx_timer;
68 USART_TypeDef *tx_usart;
77 sl_sleeptimer_timer_handle_t rx_timeout_timer;
84 uint16_t host_pulse_period_half;
85 uint16_t target_pulse_period_half;
86 uint16_t bus_idle_period;
89 unsigned int rx_dma_channel;
90 uint16_t rx_edge_timings[2][EDGES_PER_BYTE + 2];
91 LDMA_TransferCfg_t rx_config;
92 LDMA_Descriptor_t rx_descriptors[2];
93 uint8_t rx_current_buffer;
96 unsigned int tx_dma_channel;
97 uint8_t tx_encoded_bytes[2][CHIPS_PER_BIT];
98 LDMA_TransferCfg_t tx_config;
99 LDMA_Descriptor_t tx_descriptors[3];
100 uint8_t tx_initial_buffer;
101 uint8_t tx_current_buffer;
102 uint8_t tx_buffered_bytes;
int joybus_gecko_init(struct joybus_gecko *gecko_bus, GPIO_Port_TypeDef port, uint8_t pin, TIMER_TypeDef *rx_timer, USART_TypeDef *tx_usart)
Initialize a Gecko Joybus instance.
Definition joybus.c:790
void(* joybus_transfer_cb_t)(struct joybus *bus, int result, void *user_data)
Function type for transfer completion callbacks.
Definition bus.h:44