dt-bindings: display: samsung,exynos5-dp: convert to DT Schema

Convert Samsung Exynos5250/5420 SoC Display Port Controller bindings to
DT schema with a change: add power-domains, already used in DTS.

This Display Port controller is actually variant of Analogix Display
Port bridge, however new DT Schema does not reference analogix,dp.yaml,
because of incompatibilities in the driver.  The analogix,dp.yaml
expects two ports, input and output, but Linux Exynos DP DRM driver and
DTS use only one port: output.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20240313182855.14140-1-krzysztof.kozlowski@linaro.org
Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
Krzysztof Kozlowski 2024-03-13 19:28:55 +01:00 committed by Rob Herring
parent 4cece76496
commit ad6d17e103
2 changed files with 163 additions and 112 deletions

View File

@ -1,112 +0,0 @@
The Exynos display port interface should be configured based on
the type of panel connected to it.
We use two nodes:
-dp-controller node
-dptx-phy node(defined inside dp-controller node)
For the DP-PHY initialization, we use the dptx-phy node.
Required properties for dptx-phy: deprecated, use phys and phy-names
-reg: deprecated
Base address of DP PHY register.
-samsung,enable-mask: deprecated
The bit-mask used to enable/disable DP PHY.
For the Panel initialization, we read data from dp-controller node.
Required properties for dp-controller:
-compatible:
should be "samsung,exynos5-dp".
-reg:
physical base address of the controller and length
of memory mapped region.
-interrupts:
interrupt combiner values.
-clocks:
from common clock binding: handle to dp clock.
-clock-names:
from common clock binding: Shall be "dp".
-phys:
from general PHY binding: the phandle for the PHY device.
-phy-names:
from general PHY binding: Should be "dp".
Optional properties for dp-controller:
-interlaced:
interlace scan mode.
Progressive if defined, Interlaced if not defined
-vsync-active-high:
VSYNC polarity configuration.
High if defined, Low if not defined
-hsync-active-high:
HSYNC polarity configuration.
High if defined, Low if not defined
-samsung,hpd-gpio:
Hotplug detect GPIO.
Indicates which GPIO should be used for hotplug
detection
-video interfaces: Device node can contain video interface port
nodes according to [1].
- display-timings: timings for the connected panel as described by
Documentation/devicetree/bindings/display/panel/display-timing.txt
For the below properties, please refer to Analogix DP binding document:
* Documentation/devicetree/bindings/display/bridge/analogix,dp.yaml
-phys (required)
-phy-names (required)
-hpd-gpios (optional)
force-hpd (optional)
Deprecated properties for DisplayPort:
-interlaced: deprecated prop that can parsed from drm_display_mode.
-vsync-active-high: deprecated prop that can parsed from drm_display_mode.
-hsync-active-high: deprecated prop that can parsed from drm_display_mode.
-samsung,ycbcr-coeff: deprecated prop that can parsed from drm_display_mode.
-samsung,dynamic-range: deprecated prop that can parsed from drm_display_mode.
-samsung,color-space: deprecated prop that can parsed from drm_display_info.
-samsung,color-depth: deprecated prop that can parsed from drm_display_info.
-samsung,link-rate: deprecated prop that can reading from monitor by dpcd method.
-samsung,lane-count: deprecated prop that can reading from monitor by dpcd method.
-samsung,hpd-gpio: deprecated name for hpd-gpios.
-------------------------------------------------------------------------------
Example:
SOC specific portion:
dp-controller {
compatible = "samsung,exynos5-dp";
reg = <0x145b0000 0x10000>;
interrupts = <10 3>;
interrupt-parent = <&combiner>;
clocks = <&clock 342>;
clock-names = "dp";
phys = <&dp_phy>;
phy-names = "dp";
};
Board Specific portion:
dp-controller {
display-timings {
native-mode = <&lcd_timing>;
lcd_timing: 1366x768 {
clock-frequency = <70589280>;
hactive = <1366>;
vactive = <768>;
hfront-porch = <40>;
hback-porch = <40>;
hsync-len = <32>;
vback-porch = <10>;
vfront-porch = <12>;
vsync-len = <6>;
};
};
ports {
port@0 {
dp_out: endpoint {
remote-endpoint = <&bridge_in>;
};
};
};
};

