blob: b36dce16aa2585768de18e1b517d29908a766960 [file] [log] [blame]
# 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).