12#include <hardware/pio.h>
15#include <joybus/bus.h>
20#define JOYBUS_RP2XXX(bus) ((struct joybus_rp2xxx *)(bus))
45 alarm_id_t rx_timeout_alarm;
50 absolute_time_t last_transfer_time;
51 alarm_id_t transfer_start_alarm;
int joybus_rp2xxx_init(struct joybus_rp2xxx *rp2xxx_bus, struct joybus_rp2xxx_config config)
Initialize a RP2xxx Joybus instance.
Definition joybus.c:399
static struct joybus_rp2xxx_config joybus_rp2xxx_config_default(uint8_t gpio)
Build a RP2xxx config with default values.
Definition rp2xxx.h:82
void(* joybus_transfer_cb)(struct joybus *bus, int status, void *user_data)
Function type for transfer completion callbacks.
Definition bus.h:88
#define JOYBUS_FREQ_NOMINAL
Nominal Joybus frequency, matching an OEM N64/GameCube controller.
Definition bus.h:17
Configuration for a RP2xxx Joybus instance.
Definition rp2xxx.h:65
uint8_t gpio
GPIO pin to use for the Joybus data line.
Definition rp2xxx.h:67
uint32_t freq
Transmit frequency, in Hz.
Definition rp2xxx.h:73
PIO pio
PIO instance to use (eg. pio0 or pio1)
Definition rp2xxx.h:70
A RP2xxx Joybus instance.
Definition rp2xxx.h:57
A Joybus instance.
Definition bus.h:108