View File

@ -0,0 +1,163 @@
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/samsung/samsung,exynos5-dp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Samsung Exynos5250/Exynos5420 SoC Display Port
maintainers:
- Inki Dae <inki.dae@samsung.com>
- Seung-Woo Kim <sw0312.kim@samsung.com>
- Kyungmin Park <kyungmin.park@samsung.com>
- Krzysztof Kozlowski <krzk@kernel.org>
properties:
compatible:
const: samsung,exynos5-dp
reg:
maxItems: 1
clocks:
maxItems: 1
clock-names:
items:
- const: dp
display-timings:
$ref: /schemas/display/panel/display-timings.yaml#
interrupts:
maxItems: 1
hpd-gpios:
description:
Hotplug detect GPIO.
Indicates which GPIO should be used for hotplug detection
phys:
maxItems: 1
phy-names:
items:
- const: dp
power-domains:
maxItems: 1
interlaced:
type: boolean
deprecated: true
description:
Interlace scan mode. Progressive if defined, interlaced if not defined.
vsync-active-high:
type: boolean
deprecated: true
description:
VSYNC polarity configuration. High if defined, low if not defined
hsync-active-high:
type: boolean
deprecated: true
description:
HSYNC polarity configuration. High if defined, low if not defined
ports:
$ref: /schemas/graph.yaml#/properties/ports
properties:
port:
$ref: /schemas/graph.yaml#/properties/port
description:
Port node with one endpoint connected to a dp-connector node.
required:
- port
samsung,hpd-gpios:
maxItems: 1
deprecated: true
samsung,ycbcr-coeff:
$ref: /schemas/types.yaml#/definitions/uint32
deprecated: true
description:
Deprecated prop that can parsed from drm_display_mode.
samsung,dynamic-range:
$ref: /schemas/types.yaml#/definitions/uint32
deprecated: true
description:
Deprecated prop that can parsed from drm_display_mode.
samsung,color-space:
$ref: /schemas/types.yaml#/definitions/uint32
deprecated: true
description:
Deprecated prop that can parsed from drm_display_info.
samsung,color-depth:
$ref: /schemas/types.yaml#/definitions/uint32
deprecated: true
description:
Deprecated prop that can parsed from drm_display_info.
samsung,link-rate:
$ref: /schemas/types.yaml#/definitions/uint32
deprecated: true
description:
Deprecated prop that can reading from monitor by dpcd method.
samsung,lane-count:
$ref: /schemas/types.yaml#/definitions/uint32
deprecated: true
description:
Deprecated prop that can reading from monitor by dpcd method.
required:
- compatible
- reg
- clocks
- clock-names
- interrupts
- phys
- phy-names
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/exynos5250.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
dp-controller@145b0000 {
compatible = "samsung,exynos5-dp";
reg = <0x145b0000 0x1000>;
clocks = <&clock CLK_DP>;
clock-names = "dp";
interrupts = <10 3>;
interrupt-parent = <&combiner>;
phys = <&dp_phy>;
phy-names = "dp";
pinctrl-0 = <&dp_hpd>;
pinctrl-names = "default";
power-domains = <&pd_disp1>;
samsung,color-space = <0>;
samsung,color-depth = <1>;
samsung,link-rate = <0x0a>;
samsung,lane-count = <2>;
hpd-gpios = <&gpx0 7 GPIO_ACTIVE_HIGH>;
ports {
port {
dp_out: endpoint {
remote-endpoint = <&bridge_in>;
};
};
};
};