Commit af1c2d81 authored by Benjamin Gaignard's avatar Benjamin Gaignard Committed by Rob Herring
Browse files

dt-bindings: serial: Convert STM32 UART to json-schema



Convert STM32 UART bindings to json-schema.

Signed-off-by: default avatarBenjamin Gaignard <benjamin.gaignard@st.com>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent d50f974c
Loading
Loading
Loading
Loading
+80 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/serial/st,stm32-uart.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

maintainers:
  - Erwan Le Ray <erwan.leray@st.com>

title: STMicroelectronics STM32 USART bindings

allOf:
  - $ref: rs485.yaml

properties:
  compatible:
    enum:
      - st,stm32-uart
      - st,stm32f7-uart
      - st,stm32h7-uart

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 1

  resets:
    maxItems: 1

  label:
    description: label associated with this uart

  st,hw-flow-ctrl:
    description: enable hardware flow control
    $ref: /schemas/types.yaml#/definitions/flag

  dmas:
    minItems: 1
    maxItems: 2

  dma-names:
    items:
      enum: [ rx, tx ]
    minItems: 1
    maxItems: 2

  wakeup-source: true

  rs485-rts-delay: true
  rs485-rts-active-low: true
  linux,rs485-enabled-at-boot-time: true
  rs485-rx-during-tx: true

required:
  - compatible
  - reg
  - interrupts
  - clocks

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/stm32mp1-clks.h>
    usart1: serial@40011000 {
      compatible = "st,stm32-uart";
      reg = <0x40011000 0x400>;
      interrupts = <37>;
      clocks = <&rcc 0 164>;
      dmas = <&dma2 2 4 0x414 0x0>,
             <&dma2 7 4 0x414 0x0>;
      dma-names = "rx", "tx";
      rs485-rts-active-low;
    };

...
+0 −57
Original line number Diff line number Diff line
* STMicroelectronics STM32 USART

Required properties:
- compatible: can be either:
  - "st,stm32-uart",
  - "st,stm32f7-uart",
  - "st,stm32h7-uart".
  depending is compatible with stm32(f4), stm32f7 or stm32h7.
- reg: The address and length of the peripheral registers space
- interrupts:
  - The interrupt line for the USART instance,
  - An optional wake-up interrupt.
- clocks: The input clock of the USART instance

Optional properties:
- resets: Must contain the phandle to the reset controller.
- pinctrl: The reference on the pins configuration
- st,hw-flow-ctrl: bool flag to enable hardware flow control.
- rs485-rts-delay, rs485-rx-during-tx, rs485-rts-active-low,
  linux,rs485-enabled-at-boot-time: see rs485.txt.
- dmas: phandle(s) to DMA controller node(s). Refer to stm32-dma.txt
- dma-names: "rx" and/or "tx"
- wakeup-source: bool flag to indicate this device has wakeup capabilities
- interrupt-names, if optional wake-up interrupt is used, should be:
  - "event": the name for the interrupt line of the USART instance
  - "wakeup" the name for the optional wake-up interrupt


Examples:
usart4: serial@40004c00 {
	compatible = "st,stm32-uart";
	reg = <0x40004c00 0x400>;
	interrupts = <52>;
	clocks = <&clk_pclk1>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usart4>;
};

usart2: serial@40004400 {
	compatible = "st,stm32-uart";
	reg = <0x40004400 0x400>;
	interrupts = <38>;
	clocks = <&clk_pclk1>;
	st,hw-flow-ctrl;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_usart2 &pinctrl_usart2_rtscts>;
};

usart1: serial@40011000 {
	compatible = "st,stm32-uart";
	reg = <0x40011000 0x400>;
	interrupts = <37>;
	clocks = <&rcc 0 164>;
	dmas = <&dma2 2 4 0x414 0x0>,
	       <&dma2 7 4 0x414 0x0>;
	dma-names = "rx", "tx";
};