Lines Matching refs:pio_sm
47 size_t pio_sm; member
195 return ((data->pio->sm[data->pio_sm].addr == data->pio_tx_offset) && in spi_pico_pio_sm_complete()
196 pio_sm_is_tx_fifo_empty(data->pio, data->pio_sm)); in spi_pico_pio_sm_complete()
297 rc = pio_rpi_pico_allocate_sm(dev_cfg->piodev, &data->pio_sm); in spi_pico_pio_configure()
335 pio_sm_set_pindirs_with_mask(data->pio, data->pio_sm, in spi_pico_pio_configure()
338 pio_sm_set_pins_with_mask(data->pio, data->pio_sm, 0, in spi_pico_pio_configure()
343 pio_sm_init(data->pio, data->pio_sm, data->pio_tx_offset, &sm_config); in spi_pico_pio_configure()
344 pio_sm_set_enabled(data->pio, data->pio_sm, true); in spi_pico_pio_configure()
401 pio_sm_set_consecutive_pindirs(data->pio, data->pio_sm, miso->pin, 1, false); in spi_pico_pio_configure()
402 pio_sm_set_pindirs_with_mask(data->pio, data->pio_sm, in spi_pico_pio_configure()
405 pio_sm_set_pins_with_mask(data->pio, data->pio_sm, (cpol << clk->pin), in spi_pico_pio_configure()
411 pio_sm_init(data->pio, data->pio_sm, data->pio_tx_offset, &sm_config); in spi_pico_pio_configure()
412 pio_sm_set_enabled(data->pio, data->pio_sm, true); in spi_pico_pio_configure()
432 pio_sm_clear_fifos(data->pio, data->pio_sm); in spi_pico_pio_txrx_4_wire()
436 while ((!pio_sm_is_tx_fifo_full(data->pio, data->pio_sm)) && in spi_pico_pio_txrx_4_wire()
446 spi_pico_pio_sm_put32(data->pio, data->pio_sm, txrx); in spi_pico_pio_txrx_4_wire()
453 spi_pico_pio_sm_put16(data->pio, data->pio_sm, txrx); in spi_pico_pio_txrx_4_wire()
460 spi_pico_pio_sm_put8(data->pio, data->pio_sm, txrx); in spi_pico_pio_txrx_4_wire()
471 while ((!pio_sm_is_rx_fifo_empty(data->pio, data->pio_sm)) && in spi_pico_pio_txrx_4_wire()
475 txrx = spi_pico_pio_sm_get32(data->pio, data->pio_sm); in spi_pico_pio_txrx_4_wire()
484 txrx = spi_pico_pio_sm_get16(data->pio, data->pio_sm); in spi_pico_pio_txrx_4_wire()
493 txrx = spi_pico_pio_sm_get8(data->pio, data->pio_sm); in spi_pico_pio_txrx_4_wire()
527 pio_sm_set_enabled(data->pio, data->pio_sm, false); in spi_pico_pio_txrx_3_wire()
528 pio_sm_set_wrap(data->pio, data->pio_sm, in spi_pico_pio_txrx_3_wire()
532 pio_sm_clear_fifos(data->pio, data->pio_sm); in spi_pico_pio_txrx_3_wire()
533 pio_sm_set_pindirs_with_mask(data->pio, data->pio_sm, BIT(sio_pin), BIT(sio_pin)); in spi_pico_pio_txrx_3_wire()
534 pio_sm_restart(data->pio, data->pio_sm); in spi_pico_pio_txrx_3_wire()
535 pio_sm_clkdiv_restart(data->pio, data->pio_sm); in spi_pico_pio_txrx_3_wire()
536 pio_sm_exec(data->pio, data->pio_sm, pio_encode_jmp(data->pio_tx_offset)); in spi_pico_pio_txrx_3_wire()
537 pio_sm_set_enabled(data->pio, data->pio_sm, true); in spi_pico_pio_txrx_3_wire()
541 while ((!pio_sm_is_tx_fifo_full(data->pio, data->pio_sm)) && in spi_pico_pio_txrx_3_wire()
547 spi_pico_pio_sm_put32(data->pio, data->pio_sm, txrx); in spi_pico_pio_txrx_3_wire()
552 spi_pico_pio_sm_put16(data->pio, data->pio_sm, txrx); in spi_pico_pio_txrx_3_wire()
557 spi_pico_pio_sm_put8(data->pio, data->pio_sm, txrx); in spi_pico_pio_txrx_3_wire()
569 while ((!pio_sm_is_tx_fifo_empty(data->pio, data->pio_sm)) || in spi_pico_pio_txrx_3_wire()
575 pio_sm_set_enabled(data->pio, data->pio_sm, false); in spi_pico_pio_txrx_3_wire()
576 pio_sm_set_wrap(data->pio, data->pio_sm, data->pio_rx_wrap_target, in spi_pico_pio_txrx_3_wire()
578 pio_sm_clear_fifos(data->pio, data->pio_sm); in spi_pico_pio_txrx_3_wire()
579 pio_sm_set_pindirs_with_mask(data->pio, data->pio_sm, 0, BIT(sio_pin)); in spi_pico_pio_txrx_3_wire()
580 pio_sm_restart(data->pio, data->pio_sm); in spi_pico_pio_txrx_3_wire()
581 pio_sm_clkdiv_restart(data->pio, data->pio_sm); in spi_pico_pio_txrx_3_wire()
582 pio_sm_put(data->pio, data->pio_sm, (rx_size * data->bits) - 1); in spi_pico_pio_txrx_3_wire()
583 pio_sm_exec(data->pio, data->pio_sm, pio_encode_jmp(data->pio_rx_offset)); in spi_pico_pio_txrx_3_wire()
584 pio_sm_set_enabled(data->pio, data->pio_sm, true); in spi_pico_pio_txrx_3_wire()
587 while ((!pio_sm_is_rx_fifo_empty(data->pio, data->pio_sm)) && in spi_pico_pio_txrx_3_wire()
592 txrx = spi_pico_pio_sm_get32(data->pio, data->pio_sm); in spi_pico_pio_txrx_3_wire()
597 txrx = spi_pico_pio_sm_get16(data->pio, data->pio_sm); in spi_pico_pio_txrx_3_wire()
602 txrx = spi_pico_pio_sm_get8(data->pio, data->pio_sm); in spi_pico_pio_txrx_3_wire()