Skip to content

rp2xxx: PIO: Support more directives #737

@Grazfather

Description

@Grazfather

From 11.3.1 in the RP2350 [datasheet](https://pip-assets.raspberrypi.com/categories/1214-rp2350/documents/RP-008373-DS-2-rp2350-datasheet.pdf?disposition=inline]:

.define (PUBLIC) <symbol> <value>
.clock_div <divider>
.fifo <fifo_config>
.mov_status rxfifo < <n>
.mov_status txfifo < <n>
.mov_status irq <(prev|next)> set <n>
.in <count> (left|right) (auto) (<threshold>)
.program <name>
.origin <offset>
.out <count> (left|right) (auto) (<threshold>)
.pio_version <version>
.set <count>
.side_set <count> (opt) (pindirs)
.wrap_target
.wrap
.lang_opt <lang> <name> <option>
.word <value>

Many of these are new to rp2350.

Also, some seem redundant: e.g. What is the purpose of .set <count> if we are setting it explicitly in SET_COUNT?

I noticed this when I found the bug fixed in #736: whether side set is optional is ONLY set in the directive, but the count is set twice, once in the program, once when setting up pins with PinMappingOptions. I don't know if we do anything with the value collected from the directive.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions