[PATCH] dt-bindings: display: mcde: Convert to YAML schema

Rob Herring robh at kernel.org
Wed Nov 4 19:11:21 UTC 2020


On Wed, Nov 04, 2020 at 02:37:09PM +0100, Linus Walleij wrote:
> This moves the MCDE bindings over to using the YAML schema
> to describe the ST-Ericsson MCDE display controller,
> making use of the generic DSI controller schema.
> 
> We also add the "port" node, we will use this when adding
> LCD panels using the direct parallel interface DPI instead
> of DSI.
> 
> Cc: devicetree at vger.kernel.org
> Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
> ---
>  .../devicetree/bindings/display/ste,mcde.txt  | 104 -----------
>  .../devicetree/bindings/display/ste,mcde.yaml | 167 ++++++++++++++++++
>  2 files changed, 167 insertions(+), 104 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/display/ste,mcde.txt
>  create mode 100644 Documentation/devicetree/bindings/display/ste,mcde.yaml
> 
> diff --git a/Documentation/devicetree/bindings/display/ste,mcde.txt b/Documentation/devicetree/bindings/display/ste,mcde.txt
> deleted file mode 100644
> index 4c33c692bd5f..000000000000
> --- a/Documentation/devicetree/bindings/display/ste,mcde.txt
> +++ /dev/null
> @@ -1,104 +0,0 @@
> -ST-Ericsson Multi Channel Display Engine MCDE
> -
> -The ST-Ericsson MCDE is a display controller with support for compositing
> -and displaying several channels memory resident graphics data on DSI or
> -LCD displays or bridges. It is used in the ST-Ericsson U8500 platform.
> -
> -Required properties:
> -
> -- compatible: must be:
> -  "ste,mcde"
> -- reg: register base for the main MCDE control registers, should be
> -  0x1000 in size
> -- interrupts: the interrupt line for the MCDE
> -- epod-supply: a phandle to the EPOD regulator
> -- vana-supply: a phandle to the analog voltage regulator
> -- clocks: an array of the MCDE clocks in this strict order:
> -  MCDECLK (main MCDE clock), LCDCLK (LCD clock), PLLDSI
> -  (HDMI clock), DSI0ESCLK (DSI0 energy save clock),
> -  DSI1ESCLK (DSI1 energy save clock), DSI2ESCLK (DSI2 energy
> -  save clock)
> -- clock-names: must be the following array:
> -  "mcde", "lcd", "hdmi"
> -  to match the required clock inputs above.
> -- #address-cells: should be <1> (for the DSI hosts that will be children)
> -- #size-cells: should be <1> (for the DSI hosts that will be children)
> -- ranges: this should always be stated
> -
> -Required subnodes:
> -
> -The devicetree must specify subnodes for the DSI host adapters.
> -These must have the following characteristics:
> -
> -- compatible: must be:
> -  "ste,mcde-dsi"
> -- reg: must specify the register range for the DSI host
> -- vana-supply: phandle to the VANA voltage regulator
> -- clocks: phandles to the high speed and low power (energy save) clocks
> -  the high speed clock is not present on the third (dsi2) block, so it
> -  should only have the "lp" clock
> -- clock-names: "hs" for the high speed clock and "lp" for the low power
> -  (energy save) clock
> -- #address-cells: should be <1>
> -- #size-cells: should be <0>
> -
> -Display panels and bridges will appear as children on the DSI hosts, and
> -the displays are connected to the DSI hosts using the common binding
> -for video transmitter interfaces; see
> -Documentation/devicetree/bindings/media/video-interfaces.txt
> -
> -If a DSI host is unused (not connected) it will have no children defined.
> -
> -Example:
> -
> -mcde at a0350000 {
> -	compatible = "ste,mcde";
> -	reg = <0xa0350000 0x1000>;
> -	interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
> -	epod-supply = <&db8500_b2r2_mcde_reg>;
> -	vana-supply = <&ab8500_ldo_ana_reg>;
> -	clocks = <&prcmu_clk PRCMU_MCDECLK>, /* Main MCDE clock */
> -		 <&prcmu_clk PRCMU_LCDCLK>, /* LCD clock */
> -		 <&prcmu_clk PRCMU_PLLDSI>; /* HDMI clock */
> -	clock-names = "mcde", "lcd", "hdmi";
> -	#address-cells = <1>;
> -	#size-cells = <1>;
> -	ranges;
> -
> -	dsi0: dsi at a0351000 {
> -		compatible = "ste,mcde-dsi";
> -		reg = <0xa0351000 0x1000>;
> -		vana-supply = <&ab8500_ldo_ana_reg>;
> -		clocks = <&prcmu_clk PRCMU_DSI0CLK>, <&prcmu_clk PRCMU_DSI0ESCCLK>;
> -		clock-names = "hs", "lp";
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -
> -		panel {
> -			compatible = "samsung,s6d16d0";
> -			reg = <0>;
> -			vdd1-supply = <&ab8500_ldo_aux1_reg>;
> -			reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
> -		};
> -
> -	};
> -	dsi1: dsi at a0352000 {
> -		compatible = "ste,mcde-dsi";
> -		reg = <0xa0352000 0x1000>;
> -		vana-supply = <&ab8500_ldo_ana_reg>;
> -		clocks = <&prcmu_clk PRCMU_DSI1CLK>, <&prcmu_clk PRCMU_DSI1ESCCLK>;
> -		clock-names = "hs", "lp";
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -	};
> -	dsi2: dsi at a0353000 {
> -		compatible = "ste,mcde-dsi";
> -		reg = <0xa0353000 0x1000>;
> -		vana-supply = <&ab8500_ldo_ana_reg>;
> -		/* This DSI port only has the Low Power / Energy Save clock */
> -		clocks = <&prcmu_clk PRCMU_DSI2ESCCLK>;
> -		clock-names = "lp";
> -		#address-cells = <1>;
> -		#size-cells = <0>;
> -	};
> -};
> diff --git a/Documentation/devicetree/bindings/display/ste,mcde.yaml b/Documentation/devicetree/bindings/display/ste,mcde.yaml
> new file mode 100644
> index 000000000000..a00333acd9a1
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/ste,mcde.yaml
> @@ -0,0 +1,167 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/ste,mcde.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: ST-Ericsson Multi Channel Display Engine MCDE
> +
> +maintainers:
> +  - Linus Walleij <linus.walleij at linaro.org>
> +
> +properties:
> +  compatible:
> +    const: ste,mcde
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +    description: the interrupt line for the MCDE

