Each compatible has a different set of clocks which are associated with it.
Add in the list of clocks for each compatible.
Acked-by: Rob Herring <robh@kernel.org>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
---
.../display/msm/dsi-controller-main.yaml | 218 ++++++++++++++++--
1 file changed, 201 insertions(+), 17 deletions(-)
diff --git a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
index 35668caa190c4..ad1ba15b74c19 100644
--- a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
+++ b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml
@@ -9,9 +9,6 @@ title: Qualcomm Display DSI controller
maintainers:
- Krishna Manikandan <quic_mkrishn@quicinc.com>
-allOf:
- - $ref: "../dsi-controller.yaml#"
-
properties:
compatible:
oneOf:
@@ -50,22 +47,23 @@ properties:
maxItems: 1
clocks:
- items:
- - description: Display byte clock
- - description: Display byte interface clock
- - description: Display pixel clock
- - description: Display core clock
- - description: Display AHB clock
- - description: Display AXI clock
+ description: |
+ Several clocks are used, depending on the variant. Typical ones are::
+ - bus:: Display AHB clock.
+ - byte:: Display byte clock.
+ - byte_intf:: Display byte interface clock.
+ - core:: Display core clock.
+ - core_mss:: Core MultiMedia SubSystem clock.
+ - iface:: Display AXI clock.
+ - mdp_core:: MDP Core clock.
+ - mnoc:: MNOC clock
+ - pixel:: Display pixel clock.
+ minItems: 3
+ maxItems: 9
clock-names:
- items:
- - const: byte
- - const: byte_intf
- - const: pixel
- - const: core
- - const: iface
- - const: bus
+ minItems: 3
+ maxItems: 9
phys:
maxItems: 1
@@ -161,6 +159,192 @@ required:
- assigned-clock-parents
- ports
+allOf:
+ - $ref: ../dsi-controller.yaml#
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,apq8064-dsi-ctrl
+ then:
+ properties:
+ clocks:
+ maxItems: 7
+ clock-names:
+ items:
+ - const: iface
+ - const: bus
+ - const: core_mmss
+ - const: src
+ - const: byte
+ - const: pixel
+ - const: core
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,msm8916-dsi-ctrl
+ then:
+ properties:
+ clocks:
+ maxItems: 6
+ clock-names:
+ items:
+ - const: mdp_core
+ - const: iface
+ - const: bus
+ - const: byte
+ - const: pixel
+ - const: core
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,msm8953-dsi-ctrl
+ then:
+ properties:
+ clocks:
+ maxItems: 6
+ clock-names:
+ items:
+ - const: mdp_core
+ - const: iface
+ - const: bus
+ - const: byte
+ - const: pixel
+ - const: core
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,msm8974-dsi-ctrl
+ then:
+ properties:
+ clocks:
+ maxItems: 7
+ clock-names:
+ items:
+ - const: mdp_core
+ - const: iface
+ - const: bus
+ - const: byte
+ - const: pixel
+ - const: core
+ - const: core_mmss
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,msm8996-dsi-ctrl
+ then:
+ properties:
+ clocks:
+ maxItems: 7
+ clock-names:
+ items:
+ - const: mdp_core
+ - const: byte
+ - const: iface
+ - const: bus
+ - const: core_mmss
+ - const: pixel
+ - const: core
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,msm8998-dsi-ctrl
+ then:
+ properties:
+ clocks:
+ maxItems: 6
+ clock-names:
+ items:
+ - const: byte
+ - const: byte_intf
+ - const: pixel
+ - const: core
+ - const: iface
+ - const: bus
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,sc7180-dsi-ctrl
+ - qcom,sc7280-dsi-ctrl
+ - qcom,sm8250-dsi-ctrl
+ - qcom,sm8150-dsi-ctrl
+ - qcom,sm8250-dsi-ctrl
+ - qcom,sm8350-dsi-ctrl
+ - qcom,sm8450-dsi-ctrl
+ - qcom,sm8550-dsi-ctrl
+ then:
+ properties:
+ clocks:
+ maxItems: 6
+ clock-names:
+ items:
+ - const: byte
+ - const: byte_intf
+ - const: pixel
+ - const: core
+ - const: iface
+ - const: bus
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,sdm660-dsi-ctrl
+ then:
+ properties:
+ clocks:
+ maxItems: 9
+ clock-names:
+ items:
+ - const: mdp_core
+ - const: byte
+ - const: byte_intf
+ - const: mnoc
+ - const: iface
+ - const: bus
+ - const: core_mmss
+ - const: pixel
+ - const: core
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,sdm845-dsi-ctrl
+ then:
+ properties:
+ clocks:
+ maxItems: 6
+ clock-names:
+ items:
+ - const: byte
+ - const: byte_intf
+ - const: pixel
+ - const: core
+ - const: iface
+ - const: bus
+
additionalProperties: false
examples:
--
2.38.1
Hi! On 2023-01-18 17:16:21, Bryan O'Donoghue wrote: > Each compatible has a different set of clocks which are associated with it. > Add in the list of clocks for each compatible. So if each set of compatibles have their own unique set of clocks, is there a reason to have so many duplicate then: blocks? I ran into this while preparing for submitting SM6125 DPU and having no clue where to add it. > Acked-by: Rob Herring <robh@kernel.org> > Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> > Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> > --- > .../display/msm/dsi-controller-main.yaml | 218 ++++++++++++++++-- > 1 file changed, 201 insertions(+), 17 deletions(-) > > diff --git a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml > index 35668caa190c4..ad1ba15b74c19 100644 > --- a/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml > +++ b/Documentation/devicetree/bindings/display/msm/dsi-controller-main.yaml > @@ -9,9 +9,6 @@ title: Qualcomm Display DSI controller > maintainers: > - Krishna Manikandan <quic_mkrishn@quicinc.com> > > -allOf: > - - $ref: "../dsi-controller.yaml#" > - > properties: > compatible: > oneOf: > @@ -50,22 +47,23 @@ properties: > maxItems: 1 > > clocks: > - items: > - - description: Display byte clock > - - description: Display byte interface clock > - - description: Display pixel clock > - - description: Display core clock > - - description: Display AHB clock > - - description: Display AXI clock > + description: | > + Several clocks are used, depending on the variant. Typical ones are:: > + - bus:: Display AHB clock. > + - byte:: Display byte clock. > + - byte_intf:: Display byte interface clock. > + - core:: Display core clock. > + - core_mss:: Core MultiMedia SubSystem clock. mm*?? > + - iface:: Display AXI clock. > + - mdp_core:: MDP Core clock. > + - mnoc:: MNOC clock > + - pixel:: Display pixel clock. > + minItems: 3 > + maxItems: 9 > > clock-names: > - items: > - - const: byte > - - const: byte_intf > - - const: pixel > - - const: core > - - const: iface > - - const: bus > + minItems: 3 > + maxItems: 9 > > phys: > maxItems: 1 > @@ -161,6 +159,192 @@ required: > - assigned-clock-parents > - ports > > +allOf: > + - $ref: ../dsi-controller.yaml# > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,apq8064-dsi-ctrl > + then: > + properties: > + clocks: > + maxItems: 7 > + clock-names: > + items: > + - const: iface > + - const: bus > + - const: core_mmss > + - const: src > + - const: byte > + - const: pixel > + - const: core > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,msm8916-dsi-ctrl > + then: > + properties: > + clocks: > + maxItems: 6 > + clock-names: > + items: > + - const: mdp_core > + - const: iface > + - const: bus > + - const: byte > + - const: pixel > + - const: core So this... > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,msm8953-dsi-ctrl > + then: > + properties: > + clocks: > + maxItems: 6 > + clock-names: > + items: > + - const: mdp_core > + - const: iface > + - const: bus > + - const: byte > + - const: pixel > + - const: core Is the same as the above. Can we merge msm8953 into msm8916 or do you expect differences down the line? > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,msm8974-dsi-ctrl > + then: > + properties: > + clocks: > + maxItems: 7 > + clock-names: > + items: > + - const: mdp_core > + - const: iface > + - const: bus > + - const: byte > + - const: pixel > + - const: core > + - const: core_mmss > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,msm8996-dsi-ctrl > + then: > + properties: > + clocks: > + maxItems: 7 > + clock-names: > + items: > + - const: mdp_core > + - const: byte > + - const: iface > + - const: bus > + - const: core_mmss > + - const: pixel > + - const: core This could be the same as msm8226/msm8974 if we reorder the entries. > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,msm8998-dsi-ctrl > + then: > + properties: > + clocks: > + maxItems: 6 > + clock-names: > + items: > + - const: byte > + - const: byte_intf > + - const: pixel > + - const: core > + - const: iface > + - const: bus Then, here... > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,sc7180-dsi-ctrl > + - qcom,sc7280-dsi-ctrl > + - qcom,sm8250-dsi-ctrl > + - qcom,sm8150-dsi-ctrl > + - qcom,sm8250-dsi-ctrl > + - qcom,sm8350-dsi-ctrl > + - qcom,sm8450-dsi-ctrl > + - qcom,sm8550-dsi-ctrl > + then: > + properties: > + clocks: > + maxItems: 6 > + clock-names: > + items: > + - const: byte > + - const: byte_intf > + - const: pixel > + - const: core > + - const: iface > + - const: bus ... and here ... > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,sdm660-dsi-ctrl > + then: > + properties: > + clocks: > + maxItems: 9 > + clock-names: > + items: > + - const: mdp_core > + - const: byte > + - const: byte_intf > + - const: mnoc > + - const: iface > + - const: bus > + - const: core_mmss > + - const: pixel > + - const: core > + > + - if: > + properties: > + compatible: > + contains: > + enum: > + - qcom,sdm845-dsi-ctrl > + then: > + properties: > + clocks: > + maxItems: 6 > + clock-names: > + items: > + - const: byte > + - const: byte_intf > + - const: pixel > + - const: core > + - const: iface > + - const: bus and here, we have *three* identical lists of clocks. Should they (have been) combined? I can send a patch fixing these all if desired! - Marijn > + > additionalProperties: false > > examples: > -- > 2.38.1 >
On 22/06/2023 00:45, Marijn Suijten wrote: > Hi! > > On 2023-01-18 17:16:21, Bryan O'Donoghue wrote: >> Each compatible has a different set of clocks which are associated with it. >> Add in the list of clocks for each compatible. > > So if each set of compatibles have their own unique set of clocks, is > there a reason to have so many duplicate then: blocks? I ran into this > while preparing for submitting SM6125 DPU and having no clue where to > add it. > >> Acked-by: Rob Herring <robh@kernel.org> >> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> >> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> >> --- >> .../display/msm/dsi-controller-main.yaml | 218 ++++++++++++++++-- >> 1 file changed, 201 insertions(+), 17 deletions(-) >> [skipped most of the comments] > >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,sc7180-dsi-ctrl >> + - qcom,sc7280-dsi-ctrl >> + - qcom,sm8250-dsi-ctrl >> + - qcom,sm8150-dsi-ctrl >> + - qcom,sm8250-dsi-ctrl >> + - qcom,sm8350-dsi-ctrl >> + - qcom,sm8450-dsi-ctrl >> + - qcom,sm8550-dsi-ctrl >> + then: >> + properties: >> + clocks: >> + maxItems: 6 >> + clock-names: >> + items: >> + - const: byte >> + - const: byte_intf >> + - const: pixel >> + - const: core >> + - const: iface >> + - const: bus > > ... and here ... > >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,sdm660-dsi-ctrl >> + then: >> + properties: >> + clocks: >> + maxItems: 9 >> + clock-names: >> + items: >> + - const: mdp_core >> + - const: byte >> + - const: byte_intf >> + - const: mnoc >> + - const: iface >> + - const: bus >> + - const: core_mmss >> + - const: pixel >> + - const: core >> + >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - qcom,sdm845-dsi-ctrl >> + then: >> + properties: >> + clocks: >> + maxItems: 6 >> + clock-names: >> + items: >> + - const: byte >> + - const: byte_intf >> + - const: pixel >> + - const: core >> + - const: iface >> + - const: bus > > and here, we have *three* identical lists of clocks. Should they (have > been) combined? > > I can send a patch fixing these all if desired! Probably it would be logical to split follow DPU and MDSS schema and split this file into per-SoC compatibles and a generic file. Then it would be easier to review different SoC parts. Regarding reordering of clocks. I think we have 5 different configurations in dsi_cfg.c, but we definitely can optimize the schema. > > - Marijn > >> + >> additionalProperties: false >> >> examples: >> -- >> 2.38.1 >> -- With best wishes Dmitry
© 2016 - 2025 Red Hat, Inc.