Message ID | 20220825095103.624891-4-dmitry.baryshkov@linaro.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | dt-bindings: display/msm: rework MDSS and DPU bindings | expand |
On 25/08/2022 12:50, Dmitry Baryshkov wrote: > Move schema for qcom,sc7180-mdss from dpu-sc7180.yaml to mdss.yaml so > that the dpu file describes only the DPU schema. MDSS grows to unmanagable file. I don't think we will be able to keep it maintained. You will have many if-else defining subnodes and their characteristics. As I said before - this should be several separate schemas with common part. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > .../bindings/display/msm/dpu-sc7180.yaml | 149 +++++------------- > .../devicetree/bindings/display/msm/mdss.yaml | 66 +++++++- > 2 files changed, 102 insertions(+), 113 deletions(-) > > diff --git a/Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml b/Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml > index d3c3e4b07897..9d4ec0b60c25 100644 > --- a/Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml > +++ b/Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml > @@ -10,151 +10,78 @@ maintainers: > - Krishna Manikandan <quic_mkrishn@quicinc.com> > > description: | > - Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates > - sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree > - bindings of MDSS and DPU are mentioned for SC7180 target. > + Device tree bindings for the DPU display controller for SC7180 target. > > properties: > compatible: > items: > - - const: qcom,sc7180-mdss > + - const: qcom,sc7180-dpu > > reg: > - maxItems: 1 > + items: > + - description: Address offset and size for mdp register set > + - description: Address offset and size for vbif register set > > reg-names: > - const: mdss > - > - power-domains: > - maxItems: 1 > + items: > + - const: mdp > + - const: vbif > > clocks: > items: > - - description: Display AHB clock from gcc > - - description: Display AHB clock from dispcc > + - description: Display hf axi clock > + - description: Display ahb clock > + - description: Display rotator clock > + - description: Display lut clock > - description: Display core clock > + - description: Display vsync clock > > clock-names: > items: > + - const: bus > - const: iface > - - const: ahb > + - const: rot > + - const: lut > - const: core > + - const: vsync All these changes point that device schemas are simply different and trying to unify them is not correct approach. Best regards, Krzysztof
On 25/08/2022 15:01, Krzysztof Kozlowski wrote: > On 25/08/2022 12:50, Dmitry Baryshkov wrote: >> Move schema for qcom,sc7180-mdss from dpu-sc7180.yaml to mdss.yaml so >> that the dpu file describes only the DPU schema. > > MDSS grows to unmanagable file. I don't think we will be able to keep it > maintained. You will have many if-else defining subnodes and their > characteristics. As I said before - this should be several separate > schemas with common part. > >> >> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >> --- >> .../bindings/display/msm/dpu-sc7180.yaml | 149 +++++------------- >> .../devicetree/bindings/display/msm/mdss.yaml | 66 +++++++- >> 2 files changed, 102 insertions(+), 113 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml b/Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml >> index d3c3e4b07897..9d4ec0b60c25 100644 >> --- a/Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml >> +++ b/Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml >> @@ -10,151 +10,78 @@ maintainers: >> - Krishna Manikandan <quic_mkrishn@quicinc.com> >> >> description: | >> - Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates >> - sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree >> - bindings of MDSS and DPU are mentioned for SC7180 target. >> + Device tree bindings for the DPU display controller for SC7180 target. >> >> properties: >> compatible: >> items: >> - - const: qcom,sc7180-mdss >> + - const: qcom,sc7180-dpu >> >> reg: >> - maxItems: 1 >> + items: >> + - description: Address offset and size for mdp register set >> + - description: Address offset and size for vbif register set >> >> reg-names: >> - const: mdss >> - >> - power-domains: >> - maxItems: 1 >> + items: >> + - const: mdp >> + - const: vbif >> >> clocks: >> items: >> - - description: Display AHB clock from gcc >> - - description: Display AHB clock from dispcc >> + - description: Display hf axi clock >> + - description: Display ahb clock >> + - description: Display rotator clock >> + - description: Display lut clock >> - description: Display core clock >> + - description: Display vsync clock >> >> clock-names: >> items: >> + - const: bus >> - const: iface >> - - const: ahb >> + - const: rot >> + - const: lut >> - const: core >> + - const: vsync > > All these changes point that device schemas are simply different and > trying to unify them is not correct approach. I'm not going the argue the mdss-common + platform specifics, but please note that these changes are coming from me removing one extra level of depth in dpu-smth.yaml. Currently these files have both mdss and dpu devices, I'm stripping the mdss out of them. > > Best regards, > Krzysztof
On 25/08/2022 15:40, Dmitry Baryshkov wrote: >>> clock-names: >>> items: >>> + - const: bus >>> - const: iface >>> - - const: ahb >>> + - const: rot >>> + - const: lut >>> - const: core >>> + - const: vsync >> >> All these changes point that device schemas are simply different and >> trying to unify them is not correct approach. > > I'm not going the argue the mdss-common + platform specifics, but please > note that these changes are coming from me removing one extra level of > depth in dpu-smth.yaml. Currently these files have both mdss and dpu > devices, I'm stripping the mdss out of them. True, it's second time I got myself looking at wrong part of diff hunk. Still your allOf:if:then grows with different cases. I guess the biggest differences came with sdm845 and later only children and clocks differ. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml b/Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml index d3c3e4b07897..9d4ec0b60c25 100644 --- a/Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml +++ b/Documentation/devicetree/bindings/display/msm/dpu-sc7180.yaml @@ -10,151 +10,78 @@ maintainers: - Krishna Manikandan <quic_mkrishn@quicinc.com> description: | - Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates - sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree - bindings of MDSS and DPU are mentioned for SC7180 target. + Device tree bindings for the DPU display controller for SC7180 target. properties: compatible: items: - - const: qcom,sc7180-mdss + - const: qcom,sc7180-dpu reg: - maxItems: 1 + items: + - description: Address offset and size for mdp register set + - description: Address offset and size for vbif register set reg-names: - const: mdss - - power-domains: - maxItems: 1 + items: + - const: mdp + - const: vbif clocks: items: - - description: Display AHB clock from gcc - - description: Display AHB clock from dispcc + - description: Display hf axi clock + - description: Display ahb clock + - description: Display rotator clock + - description: Display lut clock - description: Display core clock + - description: Display vsync clock clock-names: items: + - const: bus - const: iface - - const: ahb + - const: rot + - const: lut - const: core + - const: vsync interrupts: maxItems: 1 - interrupt-controller: true - - "#address-cells": true - - "#size-cells": true - - "#interrupt-cells": - const: 1 - - iommus: - items: - - description: Phandle to apps_smmu node with SID mask for Hard-Fail port0 - - ranges: true - - interconnects: - items: - - description: Interconnect path specifying the port ids for data bus - - interconnect-names: - const: mdp0-mem + power-domains: + maxItems: 1 - resets: - items: - - description: MDSS_CORE reset + operating-points-v2: true -patternProperties: - "^display-controller@[0-9a-f]+$": - type: object - description: Node containing the properties of DPU. + ports: + $ref: /schemas/graph.yaml#/properties/ports + description: | + Contains the list of output ports from DPU device. These ports + connect to interfaces that are external to the DPU hardware, + such as DSI, DP etc. Each output port contains an endpoint that + describes how it is connected to an external interface. properties: - compatible: - items: - - const: qcom,sc7180-dpu - - reg: - items: - - description: Address offset and size for mdp register set - - description: Address offset and size for vbif register set - - reg-names: - items: - - const: mdp - - const: vbif - - clocks: - items: - - description: Display hf axi clock - - description: Display ahb clock - - description: Display rotator clock - - description: Display lut clock - - description: Display core clock - - description: Display vsync clock - - clock-names: - items: - - const: bus - - const: iface - - const: rot - - const: lut - - const: core - - const: vsync - - interrupts: - maxItems: 1 - - power-domains: - maxItems: 1 - - operating-points-v2: true - - ports: - $ref: /schemas/graph.yaml#/properties/ports - description: | - Contains the list of output ports from DPU device. These ports - connect to interfaces that are external to the DPU hardware, - such as DSI, DP etc. Each output port contains an endpoint that - describes how it is connected to an external interface. - - properties: - port@0: - $ref: /schemas/graph.yaml#/properties/port - description: DPU_INTF1 (DSI1) - - port@2: - $ref: /schemas/graph.yaml#/properties/port - description: DPU_INTF0 (DP) - - required: - - port@0 + port@0: + $ref: /schemas/graph.yaml#/properties/port + description: DPU_INTF1 (DSI1) + + port@2: + $ref: /schemas/graph.yaml#/properties/port + description: DPU_INTF0 (DP) required: - - compatible - - reg - - reg-names - - clocks - - interrupts - - power-domains - - operating-points-v2 - - ports + - port@0 required: - compatible - reg - reg-names - - power-domains - clocks - interrupts - - interrupt-controller - - iommus - - ranges + - power-domains + - operating-points-v2 + - ports additionalProperties: false diff --git a/Documentation/devicetree/bindings/display/msm/mdss.yaml b/Documentation/devicetree/bindings/display/msm/mdss.yaml index ef4709d87004..f86177bb2e8c 100644 --- a/Documentation/devicetree/bindings/display/msm/mdss.yaml +++ b/Documentation/devicetree/bindings/display/msm/mdss.yaml @@ -18,6 +18,7 @@ properties: compatible: enum: - qcom,mdss + - qcom,sc7180-mdss - qcom,sdm845-mdss reg: @@ -64,20 +65,21 @@ properties: - description: MDSS_CORE reset interconnects: - minItems: 2 + minItems: 1 items: - description: MDP port 0 - description: MDP port 1 - description: Rotator interconnect-names: - minItems: 2 + minItems: 1 items: - const: mdp0-mem - const: mdp1-mem - const: rotator-mem iommus: + minItems: 1 items: - description: Phandle to apps_smmu node with SID mask for Hard-Fail port0 - description: Phandle to apps_smmu node with SID mask for Hard-Fail port1 @@ -129,14 +131,39 @@ allOf: - const: mdss interconnects: + minItems: 1 maxItems: 2 interconnect-names: + minItems: 1 maxItems: 2 required: - iommus + - if: + properties: + compatible: + contains: + enum: + - qcom,sc7180-mdss + then: + properties: + clocks: + items: + - description: Display AHB clock from gcc + - description: Display AHB clock from dispcc + - description: Display core clock + + clock-names: + items: + - const: iface + - const: ahb + - const: core + + iommus: + maxItems: 1 + - if: properties: compatible: @@ -210,6 +237,38 @@ allOf: - qcom,hdmi-tx-8994 - qcom,hdmi-tx-8996 + - if: + properties: + compatible: + contains: + const: qcom,sc7180-mdss + then: + patternProperties: + "^display-controller@[1-9a-f][0-9a-f]*$": + type: object + properties: + compatible: + const: qcom,sc7180-dpu + + "^displayport-controller@[1-9a-f][0-9a-f]*$": + type: object + properties: + compatible: + const: qcom,sc7180-dp + + "^dsi@[1-9a-f][0-9a-f]*$": + type: object + properties: + compatible: + const: qcom,mdss-dsi-ctrl + + "^dsi-phy@[1-9a-f][0-9a-f]*$": + type: object + properties: + compatible: + enum: + - qcom,dsi-phy-10nm + - if: properties: compatible: @@ -257,6 +316,9 @@ patternProperties: "^display-controller@[1-9a-f][0-9a-f]*$": type: object + "^displayport-controller@[1-9a-f][0-9a-f]*$": + type: object + "^dsi@[1-9a-f][0-9a-f]*$": type: object
Move schema for qcom,sc7180-mdss from dpu-sc7180.yaml to mdss.yaml so that the dpu file describes only the DPU schema. Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- .../bindings/display/msm/dpu-sc7180.yaml | 149 +++++------------- .../devicetree/bindings/display/msm/mdss.yaml | 66 +++++++- 2 files changed, 102 insertions(+), 113 deletions(-)