On Fri, Apr 24, 2020 at 01:26:34PM +0200, Ricardo Cañuelo wrote: > This converts the DT binding for the Analogix DP bridge used in > the Exynos 5 and Rockchip RK3288/RK3399 SoCs to yaml. > > Changes from the original binding: > - phy and phy-names aren't defined as 'required' (rk3399-evb.dts doesn't > define them) > > Signed-off-by: Ricardo Cañuelo <ricardo.canuelo@xxxxxxxxxxxxx> > --- > This binding is meant to be used in conjunction with > Documentation/bindings/display/rockchip/analogix_dp-rockchip.txt > and > Documentation/bindings/display/exynos/exynos_dp.txt > > I was careful to define the bindings to be flexible enough for both > cases, since the properties might be slightly different depending > on the SoC. They need to be converted all at once to schema. > > Tested with > make dt_binding_check ARCH=arm64 DT_SCHEMA_FILES=<...analogix_dp.yaml> > make dtbs_check ARCH=arm64 DT_SCHEMA_FILES=<...analogix_dp.yaml> > > .../bindings/display/bridge/analogix_dp.txt | 51 -------- > .../bindings/display/bridge/analogix_dp.yaml | 120 ++++++++++++++++++ > 2 files changed, 120 insertions(+), 51 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/display/bridge/analogix_dp.txt > create mode 100644 Documentation/devicetree/bindings/display/bridge/analogix_dp.yaml > > diff --git a/Documentation/devicetree/bindings/display/bridge/analogix_dp.txt b/Documentation/devicetree/bindings/display/bridge/analogix_dp.txt > deleted file mode 100644 > index 027d76c27a41..000000000000 > --- a/Documentation/devicetree/bindings/display/bridge/analogix_dp.txt > +++ /dev/null > @@ -1,51 +0,0 @@ > -Analogix Display Port bridge bindings > - > -Required properties for dp-controller: > - -compatible: > - platform specific such as: > - * "samsung,exynos5-dp" > - * "rockchip,rk3288-dp" > - * "rockchip,rk3399-edp" > - -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: > - -force-hpd: > - Indicate driver need force hpd when hpd detect failed, this > - is used for some eDP screen which don't have hpd signal. > - -hpd-gpios: > - Hotplug detect GPIO. > - Indicates which GPIO should be used for hotplug detection > - -port@[X]: SoC specific port nodes with endpoint definitions as defined > - in Documentation/devicetree/bindings/media/video-interfaces.txt, > - please refer to the SoC specific binding document: > - * Documentation/devicetree/bindings/display/exynos/exynos_dp.txt > - * Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt > - > -[1]: Documentation/devicetree/bindings/media/video-interfaces.txt > -------------------------------------------------------------------------------- > - > -Example: > - > - 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"; > - }; > diff --git a/Documentation/devicetree/bindings/display/bridge/analogix_dp.yaml b/Documentation/devicetree/bindings/display/bridge/analogix_dp.yaml > new file mode 100644 > index 000000000000..a29a79d92c4b > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/bridge/analogix_dp.yaml > @@ -0,0 +1,120 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/bridge/analogix_dp.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Analogix Display Port bridge bindings > + > +maintainers: > + - Yakir Yang <ykk@xxxxxxxxxxxxxx> > + > +description: | > + The Samsung Exynos eDP and Rockchip RK3288 eDP controllers share the > + same IP. This binding describes the nodes and properties that are > + common to both SoCs. > + > + Please, read this together with > + Documentation/devicetree/bindings/display/exynos/exynos_dp.txt > + and > + Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt > + > +properties: > + compatible: > + enum: > + - samsung,exynos5-dp > + - rockchip,rk3288-dp > + - rockchip,rk3399-edp > + > + reg: > + maxItems: 1 > + description: > + Physical base address of the controller and length of memory > + mapped region. That's all 'reg' properties, drop. > + > + interrupts: > + maxItems: 1 > + description: Interrupt combiner values. > + > + clocks: > + description: Phandles to dp clocks. Need: minItems: 1 maxItems: 3 > + > + clock-names: > + minItems: 1 > + maxItems: 3 > + additionalItems: true > + items: > + - const: dp > + description: Must define at least "dp". That's what the schema says. > + > + phys: > + maxItems: 1 > + description: Phandle for the PHY device. Drop > + > + phy-names: > + const: dp > + > + force-hpd: true > + > + hpd-gpios: > + maxItems: 1 > + description: > + Hotplug Detect GPIO. Indicates which GPIO should be used for > + hotplug detection. This should be marked deprecated because this belongs in a connector node. > + > + ports: > + type: object > + description: | > + A node containing SoC-specific port nodes with endpoint > + definitions as documented in > + Documentation/devicetree/bindings/media/video-interfaces.txt > + > + Please, refer to > + Documentation/devicetree/bindings/display/exynos/exynos_dp.txt > + and > + Documentation/devicetree/bindings/display/rockchip/analogix_dp-rockchip.txt > + for SoC-specific information about port and endpoint definitions. Is the port numbering different? If so, probably should just have 2 separate schema files. > + > + properties: > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > + port@0: > + type: object Needs 'description' to say what data each port is. > + > + properties: > + reg: > + const: 0 > + > + port@1: > + type: object > + > + properties: > + reg: > + const: 1 > + > +required: > + - compatible > + - reg > + - interrupts > + - clocks > + - clock-names > + > +examples: > + - | > + dp: dp-controller@145b0000 { > + 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"; > + }; > + > +... > -- > 2.18.0 >