scsi_accel.pio.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  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. 0x309a, // 3: wait 1 gpio, 26 side 1
  19. 0x201a, // 4: wait 0 gpio, 26 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 6
  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. 0x309a, // 2: wait 1 gpio, 26 side 1
  45. 0x201a, // 3: wait 0 gpio, 26 side 0
  46. 0x5009, // 4: in pins, 9 side 1
  47. 0x5067, // 5: in null, 7 side 1
  48. 0x1042, // 6: jmp x--, 2 side 1
  49. // .wrap
  50. };
  51. #if !PICO_NO_HARDWARE
  52. static const struct pio_program scsi_accel_async_read_program = {
  53. .instructions = scsi_accel_async_read_program_instructions,
  54. .length = 7,
  55. .origin = -1,
  56. };
  57. static inline pio_sm_config scsi_accel_async_read_program_get_default_config(uint offset) {
  58. pio_sm_config c = pio_get_default_sm_config();
  59. sm_config_set_wrap(&c, offset + scsi_accel_async_read_wrap_target, offset + scsi_accel_async_read_wrap);
  60. sm_config_set_sideset(&c, 1, false, false);
  61. return c;
  62. }
  63. #endif
  64. // --------------- //
  65. // scsi_sync_write //
  66. // --------------- //
  67. #define scsi_sync_write_wrap_target 0
  68. #define scsi_sync_write_wrap 2
  69. static const uint16_t scsi_sync_write_program_instructions[] = {
  70. // .wrap_target
  71. 0x7009, // 0: out pins, 9 side 1
  72. 0x6067, // 1: out null, 7 side 0
  73. 0x5061, // 2: in null, 1 side 1
  74. // .wrap
  75. };
  76. #if !PICO_NO_HARDWARE
  77. static const struct pio_program scsi_sync_write_program = {
  78. .instructions = scsi_sync_write_program_instructions,
  79. .length = 3,
  80. .origin = -1,
  81. };
  82. static inline pio_sm_config scsi_sync_write_program_get_default_config(uint offset) {
  83. pio_sm_config c = pio_get_default_sm_config();
  84. sm_config_set_wrap(&c, offset + scsi_sync_write_wrap_target, offset + scsi_sync_write_wrap);
  85. sm_config_set_sideset(&c, 1, false, false);
  86. return c;
  87. }
  88. #endif
  89. // --------------------- //
  90. // scsi_sync_write_pacer //
  91. // --------------------- //
  92. #define scsi_sync_write_pacer_wrap_target 0
  93. #define scsi_sync_write_pacer_wrap 2
  94. static const uint16_t scsi_sync_write_pacer_program_instructions[] = {
  95. // .wrap_target
  96. 0x209a, // 0: wait 1 gpio, 26
  97. 0x201a, // 1: wait 0 gpio, 26
  98. 0x6061, // 2: out null, 1
  99. // .wrap
  100. };
  101. #if !PICO_NO_HARDWARE
  102. static const struct pio_program scsi_sync_write_pacer_program = {
  103. .instructions = scsi_sync_write_pacer_program_instructions,
  104. .length = 3,
  105. .origin = -1,
  106. };
  107. static inline pio_sm_config scsi_sync_write_pacer_program_get_default_config(uint offset) {
  108. pio_sm_config c = pio_get_default_sm_config();
  109. sm_config_set_wrap(&c, offset + scsi_sync_write_pacer_wrap_target, offset + scsi_sync_write_pacer_wrap);
  110. return c;
  111. }
  112. #endif