# Copyright (c) 2020 Linaro Limited
# SPDX-License-Identifier: Apache-2.0

description: STM32 Pin controller Node

compatible: "st,stm32f1-pinctrl"

include: [base.yaml]

properties:
    reg:
      required: true

child-binding:
    description: |
        This binding gives a base representation of the STM32F1 pins configration

    properties:
        pinmux:
          required: true
          type: int
          description: |
            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)>;
            };

        bias-disable:
          required: false
          type: boolean
          description: 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:
          required: false
          type: boolean
          description: Weak pull down resistor enabled. Not compatible with
            output configuration modes (atlernate or general purpose output).

        bias-pull-up:
          required: false
          type: boolean
          description: Weak pull up resistor enabled. Not compatible with
            output configuration modes (atlernate or general purpose output).

        drive-push-pull:
          required: false
          type: boolean
          description: 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:
          required: false
          type: boolean
          description: Pin driven in open drain. Only valid for output
            configuration modes.

        slew-rate:
          required: false
          type: string
          default: "max-speed-10mhz"
          enum:
          - "max-speed-10mhz"       # Default
          - "max-speed-2mhz"
          - "max-speed-50mhz"
          description: Pin output mode, maximum achievable speed. Only applies
            to output mode (alternate)..
