This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down list at the bottom of the left panel and select the desired version.


Vendor: Renesas Electronics Corporation


The SmartBond pin controller is a singleton node responsible for controlling
pin function selection and pin properties, such as routing a UART RX to pin
P1.8 and enabling the pullup resistor on that pin.

The node has the 'pinctrl' node label set in your SoC's devicetree,
so you can modify it like this:

  &pinctrl {
          /* your modifications go here */

All device pin configurations should be placed in child nodes of the
'pinctrl' node, as shown in this example:

  /* You can put this in places like a board-pinctrl.dtsi file in
   * your board directory, or a devicetree overlay in your application.

 /* include definitions and utility macros for the SoC used by the board */
 #include <dt-bindings/pinctrl/smartbond-pinctrl.h>

  &pinctrl {
    /* configuration for uart device, default state */
    uart_default: uart_default {
      /* group 1 */
      group1 {
        /* route UART TX to P0.9 */
        pinmux = <SMARTBOND_PINMUX(UART_TX, 0, 9)>;
      /* group 2 */
      group2 {
        /* route UART RX to P0.8 and enable pull-up */
        pinmux = <SMARTBOND_PINMUX(UART_RX, 0, 8)>;

The 'uart0_default' child node encodes the pin configurations for a
particular state of a device; in this case, the default (that is, active)

As shown, pin configurations are organized in groups within each child node.
Each group can specify a list of pin function selections in the 'pinmux'
property. Note that 'pinmux' property is an array so you can configure multiple
pins at once there. The SMARTBOND_PINMUX macro is used to create pinmux value.

A group can also specify shared pin properties common to all the specified
pins, such as the 'bias-pull-up' property in group 2. Here is a list of
supported standard pin properties:

- bias-pull-up: Enable pull-up resistor.
- bias-pull-down: Enable pull-down resistor.

Note that bias options are mutually exclusive.

To link this pin configuration with a device, use a pinctrl-N property
for some number N, like this example you could place in your board's DTS

   #include "board-pinctrl.dtsi"

   &uart {
         pinctrl-0 = <&uart_default>;
         pinctrl-names = "default";


Top level properties

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

Properties not inherited from the base binding file.


Grandchild node properties






enable pull-up resistor



enable pull-down resistor



enable input on pin (e.g. enable an input buffer, no effect on output)



enable output on a pin without actively driving it (e.g. enable an output



An array of pins sharing the same group properties. The pins should
be defined using the SMARTBOND_PINMUX utility macro that encodes the port,
pin and function.

This property is required.