:orphan:
.. raw:: html
.. dtcompatible:: st,stm32f1-pinctrl
.. _dtbinding_st_stm32f1_pinctrl:
st,stm32f1-pinctrl
##################
Vendor: :ref:`STMicroelectronics `
Description
***********
.. code-block:: none
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.
.. tabs::
.. group-tab:: Node specific properties
Properties not inherited from the base binding file.
(None)
.. group-tab:: Deprecated node specific properties
Deprecated properties not inherited from the base binding file.
(None)
.. group-tab:: Base properties
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.
.. list-table::
:widths: 1 1 4
:header-rows: 1
* - Name
- Type
- Details
* - ``reg``
- ``array``
- .. code-block:: none
register space
This property is **required**.
See :ref:`zephyr:dt-important-props` for more information.
* - ``status``
- ``string``
- .. code-block:: none
indicates the operational status of a device
Legal values: ``'ok'``, ``'okay'``, ``'disabled'``, ``'reserved'``, ``'fail'``, ``'fail-sss'``
See :ref:`zephyr:dt-important-props` for more information.
* - ``compatible``
- ``string-array``
- .. code-block:: none
compatible strings
This property is **required**.
See :ref:`zephyr:dt-important-props` for more information.
* - ``reg-names``
- ``string-array``
- .. code-block:: none
name of each register space
* - ``interrupts``
- ``array``
- .. code-block:: none
interrupts for device
See :ref:`zephyr:dt-important-props` for more information.
* - ``interrupts-extended``
- ``compound``
- .. code-block:: none
extended interrupt specifier for device
* - ``interrupt-names``
- ``string-array``
- .. code-block:: none
name of each interrupt
* - ``interrupt-parent``
- ``phandle``
- .. code-block:: none
phandle to interrupt controller node
* - ``label``
- ``string``
- .. code-block:: none
Human readable string describing the device (used as device_get_binding() argument)
See :ref:`zephyr:dt-important-props` for more information.
* - ``clocks``
- ``phandle-array``
- .. code-block:: none
Clock gate information
* - ``clock-names``
- ``string-array``
- .. code-block:: none
name of each clock
* - ``#address-cells``
- ``int``
- .. code-block:: none
number of address cells in reg property
* - ``#size-cells``
- ``int``
- .. code-block:: none
number of size cells in reg property
* - ``dmas``
- ``phandle-array``
- .. code-block:: none
DMA channels specifiers
* - ``dma-names``
- ``string-array``
- .. code-block:: none
Provided names of DMA channel specifiers
* - ``io-channels``
- ``phandle-array``
- .. code-block:: none
IO channels specifiers
* - ``io-channel-names``
- ``string-array``
- .. code-block:: none
Provided names of IO channel specifiers
Child node properties
=====================
.. list-table::
:widths: 1 1 4
:header-rows: 1
* - Name
- Type
- Details
* - ``pinmux``
- ``int``
- .. code-block:: none
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 = ;
};
GPIO A9 set as alernate with full remap
... {
pinmux = ;
};
GPIO A9 set as input
... {
pinmux = ;
};
This property is **required**.
* - ``bias-disable``
- ``boolean``
- .. code-block:: none
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``
- .. code-block:: none
Weak pull down resistor enabled. Not compatible with output configuration modes (atlernate or general purpose output).
* - ``bias-pull-up``
- ``boolean``
- .. code-block:: none
Weak pull up resistor enabled. Not compatible with output configuration modes (atlernate or general purpose output).
* - ``drive-push-pull``
- ``boolean``
- .. code-block:: none
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``
- .. code-block:: none
Pin driven in open drain. Only valid for output configuration modes.
* - ``slew-rate``
- ``string``
- .. code-block:: none
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'``