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

media: dt-bindings: Add qcom,msm8939-camss

Add bindings for qcom,msm8939-camss in order to support the camera
subsystem for MSM8939.

Signed-off-by: Vincent Knecht <vincent.knecht@mailoo.org>
[André: Make order of items the same as in 8916]
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: André Apitzsch <git@apitzsch.eu>
Signed-off-by: Bryan O'Donoghue <bod@kernel.org>
Signed-off-by: Hans Verkuil <hverkuil+cisco@kernel.org>

authored by

Vincent Knecht and committed by
Hans Verkuil
2f1ff4e1 c33f7e61

+254
+254
Documentation/devicetree/bindings/media/qcom,msm8939-camss.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/media/qcom,msm8939-camss.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Qualcomm MSM8939 Camera Subsystem (CAMSS) 8 + 9 + maintainers: 10 + - Vincent Knecht <vincent.knecht@mailoo.org> 11 + 12 + description: 13 + The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms 14 + 15 + properties: 16 + compatible: 17 + const: qcom,msm8939-camss 18 + 19 + reg: 20 + maxItems: 11 21 + 22 + reg-names: 23 + items: 24 + - const: csiphy0 25 + - const: csiphy0_clk_mux 26 + - const: csiphy1 27 + - const: csiphy1_clk_mux 28 + - const: csid0 29 + - const: csid1 30 + - const: ispif 31 + - const: csi_clk_mux 32 + - const: vfe0 33 + - const: csid2 34 + - const: vfe0_vbif 35 + 36 + clocks: 37 + maxItems: 24 38 + 39 + clock-names: 40 + items: 41 + - const: top_ahb 42 + - const: ispif_ahb 43 + - const: csiphy0_timer 44 + - const: csiphy1_timer 45 + - const: csi0_ahb 46 + - const: csi0 47 + - const: csi0_phy 48 + - const: csi0_pix 49 + - const: csi0_rdi 50 + - const: csi1_ahb 51 + - const: csi1 52 + - const: csi1_phy 53 + - const: csi1_pix 54 + - const: csi1_rdi 55 + - const: ahb 56 + - const: vfe0 57 + - const: csi_vfe0 58 + - const: vfe_ahb 59 + - const: vfe_axi 60 + - const: csi2_ahb 61 + - const: csi2 62 + - const: csi2_phy 63 + - const: csi2_pix 64 + - const: csi2_rdi 65 + 66 + interrupts: 67 + maxItems: 7 68 + 69 + interrupt-names: 70 + items: 71 + - const: csiphy0 72 + - const: csiphy1 73 + - const: csid0 74 + - const: csid1 75 + - const: ispif 76 + - const: vfe0 77 + - const: csid2 78 + 79 + iommus: 80 + maxItems: 1 81 + 82 + power-domains: 83 + items: 84 + - description: VFE GDSC - Video Front End, Global Distributed Switch 85 + Controller. 86 + 87 + vdda-supply: 88 + description: 89 + Definition of the regulator used as 1.2V analog power supply. 90 + 91 + ports: 92 + $ref: /schemas/graph.yaml#/properties/ports 93 + 94 + description: 95 + CSI input ports. 96 + 97 + patternProperties: 98 + "^port@[0-1]$": 99 + $ref: /schemas/graph.yaml#/$defs/port-base 100 + unevaluatedProperties: false 101 + 102 + description: 103 + Input port for receiving CSI data. 104 + 105 + properties: 106 + endpoint: 107 + $ref: video-interfaces.yaml# 108 + unevaluatedProperties: false 109 + 110 + properties: 111 + data-lanes: 112 + minItems: 1 113 + maxItems: 4 114 + 115 + bus-type: 116 + enum: 117 + - 4 # MEDIA_BUS_TYPE_CSI2_DPHY 118 + 119 + required: 120 + - data-lanes 121 + 122 + required: 123 + - compatible 124 + - reg 125 + - reg-names 126 + - clocks 127 + - clock-names 128 + - interrupts 129 + - interrupt-names 130 + - iommus 131 + - power-domains 132 + - vdda-supply 133 + - ports 134 + 135 + additionalProperties: false 136 + 137 + examples: 138 + - | 139 + #include <dt-bindings/interrupt-controller/arm-gic.h> 140 + #include <dt-bindings/clock/qcom,gcc-msm8939.h> 141 + 142 + isp@1b0ac00 { 143 + compatible = "qcom,msm8939-camss"; 144 + 145 + reg = <0x01b0ac00 0x200>, 146 + <0x01b00030 0x4>, 147 + <0x01b0b000 0x200>, 148 + <0x01b00038 0x4>, 149 + <0x01b08000 0x100>, 150 + <0x01b08400 0x100>, 151 + <0x01b0a000 0x500>, 152 + <0x01b00020 0x10>, 153 + <0x01b10000 0x1000>, 154 + <0x01b08800 0x100>, 155 + <0x01b40000 0x200>; 156 + 157 + reg-names = "csiphy0", 158 + "csiphy0_clk_mux", 159 + "csiphy1", 160 + "csiphy1_clk_mux", 161 + "csid0", 162 + "csid1", 163 + "ispif", 164 + "csi_clk_mux", 165 + "vfe0", 166 + "csid2", 167 + "vfe0_vbif"; 168 + 169 + clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>, 170 + <&gcc GCC_CAMSS_ISPIF_AHB_CLK>, 171 + <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>, 172 + <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>, 173 + <&gcc GCC_CAMSS_CSI0_AHB_CLK>, 174 + <&gcc GCC_CAMSS_CSI0_CLK>, 175 + <&gcc GCC_CAMSS_CSI0PHY_CLK>, 176 + <&gcc GCC_CAMSS_CSI0PIX_CLK>, 177 + <&gcc GCC_CAMSS_CSI0RDI_CLK>, 178 + <&gcc GCC_CAMSS_CSI1_AHB_CLK>, 179 + <&gcc GCC_CAMSS_CSI1_CLK>, 180 + <&gcc GCC_CAMSS_CSI1PHY_CLK>, 181 + <&gcc GCC_CAMSS_CSI1PIX_CLK>, 182 + <&gcc GCC_CAMSS_CSI1RDI_CLK>, 183 + <&gcc GCC_CAMSS_AHB_CLK>, 184 + <&gcc GCC_CAMSS_VFE0_CLK>, 185 + <&gcc GCC_CAMSS_CSI_VFE0_CLK>, 186 + <&gcc GCC_CAMSS_VFE_AHB_CLK>, 187 + <&gcc GCC_CAMSS_VFE_AXI_CLK>, 188 + <&gcc GCC_CAMSS_CSI2_AHB_CLK>, 189 + <&gcc GCC_CAMSS_CSI2_CLK>, 190 + <&gcc GCC_CAMSS_CSI2PHY_CLK>, 191 + <&gcc GCC_CAMSS_CSI2PIX_CLK>, 192 + <&gcc GCC_CAMSS_CSI2RDI_CLK>; 193 + 194 + clock-names = "top_ahb", 195 + "ispif_ahb", 196 + "csiphy0_timer", 197 + "csiphy1_timer", 198 + "csi0_ahb", 199 + "csi0", 200 + "csi0_phy", 201 + "csi0_pix", 202 + "csi0_rdi", 203 + "csi1_ahb", 204 + "csi1", 205 + "csi1_phy", 206 + "csi1_pix", 207 + "csi1_rdi", 208 + "ahb", 209 + "vfe0", 210 + "csi_vfe0", 211 + "vfe_ahb", 212 + "vfe_axi", 213 + "csi2_ahb", 214 + "csi2", 215 + "csi2_phy", 216 + "csi2_pix", 217 + "csi2_rdi"; 218 + 219 + interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>, 220 + <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>, 221 + <GIC_SPI 51 IRQ_TYPE_EDGE_RISING>, 222 + <GIC_SPI 52 IRQ_TYPE_EDGE_RISING>, 223 + <GIC_SPI 55 IRQ_TYPE_EDGE_RISING>, 224 + <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>, 225 + <GIC_SPI 153 IRQ_TYPE_EDGE_RISING>; 226 + 227 + interrupt-names = "csiphy0", 228 + "csiphy1", 229 + "csid0", 230 + "csid1", 231 + "ispif", 232 + "vfe0", 233 + "csid2"; 234 + 235 + iommus = <&apps_iommu 3>; 236 + 237 + power-domains = <&gcc VFE_GDSC>; 238 + 239 + vdda-supply = <&reg_1v2>; 240 + 241 + ports { 242 + #address-cells = <1>; 243 + #size-cells = <0>; 244 + 245 + port@1 { 246 + reg = <1>; 247 + 248 + csiphy1_ep: endpoint { 249 + data-lanes = <0 2>; 250 + remote-endpoint = <&sensor_ep>; 251 + }; 252 + }; 253 + }; 254 + };