Message ID | 20240926110137.2200158-1-quic_mahap@quicinc.com |
---|---|
Headers | show |
Series | Display enablement changes for Qualcomm SA8775P platform | expand |
On Thu, Sep 26, 2024 at 04:31:33PM GMT, Mahadevan wrote: > Document the MDSS hardware found on the Qualcomm SA8775P platform. > > Signed-off-by: Mahadevan <quic_mahap@quicinc.com> > --- > > [v2] > - Use fake DISPCC nodes to avoid clock dependencies in dt-bindings. [Dmitry] > - Update bindings by fixing dt_binding_check tool errors (update includes in example), > adding proper spacing and indentation in binding example, dropping unused labels, > dropping status disable, adding reset node. [Dmitry, Rob, Krzysztof] > > --- > .../display/msm/qcom,sa8775p-mdss.yaml | 239 ++++++++++++++++++ > 1 file changed, 239 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml > > diff --git a/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml b/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml > new file mode 100644 > index 000000000000..e610b66ffa9f > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml > @@ -0,0 +1,239 @@ > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/msm/qcom,sa8775p-mdss.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Qualcomm Technologies, Inc. SA87755P Display MDSS > + > +maintainers: > + - Mahadevan <quic_mahap@quicinc.com> > + > +description: > + SA8775P MSM Mobile Display Subsystem(MDSS), which encapsulates sub-blocks like > + DPU display controller, DP interfaces and EDP etc. > + > +$ref: /schemas/display/msm/mdss-common.yaml# > + > +properties: > + compatible: > + const: qcom,sa8775p-mdss > + > + clocks: > + items: > + - description: Display AHB > + - description: Display hf AXI > + - description: Display core > + > + iommus: > + maxItems: 1 > + > + interconnects: > + maxItems: 3 > + > + interconnect-names: > + maxItems: 3 > + > +patternProperties: > + "^display-controller@[0-9a-f]+$": > + type: object > + properties: > + compatible: > + const: qcom,sa8775p-dpu > + > + "^displayport-controller@[0-9a-f]+$": > + type: object > + properties: > + compatible: > + items: > + - const: qcom,sa8775p-dp > + > +required: > + - compatible > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/interconnect/qcom,icc.h> > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + #include <dt-bindings/clock/qcom,sa8775p-gcc.h> > + #include <dt-bindings/interconnect/qcom,sa8775p-rpmh.h> > + #include <dt-bindings/power/qcom,rpmhpd.h> > + #include <dt-bindings/power/qcom-rpmpd.h> > + > + display-subsystem@ae00000 { > + compatible = "qcom,sa8775p-mdss"; > + reg = <0 0x0ae00000 0 0x1000>; 0x0, not just 0, please. Here and alsmost everywhere else. > + reg-names = "mdss";
On Thu, 26 Sep 2024 16:31:33 +0530, Mahadevan wrote: > Document the MDSS hardware found on the Qualcomm SA8775P platform. > > Signed-off-by: Mahadevan <quic_mahap@quicinc.com> > --- > > [v2] > - Use fake DISPCC nodes to avoid clock dependencies in dt-bindings. [Dmitry] > - Update bindings by fixing dt_binding_check tool errors (update includes in example), > adding proper spacing and indentation in binding example, dropping unused labels, > dropping status disable, adding reset node. [Dmitry, Rob, Krzysztof] > > --- > .../display/msm/qcom,sa8775p-mdss.yaml | 239 ++++++++++++++++++ > 1 file changed, 239 insertions(+) > create mode 100644 Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml: ^display-controller@[0-9a-f]+$: Missing additionalProperties/unevaluatedProperties constraint /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.yaml: ^displayport-controller@[0-9a-f]+$: Missing additionalProperties/unevaluatedProperties constraint Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.example.dts:61.13-20: Warning (ranges_format): /example-0/display-subsystem@ae00000:ranges: empty "ranges" property but its #address-cells (2) differs from /example-0 (1) Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.example.dts:61.13-20: Warning (ranges_format): /example-0/display-subsystem@ae00000:ranges: empty "ranges" property but its #size-cells (2) differs from /example-0 (1) /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.example.dtb: display-subsystem@ae00000: reg: [[0, 182452224], [0, 4096]] is too long from schema $id: http://devicetree.org/schemas/display/msm/qcom,sa8775p-mdss.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/display/msm/qcom,sa8775p-mdss.example.dtb: display-subsystem@ae00000: Unevaluated properties are not allowed ('reg' was unexpected) from schema $id: http://devicetree.org/schemas/display/msm/qcom,sa8775p-mdss.yaml# doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20240926110137.2200158-2-quic_mahap@quicinc.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On Thu, Sep 26, 2024 at 04:31:37PM GMT, Mahadevan wrote: > Add mdss0 and mdp devicetree nodes for sa8775p target. > > Signed-off-by: Mahadevan <quic_mahap@quicinc.com> > > --- > > This patch depends on the clock enablement change: > https://lore.kernel.org/all/20240816-sa8775p-mm-v3-v1-0-77d53c3c0cef@quicinc.com/ > > --- > > [v2] > - Update commit message mentioning enablement of mdss0 only is done. [Dmitry] It doesn't > - Add resets node and fix indentation. [Dmitry] > --- > arch/arm64/boot/dts/qcom/sa8775p.dtsi | 87 +++++++++++++++++++++++++++ > 1 file changed, 87 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sa8775p.dtsi b/arch/arm64/boot/dts/qcom/sa8775p.dtsi > index 93be4683a31f..27ab1921c1f3 100644 > --- a/arch/arm64/boot/dts/qcom/sa8775p.dtsi > +++ b/arch/arm64/boot/dts/qcom/sa8775p.dtsi > @@ -6,6 +6,7 @@ > #include <dt-bindings/interconnect/qcom,icc.h> > #include <dt-bindings/interrupt-controller/arm-gic.h> > #include <dt-bindings/clock/qcom,rpmh.h> > +#include <dt-bindings/clock/qcom,sa8775p-dispcc.h> > #include <dt-bindings/clock/qcom,sa8775p-gcc.h> > #include <dt-bindings/clock/qcom,sa8775p-gpucc.h> > #include <dt-bindings/interconnect/qcom,sa8775p-rpmh.h> > @@ -2937,6 +2938,92 @@ camcc: clock-controller@ade0000 { > #power-domain-cells = <1>; > }; > > + mdss0: display-subsystem@ae00000 { > + compatible = "qcom,sa8775p-mdss"; > + reg = <0x0 0x0ae00000 0x0 0x1000>; > + reg-names = "mdss"; > + > + /* same path used twice */ > + interconnects = <&mmss_noc MASTER_MDP0 0 &mc_virt SLAVE_EBI1 0>, > + <&mmss_noc MASTER_MDP1 0 &mc_virt SLAVE_EBI1 0>, QCOM_ICC_TAG_ACTIVE_ONLY ? > + <&gem_noc MASTER_APPSS_PROC QCOM_ICC_TAG_ACTIVE_ONLY > + &config_noc SLAVE_DISPLAY_CFG QCOM_ICC_TAG_ACTIVE_ONLY>; > + interconnect-names = "mdp0-mem", > + "mdp1-mem", > + "cpu-cfg"; > + > + resets = <&dispcc0 MDSS_DISP_CC_MDSS_CORE_BCR>; > + > + power-domains = <&dispcc0 MDSS_DISP_CC_MDSS_CORE_GDSC>; > + > + clocks = <&dispcc0 MDSS_DISP_CC_MDSS_AHB_CLK>, > + <&gcc GCC_DISP_HF_AXI_CLK>, > + <&dispcc0 MDSS_DISP_CC_MDSS_MDP_CLK>; > + > + interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-controller; > + #interrupt-cells = <1>; > + > + iommus = <&apps_smmu 0x1000 0x402>; > + > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + status = "disabled"; > + > + mdss0_mdp: display-controller@ae01000 { > + compatible = "qcom,sa8775p-dpu"; > + reg = <0x0 0x0ae01000 0x0 0x8f000>, > + <0x0 0x0aeb0000 0x0 0x2008>; > + reg-names = "mdp", "vbif"; > + > + clocks = <&gcc GCC_DISP_HF_AXI_CLK>, > + <&dispcc0 MDSS_DISP_CC_MDSS_AHB_CLK>, > + <&dispcc0 MDSS_DISP_CC_MDSS_MDP_LUT_CLK>, > + <&dispcc0 MDSS_DISP_CC_MDSS_MDP_CLK>, > + <&dispcc0 MDSS_DISP_CC_MDSS_VSYNC_CLK>; > + clock-names = "bus", > + "iface", > + "lut", > + "core", > + "vsync"; > + > + assigned-clocks = <&dispcc0 MDSS_DISP_CC_MDSS_VSYNC_CLK>; > + assigned-clock-rates = <19200000>; > + > + operating-points-v2 = <&mdss0_mdp_opp_table>; > + power-domains = <&rpmhpd RPMHPD_MMCX>; > + > + interrupt-parent = <&mdss0>; > + interrupts = <0>; > + > + mdss0_mdp_opp_table: opp-table { > + compatible = "operating-points-v2"; > + > + 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>; > + }; > + > + opp-575000000 { > + opp-hz = /bits/ 64 <575000000>; > + required-opps = <&rpmhpd_opp_turbo>; > + }; > + > + opp-650000000 { > + opp-hz = /bits/ 64 <650000000>; > + required-opps = <&rpmhpd_opp_turbo_l1>; > + }; > + }; > + }; > + }; > + > dispcc0: clock-controller@af00000 { > compatible = "qcom,sa8775p-dispcc0"; > reg = <0x0 0x0af00000 0x0 0x20000>; > -- > 2.34.1 >
On 26/09/2024 13:01, Mahadevan wrote: > + > + clocks: > + items: > + - description: Display AHB > + - description: Display hf AXI > + - description: Display core > + > + iommus: > + maxItems: 1 > + > + interconnects: > + maxItems: 3 > + > + interconnect-names: > + maxItems: 3 > + > +patternProperties: > + "^display-controller@[0-9a-f]+$": > + type: object > + properties: > + compatible: > + const: qcom,sa8775p-dpu Which binding did you used as an example? On which kernel was this developed? Best regards, Krzysztof