On Wed, Oct 2, 2019 at 10:17 AM Benjamin Gaignard benjamin.gaignard@st.com wrote:
Convert the STM32 display binding to DT schema format using json-schema. Split the original bindings in two yaml files:
- one for display controller (ltdc)
- one for DSI controller
Signed-off-by: Benjamin Gaignard benjamin.gaignard@st.com
.../devicetree/bindings/display/st,stm32-dsi.yaml | 130 +++++++++++++++++++ .../devicetree/bindings/display/st,stm32-ltdc.txt | 144 --------------------- .../devicetree/bindings/display/st,stm32-ltdc.yaml | 82 ++++++++++++ 3 files changed, 212 insertions(+), 144 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/st,stm32-dsi.yaml delete mode 100644 Documentation/devicetree/bindings/display/st,stm32-ltdc.txt create mode 100644 Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml
diff --git a/Documentation/devicetree/bindings/display/st,stm32-dsi.yaml b/Documentation/devicetree/bindings/display/st,stm32-dsi.yaml new file mode 100644 index 000000000000..8143cf6f0ce7 --- /dev/null +++ b/Documentation/devicetree/bindings/display/st,stm32-dsi.yaml @@ -0,0 +1,130 @@ +# SPDX-License-Identifier: GPL-2.0
If all the authors are ST, can you relicense to (GPL-2.0-only OR BSD-2-Clause).
+%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/st,stm32-dsi.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: STMicroelectronics STM32 DSI host controller
+maintainers:
- Philippe Cornu philippe.cornu@st.com
- Yannick Fertre yannick.fertre@st.com
+properties:
- "#address-cells": true
- "#size-cells": true
- compatible:
- const: st,stm32-dsi
- reg:
- maxItems: 1
- clocks:
- items:
- description: Module Clock
- description: DSI bus clock
- description: Pixel clock
- minItems: 2
- maxItems: 3
- clock-names:
- items:
- const: pclk
- const: ref
- const: px_clk
- minItems: 2
- maxItems: 3
- resets:
- maxItems: 1
- reset-names:
- items:
- const: apb
- phy-dsi-supply:
- maxItems: 1
- description:
Phandle of the regulator that provides the supply voltage.
- ports:
- type: object
- description:
A node containing DSI input & output port nodes with endpoint
definitions as documented in
Documentation/devicetree/bindings/media/video-interfaces.txt
Documentation/devicetree/bindings/graph.txt
- port:
This needs to be under 'properties' under 'ports'. And you need to have 'port@0' and 'port@1' instead.
- type: object
- description:
"A port node with endpoint definitions as defined in
Documentation/devicetree/bindings/media/video-interfaces.txt.
port@0: DSI input port node, connected to the ltdc rgb output port.
port@1: DSI output port node, connected to a panel or a bridge input port"
+required:
- "#address-cells"
- "#size-cells"
- compatible
- reg
- clocks
- clock-names
- resets
- ports
Add an 'additionalProperties: false' here.
+examples:
- |
- #include <dt-bindings/interrupt-controller/arm-gic.h>
- #include <dt-bindings/clock/stm32mp1-clks.h>
- #include <dt-bindings/reset/stm32mp1-resets.h>
- #include <dt-bindings/gpio/gpio.h>
- dsi: dsi@5a000000 {
compatible = "st,stm32-dsi";
reg = <0x5a000000 0x800>;
clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>;
clock-names = "pclk", "ref", "px_clk";
resets = <&rcc DSI_R>;
reset-names = "apb";
phy-dsi-supply = <®18>;
#address-cells = <1>;
#size-cells = <0>;
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
dsi_in: endpoint {
remote-endpoint = <<dc_ep1_out>;
};
};
port@1 {
reg = <1>;
dsi_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
panel {
Not documented.
compatible = "orisetech,otm8009a";
reg = <0>;
reset-gpios = <&gpioe 4 GPIO_ACTIVE_LOW>;
power-supply = <&v3v3>;
port {
panel_in: endpoint {
remote-endpoint = <&dsi_out>;
};
};
};
- };
+...
[...]
diff --git a/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml b/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml new file mode 100644 index 000000000000..5d01c83234a3 --- /dev/null +++ b/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml @@ -0,0 +1,82 @@ +# SPDX-License-Identifier: GPL-2.0 +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/st,stm32-ltdc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml#
+title: STMicroelectronics STM32 lcd-tft display controller
+maintainers:
- Philippe Cornu philippe.cornu@st.com
- Yannick Fertre yannick.fertre@st.com
+properties:
- compatible:
- const: st,stm32-ltdc
- reg:
- maxItems: 1
- interrupts:
- minItems: 2
- maxItems: 2
- clocks:
- items:
- description: Module Clock
Just 'maxItems: 1' is sufficient with a single entry.
- clock-names:
- items:
- const: lcd
- pinctrl-names: true
- resets:
maxItems: 1
Inconsistent indenting.
- port:
- type: object
- description:
"Video port for DPI RGB output.
ltdc has one video port with up to 2 endpoints:
- for external dpi rgb panel or bridge, using gpios.
- for internal dpi input of the MIPI DSI host controller.
Note: These 2 endpoints cannot be activated simultaneously.
Please refer to the bindings defined in
Documentation/devicetree/bindings/media/video-interfaces.txt."
+patternProperties:
- "^pinctrl-[0-9]+$": true
No need for this, it gets added automatically.
+required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- resets
- port
Add an 'additionalProperties: false' here.
+examples:
- |
- #include <dt-bindings/interrupt-controller/arm-gic.h>
- #include <dt-bindings/clock/stm32mp1-clks.h>
- #include <dt-bindings/reset/stm32mp1-resets.h>
- ltdc: display-controller@40016800 {
compatible = "st,stm32-ltdc";
reg = <0x5a001000 0x400>;
interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
<GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&rcc LTDC_PX>;
clock-names = "lcd";
resets = <&rcc LTDC_R>;
port {
ltdc_out_dsi: endpoint {
remote-endpoint = <&dsi_in>;
};
};
- };
+...
-- 2.15.0