The latest development version of this page may be more current than this released 4.0.0 version.

raspberrypi,pico-spi-pio

Vendor: Raspberry Pi Foundation

Note

An implementation of a driver matching this compatible is available in drivers/spi/spi_rpi_pico_pio.c.

Description

These nodes are “spi” bus nodes.

Raspberry Pi Pico SPI via PIO

Properties

Properties not inherited from the base binding file.

Name

Type

Details

clk-gpios

phandle-array

Output pin for SPI clock

This property is required.

mosi-gpios

phandle-array

Output pin for Master Out Slave In.

miso-gpios

phandle-array

Input pin for Master In Slave Out.

sio-gpios

phandle-array

Single I/O gpio info

GPIO input/output pin for 3-wire mode.

clock-frequency

int

Clock frequency the SPI peripheral is being driven at, in Hz.

cs-gpios

phandle-array

An array of chip select GPIOs to use. Each element
in the array specifies a GPIO. The index in the array
corresponds to the child node that the CS gpio controls.

Example:

  spi@... {
          cs-gpios = <&gpio0 23 GPIO_ACTIVE_LOW>,
                        <&gpio1 10 GPIO_ACTIVE_LOW>,
                        ...;

          spi-device@0 {
                  reg = <0>;
                  ...
          };
          spi-device@1 {
                  reg = <1>;
                  ...
          };
          ...
  };

The child node "spi-device@0" specifies a SPI device with
chip select controller gpio0, pin 23, and devicetree
GPIO flags GPIO_ACTIVE_LOW. Similarly, "spi-device@1" has CS GPIO
controller gpio1, pin 10, and flags GPIO_ACTIVE_LOW. Additional
devices can be configured in the same way.

If unsure about the flags cell, GPIO_ACTIVE_LOW is generally a safe
choice for a typical "CSn" pin. GPIO_ACTIVE_HIGH may be used if
intervening hardware inverts the signal to the peripheral device or
the line itself is active high.

If this property is not defined, no chip select GPIOs are set.
SPI controllers with dedicated CS pins do not need to define
the cs-gpios property.

overrun-character

int

The overrun character (ORC) is used when all bytes from the TX buffer
are sent, but the transfer continues due to RX.

pinctrl-0

phandles

Pin configuration/s for the first state. Content is specific to the
selected pin controller driver implementation.

pinctrl-1

phandles

Pin configuration/s for the second state. See pinctrl-0.

pinctrl-2

phandles

Pin configuration/s for the third state. See pinctrl-0.

pinctrl-3

phandles

Pin configuration/s for the fourth state. See pinctrl-0.

pinctrl-4

phandles

Pin configuration/s for the fifth state. See pinctrl-0.

pinctrl-names

string-array

Names for the provided states. The number of names needs to match the
number of states.

resets

phandle-array

Reset information

reset-names

string-array

Name of each reset