Kind of generic description. Can drop.

> +
> +  clocks:
> +    maxItems: 3

Can drop this. Implied with 'items'.

> +    description: an array of the MCDE clocks
> +    items:
> +      - description: MCDECLK (main MCDE clock)
> +      - description: LCDCLK (LCD clock)
> +      - description: PLLDSI (HDMI clock)
> +
> +  clock-names:
> +    maxItems: 3

ditto

> +    items:
> +      - const: mcde
> +      - const: lcd
> +      - const: hdmi
> +
> +  epod-supply:
> +    description: a phandle to the EPOD regulator
> +
> +  vana-supply:
> +    description: a phandle to the analog voltage regulator
> +
> +  port:
> +    type: object
> +    description:
> +      A DPI port node with endpoint definitions as defined in
> +      Documentation/devicetree/bindings/media/video-interfaces.txt
> +
> +  "#address-cells":
> +    const: 1
> +
> +  "#size-cells":
> +    const: 1
> +
> +  ranges: true
> +
> +patternProperties:
> +  "^dsi@[0-9a-f]+$":
> +    description: subnodes for the three DSI host adapters
> +    type: object
> +    allOf:
> +      - $ref: dsi-controller.yaml#
> +    properties:
> +      compatible:
> +        const: ste,mcde-dsi
> +
> +      reg:
> +        maxItems: 1
> +
> +      vana-supply:
> +        description: a phandle to the analog voltage regulator
> +
> +      clocks:
> +        description: phandles to the high speed and low power (energy save) clocks
> +          the high speed clock is not present on the third (dsi2) block, so it
> +          should only have the "lp" clock
> +        minItems: 1
> +        maxItems: 2
> +
> +      clock-names:
> +        oneOf:
> +          - items:
> +              - const: hs
> +              - const: lp
> +          - items:
> +              - const: lp
> +
> +    required:
> +      - compatible
> +      - reg
> +      - vana-supply
> +      - clocks
> +      - clock-names

       unevaluatedProperties: false

> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - clocks
> +  - clock-names
> +  - epod-supply
> +  - vana-supply
> +
> +unevaluatedProperties: false

The meta-schema has gotten stricter recently, so this has to be 
'additionalProperties' since there's no other schema referenced. Moving 
target. :)

Rob 


More information about the dri-devel mailing list