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 menu on the left and select the desired version.

st,stm32f1-pinctrl

Vendor: STMicroelectronics

Description

STM32F1 Pin controller Node
Based on pincfg-node.yaml binding.

Note: `bias-disable` and `drive-push-pull` are default pin configurations.
       They will be applied in case no `bias-foo` or `driver-bar` properties
       are set.

Properties

Top level properties

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

Properties not inherited from the base binding file.

Name

Type

Details

swj-cfg

string

Configures number of pins assigned to the SWJ debug port.

* full         - Full SWJ (JTAG-DP + SW-DP).
* no-njtrst    - Full SWJ (JTAG-DP + SW-DP) but without NJTRST.
                 Releases: PB4.
* jtag-disable - JTAG-DP Disabled and SW-DP Enabled.
                 Releases: PA15 PB3 PB4.
* disable      - JTAG-DP Disabled and SW-DP Disabled.
                 Releases: PA13 PA14 PA15 PB3 PB4.

If absent, then Full SWJ (JTAG-DP + SW-DP) is used (reset state).

Default value: full

Legal values: 'full', 'no-njtrst', 'jtag-disable', 'disable'

Child node properties

Name

Type

Details

pinmux

int

Adapted from https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.yaml
Integer array, represents gpio pin number and mux setting.
These defines are calculated as: ((port * 16 + line) << 8) | (function << 6) | remap)
With:
- port: The gpio port index (PA = 0, PB = 1, ..., PK = 11)
- line: The line offset within the port (PA0 = 0, PA1 = 1, ..., PA15 = 15)
- function: The configuration mode, can be:
* 0 : Alternate function output
* 1 : Input
* 2 : Analog
* 3 : GPIO output
In case selected pin function is GPIO output, pin is statically configured as
a plain output GPIO, which configuration can be set by adding 'ouptut-low' or
'output-high' properties to the pinctrl configuration. Default is output-low.
- remap: The pin remapping configuration. It allows to assign the pin
function to a different peripheral. Remain configuration can be:
* 0 : No remap
* 1 : Partial remap 1
* 2 : Partial remap 2
* 3 : Partial remap 3
* 4 : Full remap
To simplify the usage, macro is available to generate "pinmux" field.
This macro is available here:
  -include/zephyr/dt-bindings/pinctrl/stm32f1-pinctrl.h
Some examples of macro usage:
   GPIO A9 set as alernate with no remap
... {
         pinmux = <STM32F1_PINMUX('A', 9, ALTERNATE, REMAP_NO)>;
};
   GPIO A9 set as alernate with full remap
... {
         pinmux = <STM32F1_PINMUX('A', 9, ALTERNATE, REMAP_FULL)>;
};
   GPIO A9 set as input
... {
         pinmux = <STM32F1_PINMUX('A', 9, GPIO_IN, REMAP_NO)>;
};
   GPIO A9 set as output-high
... {
         pinmux = <STM32F1_PINMUX('A', 9, GPIO_OUT, REMAP_NO)>;
         output-high;
};

This property is required.

slew-rate

string

Pin output mode, maximum achievable speed. Only applies to
output mode (alternate).

Default value: max-speed-10mhz

Legal values: 'max-speed-10mhz', 'max-speed-2mhz', 'max-speed-50mhz'

bias-disable

boolean

disable any pin bias

bias-pull-up

boolean

enable pull-up resistor

bias-pull-down

boolean

enable pull-down resistor

drive-push-pull

boolean

drive actively high and low

drive-open-drain

boolean

drive with open drain (hardware AND)

output-low

boolean

set the pin to output mode with low level

output-high

boolean

set the pin to output mode with high level