1*8ccc0d23SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*8ccc0d23SEmmanuel Vadot%YAML 1.2 3*8ccc0d23SEmmanuel Vadot--- 4*8ccc0d23SEmmanuel Vadot$id: http://devicetree.org/schemas/media/qcom,sdm670-camss.yaml# 5*8ccc0d23SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*8ccc0d23SEmmanuel Vadot 7*8ccc0d23SEmmanuel Vadottitle: Qualcomm SDM670 Camera Subsystem (CAMSS) 8*8ccc0d23SEmmanuel Vadot 9*8ccc0d23SEmmanuel Vadotmaintainers: 10*8ccc0d23SEmmanuel Vadot - Richard Acayan <mailingradian@gmail.com> 11*8ccc0d23SEmmanuel Vadot 12*8ccc0d23SEmmanuel Vadotdescription: 13*8ccc0d23SEmmanuel Vadot The CAMSS IP is a CSI decoder and ISP present on Qualcomm platforms. 14*8ccc0d23SEmmanuel Vadot 15*8ccc0d23SEmmanuel Vadotproperties: 16*8ccc0d23SEmmanuel Vadot compatible: 17*8ccc0d23SEmmanuel Vadot const: qcom,sdm670-camss 18*8ccc0d23SEmmanuel Vadot 19*8ccc0d23SEmmanuel Vadot reg: 20*8ccc0d23SEmmanuel Vadot maxItems: 9 21*8ccc0d23SEmmanuel Vadot 22*8ccc0d23SEmmanuel Vadot reg-names: 23*8ccc0d23SEmmanuel Vadot items: 24*8ccc0d23SEmmanuel Vadot - const: csid0 25*8ccc0d23SEmmanuel Vadot - const: csid1 26*8ccc0d23SEmmanuel Vadot - const: csid2 27*8ccc0d23SEmmanuel Vadot - const: csiphy0 28*8ccc0d23SEmmanuel Vadot - const: csiphy1 29*8ccc0d23SEmmanuel Vadot - const: csiphy2 30*8ccc0d23SEmmanuel Vadot - const: vfe0 31*8ccc0d23SEmmanuel Vadot - const: vfe1 32*8ccc0d23SEmmanuel Vadot - const: vfe_lite 33*8ccc0d23SEmmanuel Vadot 34*8ccc0d23SEmmanuel Vadot interrupts: 35*8ccc0d23SEmmanuel Vadot maxItems: 9 36*8ccc0d23SEmmanuel Vadot 37*8ccc0d23SEmmanuel Vadot interrupt-names: 38*8ccc0d23SEmmanuel Vadot items: 39*8ccc0d23SEmmanuel Vadot - const: csid0 40*8ccc0d23SEmmanuel Vadot - const: csid1 41*8ccc0d23SEmmanuel Vadot - const: csid2 42*8ccc0d23SEmmanuel Vadot - const: csiphy0 43*8ccc0d23SEmmanuel Vadot - const: csiphy1 44*8ccc0d23SEmmanuel Vadot - const: csiphy2 45*8ccc0d23SEmmanuel Vadot - const: vfe0 46*8ccc0d23SEmmanuel Vadot - const: vfe1 47*8ccc0d23SEmmanuel Vadot - const: vfe_lite 48*8ccc0d23SEmmanuel Vadot 49*8ccc0d23SEmmanuel Vadot clocks: 50*8ccc0d23SEmmanuel Vadot maxItems: 22 51*8ccc0d23SEmmanuel Vadot 52*8ccc0d23SEmmanuel Vadot clock-names: 53*8ccc0d23SEmmanuel Vadot items: 54*8ccc0d23SEmmanuel Vadot - const: camnoc_axi 55*8ccc0d23SEmmanuel Vadot - const: cpas_ahb 56*8ccc0d23SEmmanuel Vadot - const: csi0 57*8ccc0d23SEmmanuel Vadot - const: csi1 58*8ccc0d23SEmmanuel Vadot - const: csi2 59*8ccc0d23SEmmanuel Vadot - const: csiphy0 60*8ccc0d23SEmmanuel Vadot - const: csiphy0_timer 61*8ccc0d23SEmmanuel Vadot - const: csiphy1 62*8ccc0d23SEmmanuel Vadot - const: csiphy1_timer 63*8ccc0d23SEmmanuel Vadot - const: csiphy2 64*8ccc0d23SEmmanuel Vadot - const: csiphy2_timer 65*8ccc0d23SEmmanuel Vadot - const: gcc_camera_ahb 66*8ccc0d23SEmmanuel Vadot - const: gcc_camera_axi 67*8ccc0d23SEmmanuel Vadot - const: soc_ahb 68*8ccc0d23SEmmanuel Vadot - const: vfe0 69*8ccc0d23SEmmanuel Vadot - const: vfe0_axi 70*8ccc0d23SEmmanuel Vadot - const: vfe0_cphy_rx 71*8ccc0d23SEmmanuel Vadot - const: vfe1 72*8ccc0d23SEmmanuel Vadot - const: vfe1_axi 73*8ccc0d23SEmmanuel Vadot - const: vfe1_cphy_rx 74*8ccc0d23SEmmanuel Vadot - const: vfe_lite 75*8ccc0d23SEmmanuel Vadot - const: vfe_lite_cphy_rx 76*8ccc0d23SEmmanuel Vadot 77*8ccc0d23SEmmanuel Vadot iommus: 78*8ccc0d23SEmmanuel Vadot maxItems: 4 79*8ccc0d23SEmmanuel Vadot 80*8ccc0d23SEmmanuel Vadot power-domains: 81*8ccc0d23SEmmanuel Vadot items: 82*8ccc0d23SEmmanuel Vadot - description: IFE0 GDSC - Image Front End, Global Distributed Switch Controller. 83*8ccc0d23SEmmanuel Vadot - description: IFE1 GDSC - Image Front End, Global Distributed Switch Controller. 84*8ccc0d23SEmmanuel Vadot - description: Titan Top GDSC - Titan ISP Block, Global Distributed Switch Controller. 85*8ccc0d23SEmmanuel Vadot 86*8ccc0d23SEmmanuel Vadot power-domain-names: 87*8ccc0d23SEmmanuel Vadot items: 88*8ccc0d23SEmmanuel Vadot - const: ife0 89*8ccc0d23SEmmanuel Vadot - const: ife1 90*8ccc0d23SEmmanuel Vadot - const: top 91*8ccc0d23SEmmanuel Vadot 92*8ccc0d23SEmmanuel Vadot vdda-phy-supply: 93*8ccc0d23SEmmanuel Vadot description: 94*8ccc0d23SEmmanuel Vadot Phandle to a regulator supply to PHY core block. 95*8ccc0d23SEmmanuel Vadot 96*8ccc0d23SEmmanuel Vadot vdda-pll-supply: 97*8ccc0d23SEmmanuel Vadot description: 98*8ccc0d23SEmmanuel Vadot Phandle to 1.8V regulator supply to PHY refclk pll block. 99*8ccc0d23SEmmanuel Vadot 100*8ccc0d23SEmmanuel Vadot ports: 101*8ccc0d23SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/ports 102*8ccc0d23SEmmanuel Vadot 103*8ccc0d23SEmmanuel Vadot description: 104*8ccc0d23SEmmanuel Vadot CSI input ports. 105*8ccc0d23SEmmanuel Vadot 106*8ccc0d23SEmmanuel Vadot properties: 107*8ccc0d23SEmmanuel Vadot port@0: 108*8ccc0d23SEmmanuel Vadot $ref: /schemas/graph.yaml#/$defs/port-base 109*8ccc0d23SEmmanuel Vadot unevaluatedProperties: false 110*8ccc0d23SEmmanuel Vadot description: 111*8ccc0d23SEmmanuel Vadot Input port for receiving CSI data from CSIPHY0. 112*8ccc0d23SEmmanuel Vadot 113*8ccc0d23SEmmanuel Vadot properties: 114*8ccc0d23SEmmanuel Vadot endpoint: 115*8ccc0d23SEmmanuel Vadot $ref: video-interfaces.yaml# 116*8ccc0d23SEmmanuel Vadot unevaluatedProperties: false 117*8ccc0d23SEmmanuel Vadot 118*8ccc0d23SEmmanuel Vadot properties: 119*8ccc0d23SEmmanuel Vadot clock-lanes: 120*8ccc0d23SEmmanuel Vadot maxItems: 1 121*8ccc0d23SEmmanuel Vadot 122*8ccc0d23SEmmanuel Vadot data-lanes: 123*8ccc0d23SEmmanuel Vadot minItems: 1 124*8ccc0d23SEmmanuel Vadot maxItems: 4 125*8ccc0d23SEmmanuel Vadot 126*8ccc0d23SEmmanuel Vadot required: 127*8ccc0d23SEmmanuel Vadot - clock-lanes 128*8ccc0d23SEmmanuel Vadot - data-lanes 129*8ccc0d23SEmmanuel Vadot 130*8ccc0d23SEmmanuel Vadot port@1: 131*8ccc0d23SEmmanuel Vadot $ref: /schemas/graph.yaml#/$defs/port-base 132*8ccc0d23SEmmanuel Vadot unevaluatedProperties: false 133*8ccc0d23SEmmanuel Vadot description: 134*8ccc0d23SEmmanuel Vadot Input port for receiving CSI data from CSIPHY1. 135*8ccc0d23SEmmanuel Vadot 136*8ccc0d23SEmmanuel Vadot properties: 137*8ccc0d23SEmmanuel Vadot endpoint: 138*8ccc0d23SEmmanuel Vadot $ref: video-interfaces.yaml# 139*8ccc0d23SEmmanuel Vadot unevaluatedProperties: false 140*8ccc0d23SEmmanuel Vadot 141*8ccc0d23SEmmanuel Vadot properties: 142*8ccc0d23SEmmanuel Vadot clock-lanes: 143*8ccc0d23SEmmanuel Vadot maxItems: 1 144*8ccc0d23SEmmanuel Vadot 145*8ccc0d23SEmmanuel Vadot data-lanes: 146*8ccc0d23SEmmanuel Vadot minItems: 1 147*8ccc0d23SEmmanuel Vadot maxItems: 4 148*8ccc0d23SEmmanuel Vadot 149*8ccc0d23SEmmanuel Vadot required: 150*8ccc0d23SEmmanuel Vadot - clock-lanes 151*8ccc0d23SEmmanuel Vadot - data-lanes 152*8ccc0d23SEmmanuel Vadot 153*8ccc0d23SEmmanuel Vadot port@2: 154*8ccc0d23SEmmanuel Vadot $ref: /schemas/graph.yaml#/$defs/port-base 155*8ccc0d23SEmmanuel Vadot unevaluatedProperties: false 156*8ccc0d23SEmmanuel Vadot description: 157*8ccc0d23SEmmanuel Vadot Input port for receiving CSI data from CSIPHY2. 158*8ccc0d23SEmmanuel Vadot 159*8ccc0d23SEmmanuel Vadot properties: 160*8ccc0d23SEmmanuel Vadot endpoint: 161*8ccc0d23SEmmanuel Vadot $ref: video-interfaces.yaml# 162*8ccc0d23SEmmanuel Vadot unevaluatedProperties: false 163*8ccc0d23SEmmanuel Vadot 164*8ccc0d23SEmmanuel Vadot properties: 165*8ccc0d23SEmmanuel Vadot clock-lanes: 166*8ccc0d23SEmmanuel Vadot maxItems: 1 167*8ccc0d23SEmmanuel Vadot 168*8ccc0d23SEmmanuel Vadot data-lanes: 169*8ccc0d23SEmmanuel Vadot minItems: 1 170*8ccc0d23SEmmanuel Vadot maxItems: 4 171*8ccc0d23SEmmanuel Vadot 172*8ccc0d23SEmmanuel Vadot required: 173*8ccc0d23SEmmanuel Vadot - clock-lanes 174*8ccc0d23SEmmanuel Vadot - data-lanes 175*8ccc0d23SEmmanuel Vadot 176*8ccc0d23SEmmanuel Vadotrequired: 177*8ccc0d23SEmmanuel Vadot - compatible 178*8ccc0d23SEmmanuel Vadot - reg 179*8ccc0d23SEmmanuel Vadot - reg-names 180*8ccc0d23SEmmanuel Vadot - interrupts 181*8ccc0d23SEmmanuel Vadot - interrupt-names 182*8ccc0d23SEmmanuel Vadot - clocks 183*8ccc0d23SEmmanuel Vadot - clock-names 184*8ccc0d23SEmmanuel Vadot - iommus 185*8ccc0d23SEmmanuel Vadot - power-domains 186*8ccc0d23SEmmanuel Vadot - power-domain-names 187*8ccc0d23SEmmanuel Vadot - vdda-phy-supply 188*8ccc0d23SEmmanuel Vadot - vdda-pll-supply 189*8ccc0d23SEmmanuel Vadot 190*8ccc0d23SEmmanuel VadotadditionalProperties: false 191*8ccc0d23SEmmanuel Vadot 192*8ccc0d23SEmmanuel Vadotexamples: 193*8ccc0d23SEmmanuel Vadot - | 194*8ccc0d23SEmmanuel Vadot #include <dt-bindings/clock/qcom,camcc-sdm845.h> 195*8ccc0d23SEmmanuel Vadot #include <dt-bindings/clock/qcom,gcc-sdm845.h> 196*8ccc0d23SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 197*8ccc0d23SEmmanuel Vadot 198*8ccc0d23SEmmanuel Vadot soc { 199*8ccc0d23SEmmanuel Vadot #address-cells = <2>; 200*8ccc0d23SEmmanuel Vadot #size-cells = <2>; 201*8ccc0d23SEmmanuel Vadot 202*8ccc0d23SEmmanuel Vadot isp@acb3000 { 203*8ccc0d23SEmmanuel Vadot compatible = "qcom,sdm670-camss"; 204*8ccc0d23SEmmanuel Vadot 205*8ccc0d23SEmmanuel Vadot reg = <0 0x0acb3000 0 0x1000>, 206*8ccc0d23SEmmanuel Vadot <0 0x0acba000 0 0x1000>, 207*8ccc0d23SEmmanuel Vadot <0 0x0acc8000 0 0x1000>, 208*8ccc0d23SEmmanuel Vadot <0 0x0ac65000 0 0x1000>, 209*8ccc0d23SEmmanuel Vadot <0 0x0ac66000 0 0x1000>, 210*8ccc0d23SEmmanuel Vadot <0 0x0ac67000 0 0x1000>, 211*8ccc0d23SEmmanuel Vadot <0 0x0acaf000 0 0x4000>, 212*8ccc0d23SEmmanuel Vadot <0 0x0acb6000 0 0x4000>, 213*8ccc0d23SEmmanuel Vadot <0 0x0acc4000 0 0x4000>; 214*8ccc0d23SEmmanuel Vadot reg-names = "csid0", 215*8ccc0d23SEmmanuel Vadot "csid1", 216*8ccc0d23SEmmanuel Vadot "csid2", 217*8ccc0d23SEmmanuel Vadot "csiphy0", 218*8ccc0d23SEmmanuel Vadot "csiphy1", 219*8ccc0d23SEmmanuel Vadot "csiphy2", 220*8ccc0d23SEmmanuel Vadot "vfe0", 221*8ccc0d23SEmmanuel Vadot "vfe1", 222*8ccc0d23SEmmanuel Vadot "vfe_lite"; 223*8ccc0d23SEmmanuel Vadot 224*8ccc0d23SEmmanuel Vadot interrupts = <GIC_SPI 464 IRQ_TYPE_EDGE_RISING>, 225*8ccc0d23SEmmanuel Vadot <GIC_SPI 466 IRQ_TYPE_EDGE_RISING>, 226*8ccc0d23SEmmanuel Vadot <GIC_SPI 468 IRQ_TYPE_EDGE_RISING>, 227*8ccc0d23SEmmanuel Vadot <GIC_SPI 477 IRQ_TYPE_EDGE_RISING>, 228*8ccc0d23SEmmanuel Vadot <GIC_SPI 478 IRQ_TYPE_EDGE_RISING>, 229*8ccc0d23SEmmanuel Vadot <GIC_SPI 479 IRQ_TYPE_EDGE_RISING>, 230*8ccc0d23SEmmanuel Vadot <GIC_SPI 465 IRQ_TYPE_EDGE_RISING>, 231*8ccc0d23SEmmanuel Vadot <GIC_SPI 467 IRQ_TYPE_EDGE_RISING>, 232*8ccc0d23SEmmanuel Vadot <GIC_SPI 469 IRQ_TYPE_EDGE_RISING>; 233*8ccc0d23SEmmanuel Vadot interrupt-names = "csid0", 234*8ccc0d23SEmmanuel Vadot "csid1", 235*8ccc0d23SEmmanuel Vadot "csid2", 236*8ccc0d23SEmmanuel Vadot "csiphy0", 237*8ccc0d23SEmmanuel Vadot "csiphy1", 238*8ccc0d23SEmmanuel Vadot "csiphy2", 239*8ccc0d23SEmmanuel Vadot "vfe0", 240*8ccc0d23SEmmanuel Vadot "vfe1", 241*8ccc0d23SEmmanuel Vadot "vfe_lite"; 242*8ccc0d23SEmmanuel Vadot 243*8ccc0d23SEmmanuel Vadot clocks = <&camcc CAM_CC_CAMNOC_AXI_CLK>, 244*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_CPAS_AHB_CLK>, 245*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_IFE_0_CSID_CLK>, 246*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_IFE_1_CSID_CLK>, 247*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_IFE_LITE_CSID_CLK>, 248*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_CSIPHY0_CLK>, 249*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_CSI0PHYTIMER_CLK>, 250*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_CSIPHY1_CLK>, 251*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_CSI1PHYTIMER_CLK>, 252*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_CSIPHY2_CLK>, 253*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_CSI2PHYTIMER_CLK>, 254*8ccc0d23SEmmanuel Vadot <&gcc GCC_CAMERA_AHB_CLK>, 255*8ccc0d23SEmmanuel Vadot <&gcc GCC_CAMERA_AXI_CLK>, 256*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_SOC_AHB_CLK>, 257*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_IFE_0_CLK>, 258*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_IFE_0_AXI_CLK>, 259*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_IFE_0_CPHY_RX_CLK>, 260*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_IFE_1_CLK>, 261*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_IFE_1_AXI_CLK>, 262*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_IFE_1_CPHY_RX_CLK>, 263*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_IFE_LITE_CLK>, 264*8ccc0d23SEmmanuel Vadot <&camcc CAM_CC_IFE_LITE_CPHY_RX_CLK>; 265*8ccc0d23SEmmanuel Vadot clock-names = "camnoc_axi", 266*8ccc0d23SEmmanuel Vadot "cpas_ahb", 267*8ccc0d23SEmmanuel Vadot "csi0", 268*8ccc0d23SEmmanuel Vadot "csi1", 269*8ccc0d23SEmmanuel Vadot "csi2", 270*8ccc0d23SEmmanuel Vadot "csiphy0", 271*8ccc0d23SEmmanuel Vadot "csiphy0_timer", 272*8ccc0d23SEmmanuel Vadot "csiphy1", 273*8ccc0d23SEmmanuel Vadot "csiphy1_timer", 274*8ccc0d23SEmmanuel Vadot "csiphy2", 275*8ccc0d23SEmmanuel Vadot "csiphy2_timer", 276*8ccc0d23SEmmanuel Vadot "gcc_camera_ahb", 277*8ccc0d23SEmmanuel Vadot "gcc_camera_axi", 278*8ccc0d23SEmmanuel Vadot "soc_ahb", 279*8ccc0d23SEmmanuel Vadot "vfe0", 280*8ccc0d23SEmmanuel Vadot "vfe0_axi", 281*8ccc0d23SEmmanuel Vadot "vfe0_cphy_rx", 282*8ccc0d23SEmmanuel Vadot "vfe1", 283*8ccc0d23SEmmanuel Vadot "vfe1_axi", 284*8ccc0d23SEmmanuel Vadot "vfe1_cphy_rx", 285*8ccc0d23SEmmanuel Vadot "vfe_lite", 286*8ccc0d23SEmmanuel Vadot "vfe_lite_cphy_rx"; 287*8ccc0d23SEmmanuel Vadot 288*8ccc0d23SEmmanuel Vadot iommus = <&apps_smmu 0x808 0x0>, 289*8ccc0d23SEmmanuel Vadot <&apps_smmu 0x810 0x8>, 290*8ccc0d23SEmmanuel Vadot <&apps_smmu 0xc08 0x0>, 291*8ccc0d23SEmmanuel Vadot <&apps_smmu 0xc10 0x8>; 292*8ccc0d23SEmmanuel Vadot 293*8ccc0d23SEmmanuel Vadot power-domains = <&camcc IFE_0_GDSC>, 294*8ccc0d23SEmmanuel Vadot <&camcc IFE_1_GDSC>, 295*8ccc0d23SEmmanuel Vadot <&camcc TITAN_TOP_GDSC>; 296*8ccc0d23SEmmanuel Vadot power-domain-names = "ife0", 297*8ccc0d23SEmmanuel Vadot "ife1", 298*8ccc0d23SEmmanuel Vadot "top"; 299*8ccc0d23SEmmanuel Vadot 300*8ccc0d23SEmmanuel Vadot vdda-phy-supply = <&vreg_l1a_1p225>; 301*8ccc0d23SEmmanuel Vadot vdda-pll-supply = <&vreg_l8a_1p8>; 302*8ccc0d23SEmmanuel Vadot 303*8ccc0d23SEmmanuel Vadot ports { 304*8ccc0d23SEmmanuel Vadot #address-cells = <1>; 305*8ccc0d23SEmmanuel Vadot #size-cells = <0>; 306*8ccc0d23SEmmanuel Vadot 307*8ccc0d23SEmmanuel Vadot port@0 { 308*8ccc0d23SEmmanuel Vadot reg = <0>; 309*8ccc0d23SEmmanuel Vadot 310*8ccc0d23SEmmanuel Vadot csiphy_ep0: endpoint { 311*8ccc0d23SEmmanuel Vadot clock-lanes = <7>; 312*8ccc0d23SEmmanuel Vadot data-lanes = <0 1 2 3>; 313*8ccc0d23SEmmanuel Vadot remote-endpoint = <&front_sensor_ep>; 314*8ccc0d23SEmmanuel Vadot }; 315*8ccc0d23SEmmanuel Vadot }; 316*8ccc0d23SEmmanuel Vadot }; 317*8ccc0d23SEmmanuel Vadot }; 318*8ccc0d23SEmmanuel Vadot }; 319