On Mon, Oct 14, 2019 at 4:16 AM Benjamin Gaignard <benjamin.gaignard@xxxxxx> 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@xxxxxx> > --- > changes in v3: > - use (GPL-2.0-only OR BSD-2-Clause) license > > changes in v2: > - use BSD-2-Clause license > - add panel property > - fix identation > - remove pinctrl-names: true > - remove pinctrl-[0-9]+: true > - rework ports block to include port@0 and port@1 > - use const for #adress-cells and #size-cells > - add additionalProperties: false > > .../devicetree/bindings/display/st,stm32-dsi.yaml | 151 +++++++++++++++++++++ > .../devicetree/bindings/display/st,stm32-ltdc.txt | 144 -------------------- > .../devicetree/bindings/display/st,stm32-ltdc.yaml | 81 +++++++++++ > 3 files changed, 232 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..8dd727c7533e > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/st,stm32-dsi.yaml > @@ -0,0 +1,151 @@ > +# SPDX-License-Identifier: (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@xxxxxx> > + - Yannick Fertre <yannick.fertre@xxxxxx> > + > +description: > + The STMicroelectronics STM32 DSI controller uses the Synopsys DesignWare MIPI-DSI host controller. > + > +properties: > + 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 > + properties: > + port@0: > + type: object > + description: > + DSI input port node, connected to the ltdc rgb output port. > + > + port@1: > + type: object > + description: > + DSI output port node, connected to a panel or a bridge input port" > + > +patternProperties: > + "^(panel|panel-dsi)@[0-9]$": > + type: object > + description: > + A node containing the panel or bridge description as documented in > + Documentation/devicetree/bindings/display/mipi-dsi-bus.txt > + properties: > + port@0: You can drop this. The unit address for the panel port is decided by the panel binding, not this one. > + type: object > + description: > + Panel or bridge port node, connected to the DSI output port (port@1) [...] > 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..94a4137f7236 > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml > @@ -0,0 +1,81 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%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@xxxxxx> > + - Yannick Fertre <yannick.fertre@xxxxxx> > + > +properties: > + compatible: > + const: st,stm32-ltdc > + > + reg: > + maxItems: 1 > + > + interrupts: > + minItems: 2 > + maxItems: 2 Need to describe what each interrupt is. items: - description: ... - description: ... > + > + clocks: > + maxItems: 1 > + > + clock-names: > + items: > + - const: lcd > + > + resets: > + maxItems: 1 > + > + 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." > + > + dma-ranges: > + maxItems: 1 dma-ranges goes in bus nodes, not device nodes. > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + - clock-names > + - resets > + - port > + > +additionalProperties: false > + > +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 >