[Freedreno] [PATCH v2 3/8] dt-bindings: display/msm: add support for the display on SM8450

Krzysztof Kozlowski krzysztof.kozlowski at linaro.org
Fri Nov 4 12:52:33 UTC 2022


On 04/11/2022 08:34, Dmitry Baryshkov wrote:
> On 03/11/2022 17:03, Krzysztof Kozlowski wrote:
>> On 02/11/2022 19:13, Dmitry Baryshkov wrote:
>>> Add DPU and MDSS schemas to describe MDSS and DPU blocks on the Qualcomm
>>> SM8450 platform.
>>>
>>> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
>>> ---
>>>   .../bindings/display/msm/qcom,sm8450-dpu.yaml | 132 +++++++
>>>   .../display/msm/qcom,sm8450-mdss.yaml         | 349 ++++++++++++++++++
>>>   2 files changed, 481 insertions(+)
>>>   create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sm8450-dpu.yaml
>>>   create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sm8450-mdss.yaml
>>>
>>> diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sm8450-dpu.yaml b/Documentation/devicetree/bindings/display/msm/qcom,sm8450-dpu.yaml
>>> new file mode 100644
>>> index 000000000000..b8c508c50bc5
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/display/msm/qcom,sm8450-dpu.yaml
>>> @@ -0,0 +1,132 @@
>>> +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/display/msm/qcom,sm8450-dpu.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Qualcomm SM8450 Display DPU
>>> +
>>> +maintainers:
>>> +  - Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
>>> +
>>> +$ref: /schemas/display/msm/dpu-common.yaml#
>>
>> There is no such file and I could not fine any dependency mentioned in
>> cover letter. I guess you miss link to your refactor series?
> 
> Excuse me, yes. However the refactoring should be already a part of 
> linux-next, so I didn't think that I should especially point to it.

Not in yesterday's next.

> 
>> This also means bot won't be able to test it...
> 
> How does bot detects the base commit? Should i use --base? Or does it 
> work on top of linux-next?

I think bot tests on rc1, so even next would not help here. Anyway
that's just a remark that you won't get automated test email.

