18c2ecf20Sopenharmony_ciQualcomm Camera Subsystem 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ci* Properties 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci- compatible: 68c2ecf20Sopenharmony_ci Usage: required 78c2ecf20Sopenharmony_ci Value type: <stringlist> 88c2ecf20Sopenharmony_ci Definition: Should contain one of: 98c2ecf20Sopenharmony_ci - "qcom,msm8916-camss" 108c2ecf20Sopenharmony_ci - "qcom,msm8996-camss" 118c2ecf20Sopenharmony_ci- reg: 128c2ecf20Sopenharmony_ci Usage: required 138c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 148c2ecf20Sopenharmony_ci Definition: Register ranges as listed in the reg-names property. 158c2ecf20Sopenharmony_ci- reg-names: 168c2ecf20Sopenharmony_ci Usage: required 178c2ecf20Sopenharmony_ci Value type: <stringlist> 188c2ecf20Sopenharmony_ci Definition: Should contain the following entries: 198c2ecf20Sopenharmony_ci - "csiphy0" 208c2ecf20Sopenharmony_ci - "csiphy0_clk_mux" 218c2ecf20Sopenharmony_ci - "csiphy1" 228c2ecf20Sopenharmony_ci - "csiphy1_clk_mux" 238c2ecf20Sopenharmony_ci - "csiphy2" (8996 only) 248c2ecf20Sopenharmony_ci - "csiphy2_clk_mux" (8996 only) 258c2ecf20Sopenharmony_ci - "csid0" 268c2ecf20Sopenharmony_ci - "csid1" 278c2ecf20Sopenharmony_ci - "csid2" (8996 only) 288c2ecf20Sopenharmony_ci - "csid3" (8996 only) 298c2ecf20Sopenharmony_ci - "ispif" 308c2ecf20Sopenharmony_ci - "csi_clk_mux" 318c2ecf20Sopenharmony_ci - "vfe0" 328c2ecf20Sopenharmony_ci - "vfe1" (8996 only) 338c2ecf20Sopenharmony_ci- interrupts: 348c2ecf20Sopenharmony_ci Usage: required 358c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 368c2ecf20Sopenharmony_ci Definition: Interrupts as listed in the interrupt-names property. 378c2ecf20Sopenharmony_ci- interrupt-names: 388c2ecf20Sopenharmony_ci Usage: required 398c2ecf20Sopenharmony_ci Value type: <stringlist> 408c2ecf20Sopenharmony_ci Definition: Should contain the following entries: 418c2ecf20Sopenharmony_ci - "csiphy0" 428c2ecf20Sopenharmony_ci - "csiphy1" 438c2ecf20Sopenharmony_ci - "csiphy2" (8996 only) 448c2ecf20Sopenharmony_ci - "csid0" 458c2ecf20Sopenharmony_ci - "csid1" 468c2ecf20Sopenharmony_ci - "csid2" (8996 only) 478c2ecf20Sopenharmony_ci - "csid3" (8996 only) 488c2ecf20Sopenharmony_ci - "ispif" 498c2ecf20Sopenharmony_ci - "vfe0" 508c2ecf20Sopenharmony_ci - "vfe1" (8996 only) 518c2ecf20Sopenharmony_ci- power-domains: 528c2ecf20Sopenharmony_ci Usage: required 538c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 548c2ecf20Sopenharmony_ci Definition: A phandle and power domain specifier pairs to the 558c2ecf20Sopenharmony_ci power domain which is responsible for collapsing 568c2ecf20Sopenharmony_ci and restoring power to the peripheral. 578c2ecf20Sopenharmony_ci- clocks: 588c2ecf20Sopenharmony_ci Usage: required 598c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 608c2ecf20Sopenharmony_ci Definition: A list of phandle and clock specifier pairs as listed 618c2ecf20Sopenharmony_ci in clock-names property. 628c2ecf20Sopenharmony_ci- clock-names: 638c2ecf20Sopenharmony_ci Usage: required 648c2ecf20Sopenharmony_ci Value type: <stringlist> 658c2ecf20Sopenharmony_ci Definition: Should contain the following entries: 668c2ecf20Sopenharmony_ci - "top_ahb" 678c2ecf20Sopenharmony_ci - "ispif_ahb" 688c2ecf20Sopenharmony_ci - "csiphy0_timer" 698c2ecf20Sopenharmony_ci - "csiphy1_timer" 708c2ecf20Sopenharmony_ci - "csiphy2_timer" (8996 only) 718c2ecf20Sopenharmony_ci - "csi0_ahb" 728c2ecf20Sopenharmony_ci - "csi0" 738c2ecf20Sopenharmony_ci - "csi0_phy" 748c2ecf20Sopenharmony_ci - "csi0_pix" 758c2ecf20Sopenharmony_ci - "csi0_rdi" 768c2ecf20Sopenharmony_ci - "csi1_ahb" 778c2ecf20Sopenharmony_ci - "csi1" 788c2ecf20Sopenharmony_ci - "csi1_phy" 798c2ecf20Sopenharmony_ci - "csi1_pix" 808c2ecf20Sopenharmony_ci - "csi1_rdi" 818c2ecf20Sopenharmony_ci - "csi2_ahb" (8996 only) 828c2ecf20Sopenharmony_ci - "csi2" (8996 only) 838c2ecf20Sopenharmony_ci - "csi2_phy" (8996 only) 848c2ecf20Sopenharmony_ci - "csi2_pix" (8996 only) 858c2ecf20Sopenharmony_ci - "csi2_rdi" (8996 only) 868c2ecf20Sopenharmony_ci - "csi3_ahb" (8996 only) 878c2ecf20Sopenharmony_ci - "csi3" (8996 only) 888c2ecf20Sopenharmony_ci - "csi3_phy" (8996 only) 898c2ecf20Sopenharmony_ci - "csi3_pix" (8996 only) 908c2ecf20Sopenharmony_ci - "csi3_rdi" (8996 only) 918c2ecf20Sopenharmony_ci - "ahb" 928c2ecf20Sopenharmony_ci - "vfe0" 938c2ecf20Sopenharmony_ci - "csi_vfe0" 948c2ecf20Sopenharmony_ci - "vfe0_ahb", (8996 only) 958c2ecf20Sopenharmony_ci - "vfe0_stream", (8996 only) 968c2ecf20Sopenharmony_ci - "vfe1", (8996 only) 978c2ecf20Sopenharmony_ci - "csi_vfe1", (8996 only) 988c2ecf20Sopenharmony_ci - "vfe1_ahb", (8996 only) 998c2ecf20Sopenharmony_ci - "vfe1_stream", (8996 only) 1008c2ecf20Sopenharmony_ci - "vfe_ahb" 1018c2ecf20Sopenharmony_ci - "vfe_axi" 1028c2ecf20Sopenharmony_ci- vdda-supply: 1038c2ecf20Sopenharmony_ci Usage: required 1048c2ecf20Sopenharmony_ci Value type: <phandle> 1058c2ecf20Sopenharmony_ci Definition: A phandle to voltage supply for CSI2. 1068c2ecf20Sopenharmony_ci- iommus: 1078c2ecf20Sopenharmony_ci Usage: required 1088c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 1098c2ecf20Sopenharmony_ci Definition: A list of phandle and IOMMU specifier pairs. 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ci* Nodes 1128c2ecf20Sopenharmony_ci 1138c2ecf20Sopenharmony_ci- ports: 1148c2ecf20Sopenharmony_ci Usage: required 1158c2ecf20Sopenharmony_ci Definition: As described in video-interfaces.txt in same directory. 1168c2ecf20Sopenharmony_ci Properties: 1178c2ecf20Sopenharmony_ci - reg: 1188c2ecf20Sopenharmony_ci Usage: required 1198c2ecf20Sopenharmony_ci Value type: <u32> 1208c2ecf20Sopenharmony_ci Definition: Selects CSI2 PHY interface - PHY0, PHY1 1218c2ecf20Sopenharmony_ci or PHY2 (8996 only) 1228c2ecf20Sopenharmony_ci Endpoint node properties: 1238c2ecf20Sopenharmony_ci - clock-lanes: 1248c2ecf20Sopenharmony_ci Usage: required 1258c2ecf20Sopenharmony_ci Value type: <u32> 1268c2ecf20Sopenharmony_ci Definition: The physical clock lane index. On 8916 1278c2ecf20Sopenharmony_ci the value must always be <1> as the physical 1288c2ecf20Sopenharmony_ci clock lane is lane 1. On 8996 the value must 1298c2ecf20Sopenharmony_ci always be <7> as the hardware supports D-PHY 1308c2ecf20Sopenharmony_ci and C-PHY, indexes are in a common set and 1318c2ecf20Sopenharmony_ci D-PHY physical clock lane is labeled as 7. 1328c2ecf20Sopenharmony_ci - data-lanes: 1338c2ecf20Sopenharmony_ci Usage: required 1348c2ecf20Sopenharmony_ci Value type: <prop-encoded-array> 1358c2ecf20Sopenharmony_ci Definition: An array of physical data lanes indexes. 1368c2ecf20Sopenharmony_ci Position of an entry determines the logical 1378c2ecf20Sopenharmony_ci lane number, while the value of an entry 1388c2ecf20Sopenharmony_ci indicates physical lane index. Lane swapping 1398c2ecf20Sopenharmony_ci is supported. Physical lane indexes for 1408c2ecf20Sopenharmony_ci 8916: 0, 2, 3, 4; for 8996: 0, 1, 2, 3. 1418c2ecf20Sopenharmony_ci 1428c2ecf20Sopenharmony_ci* An Example 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci camss: camss@1b00000 { 1458c2ecf20Sopenharmony_ci compatible = "qcom,msm8916-camss"; 1468c2ecf20Sopenharmony_ci reg = <0x1b0ac00 0x200>, 1478c2ecf20Sopenharmony_ci <0x1b00030 0x4>, 1488c2ecf20Sopenharmony_ci <0x1b0b000 0x200>, 1498c2ecf20Sopenharmony_ci <0x1b00038 0x4>, 1508c2ecf20Sopenharmony_ci <0x1b08000 0x100>, 1518c2ecf20Sopenharmony_ci <0x1b08400 0x100>, 1528c2ecf20Sopenharmony_ci <0x1b0a000 0x500>, 1538c2ecf20Sopenharmony_ci <0x1b00020 0x10>, 1548c2ecf20Sopenharmony_ci <0x1b10000 0x1000>; 1558c2ecf20Sopenharmony_ci reg-names = "csiphy0", 1568c2ecf20Sopenharmony_ci "csiphy0_clk_mux", 1578c2ecf20Sopenharmony_ci "csiphy1", 1588c2ecf20Sopenharmony_ci "csiphy1_clk_mux", 1598c2ecf20Sopenharmony_ci "csid0", 1608c2ecf20Sopenharmony_ci "csid1", 1618c2ecf20Sopenharmony_ci "ispif", 1628c2ecf20Sopenharmony_ci "csi_clk_mux", 1638c2ecf20Sopenharmony_ci "vfe0"; 1648c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 78 0>, 1658c2ecf20Sopenharmony_ci <GIC_SPI 79 0>, 1668c2ecf20Sopenharmony_ci <GIC_SPI 51 0>, 1678c2ecf20Sopenharmony_ci <GIC_SPI 52 0>, 1688c2ecf20Sopenharmony_ci <GIC_SPI 55 0>, 1698c2ecf20Sopenharmony_ci <GIC_SPI 57 0>; 1708c2ecf20Sopenharmony_ci interrupt-names = "csiphy0", 1718c2ecf20Sopenharmony_ci "csiphy1", 1728c2ecf20Sopenharmony_ci "csid0", 1738c2ecf20Sopenharmony_ci "csid1", 1748c2ecf20Sopenharmony_ci "ispif", 1758c2ecf20Sopenharmony_ci "vfe0"; 1768c2ecf20Sopenharmony_ci power-domains = <&gcc VFE_GDSC>; 1778c2ecf20Sopenharmony_ci clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>, 1788c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_ISPIF_AHB_CLK>, 1798c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>, 1808c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>, 1818c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI0_AHB_CLK>, 1828c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI0_CLK>, 1838c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI0PHY_CLK>, 1848c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI0PIX_CLK>, 1858c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI0RDI_CLK>, 1868c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI1_AHB_CLK>, 1878c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI1_CLK>, 1888c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI1PHY_CLK>, 1898c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI1PIX_CLK>, 1908c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI1RDI_CLK>, 1918c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_AHB_CLK>, 1928c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_VFE0_CLK>, 1938c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_CSI_VFE0_CLK>, 1948c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_VFE_AHB_CLK>, 1958c2ecf20Sopenharmony_ci <&gcc GCC_CAMSS_VFE_AXI_CLK>; 1968c2ecf20Sopenharmony_ci clock-names = "top_ahb", 1978c2ecf20Sopenharmony_ci "ispif_ahb", 1988c2ecf20Sopenharmony_ci "csiphy0_timer", 1998c2ecf20Sopenharmony_ci "csiphy1_timer", 2008c2ecf20Sopenharmony_ci "csi0_ahb", 2018c2ecf20Sopenharmony_ci "csi0", 2028c2ecf20Sopenharmony_ci "csi0_phy", 2038c2ecf20Sopenharmony_ci "csi0_pix", 2048c2ecf20Sopenharmony_ci "csi0_rdi", 2058c2ecf20Sopenharmony_ci "csi1_ahb", 2068c2ecf20Sopenharmony_ci "csi1", 2078c2ecf20Sopenharmony_ci "csi1_phy", 2088c2ecf20Sopenharmony_ci "csi1_pix", 2098c2ecf20Sopenharmony_ci "csi1_rdi", 2108c2ecf20Sopenharmony_ci "ahb", 2118c2ecf20Sopenharmony_ci "vfe0", 2128c2ecf20Sopenharmony_ci "csi_vfe0", 2138c2ecf20Sopenharmony_ci "vfe_ahb", 2148c2ecf20Sopenharmony_ci "vfe_axi"; 2158c2ecf20Sopenharmony_ci vdda-supply = <&pm8916_l2>; 2168c2ecf20Sopenharmony_ci iommus = <&apps_iommu 3>; 2178c2ecf20Sopenharmony_ci ports { 2188c2ecf20Sopenharmony_ci #address-cells = <1>; 2198c2ecf20Sopenharmony_ci #size-cells = <0>; 2208c2ecf20Sopenharmony_ci port@0 { 2218c2ecf20Sopenharmony_ci reg = <0>; 2228c2ecf20Sopenharmony_ci csiphy0_ep: endpoint { 2238c2ecf20Sopenharmony_ci clock-lanes = <1>; 2248c2ecf20Sopenharmony_ci data-lanes = <0 2>; 2258c2ecf20Sopenharmony_ci remote-endpoint = <&ov5645_ep>; 2268c2ecf20Sopenharmony_ci }; 2278c2ecf20Sopenharmony_ci }; 2288c2ecf20Sopenharmony_ci }; 2298c2ecf20Sopenharmony_ci }; 230