Commit 77bbd20f authored by Dharma Balasubiramani's avatar Dharma Balasubiramani Committed by Rob Herring
Browse files

dt-bindings: display: convert Atmel's HLCDC to DT schema



Convert the existing DT binding to DT schema of the Atmel's HLCDC display
controller.

Signed-off-by: default avatarDharma Balasubiramani <dharma.b@microchip.com>
Reviewed-by: default avatarConor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20240202001733.91455-2-dharma.b@microchip.com


Signed-off-by: default avatarRob Herring <robh@kernel.org>
parent 392703b6
Loading
Loading
Loading
Loading
+63 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/atmel/atmel,hlcdc-display-controller.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Atmel's High LCD Controller (HLCDC)

maintainers:
  - Nicolas Ferre <nicolas.ferre@microchip.com>
  - Alexandre Belloni <alexandre.belloni@bootlin.com>
  - Claudiu Beznea <claudiu.beznea@tuxon.dev>

description:
  The LCD Controller (LCDC) consists of logic for transferring LCD image
  data from an external display buffer to a TFT LCD panel. The LCDC has one
  display input buffer per layer that fetches pixels through the single bus
  host interface and a look-up table to allow palletized display
  configurations.

properties:
  compatible:
    const: atmel,hlcdc-display-controller

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

  port@0:
    $ref: /schemas/graph.yaml#/$defs/port-base
    unevaluatedProperties: false
    description:
      Output endpoint of the controller, connecting the LCD panel signals.

    properties:
      '#address-cells':
        const: 1

      '#size-cells':
        const: 0

      reg:
        maxItems: 1

      endpoint:
        $ref: /schemas/media/video-interfaces.yaml#
        unevaluatedProperties: false
        description:
          Endpoint connecting the LCD panel signals.

        properties:
          bus-width:
            enum: [ 12, 16, 18, 24 ]

required:
  - '#address-cells'
  - '#size-cells'
  - compatible
  - port@0

additionalProperties: false
+0 −75
Original line number Diff line number Diff line
Device-Tree bindings for Atmel's HLCDC (High LCD Controller) DRM driver

The Atmel HLCDC Display Controller is subdevice of the HLCDC MFD device.
See ../../mfd/atmel-hlcdc.txt for more details.

Required properties:
 - compatible: value should be "atmel,hlcdc-display-controller"
 - pinctrl-names: the pin control state names. Should contain "default".
 - pinctrl-0: should contain the default pinctrl states.
 - #address-cells: should be set to 1.
 - #size-cells: should be set to 0.

Required children nodes:
 Children nodes are encoding available output ports and their connections
 to external devices using the OF graph representation (see ../graph.txt).
 At least one port node is required.

Optional properties in grandchild nodes:
 Any endpoint grandchild node may specify a desired video interface
 according to ../../media/video-interfaces.txt, specifically
 - bus-width: recognized values are <12>, <16>, <18> and <24>, and
   override any output mode selection heuristic, forcing "rgb444",
   "rgb565", "rgb666" and "rgb888" respectively.

Example:

	hlcdc: hlcdc@f0030000 {
		compatible = "atmel,sama5d3-hlcdc";
		reg = <0xf0030000 0x2000>;
		interrupts = <36 IRQ_TYPE_LEVEL_HIGH 0>;
		clocks = <&lcdc_clk>, <&lcdck>, <&clk32k>;
		clock-names = "periph_clk","sys_clk", "slow_clk";

		hlcdc-display-controller {
			compatible = "atmel,hlcdc-display-controller";
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb888>;
			#address-cells = <1>;
			#size-cells = <0>;

			port@0 {
				#address-cells = <1>;
				#size-cells = <0>;
				reg = <0>;

				hlcdc_panel_output: endpoint@0 {
					reg = <0>;
					remote-endpoint = <&panel_input>;
				};
			};
		};

		hlcdc_pwm: hlcdc-pwm {
			compatible = "atmel,hlcdc-pwm";
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_lcd_pwm>;
			#pwm-cells = <3>;
		};
	};

Example 2: With a video interface override to force rgb565; as above
but with these changes/additions:

	&hlcdc {
		hlcdc-display-controller {
			pinctrl-names = "default";
			pinctrl-0 = <&pinctrl_lcd_base &pinctrl_lcd_rgb565>;

			port@0 {
				hlcdc_panel_output: endpoint@0 {
					bus-width = <16>;
				};
			};
		};
	};