42 GPIO_Port_TypeDef gpio_port;
46 TIMER_TypeDef *rx_timer;
47 USART_TypeDef *tx_usart;
56 sl_sleeptimer_timer_handle_t rx_timeout_timer;
63 uint16_t host_pulse_period_half;
64 uint16_t target_pulse_period_half;
65 uint16_t bus_idle_period;
68 unsigned int rx_dma_channel;
69 uint16_t rx_edge_timings[2][EDGES_PER_BYTE + 2];
70 LDMA_TransferCfg_t rx_config;
71 LDMA_Descriptor_t rx_descriptors[2];
72 uint8_t rx_current_buffer;
75 unsigned int tx_dma_channel;
76 uint8_t tx_encoded_bytes[2][CHIPS_PER_BIT];
77 LDMA_TransferCfg_t tx_config;
78 LDMA_Descriptor_t tx_descriptors[3];
79 uint8_t tx_initial_buffer;
80 uint8_t tx_current_buffer;
81 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:766
void(* joybus_transfer_cb)(struct joybus *bus, int status, void *user_data)
Function type for transfer completion callbacks.
Definition bus.h:74