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
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
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