Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: display: msm: Add reg bus and rotator interconnects

Apart from the already handled data bus (MAS_MDP_Pn<->DDR), there are
other connection paths:
- a path that connects rotator block to the DDR.
- a path that needs to be handled to ensure MDSS register access
functions properly, namely the "reg bus", a.k.a the CPU-MDSS CFG
interconnect.

Describe these paths to allow using them in device trees and in the
driver.

[Konrad: rework for one vs two MDP paths, update examples]
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/569480/
Link: https://lore.kernel.org/r/20231125-topic-rb1_feat-v3-2-4cbb567743bb@linaro.org
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>

authored by

Konrad Dybcio and committed by
Dmitry Baryshkov
a1ed5860 25daacc6

+80 -27
+14 -4
Documentation/devicetree/bindings/display/msm/mdss-common.yaml
··· 61 61 62 62 ranges: true 63 63 64 + # This is not a perfect description, but it's impossible to discern and match 65 + # the entries like we do with interconnect-names 64 66 interconnects: 65 67 minItems: 1 66 68 items: 67 69 - description: Interconnect path from mdp0 (or a single mdp) port to the data bus 68 70 - description: Interconnect path from mdp1 port to the data bus 71 + - description: Interconnect path from CPU to the reg bus 69 72 70 73 interconnect-names: 71 - minItems: 1 72 - items: 73 - - const: mdp0-mem 74 - - const: mdp1-mem 74 + oneOf: 75 + - minItems: 1 76 + items: 77 + - const: mdp0-mem 78 + - const: cpu-cfg 79 + 80 + - minItems: 2 81 + items: 82 + - const: mdp0-mem 83 + - const: mdp1-mem 84 + - const: cpu-cfg 75 85 76 86 resets: 77 87 items:
+10 -4
Documentation/devicetree/bindings/display/msm/qcom,qcm2290-mdss.yaml
··· 36 36 maxItems: 2 37 37 38 38 interconnects: 39 - maxItems: 1 39 + items: 40 + - description: Interconnect path from mdp0 port to the data bus 41 + - description: Interconnect path from CPU to the reg bus 40 42 41 43 interconnect-names: 42 - maxItems: 1 44 + items: 45 + - const: mdp0-mem 46 + - const: cpu-cfg 43 47 44 48 patternProperties: 45 49 "^display-controller@[0-9a-f]+$": ··· 102 98 interrupt-controller; 103 99 #interrupt-cells = <1>; 104 100 105 - interconnects = <&mmrt_virt MASTER_MDP0 &bimc SLAVE_EBI1>; 106 - interconnect-names = "mdp0-mem"; 101 + interconnects = <&mmrt_virt MASTER_MDP0 &bimc SLAVE_EBI1>, 102 + <&bimc MASTER_APPSS_PROC &config_noc SLAVE_DISPLAY_CFG>; 103 + interconnect-names = "mdp0-mem", 104 + "cpu-cfg"; 107 105 108 106 iommus = <&apps_smmu 0x420 0x2>, 109 107 <&apps_smmu 0x421 0x0>;
+10 -4
Documentation/devicetree/bindings/display/msm/qcom,sc7180-mdss.yaml
··· 36 36 maxItems: 1 37 37 38 38 interconnects: 39 - maxItems: 1 39 + items: 40 + - description: Interconnect path from mdp0 port to the data bus 41 + - description: Interconnect path from CPU to the reg bus 40 42 41 43 interconnect-names: 42 - maxItems: 1 44 + items: 45 + - const: mdp0-mem 46 + - const: cpu-cfg 43 47 44 48 patternProperties: 45 49 "^display-controller@[0-9a-f]+$": ··· 110 106 interrupt-controller; 111 107 #interrupt-cells = <1>; 112 108 113 - interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>; 114 - interconnect-names = "mdp0-mem"; 109 + interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>, 110 + <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_DISPLAY_CFG>; 111 + interconnect-names = "mdp0-mem", 112 + "cpu-cfg"; 115 113 116 114 iommus = <&apps_smmu 0x800 0x2>; 117 115 ranges;
+10 -4
Documentation/devicetree/bindings/display/msm/qcom,sc7280-mdss.yaml
··· 36 36 maxItems: 1 37 37 38 38 interconnects: 39 - maxItems: 1 39 + items: 40 + - description: Interconnect path from mdp0 port to the data bus 41 + - description: Interconnect path from CPU to the reg bus 40 42 41 43 interconnect-names: 42 - maxItems: 1 44 + items: 45 + - const: mdp0-mem 46 + - const: cpu-cfg 43 47 44 48 patternProperties: 45 49 "^display-controller@[0-9a-f]+$": ··· 122 118 interrupt-controller; 123 119 #interrupt-cells = <1>; 124 120 125 - interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>; 126 - interconnect-names = "mdp0-mem"; 121 + interconnects = <&mmss_noc MASTER_MDP0 &mc_virt SLAVE_EBI1>, 122 + <&gem_noc MASTER_APPSS_PROC &cnoc2 SLAVE_DISPLAY_CFG>; 123 + interconnect-names = "mdp0-mem", 124 + "cpu-cfg"; 127 125 128 126 iommus = <&apps_smmu 0x900 0x402>; 129 127 ranges;
+10
Documentation/devicetree/bindings/display/msm/qcom,sm6115-mdss.yaml
··· 29 29 iommus: 30 30 maxItems: 2 31 31 32 + interconnects: 33 + items: 34 + - description: Interconnect path from mdp0 port to the data bus 35 + - description: Interconnect path from CPU to the reg bus 36 + 37 + interconnect-names: 38 + items: 39 + - const: mdp0-mem 40 + - const: cpu-cfg 41 + 32 42 patternProperties: 33 43 "^display-controller@[0-9a-f]+$": 34 44 type: object
+6 -2
Documentation/devicetree/bindings/display/msm/qcom,sm6125-mdss.yaml
··· 35 35 maxItems: 1 36 36 37 37 interconnects: 38 - maxItems: 2 38 + items: 39 + - description: Interconnect path from mdp0 port to the data bus 40 + - description: Interconnect path from CPU to the reg bus 39 41 40 42 interconnect-names: 41 - maxItems: 2 43 + items: 44 + - const: mdp0-mem 45 + - const: cpu-cfg 42 46 43 47 patternProperties: 44 48 "^display-controller@[0-9a-f]+$":
+6 -2
Documentation/devicetree/bindings/display/msm/qcom,sm6350-mdss.yaml
··· 35 35 maxItems: 1 36 36 37 37 interconnects: 38 - maxItems: 2 38 + items: 39 + - description: Interconnect path from mdp0 port to the data bus 40 + - description: Interconnect path from CPU to the reg bus 39 41 40 42 interconnect-names: 41 - maxItems: 2 43 + items: 44 + - const: mdp0-mem 45 + - const: cpu-cfg 42 46 43 47 patternProperties: 44 48 "^display-controller@[0-9a-f]+$":
+6 -2
Documentation/devicetree/bindings/display/msm/qcom,sm6375-mdss.yaml
··· 35 35 maxItems: 1 36 36 37 37 interconnects: 38 - maxItems: 2 38 + items: 39 + - description: Interconnect path from mdp0 port to the data bus 40 + - description: Interconnect path from CPU to the reg bus 39 41 40 42 interconnect-names: 41 - maxItems: 2 43 + items: 44 + - const: mdp0-mem 45 + - const: cpu-cfg 42 46 43 47 patternProperties: 44 48 "^display-controller@[0-9a-f]+$":
+8 -5
Documentation/devicetree/bindings/display/msm/qcom,sm8450-mdss.yaml
··· 30 30 maxItems: 1 31 31 32 32 interconnects: 33 - maxItems: 2 33 + maxItems: 3 34 34 35 35 interconnect-names: 36 - maxItems: 2 36 + maxItems: 3 37 37 38 38 patternProperties: 39 39 "^display-controller@[0-9a-f]+$": ··· 91 91 reg = <0x0ae00000 0x1000>; 92 92 reg-names = "mdss"; 93 93 94 - interconnects = <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>, 95 - <&mmss_noc MASTER_MDP_DISP 0 &mc_virt SLAVE_EBI1_DISP 0>; 96 - interconnect-names = "mdp0-mem", "mdp1-mem"; 94 + interconnects = <&mmss_noc MASTER_MDP_DISP &mc_virt SLAVE_EBI1_DISP>, 95 + <&mmss_noc MASTER_MDP_DISP &mc_virt SLAVE_EBI1_DISP>, 96 + <&gem_noc MASTER_APPSS_PROC &config_noc SLAVE_DISPLAY_CFG>; 97 + interconnect-names = "mdp0-mem", 98 + "mdp1-mem", 99 + "cpu-cfg"; 97 100 98 101 resets = <&dispcc DISP_CC_MDSS_CORE_BCR>; 99 102