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

description: |
    STM32 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.

compatible: "st,stm32-pinctrl"

include:
    - name: base.yaml
    - name: pincfg-node.yaml
      child-binding:
        property-allowlist:
          - bias-disable
          - bias-pull-down
          - bias-pull-up
          - drive-push-pull
          - drive-open-drain

properties:
    reg:
      required: true

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

    properties:
        pinmux:
          required: true
          type: int
          description: |
            Reused 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
            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 function number, can be:
            * 0 : Alternate Function 0
            * 1 : Alternate Function 1
            * 2 : Alternate Function 2
            * ...
            * 15 : Alternate Function 15
            * 16 : Analog
            To simplify the usage, macro is available to generate "pinmux" field.
            This macro is available here:
              -include/dt-bindings/pinctrl/stm32-pinctrl-common.h
            Some examples of macro usage:
               GPIO A9 set as alernate function 2
            ... {
                     pinmux = <STM32_PINMUX('A', 9, AF2)>;
            };
               GPIO A9 set as analog
            ... {
                     pinmux = <STM32_PINMUX('A', 9, ANALOG)>;
            };

        slew-rate:
          required: false
          type: string
          default: "low-speed"
          enum:
          - "low-speed"           # Default value.
          - "medium-speed"
          - "high-speed"
          - "very-high-speed"
          description: |
            Pin speed. Default to low-speed. For few pins (PA11 and
            PB3 depending on SoCs)hardware reset value could differ
            (very-high-speed). Carefully check reference manual for these pins.
