2021-12-25 20:54:16

by David Heidelberg

[permalink] [raw]
Subject: [PATCH] Discussion: dt-bindings: display: msm: dsi-controller-main: fix the binding

This binding is not much validating the old DSI v2.

Currently we don't differentiate old v2 from new versions,
so we need to figure out how to validate them.

I propose specific compatible depending on mdss version, but I would be
glad, if someone with deeper knowledge proposed the names.

I'm willing to implement it then and back from autodetection.

David
---
.../display/msm/dsi-controller-main.yaml | 53 ++++++++++++-------
1 file changed, 35 insertions(+), 18 deletions(-)

diff --git a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
index 35426fde8610..6688ddcd7526 100644
--- a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
+++ b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
@@ -27,22 +27,34 @@ properties:
maxItems: 1

clocks:
- items:
- - description: Display byte clock
- - description: Display byte interface clock
- - description: Display pixel clock
- - description: Display escape clock
- - description: Display AHB clock
- - description: Display AXI clock
+ oneOf:
+ - minItems: 7 # APQ8064
+ maxItems: 7
+ - items:
+ - description: Display byte clock
+ - description: Display byte interface clock
+ - description: Display pixel clock
+ - description: Display escape clock
+ - description: Display AHB clock
+ - description: Display AXI clock

clock-names:
- items:
- - const: byte
- - const: byte_intf
- - const: pixel
- - const: core
- - const: iface
- - const: bus
+ oneOf:
+ - items: # DSI v2 (APQ8064)
+ - const: iface # from dsi_v2_bus_clk_names
+ - const: bus
+ - const: core_mmss
+ - const: src # from dsi_clk_init_v2
+ - const: byte # from dsi_clk_init
+ - const: pixel
+ - const: core
+ - items:
+ - const: byte
+ - const: byte_intf
+ - const: pixel
+ - const: core
+ - const: iface
+ - const: bus

phys:
maxItems: 1
@@ -66,15 +78,17 @@ properties:

assigned-clocks:
minItems: 2
- maxItems: 2
+ maxItems: 4
description: |
Parents of "byte" and "pixel" for the given platform.
+ For older v2, "byte", "esc", "src" and "pixel".

assigned-clock-parents:
minItems: 2
- maxItems: 2
+ maxItems: 4
description: |
The Byte clock and Pixel clock PLL outputs provided by a DSI PHY block.
+ For older v2, Byte, Escape, Source and Pixel clock PLL outputs.

power-domains:
maxItems: 1
@@ -124,6 +138,9 @@ properties:
- port@0
- port@1

+patternProperties:
+ '^(avdd|vdd|vdda)-supply$': true # FIXME only APQ8064 supplies
+
required:
- compatible
- reg
@@ -135,8 +152,8 @@ required:
- phy-names
- assigned-clocks
- assigned-clock-parents
- - power-domains
- - operating-points-v2
+ # - power-domains # v2 doesn't seems to need it?
+ # - operating-points-v2 # v2 doesn't have opp implemented yet
- ports

additionalProperties: false
--
2.34.1



2021-12-25 23:34:23

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH] Discussion: dt-bindings: display: msm: dsi-controller-main: fix the binding

Hi,

On Sat, 25 Dec 2021 at 23:54, David Heidelberg <[email protected]> wrote:
>
> This binding is not much validating the old DSI v2.
>
> Currently we don't differentiate old v2 from new versions,
> so we need to figure out how to validate them.
>
> I propose specific compatible depending on mdss version, but I would be
> glad, if someone with deeper knowledge proposed the names.
>
> I'm willing to implement it then and back from autodetection.

I'd suggest to use hardware-specific compatible for apq8064 (and maybe
other v2 hosts if somebody adds support). For example
"qcom,apq8064-dsi-ctrl" or "qcom,dsi-ctrl-apq8064" (no strong
preference here).
For 6G hosts it will probably make sense to use IP versions instead
("qcom-dsi-ctrl-6g-v2.4.1").

