:orphan: .. _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:`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:`dt-important-props` for more information. * - ``compatible`` - ``string-array`` - .. code-block:: none compatible strings This property is **required**. See :ref:`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:`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:`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'``