> 
>>
>>> +
>>> +properties:
>>> +  compatible:
>>> +    const: qcom,sm8450-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 sf axi clock
>>> +      - description: Display ahb clock
>>> +      - description: Display lut clock
>>> +      - description: Display core clock
>>> +      - description: Display vsync clock
>>
>> Drop "clock", less typing.
> 
> Ack
> 
>>
>>> +
>>> +  clock-names:
>>> +    items:
>>> +      - const: bus
>>> +      - const: nrt_bus
>>> +      - const: iface
>>> +      - const: lut
>>> +      - const: core
>>> +      - const: vsync
>>> +
>>> +unevaluatedProperties: false
>>> +
>>> +examples:
>>> +  - |
>>> +    #include <dt-bindings/clock/qcom,sm8450-dispcc.h>
>>> +    #include <dt-bindings/clock/qcom,gcc-sm8450.h>
>>> +    #include <dt-bindings/interrupt-controller/arm-gic.h>
>>> +    #include <dt-bindings/interconnect/qcom,sm8450.h>
>>> +    #include <dt-bindings/power/qcom-rpmpd.h>
>>> +
>>> +    display-controller at ae01000 {
>>> +        compatible = "qcom,sm8450-dpu";
>>> +        reg = <0x0ae01000 0x8f000>,
>>> +              <0x0aeb0000 0x2008>;
>>> +        reg-names = "mdp", "vbif";
>>> +
>>> +        clocks = <&gcc GCC_DISP_HF_AXI_CLK>,
>>> +                <&gcc GCC_DISP_SF_AXI_CLK>,
>>> +                <&dispcc DISP_CC_MDSS_AHB_CLK>,
>>> +                <&dispcc DISP_CC_MDSS_MDP_LUT_CLK>,
>>> +                <&dispcc DISP_CC_MDSS_MDP_CLK>,
>>> +                <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
>>> +        clock-names = "bus",
>>> +                      "nrt_bus",
>>> +                      "iface",
>>> +                      "lut",
>>> +                      "core",
>>> +                      "vsync";
>>> +
>>> +        assigned-clocks = <&dispcc DISP_CC_MDSS_VSYNC_CLK>;
>>> +        assigned-clock-rates = <19200000>;
>>> +
>>> +        operating-points-v2 = <&mdp_opp_table>;
>>> +        power-domains = <&rpmhpd SM8450_MMCX>;
>>> +
>>> +        interrupt-parent = <&mdss>;
>>> +        interrupts = <0>;
>>> +
>>> +        ports {
>>> +            #address-cells = <1>;
>>> +            #size-cells = <0>;
>>> +
>>> +            port at 0 {
>>> +                reg = <0>;
>>> +                dpu_intf1_out: endpoint {
>>> +                    remote-endpoint = <&dsi0_in>;
>>> +                };
>>> +            };
>>> +
>>> +            port at 1 {
>>> +                reg = <1>;
>>> +                dpu_intf2_out: endpoint {
>>> +                    remote-endpoint = <&dsi1_in>;
>>> +                };
>>> +            };
>>> +        };
>>> +
>>> +        mdp_opp_table: opp-table {
>>> +            compatible = "operating-points-v2";
>>> +
>>> +            opp-172000000{
>>> +                opp-hz = /bits/ 64 <172000000>;
>>> +                required-opps = <&rpmhpd_opp_low_svs_d1>;
>>> +            };
>>> +
>>> +            opp-200000000 {
>>> +                opp-hz = /bits/ 64 <200000000>;
>>> +                required-opps = <&rpmhpd_opp_low_svs>;
>>> +            };
>>> +
>>> +            opp-325000000 {
>>> +                opp-hz = /bits/ 64 <325000000>;
>>> +                required-opps = <&rpmhpd_opp_svs>;
>>> +            };
>>> +
>>> +            opp-375000000 {
>>> +                opp-hz = /bits/ 64 <375000000>;
>>> +                required-opps = <&rpmhpd_opp_svs_l1>;
>>> +            };
>>> +
>>> +            opp-500000000 {
>>> +                opp-hz = /bits/ 64 <500000000>;
>>> +                required-opps = <&rpmhpd_opp_nom>;
>>> +            };
>>> +        };
>>> +    };
>>> +...
>>> diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sm8450-mdss.yaml b/Documentation/devicetree/bindings/display/msm/qcom,sm8450-mdss.yaml
>>> new file mode 100644
>>> index 000000000000..05c606e6ada3
>>> --- /dev/null
>>> +++ b/Documentation/devicetree/bindings/display/msm/qcom,sm8450-mdss.yaml
>>> @@ -0,0 +1,349 @@
>>> +# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/display/msm/qcom,sm8450-mdss.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Qualcomm SM8450 Display MDSS
>>> +
>>> +maintainers:
>>> +  - Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
>>> +
>>> +description:
>>> +  Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates
>>
>> Drop "Device tree bindings for" and rewrite the sentence (e.g. drop "that").
>>
>>> +  sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree
>>> +  bindings of MDSS are mentioned for SM8450 target.
>>
>> Drop last sentence.
>>
>>> +
>>> +$ref: /schemas/display/msm/mdss-common.yaml#
>>> +
>>> +properties:
>>> +  compatible:
>>> +    items:
>>
>> Drop items.
>>
>>> +      - const: qcom,sm8450-mdss
>>
>>> +
>>> +  clocks:
>>> +    items:
>>> +      - description: Display AHB clock from gcc
>>> +      - description: Display hf axi clock
>>> +      - description: Display sf axi clock
>>> +      - description: Display core clock
>>
>> Drop trailing "clocks" (the first "AHB clock" is ok)
> 
> Hmm, not sure that I understand the difference, but fine with me.

Not much different, but for me AHB is a bus, so "Display AHB from gcc"
suggests a bit gcc provides some bus, but you want bus clock. AXI is
also a bus... so maybe drop clock everywhere.


Best regards,
Krzysztof



More information about the Freedreno mailing list