silabs,siwx91x-pinctrl

Vendor: Silicon Laboratories

Note

An implementation of a driver matching this compatible is available in drivers/pinctrl/pinctrl_silabs_siwx91x.c.

Description

The Silabs SiWx91x pin controller is a devicetree node tasked with selecting
the proper IO function for a given pin.

The pinctrl settings are referenced in a device tree peripheral node. For
example when configuring a UART:

  &ulpuart {
    pinctrl-0 = <&ulpuart_default>;
    pinctrl-names = "default";
  }

pinctrl-0 is a phandle that stores the pin settings for the peripheral, in
this example &ulpuart_default. This phandle is defined as a child node of the
'pinctrl' node, typically in a board-pinctrl.dtsi file in the board directory
or a device tree overlay in the application:

  &pinctrl {
    ulpuart_default: ulpuart_default {
      out {
        pinmux = <ULPUART_TX_ULP11>; /* Configure ULP pin 11 as ULPUART TX */
      };
      in {
        pinmux = <ULPUART_RX_ULP9>; /* Configure ULP pin 9 as ULPUART RX */
      };
    };
  };

The 'ulpuart_default' child node encodes the pin configurations for a
particular state of the device, the default (active) state.

Pin configurations are organized in groups within each child node. The name
given to groups is arbitrary. Each group can specify a list of pin function
selections in the `pinmux` property, as well as a selection of pin properties
as given by the rest of the properties on the group.

Properties

Top level properties

These property descriptions apply to “silabs,siwx91x-pinctrl” nodes themselves. This page also describes child node properties in the following sections.

Properties not inherited from the base binding file.

(None)

Grandchild node properties

Name

Type

Details

pinmux

array

An array of pins sharing the same group properties. The pins should be
defined using the <peripheral>_<signal>_<pin> macros available from
the SoC DeviceTree files.

This property is required.