buttons.h 942 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // TODO: add copyright
  2. //
  3. //
  4. #include <stdint.h>
  5. #include "config.h"
  6. typedef struct {
  7. uint32_t inc_f1;
  8. uint32_t dec_f1;
  9. uint32_t inc_d1;
  10. uint32_t dec_d1;
  11. uint32_t inc_d2;
  12. uint32_t dec_d2;
  13. uint32_t inc_ph2;
  14. uint32_t dec_ph2;
  15. uint32_t inc_f3;
  16. uint32_t dec_f3;
  17. uint32_t inc_d3;
  18. uint32_t dec_d3;
  19. uint32_t inc_ph3;
  20. uint32_t dec_ph3;
  21. uint32_t inc_n3;
  22. uint32_t dec_n3;
  23. } button_regs_t __attribute__((packed,aligned(4)));
  24. typedef struct {
  25. int16_t dt_f1;
  26. int16_t dt_d1;
  27. int16_t dt_d2;
  28. int16_t dt_ph2;
  29. int16_t dt_f3;
  30. int16_t dt_d3;
  31. int16_t dt_ph3;
  32. int16_t dt_n3;
  33. } button_deltas_t;
  34. typedef struct {
  35. union {
  36. uint32_t data[16];
  37. button_regs_t regs;
  38. };
  39. } wb_mailbox_button_regs_t __attribute__((packed,aligned(4)));
  40. // READONLY
  41. static volatile wb_mailbox_button_regs_t * const mailbox_button_regs = (void*)(MAILBOX_BUTTONS_BASE);