Commit 3b1b42fd authored by Laurent Pinchart's avatar Laurent Pinchart Committed by Rob Herring
Browse files

dt-bindings: display: mxsfb: Convert binding to YAML



Convert the mxsfb binding to YAML. The deprecated binding is dropped, as
neither the DT sources nor the driver support it anymore. The converted
binding is named fsl,lcdif.yaml to match the usual bindings naming
scheme.

The compatible strings are messy, and DT sources use different kinds of
combination of documented and undocumented values. Keep it simple for
now, and update the example to make it valid. Aligning the binding with
the existing DT sources will be performed separately.

Signed-off-by: default avatarLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: default avatarSam Ravnborg <sam@ravnborg.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarRob Herring <robh@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20210115222304.5427-2-laurent.pinchart@ideasonboard.com
parent 1f8644d5
Loading
Loading
Loading
Loading
+101 −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/display/fsl,lcdif.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Freescale/NXP i.MX LCD Interface (LCDIF)

maintainers:
  - Marek Vasut <marex@denx.de>
  - Stefan Agner <stefan@agner.ch>

description: |
  (e)LCDIF display controller found in the Freescale/NXP i.MX SoCs.

properties:
  compatible:
    enum:
      - fsl,imx23-lcdif
      - fsl,imx28-lcdif
      - fsl,imx6sx-lcdif
      - fsl,imx8mq-lcdif

  reg:
    maxItems: 1

  clocks:
    items:
      - description: Pixel clock
      - description: Bus clock
      - description: Display AXI clock
    minItems: 1

  clock-names:
    items:
      - const: pix
      - const: axi
      - const: disp_axi
    minItems: 1

  interrupts:
    maxItems: 1

  port:
    $ref: /schemas/graph.yaml#/properties/port
    description: The LCDIF output port

required:
  - compatible
  - reg
  - clocks
  - interrupts
  - port

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: fsl,imx6sx-lcdif
    then:
      properties:
        clocks:
          minItems: 2
          maxItems: 3
        clock-names:
          minItems: 2
          maxItems: 3
      required:
        - clock-names
    else:
      properties:
        clocks:
          maxItems: 1
        clock-names:
          maxItems: 1

examples:
  - |
    #include <dt-bindings/clock/imx6sx-clock.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    display-controller@2220000 {
        compatible = "fsl,imx6sx-lcdif";
        reg = <0x02220000 0x4000>;
        interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
        clocks = <&clks IMX6SX_CLK_LCDIF1_PIX>,
                 <&clks IMX6SX_CLK_LCDIF_APB>,
                 <&clks IMX6SX_CLK_DISPLAY_AXI>;
        clock-names = "pix", "axi", "disp_axi";

        port {
            endpoint {
                remote-endpoint = <&panel_in>;
            };
        };
    };

...
+0 −87
Original line number Diff line number Diff line
* Freescale MXS LCD Interface (LCDIF)

New bindings:
=============
Required properties:
- compatible:	Should be "fsl,imx23-lcdif" for i.MX23.
		Should be "fsl,imx28-lcdif" for i.MX28.
		Should be "fsl,imx6sx-lcdif" for i.MX6SX.
		Should be "fsl,imx8mq-lcdif" for i.MX8MQ.
- reg:		Address and length of the register set for LCDIF
- interrupts:	Should contain LCDIF interrupt
- clocks:	A list of phandle + clock-specifier pairs, one for each
		entry in 'clock-names'.
- clock-names:	A list of clock names. For MXSFB it should contain:
    - "pix" for the LCDIF block clock
    - (MX6SX-only) "axi", "disp_axi" for the bus interface clock

Required sub-nodes:
  - port: The connection to an encoder chip.

Example:

	lcdif1: display-controller@2220000 {
		compatible = "fsl,imx6sx-lcdif", "fsl,imx28-lcdif";
		reg = <0x02220000 0x4000>;
		interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&clks IMX6SX_CLK_LCDIF1_PIX>,
			 <&clks IMX6SX_CLK_LCDIF_APB>,
			 <&clks IMX6SX_CLK_DISPLAY_AXI>;
		clock-names = "pix", "axi", "disp_axi";

		port {
			parallel_out: endpoint {
				remote-endpoint = <&panel_in_parallel>;
			};
		};
	};

Deprecated bindings:
====================
Required properties:
- compatible:	Should be "fsl,imx23-lcdif" for i.MX23.
		Should be "fsl,imx28-lcdif" for i.MX28.
- reg:		Address and length of the register set for LCDIF
- interrupts:	Should contain LCDIF interrupts
- display:	phandle to display node (see below for details)

* display node

Required properties:
- bits-per-pixel:	<16> for RGB565, <32> for RGB888/666.
- bus-width:		number of data lines.  Could be <8>, <16>, <18> or <24>.

Required sub-node:
- display-timings:	Refer to binding doc display-timing.txt for details.

Examples:

lcdif@80030000 {
	compatible = "fsl,imx28-lcdif";
	reg = <0x80030000 2000>;
	interrupts = <38 86>;

	display: display {
		bits-per-pixel = <32>;
		bus-width = <24>;

		display-timings {
			native-mode = <&timing0>;
			timing0: timing0 {
				clock-frequency = <33500000>;
				hactive = <800>;
				vactive = <480>;
				hfront-porch = <164>;
				hback-porch = <89>;
				hsync-len = <10>;
				vback-porch = <23>;
				vfront-porch = <10>;
				vsync-len = <10>;
				hsync-active = <0>;
				vsync-active = <0>;
				de-active = <1>;
				pixelclk-active = <0>;
			};
		};
	};
};
+1 −1
Original line number Diff line number Diff line
@@ -12180,7 +12180,7 @@ M: Stefan Agner <stefan@agner.ch>
L:	dri-devel@lists.freedesktop.org
S:	Supported
T:	git git://anongit.freedesktop.org/drm/drm-misc
F:	Documentation/devicetree/bindings/display/mxsfb.txt
F:	Documentation/devicetree/bindings/display/fsl,lcdif.yaml
F:	drivers/gpu/drm/mxsfb/
MYLEX DAC960 PCI RAID Controller