M7350/kernel/arch/arm/boot/dts/qcom/msm8996-camera.dtsi
2024-09-09 08:57:42 +00:00

796 lines
24 KiB
Plaintext

/*
* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
qcom,msm-cam@8c0000 {
compatible = "qcom,msm-cam";
reg = <0x8c0000 0x40000>;
reg-names = "msm-cam";
status = "ok";
bus-vectors = "suspend", "svs", "nominal", "turbo";
qcom,bus-votes = <0 300000000 640000000 640000000>;
};
qcom,csiphy@a34000 {
cell-index = <0>;
compatible = "qcom,csiphy-v3.5", "qcom,csiphy";
reg = <0xa34000 0x1000>, <0xA00030 0x4>;
reg-names = "csiphy", "csiphy_clk_mux";
interrupts = <0 78 0>;
interrupt-names = "csiphy";
clocks = <&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ispif_ahb_clk>,
<&clock_mmss clk_csi0phytimer_clk_src>,
<&clock_mmss clk_camss_csi0phytimer_clk>,
<&clock_mmss clk_camss_ahb_clk>,
<&clock_mmss clk_csiphy0_3p_clk_src>,
<&clock_mmss clk_camss_csiphy0_3p_clk>;
clock-names = "camss_top_ahb_clk",
"ispif_ahb_clk", "csiphy_timer_src_clk",
"csiphy_timer_clk", "camss_ahb_clk",
"csiphy_3p_clk_src", "csi_phy_3p_clk";
qcom,clock-rates = <0 0 200000000 0 0 100000000 0>;
};
qcom,csiphy@a35000 {
cell-index = <1>;
compatible = "qcom,csiphy-v3.5", "qcom,csiphy";
reg = <0xa35000 0x1000>, <0xA00038 0x4>;
reg-names = "csiphy", "csiphy_clk_mux";
interrupts = <0 79 0>;
interrupt-names = "csiphy";
clocks = <&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ispif_ahb_clk>,
<&clock_mmss clk_csi1phytimer_clk_src>,
<&clock_mmss clk_camss_csi1phytimer_clk>,
<&clock_mmss clk_camss_ahb_clk>,
<&clock_mmss clk_csiphy1_3p_clk_src>,
<&clock_mmss clk_camss_csiphy1_3p_clk>;
clock-names = "camss_top_ahb_clk",
"ispif_ahb_clk", "csiphy_timer_src_clk",
"csiphy_timer_clk", "camss_ahb_clk",
"csiphy_3p_clk_src", "csi_phy_3p_clk";
qcom,clock-rates = <0 0 200000000 0 0 100000000 0>;
};
qcom,csiphy@a36000 {
cell-index = <2>;
compatible = "qcom,csiphy-v3.5", "qcom,csiphy";
reg = <0xa36000 0x1000>, <0xA00040 0x4>;
reg-names = "csiphy", "csiphy_clk_mux";
interrupts = <0 80 0>;
interrupt-names = "csiphy";
clocks = <&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ispif_ahb_clk>,
<&clock_mmss clk_csi2phytimer_clk_src>,
<&clock_mmss clk_camss_csi2phytimer_clk>,
<&clock_mmss clk_camss_ahb_clk>,
<&clock_mmss clk_csiphy2_3p_clk_src>,
<&clock_mmss clk_camss_csiphy2_3p_clk>;
clock-names = "camss_top_ahb_clk",
"ispif_ahb_clk", "csiphy_timer_src_clk",
"csiphy_timer_clk", "camss_ahb_clk",
"csiphy_3p_clk_src", "csi_phy_3p_clk";
qcom,clock-rates = <0 0 200000000 0 0 100000000 0>;
};
qcom,csid@a30000 {
cell-index = <0>;
compatible = "qcom,csid-v3.5", "qcom,csid";
reg = <0xa30000 0x400>;
reg-names = "csid";
interrupts = <0 296 0>;
interrupt-names = "csid";
qcom,csi-vdd-voltage = <1250000>;
qcom,mipi-csi-vdd-supply = <&pm8994_l2>;
mmagic-supply = <&gdsc_mmagic_camss>;
gdscr-supply = <&gdsc_camss_top>;
qcom,cam-vreg-name = "mmagic", "gdscr";
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ispif_ahb_clk>,
<&clock_mmss clk_csi0_clk_src>,
<&clock_mmss clk_camss_csi0_clk>,
<&clock_mmss clk_camss_csi0phy_clk>,
<&clock_mmss clk_camss_csi0_ahb_clk>,
<&clock_mmss clk_camss_csi0rdi_clk>,
<&clock_mmss clk_camss_csi0pix_clk>,
<&clock_mmss clk_camss_ahb_clk>;
clock-names = "mmagic_camss_ahb_clk", "camss_top_ahb_clk",
"ispif_ahb_clk", "csi_src_clk", "csi_clk",
"csi_phy_clk", "csi_ahb_clk", "csi_rdi_clk",
"csi_pix_clk", "camss_ahb_clk";
qcom,clock-rates = <0 0 0 200000000 0 0 0 0 0 0>;
status = "ok";
};
qcom,csid@a30400 {
cell-index = <1>;
compatible = "qcom,csid-v3.5", "qcom,csid";
reg = <0xa30400 0x400>;
reg-names = "csid";
interrupts = <0 297 0>;
interrupt-names = "csid";
qcom,csi-vdd-voltage = <1250000>;
qcom,mipi-csi-vdd-supply = <&pm8994_l2>;
mmagic-supply = <&gdsc_mmagic_camss>;
gdscr-supply = <&gdsc_camss_top>;
qcom,cam-vreg-name = "mmagic", "gdscr";
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ispif_ahb_clk>,
<&clock_mmss clk_csi1_clk_src>,
<&clock_mmss clk_camss_csi1_clk>,
<&clock_mmss clk_camss_csi1phy_clk>,
<&clock_mmss clk_camss_csi1_ahb_clk>,
<&clock_mmss clk_camss_csi1rdi_clk>,
<&clock_mmss clk_camss_csi1pix_clk>,
<&clock_mmss clk_camss_ahb_clk>;
clock-names = "mmagic_camss_ahb_clk", "camss_top_ahb_clk",
"ispif_ahb_clk", "csi_src_clk", "csi_clk",
"csi_phy_clk", "csi_ahb_clk", "csi_rdi_clk",
"csi_pix_clk", "camss_ahb_clk";
qcom,clock-rates = <0 0 0 200000000 0 0 0 0 0 0>;
};
qcom,csid@a30800 {
cell-index = <2>;
compatible = "qcom,csid-v3.5", "qcom,csid";
reg = <0xa30800 0x400>;
reg-names = "csid";
interrupts = <0 298 0>;
interrupt-names = "csid";
qcom,csi-vdd-voltage = <1250000>;
qcom,mipi-csi-vdd-supply = <&pm8994_l2>;
mmagic-supply = <&gdsc_mmagic_camss>;
gdscr-supply = <&gdsc_camss_top>;
qcom,cam-vreg-name = "mmagic", "gdscr";
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ispif_ahb_clk>,
<&clock_mmss clk_csi2_clk_src>,
<&clock_mmss clk_camss_csi2_clk>,
<&clock_mmss clk_camss_csi2phy_clk>,
<&clock_mmss clk_camss_csi2_ahb_clk>,
<&clock_mmss clk_camss_csi2rdi_clk>,
<&clock_mmss clk_camss_csi2pix_clk>,
<&clock_mmss clk_camss_ahb_clk>;
clock-names = "mmagic_camss_ahb_clk", "camss_top_ahb_clk",
"ispif_ahb_clk", "csi_src_clk", "csi_clk",
"csi_phy_clk", "csi_ahb_clk", "csi_rdi_clk",
"csi_pix_clk", "camss_ahb_clk";
qcom,clock-rates = <0 0 0 200000000 0 0 0 0 0 0>;
};
qcom,csid@a30c00 {
cell-index = <3>;
compatible = "qcom,csid-v3.5", "qcom,csid";
reg = <0xa30c00 0x400>;
reg-names = "csid";
interrupts = <0 299 0>;
interrupt-names = "csid";
qcom,csi-vdd-voltage = <1250000>;
qcom,mipi-csi-vdd-supply = <&pm8994_l2>;
mmagic-supply = <&gdsc_mmagic_camss>;
gdscr-supply = <&gdsc_camss_top>;
qcom,cam-vreg-name = "mmagic", "gdscr";
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ispif_ahb_clk>,
<&clock_mmss clk_csi3_clk_src>,
<&clock_mmss clk_camss_csi3_clk>,
<&clock_mmss clk_camss_csi3phy_clk>,
<&clock_mmss clk_camss_csi3_ahb_clk>,
<&clock_mmss clk_camss_csi3rdi_clk>,
<&clock_mmss clk_camss_csi3pix_clk>,
<&clock_mmss clk_camss_ahb_clk>;
clock-names = "mmagic_camss_ahb_clk", "camss_top_ahb_clk",
"ispif_ahb_clk", "csi_src_clk", "csi_clk",
"csi_phy_clk", "csi_ahb_clk", "csi_rdi_clk",
"csi_pix_clk", "camss_ahb_clk";
qcom,clock-rates = <0 0 0 200000000 0 0 0 0 0 0>;
};
qcom,ispif@a31000 {
cell-index = <0>;
compatible = "qcom,ispif-v3.0", "qcom,ispif";
reg = <0xa31000 0xc00>,
<0xa00020 0x4>;
reg-names = "ispif", "csi_clk_mux";
interrupts = <0 309 0>;
interrupt-names = "ispif";
qcom,num-isps = <0x2>;
camss-vdd-supply = <&gdsc_camss_top>;
mmagic-vdd-supply = <&gdsc_mmagic_camss>;
vfe0-vdd-supply = <&gdsc_vfe0>;
vfe1-vdd-supply = <&gdsc_vfe1>;
qcom,vdd-names = "camss-vdd", "mmagic-vdd", "vfe0-vdd",
"vfe1-vdd";
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ahb_clk>,
<&clock_mmss clk_camss_ispif_ahb_clk>,
<&clock_mmss clk_csi0_clk_src>,
<&clock_mmss clk_camss_csi0_clk>,
<&clock_mmss clk_camss_csi0rdi_clk>,
<&clock_mmss clk_camss_csi0pix_clk>,
<&clock_mmss clk_csi1_clk_src>,
<&clock_mmss clk_camss_csi1_clk>,
<&clock_mmss clk_camss_csi1rdi_clk>,
<&clock_mmss clk_camss_csi1pix_clk>,
<&clock_mmss clk_csi2_clk_src>,
<&clock_mmss clk_camss_csi2_clk>,
<&clock_mmss clk_camss_csi2rdi_clk>,
<&clock_mmss clk_camss_csi2pix_clk>,
<&clock_mmss clk_csi3_clk_src>,
<&clock_mmss clk_camss_csi3_clk>,
<&clock_mmss clk_camss_csi3rdi_clk>,
<&clock_mmss clk_camss_csi3pix_clk>,
<&clock_mmss clk_vfe0_clk_src>,
<&clock_mmss clk_camss_vfe0_clk>,
<&clock_mmss clk_camss_csi_vfe0_clk>,
<&clock_mmss clk_vfe1_clk_src>,
<&clock_mmss clk_camss_vfe1_clk>,
<&clock_mmss clk_camss_csi_vfe1_clk>;
clock-names = "mmagic_camss_ahb_clk",
"camss_top_ahb_clk",
"camss_ahb_clk", "ispif_ahb_clk",
"csi0_src_clk", "csi0_clk",
"csi0_pix_clk", "csi0_rdi_clk",
"csi1_src_clk", "csi1_clk",
"csi1_pix_clk", "csi1_rdi_clk",
"csi2_src_clk", "csi2_clk",
"csi2_pix_clk", "csi2_rdi_clk",
"csi3_src_clk", "csi3_clk",
"csi3_pix_clk", "csi3_rdi_clk",
"vfe0_clk_src", "camss_vfe_vfe0_clk", "camss_csi_vfe0_clk",
"vfe1_clk_src", "camss_vfe_vfe1_clk", "camss_csi_vfe1_clk";
qcom,clock-rates = <0 0 0 0
200000000 0 0 0
200000000 0 0 0
200000000 0 0 0
200000000 0 0 0
0 0 0
0 0 0>;
qcom,clock-control = "NO_SET_RATE", "NO_SET_RATE",
"NO_SET_RATE", "NO_SET_RATE",
"SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE",
"SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE",
"SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE",
"SET_RATE", "NO_SET_RATE", "NO_SET_RATE", "NO_SET_RATE",
"INIT_RATE", "NO_SET_RATE", "NO_SET_RATE",
"INIT_RATE", "NO_SET_RATE", "NO_SET_RATE";
status = "ok";
};
vfe0: qcom,vfe0@a10000 {
cell-index = <0>;
compatible = "qcom,vfe47";
reg = <0xa10000 0x4000>,
<0xa40000 0x3000>;
reg-names = "vfe", "vfe_vbif";
interrupts = <0 314 0>;
interrupt-names = "vfe";
vdd-supply = <&gdsc_vfe0>;
mmagic-vdd-supply = <&gdsc_mmagic_camss>;
camss-vdd-supply = <&gdsc_camss_top>;
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_mmagic_camss_axi_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ahb_clk>,
<&clock_mmss clk_vfe0_clk_src>,
<&clock_mmss clk_camss_vfe0_clk>,
<&clock_mmss clk_camss_csi_vfe0_clk>,
<&clock_mmss clk_camss_vfe_ahb_clk>,
<&clock_mmss clk_camss_vfe0_ahb_clk>,
<&clock_mmss clk_camss_vfe_axi_clk>,
<&clock_mmss clk_camss_vfe0_stream_clk>,
<&clock_mmss clk_smmu_vfe_axi_clk>;
clock-names = "mmagic_ahb_clk",
"camss_axi_clk",
"camss_top_ahb_clk" , "camss_ahb_clk",
"vfe_clk_src", "camss_vfe_clk",
"camss_csi_vfe_clk",
"vfe_vbif_ahb_clk", "vfe_ahb_clk",
"bus_clk", "vfe_stream_clk", "smmu_vfe_axi_clk";
qcom,clock-rates = <0 0 0 0 320000000 0 0 0 0 0 0 0>;
status = "ok";
qos-entries = <8>;
qos-regs = <0x404 0x408 0x40c 0x410 0x414 0x418
0x41c 0x420>;
qos-settings = <0xaaa9aaa9
0xaaa9aaa9
0xaaa9aaa9
0xaaa9aaa9
0xaaa9aaa9
0xaaa9aaa9
0xaaa9aaa9
0x0001aaa9>;
vbif-entries = <1>;
vbif-regs = <0x124>;
vbif-settings = <0x3>;
ds-entries = <17>;
ds-regs = <0x424 0x428 0x42c 0x430 0x434
0x438 0x43c 0x440 0x444 0x448 0x44c
0x450 0x454 0x458 0x45c 0x460 0x464>;
ds-settings = <0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0x40000103>;
max-clk-svs = <300000000>;
max-clk-nominal = <465000000>;
max-clk-turbo = <600000000>;
};
vfe1: qcom,vfe1@a14000 {
cell-index = <1>;
compatible = "qcom,vfe47";
reg = <0xa14000 0x4000>,
<0xa40000 0x3000>;
reg-names = "vfe", "vfe_vbif";
interrupts = <0 315 0>;
interrupt-names = "vfe";
vdd-supply = <&gdsc_vfe1>;
mmagic-vdd-supply = <&gdsc_mmagic_camss>;
camss-vdd-supply = <&gdsc_camss_top>;
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_mmagic_camss_axi_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ahb_clk>,
<&clock_mmss clk_vfe1_clk_src>,
<&clock_mmss clk_camss_vfe1_clk>,
<&clock_mmss clk_camss_csi_vfe1_clk>,
<&clock_mmss clk_camss_vfe_ahb_clk>,
<&clock_mmss clk_camss_vfe1_ahb_clk>,
<&clock_mmss clk_camss_vfe_axi_clk>,
<&clock_mmss clk_camss_vfe1_stream_clk>,
<&clock_mmss clk_smmu_vfe_axi_clk>;
clock-names = "mmagic_ahb_clk",
"camss_axi_clk",
"camss_top_ahb_clk" , "camss_ahb_clk",
"vfe_clk_src", "camss_vfe_clk",
"camss_csi_vfe_clk",
"vfe_vbif_ahb_clk", "vfe_ahb_clk",
"bus_clk", "vfe_stream_clk", "smmu_vfe_axi_clk";
qcom,clock-rates = <0 0 0 0 320000000 0 0 0 0 0 0 0>;
status = "ok";
qos-entries = <8>;
qos-regs = <0x404 0x408 0x40c 0x410 0x414 0x418
0x41c 0x420>;
qos-settings = <0xaaa9aaa9
0xaaa9aaa9
0xaaa9aaa9
0xaaa9aaa9
0xaaa9aaa9
0xaaa9aaa9
0xaaa9aaa9
0x0001aaa9>;
vbif-entries = <1>;
vbif-regs = <0x124>;
vbif-settings = <0x3>;
ds-entries = <17>;
ds-regs = <0x424 0x428 0x42c 0x430 0x434
0x438 0x43c 0x440 0x444 0x448 0x44c
0x450 0x454 0x458 0x45c 0x460 0x464>;
ds-settings = <0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0xcccc0011
0x40000103>;
max-clk-svs = <300000000>;
max-clk-nominal = <465000000>;
max-clk-turbo = <600000000>;
};
qcom,vfe {
compatible = "qcom,vfe";
num_child = <2>;
};
qcom,cam_smmu {
compatible = "qcom,msm-cam-smmu";
msm_cam_smmu_cb1 {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&vfe_smmu 0>,
<&vfe_smmu 1>,
<&vfe_smmu 2>,
<&vfe_smmu 3>;
label = "vfe";
qcom,scratch-buf-support;
};
msm_cam_smmu_cb3 {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&cpp_fd_smmu 0>;
label = "cpp";
};
msm_cam_smmu_cb4 {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&cpp_fd_smmu 1>;
label = "camera_fd";
};
msm_cam_smmu_cb5 {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&jpeg_smmu 0>;
label = "jpeg_enc0";
};
msm_cam_smmu_cb6 {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&jpeg_smmu 1>;
label = "jpeg_dma";
};
msm_cam_smmu_cb7 {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&jpeg_smmu 2>;
label = "jpeg_dec";
};
};
qcom,jpeg@a1c000 {
cell-index = <0>;
compatible = "qcom,jpeg";
reg = <0xa1c000 0x4000>,
<0xa60000 0x3000>;
reg-names = "jpeg";
interrupts = <0 316 0>;
interrupt-names = "jpeg";
mmagic-vdd-supply = <&gdsc_mmagic_camss>;
camss-vdd-supply = <&gdsc_camss_top>;
vdd-supply = <&gdsc_jpeg>;
qcom,vdd-names = "mmagic-vdd", "camss-vdd", "vdd";
clock-names = "mmss_mmagic_ahb_clk",
"core_clk", "iface_clk", "bus_clk0",
"camss_top_ahb_clk", "camss_ahb_clk",
"smmu_jpeg_axi_clk", "mmagic_camss_axi_clk";
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_camss_jpeg0_clk>,
<&clock_mmss clk_camss_jpeg_ahb_clk>,
<&clock_mmss clk_camss_jpeg_axi_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ahb_clk>,
<&clock_mmss clk_smmu_jpeg_axi_clk>,
<&clock_mmss clk_mmagic_camss_axi_clk>;
qcom,clock-rates = <0 320000000 0 0 0 0 0 0>;
qcom,vbif-reg-settings = <0x4 0x1>;
qcom,prefetch-reg-settings = <0x30c 0x1111>,
<0x318 0x31>,
<0x324 0x31>,
<0x330 0x31>,
<0x33c 0x0>;
status = "ok";
};
qcom,jpeg@a24000 {
cell-index = <2>;
compatible = "qcom,jpeg";
reg = <0xa24000 0x4000>,
<0xa60000 0x3000>;
reg-names = "jpeg";
interrupts = <0 318 0>;
interrupt-names = "jpeg";
mmagic-vdd-supply = <&gdsc_mmagic_camss>;
camss-vdd-supply = <&gdsc_camss_top>;
vdd-supply = <&gdsc_jpeg>;
qcom,vdd-names = "mmagic-vdd", "camss-vdd", "vdd";
clock-names = "mmss_mmagic_ahb_clk",
"core_clk", "iface_clk", "bus_clk0",
"camss_top_ahb_clk", "camss_ahb_clk",
"smmu_jpeg_axi_clk", "mmagic_camss_axi_clk";
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_camss_jpeg2_clk>,
<&clock_mmss clk_camss_jpeg_ahb_clk>,
<&clock_mmss clk_camss_jpeg_axi_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ahb_clk>,
<&clock_mmss clk_smmu_jpeg_axi_clk>,
<&clock_mmss clk_mmagic_camss_axi_clk>;
qcom,clock-rates = <0 266670000 0 0 0 0 0 0>;
qcom,vbif-reg-settings = <0x4 0x1>;
qcom,prefetch-reg-settings = <0x30c 0x1111>,
<0x318 0x0>,
<0x324 0x31>,
<0x330 0x31>,
<0x33c 0x31>;
status = "ok";
};
qcom,jpeg@aa0000 {
cell-index = <3>;
compatible = "qcom,jpeg_dma";
reg = <0xaa0000 0x4000>,
<0xa60000 0x3000>;
reg-names = "jpeg";
interrupts = <0 304 0>;
interrupt-names = "jpeg";
mmagic-vdd-supply = <&gdsc_mmagic_camss>;
camss-vdd-supply = <&gdsc_camss_top>;
vdd-supply = <&gdsc_jpeg>;
qcom,vdd-names = "mmagic-vdd", "camss-vdd", "vdd";
clock-names = "mmss_mmagic_ahb_clk",
"core_clk", "iface_clk", "bus_clk0",
"camss_top_ahb_clk", "camss_ahb_clk",
"smmu_jpeg_axi_clk", "mmagic_camss_axi_clk";
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_camss_jpeg_dma_clk>,
<&clock_mmss clk_camss_jpeg_ahb_clk>,
<&clock_mmss clk_camss_jpeg_axi_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_camss_ahb_clk>,
<&clock_mmss clk_smmu_jpeg_axi_clk>,
<&clock_mmss clk_mmagic_camss_axi_clk>;
qcom,clock-rates = <0 266670000 0 0 0 0 0 0>;
qcom,vbif-reg-settings = <0x4 0x1>;
qcom,prefetch-reg-settings = <0x18c 0x11>,
<0x1a0 0x31>,
<0x1b0 0x31>;
status = "ok";
};
qcom,irqrouter@a00000 {
cell-index = <0>;
compatible = "qcom,irqrouter";
reg = <0xa00000 0x4000>;
reg-names = "irqrouter";
};
cpp: qcom,cpp@a04000 {
cell-index = <0>;
compatible = "qcom,cpp";
reg = <0xa04000 0x100>,
<0xa80000 0x3000>,
<0xa18000 0x3000>,
<0x8c36D4 0x4>;
reg-names = "cpp", "cpp_vbif", "cpp_hw", "camss_cpp";
interrupts = <0 294 0>;
interrupt-names = "cpp";
mmagic-vdd-supply = <&gdsc_mmagic_camss>;
camss-vdd-supply = <&gdsc_camss_top>;
vdd-supply = <&gdsc_cpp>;
qcom,vdd-names = "mmagic-vdd", "camss-vdd", "vdd";
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_mmagic_camss_axi_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_cpp_clk_src>,
<&clock_mmss clk_camss_cpp_ahb_clk>,
<&clock_mmss clk_camss_cpp_axi_clk>,
<&clock_mmss clk_camss_cpp_clk>,
<&clock_mmss clk_camss_micro_ahb_clk>,
<&clock_mmss clk_camss_ahb_clk>,
<&clock_mmss clk_smmu_cpp_axi_clk>,
<&clock_mmss clk_camss_cpp_vbif_ahb_clk>;
clock-names = "mmss_mmagic_ahb_clk",
"mmagic_camss_axi_clk", "camss_top_ahb_clk",
"cpp_core_clk", "camss_cpp_ahb_clk",
"camss_cpp_axi_clk", "camss_cpp_clk",
"micro_iface_clk", "camss_ahb_clk",
"smmu_cpp_axi_clk", "cpp_vbif_ahb_clk";
qcom,clock-rates = <0 0 0 465000000 0 0 465000000 0 0 0 0>;
qcom,min-clock-rate = <200000000>;
qcom,bus-master = <1>;
qcom,vbif-qos-setting = <0x20 0x10000000>,
<0x24 0x10000000>,
<0x28 0x10000000>,
<0x2C 0x10000000>;
status = "ok";
qcom,msm-bus,name = "msm_camera_cpp";
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<106 512 0 0>,
<106 512 0 0>;
qcom,msm-bus-vector-dyn-vote;
qcom,cpp-fw-payload-info {
qcom,stripe-base = <553>;
qcom,plane-base = <481>;
qcom,stripe-size = <61>;
qcom,plane-size = <24>;
qcom,fe-ptr-off = <11>;
qcom,we-ptr-off = <23>;
qcom,ref-fe-ptr-off = <17>;
qcom,ref-we-ptr-off = <36>;
qcom,we-meta-ptr-off = <42>;
qcom,fe-mmu-pf-ptr-off = <6>;
qcom,ref-fe-mmu-pf-ptr-off = <9>;
qcom,we-mmu-pf-ptr-off = <12>;
qcom,dup-we-mmu-pf-ptr-off = <17>;
qcom,ref-we-mmu-pf-ptr-off = <22>;
qcom,set-group-buffer-len = <135>;
qcom,dup-frame-indicator-off = <70>;
};
};
qcom,fd@aa4000 {
cell-index = <0>;
compatible = "qcom,face-detection";
reg = <0xaa4000 0x800>,
<0xaa5000 0x400>,
<0xa80000 0x3000>;
reg-names = "fd_core", "fd_misc", "fd_vbif";
interrupts = <0 293 0>;
interrupt-names = "fd";
mmagic-vdd-supply = <&gdsc_mmagic_camss>;
camss-vdd-supply = <&gdsc_camss_top>;
vdd-supply = <&gdsc_fd>;
qcom,vdd-names = "mmagic-vdd", "camss-vdd", "vdd";
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_mmagic_camss_axi_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_fd_core_clk_src>,
<&clock_mmss clk_fd_core_clk>,
<&clock_mmss clk_fd_core_uar_clk>,
<&clock_mmss clk_fd_ahb_clk>,
<&clock_mmss clk_smmu_cpp_axi_clk>,
<&clock_mmss clk_camss_ahb_clk>,
<&clock_mmss clk_camss_cpp_axi_clk>,
<&clock_mmss clk_camss_cpp_vbif_ahb_clk>,
<&clock_mmss clk_smmu_cpp_ahb_clk>;
clock-names = "mmss_mmagic_ahb_clk",
"mmagic_camss_axi_clk", "camss_top_ahb_clk",
"fd_core_clk_src", "fd_core_clk",
"fd_core_uar_clk", "fd_ahb_clk",
"smmu_cpp_axi_clk", "camss_ahb_clk",
"camss_cpp_axi_clk", "cpp_vbif_ahb_clk",
"smmu_cpp_ahb_clk";
clock-rates = <0 0 0 400000000 400000000>,
<400000000 80000000 0 0 0 0 0>;
qcom,bus-bandwidth-vectors = <13000000 13000000>,
<45000000 45000000>,
<90000000 90000000>;
qcom,fd-vbif-reg-settings = <0x20 0x10000000 0x30000000>,
<0x24 0x10000000 0x30000000>,
<0x28 0x10000000 0x30000000>,
<0x2c 0x10000000 0x30000000>;
qcom,fd-misc-reg-settings = <0x20 0x2 0x3>,
<0x24 0x2 0x3>;
status = "ok";
};
cci: qcom,cci@a0c000 {
cell-index = <0>;
compatible = "qcom,cci";
reg = <0xa0c000 0x4000>;
#address-cells = <1>;
#size-cells = <0>;
reg-names = "cci";
interrupts = <0 295 0>;
interrupt-names = "cci";
status = "ok";
mmagic-supply = <&gdsc_mmagic_camss>;
gdscr-supply = <&gdsc_camss_top>;
qcom,cam-vreg-name = "mmagic", "gdscr";
clocks = <&clock_mmss clk_mmss_mmagic_ahb_clk>,
<&clock_mmss clk_camss_top_ahb_clk>,
<&clock_mmss clk_cci_clk_src>,
<&clock_mmss clk_camss_cci_ahb_clk>,
<&clock_mmss clk_camss_cci_clk>,
<&clock_mmss clk_camss_ahb_clk>;
clock-names = "mmagic_camss_ahb_clk", "camss_top_ahb_clk",
"cci_src_clk", "cci_ahb_clk", "camss_cci_clk",
"camss_ahb_clk";
qcom,clock-rates = <0 0 19200000 0 0 0>,
<0 0 37500000 0 0 0>;
pinctrl-names = "cci_default", "cci_suspend";
pinctrl-0 = <&cci0_active &cci1_active>;
pinctrl-1 = <&cci0_suspend &cci1_suspend>;
gpios = <&tlmm 17 0>,
<&tlmm 18 0>,
<&tlmm 19 0>,
<&tlmm 20 0>;
qcom,gpio-tbl-num = <0 1 2 3>;
qcom,gpio-tbl-flags = <1 1 1 1>;
qcom,gpio-tbl-label = "CCI_I2C_DATA0",
"CCI_I2C_CLK0",
"CCI_I2C_DATA1",
"CCI_I2C_CLK1";
i2c_freq_100Khz: qcom,i2c_standard_mode {
status = "disabled";
};
i2c_freq_400Khz: qcom,i2c_fast_mode {
status = "disabled";
};
i2c_freq_custom: qcom,i2c_custom_mode {
status = "disabled";
};
i2c_freq_1Mhz: qcom,i2c_fast_plus_mode {
status = "disabled";
};
};
};
&i2c_freq_100Khz {
qcom,hw-thigh = <78>;
qcom,hw-tlow = <114>;
qcom,hw-tsu-sto = <28>;
qcom,hw-tsu-sta = <28>;
qcom,hw-thd-dat = <10>;
qcom,hw-thd-sta = <77>;
qcom,hw-tbuf = <118>;
qcom,hw-scl-stretch-en = <0>;
qcom,hw-trdhld = <6>;
qcom,hw-tsp = <1>;
status = "ok";
};
&i2c_freq_400Khz {
qcom,hw-thigh = <20>;
qcom,hw-tlow = <28>;
qcom,hw-tsu-sto = <21>;
qcom,hw-tsu-sta = <21>;
qcom,hw-thd-dat = <13>;
qcom,hw-thd-sta = <18>;
qcom,hw-tbuf = <32>;
qcom,hw-scl-stretch-en = <0>;
qcom,hw-trdhld = <6>;
qcom,hw-tsp = <3>;
status = "ok";
};
&i2c_freq_custom {
qcom,hw-thigh = <15>;
qcom,hw-tlow = <28>;
qcom,hw-tsu-sto = <21>;
qcom,hw-tsu-sta = <21>;
qcom,hw-thd-dat = <13>;
qcom,hw-thd-sta = <18>;
qcom,hw-tbuf = <25>;
qcom,hw-scl-stretch-en = <1>;
qcom,hw-trdhld = <6>;
qcom,hw-tsp = <3>;
status = "ok";
};
&i2c_freq_1Mhz {
qcom,hw-thigh = <16>;
qcom,hw-tlow = <22>;
qcom,hw-tsu-sto = <17>;
qcom,hw-tsu-sta = <18>;
qcom,hw-thd-dat = <16>;
qcom,hw-thd-sta = <15>;
qcom,hw-tbuf = <19>;
qcom,hw-scl-stretch-en = <1>;
qcom,hw-trdhld = <3>;
qcom,hw-tsp = <3>;
qcom,cci-clk-src = <37500000>;
status = "ok";
};