>
> David
> ---
> .../display/msm/dsi-controller-main.yaml | 53 ++++++++++++-------
> 1 file changed, 35 insertions(+), 18 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
> index 35426fde8610..6688ddcd7526 100644
> --- a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
> +++ b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
> @@ -27,22 +27,34 @@ properties:
> maxItems: 1
>
> clocks:
> - items:
> - - description: Display byte clock
> - - description: Display byte interface clock
> - - description: Display pixel clock
> - - description: Display escape clock
> - - description: Display AHB clock
> - - description: Display AXI clock
> + oneOf:
> + - minItems: 7 # APQ8064
> + maxItems: 7
> + - items:
> + - description: Display byte clock
> + - description: Display byte interface clock
> + - description: Display pixel clock
> + - description: Display escape clock
> + - description: Display AHB clock
> + - description: Display AXI clock
>
> clock-names:
> - items:
> - - const: byte
> - - const: byte_intf
> - - const: pixel
> - - const: core
> - - const: iface
> - - const: bus
> + oneOf:
> + - items: # DSI v2 (APQ8064)
> + - const: iface # from dsi_v2_bus_clk_names
> + - const: bus
> + - const: core_mmss
> + - const: src # from dsi_clk_init_v2
> + - const: byte # from dsi_clk_init
> + - const: pixel
> + - const: core
> + - items:
> + - const: byte
> + - const: byte_intf
> + - const: pixel
> + - const: core
> + - const: iface
> + - const: bus
>
> phys:
> maxItems: 1
> @@ -66,15 +78,17 @@ properties:
>
> assigned-clocks:
> minItems: 2
> - maxItems: 2
> + maxItems: 4
> description: |
> Parents of "byte" and "pixel" for the given platform.
> + For older v2, "byte", "esc", "src" and "pixel".
>
> assigned-clock-parents:
> minItems: 2
> - maxItems: 2
> + maxItems: 4
> description: |
> The Byte clock and Pixel clock PLL outputs provided by a DSI PHY block.
> + For older v2, Byte, Escape, Source and Pixel clock PLL outputs.
>
> power-domains:
> maxItems: 1
> @@ -124,6 +138,9 @@ properties:
> - port@0
> - port@1
>
> +patternProperties:
> + '^(avdd|vdd|vdda)-supply$': true # FIXME only APQ8064 supplies
> +
> required:
> - compatible
> - reg
> @@ -135,8 +152,8 @@ required:
> - phy-names
> - assigned-clocks
> - assigned-clock-parents
> - - power-domains
> - - operating-points-v2
> + # - power-domains # v2 doesn't seems to need it?
> + # - operating-points-v2 # v2 doesn't have opp implemented yet
> - ports
>
> additionalProperties: false
> --
> 2.34.1
>


--
With best wishes
Dmitry

2022-01-04 22:26:10

by Rob Herring (Arm)

[permalink] [raw]
Subject: Re: [PATCH] Discussion: dt-bindings: display: msm: dsi-controller-main: fix the binding

On Sun, Dec 26, 2021 at 02:34:08AM +0300, Dmitry Baryshkov wrote:
> Hi,
>
> On Sat, 25 Dec 2021 at 23:54, David Heidelberg <[email protected]> wrote:
> >
> > This binding is not much validating the old DSI v2.
> >
> > Currently we don't differentiate old v2 from new versions,
> > so we need to figure out how to validate them.
> >
> > I propose specific compatible depending on mdss version, but I would be
> > glad, if someone with deeper knowledge proposed the names.
> >
> > I'm willing to implement it then and back from autodetection.
>
> I'd suggest to use hardware-specific compatible for apq8064 (and maybe
> other v2 hosts if somebody adds support). For example
> "qcom,apq8064-dsi-ctrl" or "qcom,dsi-ctrl-apq8064" (no strong
> preference here).

The former.

> For 6G hosts it will probably make sense to use IP versions instead
> ("qcom-dsi-ctrl-6g-v2.4.1").

Humm, we went down the path of version numbers for QCom blocks, but the
result was not much reuse of same version on more than 2-3 parts if
that. So stick with SoCs for naming unless there's a strong case that
version numbers to SoC parts is 1 to many.

Rob