// -------------------------------------------------- // // This file is autogenerated by pioasm; do not edit! // // -------------------------------------------------- // #pragma once #if !PICO_NO_HARDWARE #include "hardware/pio.h" #endif // ------------ // // sdio_cmd_clk // // ------------ // #define sdio_cmd_clk_wrap_target 0 #define sdio_cmd_clk_wrap 17 static const uint16_t sdio_cmd_clk_program_instructions[] = { // .wrap_target 0xbbe3, // 0: mov osr, null side 1 [11] 0xac4d, // 1: mov y, !status side 0 [12] 0x1b61, // 2: jmp !y, 1 side 1 [11] 0x6c60, // 3: out null, 32 side 0 [12] 0x7b28, // 4: out x, 8 side 1 [11] 0xec01, // 5: set pins, 1 side 0 [12] 0xfb81, // 6: set pindirs, 1 side 1 [11] 0x6c01, // 7: out pins, 1 side 0 [12] 0x1b47, // 8: jmp x--, 7 side 1 [11] 0xec80, // 9: set pindirs, 0 side 0 [12] 0x7b28, // 10: out x, 8 side 1 [11] 0xac42, // 11: nop side 0 [12] 0x1b31, // 12: jmp !x, 17 side 1 [11] 0xac42, // 13: nop side 0 [12] 0x1bcd, // 14: jmp pin, 13 side 1 [11] 0x4c01, // 15: in pins, 1 side 0 [12] 0x1b4f, // 16: jmp x--, 15 side 1 [11] 0x8c20, // 17: push block side 0 [12] // .wrap }; #if !PICO_NO_HARDWARE static const struct pio_program sdio_cmd_clk_program = { .instructions = sdio_cmd_clk_program_instructions, .length = 18, .origin = -1, }; static inline pio_sm_config sdio_cmd_clk_program_get_default_config(uint offset) { pio_sm_config c = pio_get_default_sm_config(); sm_config_set_wrap(&c, offset + sdio_cmd_clk_wrap_target, offset + sdio_cmd_clk_wrap); sm_config_set_sideset(&c, 1, false, false); return c; } #endif // ------------ // // sdio_data_rx // // ------------ // #define sdio_data_rx_wrap_target 2 #define sdio_data_rx_wrap 3 static const uint16_t sdio_data_rx_program_instructions[] = { 0xa048, // 0: mov y, !pins 0x0060, // 1: jmp !y, 0 // .wrap_target 0x2092, // 2: wait 1 gpio, 18 0x4004, // 3: in pins, 4 // .wrap }; #if !PICO_NO_HARDWARE static const struct pio_program sdio_data_rx_program = { .instructions = sdio_data_rx_program_instructions, .length = 4, .origin = -1, }; static inline pio_sm_config sdio_data_rx_program_get_default_config(uint offset) { pio_sm_config c = pio_get_default_sm_config(); sm_config_set_wrap(&c, offset + sdio_data_rx_wrap_target, offset + sdio_data_rx_wrap); return c; } #endif // ------------ // // sdio_data_tx // // ------------ // #define sdio_data_tx_wrap_target 0 #define sdio_data_tx_wrap 1 static const uint16_t sdio_data_tx_program_instructions[] = { // .wrap_target 0x2012, // 0: wait 0 gpio, 18 0x6004, // 1: out pins, 4 // .wrap }; #if !PICO_NO_HARDWARE static const struct pio_program sdio_data_tx_program = { .instructions = sdio_data_tx_program_instructions, .length = 2, .origin = -1, }; static inline pio_sm_config sdio_data_tx_program_get_default_config(uint offset) { pio_sm_config c = pio_get_default_sm_config(); sm_config_set_wrap(&c, offset + sdio_data_tx_wrap_target, offset + sdio_data_tx_wrap); return c; } #endif