scsi_accel.pio.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // -------------------------------------------------- //
  2. // This file is autogenerated by pioasm; do not edit! //
  3. // -------------------------------------------------- //
  4. #pragma once
  5. #if !PICO_NO_HARDWARE
  6. #include "hardware/pio.h"
  7. #endif
  8. // ---------------------- //
  9. // scsi_accel_async_write //
  10. // ---------------------- //
  11. #define scsi_accel_async_write_wrap_target 0
  12. #define scsi_accel_async_write_wrap 4
  13. static const uint16_t scsi_accel_async_write_program_instructions[] = {
  14. // .wrap_target
  15. 0x90e0, // 0: pull ifempty block side 1
  16. 0x7009, // 1: out pins, 9 side 1
  17. 0x7567, // 2: out null, 7 side 1 [5]
  18. 0x308a, // 3: wait 1 gpio, 10 side 1
  19. 0x200a, // 4: wait 0 gpio, 10 side 0
  20. // .wrap
  21. };
  22. #if !PICO_NO_HARDWARE
  23. static const struct pio_program scsi_accel_async_write_program = {
  24. .instructions = scsi_accel_async_write_program_instructions,
  25. .length = 5,
  26. .origin = -1,
  27. };
  28. static inline pio_sm_config scsi_accel_async_write_program_get_default_config(uint offset) {
  29. pio_sm_config c = pio_get_default_sm_config();
  30. sm_config_set_wrap(&c, offset + scsi_accel_async_write_wrap_target, offset + scsi_accel_async_write_wrap);
  31. sm_config_set_sideset(&c, 1, false, false);
  32. return c;
  33. }
  34. #endif
  35. // --------------------- //
  36. // scsi_accel_async_read //
  37. // --------------------- //
  38. #define scsi_accel_async_read_wrap_target 0
  39. #define scsi_accel_async_read_wrap 7
  40. static const uint16_t scsi_accel_async_read_program_instructions[] = {
  41. // .wrap_target
  42. 0x90a0, // 0: pull block side 1
  43. 0xb027, // 1: mov x, osr side 1
  44. 0x308a, // 2: wait 1 gpio, 10 side 1
  45. 0x200a, // 3: wait 0 gpio, 10 side 0
  46. 0x5009, // 4: in pins, 9 side 1
  47. 0x5067, // 5: in null, 7 side 1
  48. 0x9060, // 6: push iffull block side 1
  49. 0x1042, // 7: jmp x--, 2 side 1
  50. // .wrap
  51. };
  52. #if !PICO_NO_HARDWARE
  53. static const struct pio_program scsi_accel_async_read_program = {
  54. .instructions = scsi_accel_async_read_program_instructions,
  55. .length = 8,
  56. .origin = -1,
  57. };
  58. static inline pio_sm_config scsi_accel_async_read_program_get_default_config(uint offset) {
  59. pio_sm_config c = pio_get_default_sm_config();
  60. sm_config_set_wrap(&c, offset + scsi_accel_async_read_wrap_target, offset + scsi_accel_async_read_wrap);
  61. sm_config_set_sideset(&c, 1, false, false);
  62. return c;
  63. }
  64. #endif