Message ID | 20231221122843.418650-3-raphael.gallais-pou@foss.st.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Introduce STM32 LVDS driver | expand |
On 21/12/2023 13:28, Raphael Gallais-Pou wrote: > Add dt-binding file for "st,stm32-lvds" compatible. > A nit, subject: drop second/last, redundant "dt-bindings for". The "dt-bindings" prefix is already stating that these are bindings. > Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com> > --- > .../bindings/display/st,stm32-lvds.yaml | 114 ++++++++++++++++++ > 1 file changed, 114 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/st,stm32-lvds.yaml > ... > +properties: > + "#clock-cells": > + const: 0 > + > + compatible: > + const: st,stm32-lvds Please put compatible as first. > + > + reg: > + maxItems: 1 > + > + clocks: > + items: > + - description: APB peripheral clock > + - description: Reference clock for the internal PLL > + > + clock-names: > + items: > + - const: pclk > + - const: ref > + > + resets: > + maxItems: 1 > + > + ports: > + $ref: /schemas/graph.yaml#/properties/ports > + > + properties: > + port@0: > + $ref: /schemas/graph.yaml#/properties/port > + description: | > + LVDS input port node, connected to the LTDC RGB output port. > + > + port@1: > + $ref: /schemas/graph.yaml#/properties/port > + description: | > + LVDS output port node, connected to a panel or bridge input port. Ports are not required? I would assume it won't work without input and output. > + > +required: > + - "#clock-cells" > + - compatible > + - reg > + - clocks > + - clock-names > + - resets > + - ports > + > +unevaluatedProperties: false additionalProperties instead... or did I miss some $ref anywhere? > + > +examples: > + - | > + #include <dt-bindings/bus/stm32mp25_sys_bus.h> > + #include <dt-bindings/clock/stm32mp25-clks.h> > + #include <dt-bindings/reset/stm32mp25-resets.h> > + > + lvds: lvds@48060000 { > + #clock-cells = <0>; > + compatible = "st,stm32-lvds"; compatible is always the first property. > + reg = <0x48060000 0x2000>; put clock-cells here > + clocks = <&rcc CK_BUS_LVDS>, <&rcc CK_KER_LVDSPHY>; > + clock-names = "pclk", "ref"; > + resets = <&rcc LVDS_R>; Best regards, Krzysztof
Hi Krzysztof, Thanks for your review. I wall send another serie later with those modifications. Best regards, Raphaƫl On 12/21/23 18:27, Krzysztof Kozlowski wrote: > On 21/12/2023 13:28, Raphael Gallais-Pou wrote: >> Add dt-binding file for "st,stm32-lvds" compatible. >> > A nit, subject: drop second/last, redundant "dt-bindings for". The > "dt-bindings" prefix is already stating that these are bindings. > >> Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com> >> --- >> .../bindings/display/st,stm32-lvds.yaml | 114 ++++++++++++++++++ >> 1 file changed, 114 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/display/st,stm32-lvds.yaml >> > ... > >> +properties: >> + "#clock-cells": >> + const: 0 >> + >> + compatible: >> + const: st,stm32-lvds > Please put compatible as first. > >> + >> + reg: >> + maxItems: 1 >> + >> + clocks: >> + items: >> + - description: APB peripheral clock >> + - description: Reference clock for the internal PLL >> + >> + clock-names: >> + items: >> + - const: pclk >> + - const: ref >> + >> + resets: >> + maxItems: 1 >> + >> + ports: >> + $ref: /schemas/graph.yaml#/properties/ports >> + >> + properties: >> + port@0: >> + $ref: /schemas/graph.yaml#/properties/port >> + description: | >> + LVDS input port node, connected to the LTDC RGB output port. >> + >> + port@1: >> + $ref: /schemas/graph.yaml#/properties/port >> + description: | >> + LVDS output port node, connected to a panel or bridge input port. > Ports are not required? I would assume it won't work without input and > output. > >> + >> +required: >> + - "#clock-cells" >> + - compatible >> + - reg >> + - clocks >> + - clock-names >> + - resets >> + - ports >> + >> +unevaluatedProperties: false > additionalProperties instead... or did I miss some $ref anywhere? > >> + >> +examples: >> + - | >> + #include <dt-bindings/bus/stm32mp25_sys_bus.h> >> + #include <dt-bindings/clock/stm32mp25-clks.h> >> + #include <dt-bindings/reset/stm32mp25-resets.h> >> + >> + lvds: lvds@48060000 { >> + #clock-cells = <0>; >> + compatible = "st,stm32-lvds"; > compatible is always the first property. > >> + reg = <0x48060000 0x2000>; > put clock-cells here > >> + clocks = <&rcc CK_BUS_LVDS>, <&rcc CK_KER_LVDSPHY>; >> + clock-names = "pclk", "ref"; >> + resets = <&rcc LVDS_R>; > Best regards, > Krzysztof >
diff --git a/Documentation/devicetree/bindings/display/st,stm32-lvds.yaml b/Documentation/devicetree/bindings/display/st,stm32-lvds.yaml new file mode 100644 index 000000000000..d72c9088133c --- /dev/null +++ b/Documentation/devicetree/bindings/display/st,stm32-lvds.yaml @@ -0,0 +1,114 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/st,stm32-lvds.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: STMicroelectronics STM32 LVDS Display Interface Transmitter + +maintainers: + - Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com> + - Yannick Fertre <yannick.fertre@foss.st.com> + +description: | + The STMicroelectronics STM32 LVDS Display Interface Transmitter handles the + LVDS protocol: it maps the pixels received from the upstream Pixel-DMA (LTDC) + onto the LVDS PHY. + + It regroups three sub blocks: + - LVDS host: handles the LVDS protocol (FPD / OpenLDI) and maps its input + pixels onto the data lanes of the PHY + - LVDS PHY: parallelize the data and drives the LVDS data lanes + - LVDS wrapper: handles top-level settings + + The LVDS controller driver supports the following high-level features: + - FDP-Link-I and OpenLDI (v0.95) protocols + - Single-Link or Dual-Link operation + - Single-Display or Double-Display (with the same content duplicated on both) + - Flexible Bit-Mapping, including JEIDA and VESA + - RGB888 or RGB666 output + - Synchronous design, with one input pixel per clock cycle + +properties: + "#clock-cells": + const: 0 + + compatible: + const: st,stm32-lvds + + reg: + maxItems: 1 + + clocks: + items: + - description: APB peripheral clock + - description: Reference clock for the internal PLL + + clock-names: + items: + - const: pclk + - const: ref + + resets: + maxItems: 1 + + ports: + $ref: /schemas/graph.yaml#/properties/ports + + properties: + port@0: + $ref: /schemas/graph.yaml#/properties/port + description: | + LVDS input port node, connected to the LTDC RGB output port. + + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: | + LVDS output port node, connected to a panel or bridge input port. + +required: + - "#clock-cells" + - compatible + - reg + - clocks + - clock-names + - resets + - ports + +unevaluatedProperties: false + +examples: + - | + #include <dt-bindings/bus/stm32mp25_sys_bus.h> + #include <dt-bindings/clock/stm32mp25-clks.h> + #include <dt-bindings/reset/stm32mp25-resets.h> + + lvds: lvds@48060000 { + #clock-cells = <0>; + compatible = "st,stm32-lvds"; + reg = <0x48060000 0x2000>; + clocks = <&rcc CK_BUS_LVDS>, <&rcc CK_KER_LVDSPHY>; + clock-names = "pclk", "ref"; + resets = <&rcc LVDS_R>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + lvds_in: endpoint { + remote-endpoint = <<dc_ep1_out>; + }; + }; + + port@1 { + reg = <1>; + lvds_out0: endpoint { + remote-endpoint = <&lvds_panel_in>; + }; + }; + }; + }; + +...
Add dt-binding file for "st,stm32-lvds" compatible. Signed-off-by: Raphael Gallais-Pou <raphael.gallais-pou@foss.st.com> --- .../bindings/display/st,stm32-lvds.yaml | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 Documentation/devicetree/bindings/display/st,stm32-lvds.yaml