st,stm32f1-pinctrl

Vendor: STMicroelectronics

Description

STM32 Pin controller Node

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.

(None)

Properties inherited from the base binding file, which defines common properties that may be set on many nodes. Not all of these may apply to the “st,stm32f1-pinctrl” compatible.

Name

Type

Details

reg

array

register space

This property is required.

See Important properties for more information.

status

string

indicates the operational status of a device

Legal values: 'ok', 'okay', 'disabled', 'reserved', 'fail', 'fail-sss'

See Important properties for more information.

compatible

string-array

compatible strings

This property is required.

See Important properties for more information.

reg-names

string-array

name of each register space

interrupts

array

interrupts for device

See Important properties for more information.

interrupts-extended

compound

extended interrupt specifier for device

interrupt-names

string-array

name of each interrupt

interrupt-parent

phandle

phandle to interrupt controller node

label

string

Human readable string describing the device (used as device_get_binding() argument)

See Important properties for more information.

clocks

phandle-array

Clock gate information

clock-names

string-array

name of each clock

#address-cells

int

number of address cells in reg property

#size-cells

int

number of size cells in reg property

dmas

phandle-array

DMA channels specifiers

dma-names

string-array

Provided names of DMA channel specifiers

io-channels

phandle-array

IO channels specifiers

io-channel-names

string-array

Provided names of IO channel specifiers

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
- 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/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)>;
};

This property is required.

bias-disable

boolean

Pin bias (push-pull) disabled. This is the default pin configuration and will be applied if no bias- property is specified. Only available in input mode ("floating" configuration).

bias-pull-down

boolean

Weak pull down resistor enabled. Not compatible with output configuration modes (atlernate or general purpose output).

bias-pull-up

boolean

Weak pull up resistor enabled. Not compatible with output configuration modes (atlernate or general purpose output).

drive-push-pull

boolean

Pin driven actively high and low. This is the default pin configueration and will be applied if no drive- property is specified. Only valid for output configuration modes.

drive-open-drain

boolean

Pin driven in open drain. Only valid for output configuration modes.

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'