From: Maxime Coquelin <mcoquelin.stm32@gmail.com>
To: patrice.chotard@st.com, Linus Walleij <linus.walleij@linaro.org>,
Mark Rutland <mark.rutland@arm.com>,
Rob Herring <robh+dt@kernel.org>,
linux-gpio@vger.kernel.org, arnd@arndb.de
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, afaerber@suse.de,
devicetree@vger.kernel.org,
Daniel Thompson <daniel.thompson@linaro.org>,
bruherrera@gmail.com
Subject: [PATCH v4 2/9] Documentation: dt-bindings: Document STM32 pinctrl driver DT bindings
Date: Thu, 14 Jan 2016 13:16:28 +0100 [thread overview]
Message-ID: <1452773795-24216-3-git-send-email-mcoquelin.stm32@gmail.com> (raw)
In-Reply-To: <1452773795-24216-1-git-send-email-mcoquelin.stm32@gmail.com>
Acked-by: Patrice Chotard <patrice.chotard@st.com>
Signed-off-by: Maxime Coquelin <mcoquelin.stm32@gmail.com>
---
.../bindings/pinctrl/st,stm32-pinctrl.txt | 126 +++++++++++++++++++++
1 file changed, 126 insertions(+)
create mode 100644 Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt
diff --git a/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt
new file mode 100644
index 0000000..7b4800c
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/st,stm32-pinctrl.txt
@@ -0,0 +1,126 @@
+* STM32 GPIO and Pin Mux/Config controller
+
+STMicroelectronics's STM32 MCUs intregrate a GPIO and Pin mux/config hardware
+controller. It controls the input/output settings on the available pins and
+also provides ability to multiplex and configure the output of various on-chip
+controllers onto these pads.
+
+Pin controller node:
+Required properies:
+ - compatible: value should be one of the following:
+ (a) "st,stm32f429-pinctrl"
+ - #address-cells: The value of this property must be 1
+ - #size-cells : The value of this property must be 1
+ - ranges : defines mapping between pin controller node (parent) to
+ gpio-bank node (children).
+ - pins-are-numbered: Specify the subnodes are using numbered pinmux to
+ specify pins.
+
+GPIO controller/bank node:
+Required properties:
+ - gpio-controller : Indicates this device is a GPIO controller
+ - #gpio-cells : Should be two.
+ The first cell is the pin number
+ The second one is the polarity:
+ - 0 for active high
+ - 1 for active low
+ - reg : The gpio address range, relative to the pinctrl range
+ - clocks : clock that drives this bank
+ - st,bank-name : Should be a name string for this bank as specified in
+ the datasheet
+
+Optional properties:
+ - reset: : Reference to the reset controller
+
+Example:
+#include <dt-bindings/pinctrl/stm32f429-pinfunc.h>
+...
+
+ pin-controller {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ compatible = "st,stm32f429-pinctrl";
+ ranges = <0 0x40020000 0x3000>;
+ pins-are-numbered;
+
+ gpioa: gpio@40020000 {
+ gpio-controller;
+ #gpio-cells = <2>;
+ reg = <0x0 0x400>;
+ resets = <&reset_ahb1 0>;
+ st,bank-name = "GPIOA";
+ };
+ ...
+ pin-functions nodes follow...
+ };
+
+Contents of function subnode node:
+----------------------------------
+Subnode format
+A pinctrl node should contain at least one subnode representing the
+pinctrl group available on the machine. Each subnode will list the
+pins it needs, and how they should be configured, with regard to muxer
+configuration, pullups, drive, output high/low and output speed.
+
+ node {
+ pinmux = <PIN_NUMBER_PINMUX>;
+ GENERIC_PINCONFIG;
+ };
+
+Required properties:
+- pinmux: integer array, represents gpio pin number and mux setting.
+ Supported pin number and mux varies for different SoCs, and are defined in
+ dt-bindings/pinctrl/<soc>-pinfunc.h directly.
+ 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 : GPIO
+ * 1 : Alternate Function 0
+ * 2 : Alternate Function 1
+ * 3 : Alternate Function 2
+ * ...
+ * 16 : Alternate Function 15
+ * 17 : Analog
+
+Optional properties:
+- GENERIC_PINCONFIG: is the generic pinconfig options to use.
+ Available options are:
+ - bias-disable,
+ - bias-pull-down,
+ - bias-pull-up,
+ - drive-push-pull,
+ - drive-open-drain,
+ - output-low
+ - output-high
+ - slew-rate = <x>, with x being:
+ < 0 > : Low speed
+ < 1 > : Medium speed
+ < 2 > : Fast speed
+ < 3 > : High speed
+
+Example:
+
+pin-controller {
+...
+ usart1_pins_a: usart1@0 {
+ pins1 {
+ pinmux = <STM32F429_PA9_FUNC_USART1_TX>;
+ bias-disable;
+ drive-push-pull;
+ slew-rate = <0>;
+ };
+ pins2 {
+ pinmux = <STM32F429_PA10_FUNC_USART1_RX>;
+ bias-disable;
+ };
+ };
+};
+
+&usart1 {
+ pinctrl-0 = <&usart1_pins_a>;
+ pinctrl-names = "default";
+ status = "okay";
+};
--
1.9.1
next prev parent reply other threads:[~2016-01-14 12:16 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-14 12:16 [PATCH v4 0/9] Add STM32 pinctrl/GPIO driver Maxime Coquelin
2016-01-14 12:16 ` [PATCH v4 1/9] ARM: Kconfig: Introduce MACH_STM32F429 flag Maxime Coquelin
2016-01-14 12:16 ` Maxime Coquelin [this message]
2016-01-15 2:59 ` [PATCH v4 2/9] Documentation: dt-bindings: Document STM32 pinctrl driver DT bindings Rob Herring
2016-01-27 13:18 ` Linus Walleij
2016-01-14 12:16 ` [PATCH v4 3/9] includes: dt-bindings: Add STM32F429 pinctrl " Maxime Coquelin
2016-01-14 12:16 ` [PATCH v4 4/9] pinctrl: Add STM32 MCUs support Maxime Coquelin
[not found] ` <1452773795-24216-5-git-send-email-mcoquelin.stm32-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-01-27 13:16 ` Linus Walleij
2016-02-01 10:21 ` Arnd Bergmann
2016-02-01 10:39 ` Maxime Coquelin
2016-02-01 12:09 ` Maxime Coquelin
2016-02-13 14:48 ` Linus Walleij
2016-02-13 17:14 ` Maxime Coquelin
2016-01-14 12:16 ` [PATCH v4 5/9] ARM: mach-stm32: Select pinctrl Maxime Coquelin
2016-01-14 12:16 ` [PATCH v4 6/9] ARM: dts: Add pinctrl node to STM32F429 Maxime Coquelin
2016-01-14 12:16 ` [PATCH v4 7/9] ARM: dts: Add USART1 pin config to STM32F429 boards Maxime Coquelin
2016-01-14 12:16 ` [PATCH v4 8/9] ARM: dts: Add leds support " Maxime Coquelin
[not found] ` <1452773795-24216-1-git-send-email-mcoquelin.stm32-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-01-14 12:16 ` [PATCH v4 9/9] ARM: config: Enable GPIO Led driver in stm32_defconfig Maxime Coquelin
2016-01-27 13:20 ` [PATCH v4 0/9] Add STM32 pinctrl/GPIO driver Linus Walleij
[not found] ` <CACRpkdYGQ1xObWfka2CN9au6YMGhpu4qcTZpu72bzuJjO38tog-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2016-01-27 17:00 ` Maxime Coquelin
2016-01-27 20:59 ` Maxime Coquelin
2016-02-05 22:50 ` Linus Walleij
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1452773795-24216-3-git-send-email-mcoquelin.stm32@gmail.com \
--to=mcoquelin.stm32@gmail.com \
--cc=afaerber@suse.de \
--cc=arnd@arndb.de \
--cc=bruherrera@gmail.com \
--cc=daniel.thompson@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=patrice.chotard@st.com \
--cc=robh+dt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).