This commit is contained in:
Charlie Nilsson 2022-06-07 17:49:36 -07:00
Коммит b40196c42f
72 изменённых файлов: 38931 добавлений и 0 удалений

273
bengal-camera-sensor-idp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,273 @@
#include <dt-bindings/clock/qcom,gcc-bengal.h>
&soc {
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
gpios-shared-pinctrl = <480>;
shared-pctrl-gpio-names = "gmsl";
pinctrl-names = "gmsl_active", "gmsl_suspend";
pinctrl-0 = <&cam_sensor_gmsl_active>;
pinctrl-1 = <&cam_sensor_gmsl_suspend>;
};
};
&tlmm {
cam_sensor_gmsl_active: cam_sensor_active_gmsl {
/* RESET */
mux {
pins = "gpio81";
function = "gpio";
};
config {
pins = "gpio81";
bias-pull-up;
drive-strength = <2>; /* 2 MA */
output-high;
};
};
cam_sensor_gmsl_suspend: cam_sensor_suspend_gmsl {
/* RESET */
mux {
pins = "gpio81";
function = "gpio";
};
config {
pins = "gpio81";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
};
&cam_cci0 {
/* CAM0A */
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 28 0>,
<&tlmm 18 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* CAM1 */
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L5P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 21 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* CAM0B */
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 20 0>,
<&tlmm 44 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* GMSL-1 */
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <0>;
rgltr-max-voltage = <0>;
rgltr-load-current = <0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_gmsl_active>;
pinctrl-1 = <&cam_sensor_gmsl_suspend>;
gpios = <&tlmm 81 0>;
gpio-reset = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
};
/* GMSL-2 */
qcom,cam-sensor4 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <0>;
rgltr-max-voltage = <0>;
rgltr-load-current = <0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_gmsl_active>;
pinctrl-1 = <&cam_sensor_gmsl_suspend>;
gpios = <&tlmm 81 0>;
gpio-reset = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
};
/* CAM2 */
qcom,cam-sensor5 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L6P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 27 0>,
<&tlmm 19 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};

403
bengal-camera-sensor-qrd.dtsi Executable file
Просмотреть файл

@ -0,0 +1,403 @@
#include <dt-bindings/clock/qcom,gcc-bengal.h>
&soc {
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
flash-source = <&pmi632_flash0 &pmi632_flash1>;
torch-source = <&pmi632_torch0 &pmi632_torch1>;
switch-source = <&pmi632_switch0 &pmi632_switch0>;
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pmi632_flash0 &pmi632_flash1>;
torch-source = <&pmi632_torch0 &pmi632_torch1>;
switch-source = <&pmi632_switch0 &pmi632_switch0>;
status = "ok";
};
led_flash_rear_aux2: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
flash-source = <&pmi632_flash0 &pmi632_flash1>;
torch-source = <&pmi632_torch0 &pmi632_torch1>;
switch-source = <&pmi632_switch0 &pmi632_switch0>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_vaf-supply = <&L5P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1050000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1050000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 20 0>,
<&tlmm 18 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_vaf-supply = <&L5P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 21 0>,
<&tlmm 19 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L6P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1050000 0>;
rgltr-max-voltage = <1800000 2800000 1050000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 27 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L6P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 28 0>,
<&tlmm 65 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/* Rear*/
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_vaf-supply = <&L5P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1050000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1050000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 20 0>,
<&tlmm 18 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Rear Aux*/
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear_aux>;
led-flash-src = <&led_flash_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_vaf-supply = <&L5P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 21 0>,
<&tlmm 19 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Front*/
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L6P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1050000 0>;
rgltr-max-voltage = <1800000 2800000 1050000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_front0_reset_active
&cam_sensor_csi_mux_oe_active
&cam_sensor_csi_mux_sel_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_front0_reset_suspend
&cam_sensor_csi_mux_oe_suspend
&cam_sensor_csi_mux_sel_suspend>;
gpios = <&tlmm 27 0>,
<&tlmm 24 0>,
<&tlmm 66 0>,
<&tlmm 67 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-custom2 = <3>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_CSIMUX_OE0",
"CAM_CSIMUX_SEL0";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/*Rear Aux2*/
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux2>;
eeprom-src = <&eeprom_rear_aux2>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L6P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_rear2_reset_active
&cam_sensor_csi_mux_oe_active
&cam_sensor_csi_mux_sel_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_rear2_reset_suspend
&cam_sensor_csi_mux_oe_suspend
&cam_sensor_csi_mux_sel_suspend>;
gpios = <&tlmm 28 0>,
<&tlmm 65 0>,
<&tlmm 66 0>,
<&tlmm 67 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-custom2 = <3>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3",
"CAM_CSIMUX_OE1",
"CAM_CSIMUX_SEL1";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};

855
bengal-camera.dtsi Executable file
Просмотреть файл

@ -0,0 +1,855 @@
#include <dt-bindings/msm/msm-camera.h>
&soc {
qcom,cam-req-mgr {
compatible = "qcom,cam-req-mgr";
status = "ok";
};
qcom,cam-sync {
compatible = "qcom,cam-sync";
status = "ok";
};
cam_csiphy0: qcom,csiphy0 {
cell-index = <0>;
compatible = "qcom,csiphy-v2.0.1", "qcom,csiphy";
reg = <0x05C52000 0x1000>;
reg-names = "csiphy";
reg-cam-base = <0x52000>;
interrupts = <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "csiphy";
regulator-names = "gdscr";
gdscr-supply = <&gcc_camss_top_gdsc>;
csi-vdd-voltage = <1200000>;
mipi-csi-vdd-supply = <&L18A>;
clocks = <&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_CPHY_0_CLK>,
<&gcc GCC_CAMSS_CSI0PHYTIMER_CLK_SRC>,
<&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>;
clock-names = "cphy_rx_clk_src",
"csiphy0_clk",
"csi0phytimer_clk_src",
"csi0phytimer_clk";
src-clock-name = "csi0phytimer_clk_src";
clock-cntl-level = "lowsvs", "svs", "svs_l1", "turbo";
clock-rates =
<19200000 0 19200000 0>,
<240000000 0 200000000 0>,
<341330000 0 200000000 0>,
<384000000 0 268800000 0>;
status = "ok";
};
cam_csiphy1: qcom,csiphy1 {
cell-index = <1>;
compatible = "qcom,csiphy-v2.0.1", "qcom,csiphy";
reg = <0x05C53000 0x1000>;
reg-names = "csiphy";
reg-cam-base = <0x53000>;
interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "csiphy";
regulator-names = "gdscr";
gdscr-supply = <&gcc_camss_top_gdsc>;
csi-vdd-voltage = <1200000>;
mipi-csi-vdd-supply = <&L18A>;
clocks = <&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_CPHY_1_CLK>,
<&gcc GCC_CAMSS_CSI1PHYTIMER_CLK_SRC>,
<&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>;
clock-names = "cphy_rx_clk_src",
"csiphy1_clk",
"csi1phytimer_clk_src",
"csi1phytimer_clk";
src-clock-name = "csi1phytimer_clk_src";
clock-cntl-level = "lowsvs", "svs", "svs_l1", "turbo";
clock-rates =
<19200000 0 19200000 0>,
<240000000 0 200000000 0>,
<341330000 0 200000000 0>,
<384000000 0 268800000 0>;
status = "ok";
};
cam_csiphy2: qcom,csiphy2 {
cell-index = <2>;
compatible = "qcom,csiphy-v2.0.1", "qcom,csiphy";
reg = <0x05C54000 0x1000>;
reg-names = "csiphy";
reg-cam-base = <0x54000>;
interrupts = <GIC_SPI 74 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "csiphy";
regulator-names = "gdscr";
gdscr-supply = <&gcc_camss_top_gdsc>;
csi-vdd-voltage = <1200000>;
mipi-csi-vdd-supply = <&L18A>;
clocks = <&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_CPHY_2_CLK>,
<&gcc GCC_CAMSS_CSI2PHYTIMER_CLK_SRC>,
<&gcc GCC_CAMSS_CSI2PHYTIMER_CLK>;
clock-names = "cphy_rx_clk_src",
"csiphy2_clk",
"csi2phytimer_clk_src",
"csi2phytimer_clk";
src-clock-name = "csi2phytimer_clk_src";
clock-cntl-level = "lowsvs", "svs", "svs_l1", "turbo";
clock-rates =
<19200000 0 19200000 0>,
<240000000 0 200000000 0>,
<341330000 0 200000000 0>,
<384000000 0 268800000 0>;
status = "ok";
};
cam_cci0: qcom,cci0 {
cell-index = <0>;
compatible = "qcom,cci-v1.2", "qcom,cci", "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x05C1B000 0x1000>;
reg-names = "cci";
reg-cam-base = <0x1B000>;
interrupt-names = "cci";
interrupts = <GIC_SPI 206 IRQ_TYPE_EDGE_RISING>;
status = "ok";
gdscr-supply = <&gcc_camss_top_gdsc>;
regulator-names = "gdscr";
clocks = <&gcc GCC_CAMSS_CCI_0_CLK>,
<&gcc GCC_CAMSS_CCI_CLK_SRC>;
clock-names = "cci_0_clk",
"cci_0_clk_src";
src-clock-name = "cci_0_clk_src";
clock-cntl-level = "svs";
clock-rates = <0 37500000>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cci0_active &cci1_active>;
pinctrl-1 = <&cci0_suspend &cci1_suspend>;
gpios = <&tlmm 22 0>,
<&tlmm 23 0>,
<&tlmm 29 0>,
<&tlmm 30 0>;
gpio-req-tbl-num = <0 1 2 3>;
gpio-req-tbl-flags = <1 1 1 1>;
gpio-req-tbl-label = "CCI_I2C_DATA0",
"CCI_I2C_CLK0",
"CCI_I2C_DATA1",
"CCI_I2C_CLK1";
i2c_freq_100Khz_cci0: qcom,i2c_standard_mode {
hw-thigh = <201>;
hw-tlow = <174>;
hw-tsu-sto = <204>;
hw-tsu-sta = <231>;
hw-thd-dat = <22>;
hw-thd-sta = <162>;
hw-tbuf = <227>;
hw-scl-stretch-en = <0>;
hw-trdhld = <6>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
i2c_freq_400Khz_cci0: qcom,i2c_fast_mode {
hw-thigh = <38>;
hw-tlow = <56>;
hw-tsu-sto = <40>;
hw-tsu-sta = <40>;
hw-thd-dat = <22>;
hw-thd-sta = <35>;
hw-tbuf = <62>;
hw-scl-stretch-en = <0>;
hw-trdhld = <6>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
i2c_freq_custom_cci0: qcom,i2c_custom_mode {
hw-thigh = <38>;
hw-tlow = <56>;
hw-tsu-sto = <40>;
hw-tsu-sta = <40>;
hw-thd-dat = <22>;
hw-thd-sta = <35>;
hw-tbuf = <62>;
hw-scl-stretch-en = <1>;
hw-trdhld = <6>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
i2c_freq_1Mhz_cci0: qcom,i2c_fast_plus_mode {
hw-thigh = <16>;
hw-tlow = <22>;
hw-tsu-sto = <17>;
hw-tsu-sta = <18>;
hw-thd-dat = <16>;
hw-thd-sta = <15>;
hw-tbuf = <24>;
hw-scl-stretch-en = <0>;
hw-trdhld = <3>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
};
qcom,cam_smmu {
compatible = "qcom,msm-cam-smmu", "simple-bus";
status = "ok";
msm_cam_smmu_tfe {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&apps_smmu 0x400 0x000>;
qcom,iommu-faults = "non-fatal";
qcom,iommu-dma-addr-pool = <0x7400000 0xd8c00000>;
cam-smmu-label = "tfe";
tfe_iova_mem_map: iova-mem-map {
/* IO region is approximately 3.4 GB */
iova-mem-region-io {
iova-region-name = "io";
iova-region-start = <0x7400000>;
iova-region-len = <0xd8c00000>;
iova-region-id = <0x3>;
status = "ok";
};
};
};
msm_cam_smmu_ope {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&apps_smmu 0x820 0x000>,
<&apps_smmu 0x840 0x000>;
qcom,iommu-faults = "non-fatal";
multiple-client-devices;
qcom,iommu-dma-addr-pool = <0x7400000 0xd8c00000>;
cam-smmu-label = "ope", "ope-cdm";
ope_iova_mem_map: iova-mem-map {
/* IO region is approximately 3.4 GB */
iova-mem-region-io {
iova-region-name = "io";
iova-region-start = <0x7400000>;
iova-region-len = <0xd8c00000>;
iova-region-id = <0x3>;
status = "ok";
};
};
};
msm_cam_smmu_cpas_cdm {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&apps_smmu 0x800 0x000>;
cam-smmu-label = "cpas-cdm";
qcom,iommu-faults = "non-fatal";
qcom,iommu-dma-addr-pool = <0x7400000 0xd8c00000>;
cpas_cdm_iova_mem_map: iova-mem-map {
iova-mem-region-io {
/* IO region is approximately 3.4 GB */
iova-region-name = "io";
iova-region-start = <0x7400000>;
iova-region-len = <0xd8c00000>;
iova-region-id = <0x3>;
status = "ok";
};
};
};
msm_cam_smmu_secure {
compatible = "qcom,msm-cam-smmu-cb";
cam-smmu-label = "cam-secure";
qcom,secure-cb;
};
};
qcom,cam-cpas@5c11000 {
cell-index = <0>;
compatible = "qcom,cam-cpas", "simple-bus";
label = "cpas";
arch-compat = "cpas_top";
status = "ok";
reg-names = "cam_cpas_top", "cam_camnoc";
reg = <0x5c11000 0x1000>,
<0x5c13000 0x4000>;
reg-cam-base = <0x11000 0x13000>;
cam_hw_fuse = <CAM_CPAS_SECURE_CAMERA_ENABLE 0x01B401E4 100 CAM_CPAS_FEATURE_TYPE_ENABLE 0xFF>;
interrupt-names = "cpas_camnoc";
interrupts = <GIC_SPI 159 IRQ_TYPE_EDGE_RISING>;
camnoc-axi-min-ib-bw = <3000000000>;
regulator-names = "camss-vdd";
camss-vdd-supply = <&gcc_camss_top_gdsc>;
clock-names =
"gcc_camss_top_ahb_clk",
"gcc_camss_top_ahb_clk_src",
"gcc_camss_axi_clk",
"gcc_camss_axi_clk_src",
"gcc_camss_nrt_axi_clk",
"gcc_camss_rt_axi_clk";
clocks =
<&gcc GCC_CAMSS_TOP_AHB_CLK>,
<&gcc GCC_CAMSS_TOP_AHB_CLK_SRC>,
<&gcc GCC_CAMSS_AXI_CLK>,
<&gcc GCC_CAMSS_AXI_CLK_SRC>,
<&gcc GCC_CAMSS_NRT_AXI_CLK>,
<&gcc GCC_CAMSS_RT_AXI_CLK>;
src-clock-name = "gcc_camss_axi_clk_src";
clock-rates =
<0 0 0 0 0 0>,
<0 19200000 0 19200000 0 0>,
<0 80000000 0 150000000 0 0>,
<0 80000000 0 200000000 0 0>,
<0 80000000 0 300000000 0 0>,
<0 80000000 0 300000000 0 0>,
<0 80000000 0 300000000 0 0>;
clock-cntl-level = "suspend", "lowsvs", "svs",
"svs_l1", "nominal", "nominal_l1", "turbo";
control-camnoc-axi-clk;
camnoc-bus-width = <32>;
camnoc-axi-clk-bw-margin-perc = <20>;
interconnect-names = "cam_ahb";
interconnects =<&bimc MASTER_AMPSS_M0
&config_noc SLAVE_CAMERA_CFG>;
cam-ahb-num-cases = <7>;
cam-ahb-bw-KBps =
<0 0>, <0 133333>, <0 150000>, <0 150000>,
<0 300000>, <0 300000>, <0 300000>;
vdd-corners = <RPM_SMD_REGULATOR_LEVEL_NONE
RPM_SMD_REGULATOR_LEVEL_RETENTION
RPM_SMD_REGULATOR_LEVEL_RETENTION_PLUS
RPM_SMD_REGULATOR_LEVEL_MIN_SVS
RPM_SMD_REGULATOR_LEVEL_LOW_SVS
RPM_SMD_REGULATOR_LEVEL_SVS
RPM_SMD_REGULATOR_LEVEL_SVS_PLUS
RPM_SMD_REGULATOR_LEVEL_NOM
RPM_SMD_REGULATOR_LEVEL_NOM_PLUS
RPM_SMD_REGULATOR_LEVEL_TURBO
RPM_SMD_REGULATOR_LEVEL_TURBO_NO_CPR
RPM_SMD_REGULATOR_LEVEL_BINNING>;
vdd-corner-ahb-mapping = "suspend", "minsvs",
"lowsvs", "svs", "svs_l1",
"nominal", "nominal", "nominal",
"turbo", "turbo";
client-id-based;
client-names =
"csiphy0", "csiphy1", "csiphy2", "cci0",
"csid0", "csid1", "csid2", "tfe0",
"tfe1", "tfe2", "ope0", "cam-cdm-intf0",
"cpas-cdm0", "ope-cdm0", "tpg0", "tpg1";
camera-bus-nodes {
level2-nodes {
level-index = <2>;
level2_rt0_rd_wr_sum: level2-rt0-rd-wr-sum {
cell-index = <0>;
node-name = "level2-rt0-rd-wr-sum";
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM>;
ib-bw-voting-needed;
qcom,axi-port-mnoc {
interconnect-names = "cam_hf_0";
interconnects =
<&mmrt_virt MASTER_CAMNOC_HF
&bimc SLAVE_EBI_CH0>;
};
};
level2_nrt0_rd_wr_sum: level2-nrt0-rd-wr-sum {
cell-index = <1>;
node-name = "level2-nrt0-rd-wr-sum";
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM>;
qcom,axi-port-mnoc {
interconnect-names = "cam_sf_0";
interconnects =
<&mmnrt_virt MASTER_CAMNOC_SF
&bimc SLAVE_EBI_CH0>;
};
};
};
level1-nodes {
level-index = <1>;
camnoc-max-needed;
level1_rt0_wr: level1-rt0-wr {
cell-index = <2>;
node-name = "level1-rt0-wr";
parent-node = <&level2_rt0_rd_wr_sum>;
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE>;
};
level1_nrt0_rd_wr: level1-nrt0-rd-wr {
cell-index = <3>;
node-name = "level1-nrt0-rd-wr";
parent-node = <&level2_nrt0_rd_wr_sum>;
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE>;
};
};
level0-nodes {
level-index = <0>;
ope0_all_wr: ope0-all-wr {
cell-index = <4>;
node-name = "ope0-all-wr";
client-name = "ope0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_WRITE>;
constituent-paths =
<CAM_CPAS_PATH_DATA_OPE_WR_VID
CAM_CPAS_PATH_DATA_OPE_WR_DISP
CAM_CPAS_PATH_DATA_OPE_WR_REF>;
parent-node = <&level1_nrt0_rd_wr>;
};
ope0_all_rd: ope0-all-rd {
cell-index = <5>;
node-name = "ope0-all-rd";
client-name = "ope0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_READ>;
constituent-paths =
<CAM_CPAS_PATH_DATA_OPE_RD_IN
CAM_CPAS_PATH_DATA_OPE_RD_REF>;
parent-node = <&level1_nrt0_rd_wr>;
};
tfe0_all_wr: tfe0-all-wr {
cell-index = <6>;
node-name = "tfe0-all-wr";
client-name = "tfe0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_WRITE>;
constituent-paths =
<CAM_CPAS_PATH_DATA_IFE_RDI0
CAM_CPAS_PATH_DATA_IFE_RDI1
CAM_CPAS_PATH_DATA_IFE_RDI2
CAM_CPAS_PATH_DATA_IFE_RDI3
CAM_CPAS_PATH_DATA_IFE_VID
CAM_CPAS_PATH_DATA_IFE_DISP
CAM_CPAS_PATH_DATA_IFE_STATS>;
parent-node = <&level1_rt0_wr>;
};
tfe1_all_wr: tfe1-all-wr {
cell-index = <7>;
node-name = "tfe1-all-wr";
client-name = "tfe1";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_WRITE>;
constituent-paths =
<CAM_CPAS_PATH_DATA_IFE_RDI0
CAM_CPAS_PATH_DATA_IFE_RDI1
CAM_CPAS_PATH_DATA_IFE_RDI2
CAM_CPAS_PATH_DATA_IFE_RDI3
CAM_CPAS_PATH_DATA_IFE_VID
CAM_CPAS_PATH_DATA_IFE_DISP
CAM_CPAS_PATH_DATA_IFE_STATS>;
parent-node = <&level1_rt0_wr>;
};
tfe2_all_wr: tfe2-all-wr {
cell-index = <8>;
node-name = "tfe2-all-wr";
client-name = "tfe2";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_WRITE>;
constituent-paths =
<CAM_CPAS_PATH_DATA_IFE_RDI0
CAM_CPAS_PATH_DATA_IFE_RDI1
CAM_CPAS_PATH_DATA_IFE_RDI2
CAM_CPAS_PATH_DATA_IFE_RDI3
CAM_CPAS_PATH_DATA_IFE_VID
CAM_CPAS_PATH_DATA_IFE_DISP
CAM_CPAS_PATH_DATA_IFE_STATS>;
parent-node = <&level1_rt0_wr>;
};
cpas_cdm0_all_rd: cpas-cdm0-all-rd {
cell-index = <9>;
node-name = "cpas-cdm0-all-rd";
client-name = "cpas-cdm0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_READ>;
parent-node = <&level1_nrt0_rd_wr>;
};
ope_cdm0_all_rd: ope-cdm0-all-rd {
cell-index = <10>;
node-name = "ope-cdm0-all-rd";
client-name = "ope-cdm0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_READ>;
parent-node = <&level1_nrt0_rd_wr>;
};
};
};
};
qcom,cam-cdm-intf {
compatible = "qcom,cam-cdm-intf";
cell-index = <0>;
label = "cam-cdm-intf";
num-hw-cdm = <2>;
cdm-client-names = "vfe";
status = "ok";
};
cam_cpas_cdm: qcom,cpas-cdm0@5c23000 {
cell-index = <0>;
compatible = "qcom,cam-cpas-cdm2_0";
label = "cpas-cdm";
reg = <0x5c23000 0x400>;
reg-names = "cpas-cdm0";
reg-cam-base = <0x23000>;
interrupts = <GIC_SPI 207 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "cpas-cdm0";
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names = "cam_cc_cpas_top_ahb_clk";
clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>;
clock-rates = <0>;
clock-cntl-level = "svs";
cdm-client-names = "tfe0", "tfe1", "tfe2";
config-fifo;
fifo-depths = <64 64 64 64>;
status = "ok";
};
cam_ope_cdm: qcom,ope-cdm0@5c42000 {
cell-index = <0>;
compatible = "qcom,cam-ope-cdm2_0";
label = "ope-cdm";
reg = <0x5c42000 0x400>;
reg-names = "ope-cdm0";
reg-cam-base = <0x42000>;
interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "ope-cdm0";
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"ope_ahb_clk",
"ope_clk_src",
"ope_clk";
clocks =
<&gcc GCC_CAMSS_OPE_AHB_CLK>,
<&gcc GCC_CAMSS_OPE_CLK_SRC>,
<&gcc GCC_CAMSS_OPE_CLK>;
clock-rates = <0 0 0>,
<0 0 0>,
<0 0 0>,
<0 0 0>;
clock-cntl-level = "lowsvs", "svs", "svs_l1", "turbo";
cdm-client-names = "ope";
config-fifo;
fifo-depths = <64 64 64 64>;
status = "ok";
};
qcom,cam-isp {
compatible = "qcom,cam-isp";
arch-compat = "tfe";
status = "ok";
};
cam_tfe_csid0: qcom,tfe_csid0@5c6e000 {
cell-index = <0>;
compatible = "qcom,csid530";
reg-names = "csid", "top", "camnoc";
reg = <0x5c6e000 0x5000>,
<0x5c11000 0x1000>,
<0x5c13000 0x4000>;
reg-cam-base = <0x6e000 0x11000 0x13000>;
interrupt-names = "csid0";
interrupts = <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_csid_clk_src",
"tfe_csid_clk",
"cphy_rx_clk_src",
"tfe_cphy_rx_clk",
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_0_CSID_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CSID_CLK>,
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_TFE_0_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CLK>;
clock-rates =
<240000000 0 0 0 256000000 0>,
<384000000 0 0 0 460800000 0>,
<426400000 0 0 0 576000000 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "tfe_csid_clk_src";
clock-control-debugfs = "true";
status = "ok";
};
cam_tfe0: qcom,tfe0@5c6e000 {
cell-index = <0>;
compatible = "qcom,tfe530";
reg-names = "tfe0";
reg = <0x5c6e000 0x5000>;
reg-cam-base = <0x6e000>;
interrupt-names = "tfe0";
interrupts = <GIC_SPI 211 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_0_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CLK>;
clock-rates =
<256000000 0>,
<460800000 0>,
<576000000 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "tfe_clk_src";
clock-control-debugfs = "true";
cam_hw_pid = <4>;
status = "ok";
};
cam_tfe_csid1: qcom,tfe_csid1@5c75000 {
cell-index = <1>;
compatible = "qcom,csid530";
reg-names = "csid", "top", "camnoc";
reg = <0x5c75000 0x5000>,
<0x5c11000 0x1000>,
<0x5c13000 0x4000>;
reg-cam-base = <0x75000 0x11000 0x13000>;
interrupt-names = "csid1";
interrupts = <GIC_SPI 212 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_csid_clk_src",
"tfe_csid_clk",
"cphy_rx_clk_src",
"tfe_cphy_rx_clk",
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_1_CSID_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CSID_CLK>,
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_TFE_1_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CLK>;
clock-rates =
<240000000 0 0 0 256000000 0>,
<384000000 0 0 0 460800000 0>,
<426400000 0 0 0 576000000 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "tfe_csid_clk_src";
clock-control-debugfs = "true";
status = "ok";
};
cam_tfe1: qcom,tfe1@5c75000 {
cell-index = <1>;
compatible = "qcom,tfe530";
reg-names = "tfe1";
reg = <0x5c75000 0x5000>;
reg-cam-base = <0x75000>;
interrupt-names = "tfe1";
interrupts = <GIC_SPI 213 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_1_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CLK>;
clock-rates =
<256000000 0>,
<460800000 0>,
<576000000 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "tfe_clk_src";
clock-control-debugfs = "true";
cam_hw_pid = <5>;
status = "ok";
};
cam_tfe_csid2: qcom,tfe_csid2@5c7c000 {
cell-index = <2>;
compatible = "qcom,csid530";
reg-names = "csid", "top", "camnoc";
reg = <0x5c7c000 0x5000>,
<0x5c11000 0x1000>,
<0x5c13000 0x4000>;
reg-cam-base = <0x7c000 0x11000 0x13000>;
interrupt-names = "csid2";
interrupts = <GIC_SPI 77 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_csid_clk_src",
"tfe_csid_clk",
"cphy_rx_clk_src",
"tfe_cphy_rx_clk",
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_2_CSID_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_2_CSID_CLK>,
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_2_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_TFE_2_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_2_CLK>;
clock-rates =
<240000000 0 0 0 256000000 0>,
<384000000 0 0 0 460800000 0>,
<426400000 0 0 0 576000000 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "tfe_csid_clk_src";
clock-control-debugfs = "true";
status = "ok";
};
cam_tfe2: qcom,tfe2@5c7c000 {
cell-index = <2>;
compatible = "qcom,tfe530";
reg-names = "tfe2";
reg = <0x5c7c000 0x5000>;
reg-cam-base = <0x7c000>;
interrupt-names = "tfe2";
interrupts = <GIC_SPI 78 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_2_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_2_CLK>;
clock-rates =
<256000000 0>,
<460800000 0>,
<576000000 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "tfe_clk_src";
clock-control-debugfs = "true";
cam_hw_pid = <6>;
status = "ok";
};
cam_tfe_tpg0: qcom,tpg0@5c66000 {
cell-index = <0>;
compatible = "qcom,tpg101";
reg-names = "tpg0", "top";
reg = <0x5c66000 0x400>,
<0x5c11000 0x1000>;
reg-cam-base = <0x66000 0x11000>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"cphy_rx_clk_src",
"tfe_0_cphy_rx_clk",
"gcc_camss_cphy_0_clk";
clocks =
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_CPHY_0_CLK>;
clock-rates =
<240000000 0 0>,
<341333333 0 0>,
<384000000 0 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "cphy_rx_clk_src";
clock-control-debugfs = "false";
status = "ok";
};
cam_tfe_tpg1: qcom,tpg1@5c68000 {
cell-index = <1>;
compatible = "qcom,tpg101";
reg-names = "tpg1", "top";
reg = <0x5c68000 0x400>,
<0x5c11000 0x1000>;
reg-cam-base = <0x68000 0x11000>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"cphy_rx_clk_src",
"tfe_1_cphy_rx_clk",
"gcc_camss_cphy_1_clk";
clocks =
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_CPHY_1_CLK>;
clock-rates =
<240000000 0 0>,
<341333333 0 0>,
<384000000 0 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "cphy_rx_clk_src";
clock-control-debugfs = "false";
status = "ok";
};
qcom,cam-ope {
compatible = "qcom,cam-ope";
compat-hw-name = "qcom,ope";
num-ope = <1>;
status = "ok";
};
ope: qcom,ope@0x5c42000 {
cell-index = <0>;
compatible = "qcom,ope";
reg =
<0x5c42000 0x400>,
<0x5c42400 0x200>,
<0x5c42600 0x200>,
<0x5c42800 0x4400>,
<0x5c46c00 0x190>,
<0x5c46d90 0x1270>;
reg-names =
"ope_cdm",
"ope_top",
"ope_qos",
"ope_pp",
"ope_bus_rd",
"ope_bus_wr";
reg-cam-base = <0x42000 0x42400 0x42600 0x42800 0x46c00 0x46d90>;
interrupts = <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "ope";
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"ope_ahb_clk_src",
"ope_ahb_clk",
"ope_clk_src",
"ope_clk";
clocks =
<&gcc GCC_CAMSS_OPE_AHB_CLK_SRC>,
<&gcc GCC_CAMSS_OPE_AHB_CLK>,
<&gcc GCC_CAMSS_OPE_CLK_SRC>,
<&gcc GCC_CAMSS_OPE_CLK>;
clock-rates =
<19200000 0 19200000 0>,
<171428571 0 200000000 0>,
<240000000 0 465000000 0>,
<240000000 0 580000000 0>;
clock-cntl-level = "svs", "svs_l1", "nominal", "turbo";
src-clock-name = "ope_clk_src";
status = "ok";
};
};

867
bindings/msm-cam-cci.txt Executable file
Просмотреть файл

@ -0,0 +1,867 @@
* Qualcomm Technologies, Inc. MSM CCI
CCI (Camera Control Interface) is module that is use for camera sensor module
I2C communication.
=======================
Required Node Structure
=======================
The camera CCI node must be described in two levels of device nodes. The
first level describe the overall CCI node structure. Second level nodes
describe camera sensor submodule nodes which is using CCI for
i2c communication.
======================================
First Level Node - CCI device
======================================
- cell-index: cci hardware core index
Usage: required
Value type: <u32>
Definition: Should specify the Hardware index id.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cci".
In case of cci version 1.2,
use "qcom,cci-v1.2".
- reg
Usage: required
Value type: <u32>
Definition: offset and length of the register set
for the device for the cci operating in
compatible mode.
- reg-names
Usage: required
Value type: <string>
Definition: Should specify relevant names to each
reg property defined.
- reg-cam-base
Usage: required
Value type: <u32>
Definition: List of bases.
- interrupt-names
Usage: required
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: required
Value type: <u32>
Definition: Interrupt associated with CCI HW.
- gpios
Usage: required
Value type: <phandle>
Definition: should specify the gpios to be used for the CCI.
- gpio-req-tbl-num
Usage: required
Value type: <u32>
Definition: should specify the gpio table index.
- gpio-req-tbl-flags
Usage: required
Value type: <u32>
Definition: should specify the gpio functions.
- gpio-req-tbl-label
Usage: required
Value type: <string>
Definition: should specify the gpio labels in
gpio-req-tbl-num property (in the same order)
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for CCI HW.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clock rates in Hz for CCI HW.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: All different clock level node can support.
- clocks
Usage: required
Value type: <phandle>
Definition: all clock phandle and source clocks.
- src-clock-name
Usage: required
Value type: <string>
Definition: name for the source clock.
- regulator-names
Usage: required
Value type: <string>
Definition: name of the voltage regulators required for the device.
- gdscr-supply
Usage: required
Value type: <phandle>
Definition: should contain gdsr regulator used for cci clocks.
- mmagic-supply
Usage: optional
Value type: <phandle>
Definition: should contain mmagic regulator used for mmagic clocks.
=========================
CCI clock settings
=========================
- I2c speed settings (*)
Usage: required
Definition: List of i2c rates for CCI HW.
- i2c_freq_100Khz
Definition: qcom,i2c_standard_mode - node should contain clock settings for
100Khz
- i2c_freq_400Khz
Definition: qcom,i2c_fast_mode - node should contain clock settings for
400Khz
- i2c_freq_custom
Definition: qcom,i2c_custom_mode - node can contain clock settings for
frequencies other than 100Khz and 400Khz which is specific to usecase.
Currently it has settings for 375Khz.
- i2c_freq_1Mhz
Definition: qcom,i2c_fast_plus_mode - node should contain clock
settings for 1Mhz
* if speed settings is not defined the low level driver can use "i2c_freq_custom"
like default
- hw-thigh
Definition: should contain high period of the SCL clock in terms of CCI clock cycle
- hw-tlow
Definition: should contain high period of the SCL clock in terms of CCI clock cycle
- hw-tsu-sto
Definition: should contain setup time for STOP condition
- hw-tsu-sta
Definition: should contain setup time for Repeated START condition
- hw-thd-dat
Definition: should contain hold time for the data
- hw-thd-sta
Definition: should contain hold time for START condition
- hw-tbuf
Definition: should contain free time between a STOP and a START condition
- hw-scl-stretch-en
Definition: should contain enable or disable clock stretching
- hw-trdhld
Definition: should contain internal hold time for SDA
- hw-tsp
Definition: should contain filtering of glitches
Example:
qcom,cci@0xfda0c000 {
cell-index = <0>;
compatible = "qcom,cci";
reg = <0xfda0c000 0x300>;
reg-names = "cci";
interrupts = <0 50 0>;
interrupt-names = "cci";
clock-names = "camnoc_axi_clk", "soc_ahb_clk",
"slow_ahb_src_clk", "cpas_ahb_clk",
"cci_clk", "cci_clk_src";
clock-rates = <0 0 80000000 0 0 37500000>;
clock-cntl-level = "turbo";
gpios = <&tlmm 17 0>,
<&tlmm 18 0>,
<&tlmm 19 0>,
<&tlmm 20 0>;
gpio-tbl-num = <0 1 2 3>;
gpio-tbl-flags = <1 1 1 1>;
gpio-tbl-label = "CCI_I2C_DATA0",
"CCI_I2C_CLK0",
"CCI_I2C_DATA1",
"CCI_I2C_CLK1";
i2c_freq_100Khz: qcom,i2c_standard_mode {
hw-thigh = <78>;
hw-tlow = <114>;
hw-tsu-sto = <28>;
hw-tsu-sta = <28>;
hw-thd-dat = <10>;
hw-thd-sta = <77>;
hw-tbuf = <118>;
hw-scl-stretch-en = <0>;
hw-trdhld = <6>;
hw-tsp = <1>;
status = "ok";
};
i2c_freq_400Khz: qcom,i2c_fast_mode {
hw-thigh = <20>;
hw-tlow = <28>;
hw-tsu-sto = <21>;
hw-tsu-sta = <21>;
hw-thd-dat = <13>;
hw-thd-sta = <18>;
hw-tbuf = <25>;
hw-scl-stretch-en = <0>;
hw-trdhld = <6>;
hw-tsp = <3>;
status = "ok";
};
i2c_freq_custom: qcom,i2c_custom_mode {
hw-thigh = <15>;
hw-tlow = <28>;
hw-tsu-sto = <21>;
hw-tsu-sta = <21>;
hw-thd-dat = <13>;
hw-thd-sta = <18>;
hw-tbuf = <25>;
hw-scl-stretch-en = <1>;
hw-trdhld = <6>;
hw-tsp = <3>;
status = "ok";
};
i2c_freq_1Mhz: qcom,i2c_fast_plus_mode {
hw-thigh = <16>;
hw-tlow = <22>;
hw-tsu-sto = <17>;
hw-tsu-sta = <18>;
hw-thd-dat = <16>;
hw-thd-sta = <15>;
hw-tbuf = <19>;
hw-scl-stretch-en = <1>;
hw-trdhld = <3>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
};
=======================================
Second Level Node - CAM SENSOR MODULES
=======================================
=======================================
CAM SENSOR RESOURCE MANAGER
=======================================
Camera Sensor Resource manager node contains properties of shared camera
sensor resource.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-res-mgr".
- gpios-shared
Usage: optional
Value type: <u32>
Definition: should contain the gpios which are used by two or more
cameras, and these cameras may be opened together.
- gpios-shared-pinctrl
Usage: optional
Value type: <u32>
Definition: should contain the pinctrl gpios which are used by two or more
cameras, and these cameras may be opened together.
- shared-pctrl-gpio-names
Usage: optional
Value type: <string>
Definition: List of names to assign the shared pinctrl gpio defined in
shared-pinctrl-gpios entry
e.g "mclk0", "xyz"
- pinctrl-names
Usage: optional
Value type: <string>
Definition: List of names to assign the shared pin state defined in pinctrl device node
string should follow the strict rule which needs to start with shared-pinctrl-gpio-names
and followed by "_active" and "_suspend"
e.g. "mclk0_active", "mclk0_suspend", "xyz_active", "xyz_suspend"
- pinctrl-<0..n>
Usage: optional
Value type: <phandle>
Definition: Lists phandles each pointing to the pin configuration node within a pin
controller. These pin configurations are installed in the pinctrl device node.
==============================
CAMERA IMAGE SENSOR/TPG MODULE
==============================
Image sensor node contains properties of camera image sensor
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-sensor".
- cell-index: cci hardware core index
Usage: required
Value type: <u32>
Definition: Should specify the Hardware index id.
- reg
Usage: required
Value type: <u32>
Definition: offset and length of the register set
for the device for the cci operating in
compatible mode.
- cci-device
Usage: required
Value type: <u32>
Definition: should contain i2c device id to be used for this camera
sensor
- cci-master
Usage: required
Value type: <u32>
Definition: should contain i2c master id to be used for this camera
sensor
- 0 -> MASTER 0
- 1 -> MASTER 1
- csiphy-sd-index
Usage: required
Value type: <u32>
Definition: should contain csiphy instance that will used to
receive sensor data (0, 1, 2, 3).
- cam_vdig-supply
Usage: required
Value type: <phandle>
Definition: should contain regulator from which digital voltage is
supplied
- cam_vana-supply
Usage: required
Value type: <phandle>
Definition: should contain regulator from which analog voltage is
supplied
- cam_vio-supply
Usage: required
Value type: <phandle>
Definition: should contain regulator from which IO voltage is supplied
- cam_bob-supply
Usage: optional
Value type: <phandle>
Definition: should contain regulator from which BoB voltage is supplied
- regulator-names
Usage: required
Value type: <string>
Definition: should contain names of all regulators needed by this
sensor
- rgltr-cntrl-support
Usage: required
Value type: <boolean>
Definition: This property is required if the sw control regulator parameters
e.g. rgltr-min-voltage
- rgltr-min-voltage
Usage: required
Value type: <u32>
Definition: should contain minimum voltage level for regulators mentioned
in regulator-names property (in the same order)
- rgltr-max-voltage
Usage: required
Value type: <u32>
Definition: should contain maximum voltage level for regulators mentioned
in regulator-names property (in the same order)
- rgltr-load-current
Usage: required
Value type: <u32>
Definition: should contain optimum voltage level for regulators mentioned
in regulator-names property (in the same order)
- sensor-position-roll
Usage: required
Value type: <u32>
Definition: should contain sensor rotational angle with respect to axis of
reference. i.e. 0, 90, 180, 360
- sensor-position-pitch
Usage: required
Value type: <u32>
Definition: should contain sensor rotational angle with respect to axis of
reference. i.e. 0, 90, 180, 360
- sensor-position-yaw
Usage: required
Value type: <u32>
Definition: should contain sensor rotational angle with respect to axis of
reference. i.e. 0, 90, 180, 360
- qcom,secure
Usage: optional
Value type: <u32>
Definition: should be enabled to operate the camera in secure mode
- gpio-no-mux
Usage: optional
Value type: <u32>
Definition: should contain field to indicate whether gpio mux table is
available. i.e. 1 if gpio mux is not available, 0 otherwise
- cam_vaf-supply
Usage: optional
Value type: <u32>
Definition: should contain regulator from which AF voltage is supplied
- pwm-switch
Usage: optional
Value type: <boolean>
Definition: This property is required for regulator to switch into PWM mode.
- gpios
Usage: required
Value type: <phandle>
Definition: should contain phandle to gpio controller node and array of
#gpio-cells specifying specific gpio (controller specific)
- gpio-reset
Usage: required
Value type: <u32>
Definition: should contain index to gpio used by sensors reset_n
- gpio-standby
Usage: optional
Value type: <u32>
Definition: should contain index to gpio used by sensors standby_n
- gpio-vio
Usage: optional
Value type: <u32>
Definition: should contain index to gpio used by sensors io vreg enable
- gpio-vana
Usage: optional
Value type: <u32>
Definition: should contain index to gpio used by sensors analog vreg enable
- gpio-vdig
Usage: optional
Value type: <u32>
Definition: should contain index to gpio used by sensors digital vreg enable
- gpio-vaf
Usage: optional
Value type: <u32>
Definition: should contain index to gpio used by sensors af vreg enable
- gpio-af-pwdm
Usage: optional
Value type: <u32>
Definition: should contain index to gpio used by sensors af pwdm_n
- gpio-req-tbl-num
Usage: optional
Value type: <u32>
Definition: should contain index to gpios specific to this sensor
- gpio-req-tbl-flags
Usage: optional
Value type: <u32>
Definition: should contain direction of gpios present in
gpio-req-tbl-num property (in the same order)
- gpio-req-tbl-label
Usage: optional
Value type: <u32>
Definition: should contain name of gpios present in
gpio-req-tbl-num property (in the same order)
- gpio-set-tbl-num
Usage: optional
Value type: <u32>
Definition: should contain index of gpios that need to be
configured by msm
- gpio-set-tbl-flags
Usage: optional
Value type: <u32>
Definition: should contain value to be configured for the gpios
present in gpio-set-tbl-num property (in the same order)
- gpio-set-tbl-delay
Usage: optional
Value type: <u32>
Definition: should contain amount of delay after configuring
gpios as specified in gpio_set_tbl_flags property (in the same order)
- actuator-src
Usage: optional
Value type: <phandle>
Definition: if auto focus is supported by this sensor, this
property should contain phandle of respective actuator node
- led-flash-src
Usage: optional
Value type: <phandle>
Definition: if LED flash is supported by this sensor, this
property should contain phandle of respective LED flash node
- qcom,vdd-cx-supply
Usage: optional
Value type: <phandle>
Definition: should contain regulator from which cx voltage is supplied
- qcom,vdd-cx-name
Usage: optional
Value type: <string>
Definition: should contain names of cx regulator
- eeprom-src
Usage: optional
Value type: <phandle>
Definition: if eeprom memory is supported by this sensor, this
property should contain phandle of respective eeprom nodes
- ois-src
Usage: optional
Value type: <phandle>
Definition: if optical image stabilization is supported by this sensor,
this property should contain phandle of respective ois node
- ir-led-src
Usage: optional
Value type: <phandle>
Definition: if ir led is supported by this sensor, this property
should contain phandle of respective ir-led node
- qcom,ir-cut-src
Usage: optional
Value type: <phandle>
Definition: if ir cut is supported by this sensor, this property
should contain phandle of respective ir-cut node
- qcom,special-support-sensors
Usage: required
Value type: <string>
Definition: if only some special sensors are supported
on this board, add sensor name in this property.
- use-shared-clk
Usage: optional
Value type: <boolean>
Definition: It is booloean property. This property is required
if the clk is shared clk between different sensor and ois, if this
device need to be opened together.
- clock-rates
Usage: required
Value type: <u32>
Definition: clock rate in Hz.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: All different clock level node can support.
- clock-cntl-support
Usage: optional
Value type: <boolean>
Definition: Says whether clock control support is present or not
- clocks
Usage: required
Value type: <phandle>
Definition: all clock phandle and source clocks.
- clock-control
Usage: optional
Value type: <string>
Definition: The valid fields are "NO_SET_RATE", "INIT_RATE" and
"SET_RATE". "NO_SET_RATE" the corresponding clock is enabled without setting
the rate assuming some other driver has already set it to appropriate rate.
"INIT_RATE" clock rate is not queried assuming some other driver has set
the clock rate and ispif will set the the clock to this rate.
"SET_RATE" clock is enabled and the rate is set to the value specified
in the property clock-rates.
=============================
ACTUATOR MODULE
=============================
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,actuator".
- cell-index: cci hardware core index
Usage: required
Value type: <u32>
Definition: Should specify the Hardware index id.
- reg
Usage: required
Value type: <u32>
Definition: offset and length of the register set
for the device for the cci operating in
compatible mode.
- cci-device
Usage: required
Value type: <u32>
Definition: should contain i2c device id to be used for this camera
sensor
- cci-master
Usage: required
Value type: <u32>
Definition: should contain i2c master id to be used for this camera
sensor
- 0 -> MASTER 0
- 1 -> MASTER 1
- cam_vaf-supply
Usage: required
Value type: <phandle>
Definition: should contain regulator from which AF voltage is supplied
- regulator-names
Usage: required
Value type: <string>
Definition: should contain names of all regulators needed by this
actuator. i.e. "cam_vaf"
- rgltr-cntrl-support
Usage: optional
Value type: <boolean>
Definition: It is booloean property. This property is required
if the code and regulator control parameters e.g. rgltr-min-voltage
- rgltr-min-voltage
Usage: optional
Value type: <u32>
Definition: should contain minimum voltage level in mcrovolts
for regulators mentioned in regulator-names property (in the same order)
- rgltr-max-voltage
Usage: optional
Value type: <u32>
Definition: should contain maximum voltage level in mcrovolts
for regulators mentioned in regulator-names property (in the same order)
- rgltr-load-current
Usage: optional
Value type: <u32>
Definition: should contain the maximum current in microamps
required from the regulators mentioned in the regulator-names property
(in the same order).
=============================
OIS MODULE
=============================
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,ois".
- cell-index: cci hardware core index
Usage: required
Value type: <u32>
Definition: Should specify the Hardware index id.
- reg
Usage: required
Value type: <u32>
Definition: offset and length of the register set
for the device for the cci operating in
compatible mode.
- cci-device
Usage: required
Value type: <u32>
Definition: should contain i2c device id to be used for this camera
sensor
- cci-master
Usage: required
Value type: <u32>
Definition: should contain i2c master id to be used for this camera
sensor
- 0 -> MASTER 0
- 1 -> MASTER 1
- cam_vaf-supply
Usage: required
Value type: <phandle>
Definition: should contain regulator from which AF voltage is supplied
- regulator-names
Usage: required
Value type: <string>
Definition: should contain names of all regulators needed by this
actuator. i.e. "cam_vaf"
- rgltr-cntrl-support
Usage: optional
Value type: <boolean>
Definition: It is booloean property. This property is required
if the code and regulator control parameters e.g. rgltr-min-voltage
- rgltr-min-voltage
Usage: optional
Value type: <u32>
Definition: should contain minimum voltage level in mcrovolts
for regulators mentioned in regulator-names property (in the same order)
- rgltr-max-voltage
Usage: optional
Value type: <u32>
Definition: should contain maximum voltage level in mcrovolts
for regulators mentioned in regulator-names property (in the same order)
- rgltr-load-current
Usage: optional
Value type: <u32>
Definition: should contain the maximum current in microamps
required from the regulators mentioned in the regulator-names property
(in the same order).
- use-shared-clk
Usage: optional
Value type: <boolean>
Definition: This property is required if the clk is shared clk between different
sensor and ois, if this device need to be opened together.
Example:
&soc {
led_flash0: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
flash-source = <&pmi8994_flash0 &pmi8994_flash1>;
torch-source = <&pmi8998_torch0 &pmi8998_torch1>;
switch-source = <&pmi8998_switch>;
status = "ok";
};
};
&cam_cci0 {
actuator0: qcom,actuator0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,actuator";
cci-device = <0>;
cci-master = <0>;
cam_vaf-supply = <&pmi8998_bob>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
};
ois0: qcom,ois0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,ois";
cci-device = <0>;
cci-master = <0>;
cam_vaf-supply = <&pmi8998_bob>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
gpios-shared = <18 19>;
gpios-shared-pinctrl = <408 409>;
shared-pctrl-gpio-names = "mclk0", "mclk1";
pinctrl-names = "mclk0_active", "mclk0_suspend",
"mclk1_active", "mclk1_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend>;
pintcrl-2 = <&cam_sensor_mclk1_active>;
pinctrl-3 = <&cam_sensor_mclk1_suspend>;
};
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,camera";
reg = <0x0>;
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
secure = <1>;
led-flash-src = <&led_flash0>;
actuator-src = <&actuator0>;
ois-src = <&ois0>;
eeprom-src = <&eeprom0>;
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009l_l1>;
cam_vana-supply = <&pm8009l_l5>;
cam_bob-supply = <&pm8150l_bob>;
cam_clk-supply = <&tital_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <0 2800000 1200000 0 3008000>;
rgltr-max-voltage = <0 2800000 1200000 0 4000000>;
rgltr-load-current = <0 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear_suspend>;
gpios = <&tlmm 13 0>,
<&tlmm 80 0>,
<&tlmm 79 0>;
gpio-reset = <1>;
gpio-standby = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_VANA";
sensor-position = <0>;
sensor-mode = <0>;
cci-device = <0>;
cci-master = <0>;
status = "ok";
use-shared-clk;
clocks = <&clock_mmss clk_mclk0_clk_src>,
<&clock_mmss clk_camss_mclk0_clk>;
clock-names = "cam_src_clk", "cam_clk";
clock-cntl-leveli = "turbo";
clock-rates = <24000000>;
};
qcom,cam-tpg0 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};

178
bindings/msm-cam-cdm.txt Executable file
Просмотреть файл

@ -0,0 +1,178 @@
* Qualcomm Technologies, Inc. MSM Camera CDM
CDM (Camera Data Mover) is module intended to provide means for fast programming
camera registers and lookup tables.
=======================
Required Node Structure
=======================
CDM Interface node takes care of the handling has HW nodes and provide interface
for camera clients.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-cdm-intf".
- label
Usage: required
Value type: <string>
Definition: Should be "cam-cdm-intf".
- num-hw-cdm
Usage: required
Value type: <u32>
Definition: Number of supported HW blocks.
- cdm-client-names
Usage: required
Value type: <string>
Definition: List of Clients supported by CDM interface.
Example:
qcom,cam-cdm-intf {
compatible = "qcom,cam-cdm-intf";
label = "cam-cdm-intf";
num-hw-cdm = <1>;
cdm-client-names = "vfe",
"jpeg-dma",
"jpeg",
"fd";
};
=======================
Required Node Structure
=======================
CDM HW node provides interface for camera clients through
to CDM interface node.
- cell-index
Usage: required
Value type: <u32>
Definition: Node instance number.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam170-cpas-cdm0", "qcom,cam480-cpas-cdm0",
"qcom,cam480-cpas-cdm1", "qcom,cam480-cpas-cdm2", "qcom,cam-cpas-cdm1_0",
"qcom,cam-cpas-cdm1_1", "qcom,cam-cpas-cdm1_2", "qcom,cam-ife-cdm1_2",
"qcom,cam-cpas-cdm2_0", "qcom,cam-ope-cdm2_0", "qcom,cam-cpas-cdm2_1",
"qcom,cam-rt-cdm2_1" or "qcom,cam-ope-cdm2_1"
- label
Usage: required
Value type: <string>
Definition: Should be "cpas-cdm", "ife-cdm", or "rt-cdm".
- reg-names
Usage: required
Value type: <string>
Definition: Name of the register resources.
- reg
Usage: required
Value type: <u32>
Definition: Register values.
- reg-cam-base
Usage: required
Value type: <u32>
Definition: Offset of the register space compared to
to Camera base register space.
- interrupt-names
Usage: optional
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: optional
Value type: <u32>
Definition: Interrupt associated with CDM HW.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for CDM HW.
- camss-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed
in "regulator-names".
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for CDM HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for CDM HW.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: List of strings corresponds clock-rates levels.
Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo.
- cdm-client-names
Usage: required
Value type: <string>
Definition: List of Clients supported by CDM HW node.
- config-fifo
Usage: required
Value type: <empty>
Definition: Flag to let driver know whether to load fifo depths
from property fifo-depths or not.
- fifo-depths
Usage: required
Value type: <u32>
Definition: List of fifo depths supported by device.
- single-context-cdm
Usage: required
Value type: <empty>
Definition: Flag to indicate that the CDM is being used in single
context mode.
Example:
qcom,cpas-cdm0@ac48000 {
cell-index = <0>;
compatible = "qcom,cam170-cpas-cdm0";
label = "cpas-cdm0";
reg = <0xac48000 0x1000>;
reg-names = "cpas-cdm";
interrupts = <0 461 0>;
interrupt-names = "cpas-cdm";
regulator-names = "camss";
camss-supply = <&titan_top_gdsc>;
clock-names = "soc_ahb_clk",
"titan_top_ahb_clk",
"cam_axi_clk",
"camcc_slow_ahb_clk_src",
"cpas_top_ahb_clk",
"camnoc_axi_clk";
clocks = <&clock_camcc CAM_CC_SOC_AHB_CLK>,
<&clock_gcc GCC_CAMERA_AHB_CLK>,
<&clock_gcc GCC_CAMERA_AXI_CLK>,
<&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>;
qcom,clock-rates = <0 80000000 80000000 80000000 80000000 80000000>;
clock-cntl-level = "turbo";
cdm-client-names = "ife0";
config-fifo;
fifo-depths = <64 0 0 0>;
single-context-cdm;
status = "ok";
};

428
bindings/msm-cam-cpas.txt Executable file
Просмотреть файл

@ -0,0 +1,428 @@
* Qualcomm Technologies, Inc. MSM Camera CPAS
The MSM camera CPAS device provides dependency definitions for
enabling Camera CPAS HW and provides the Client definitions
for all HW blocks that use CPAS driver for BW voting. These
definitions consist of various properties that define the list
of clients supported, AHB, AXI master-slave IDs used for BW
voting.
=======================
Required Node Structure
=======================
The camera CPAS device must be described in five levels. The first level has
general description of cpas including compatibility, interrupts, power info
etc.
The second level deals with information related to CPAS clients and how
the BW should be calculated. For simplicity in BW vote consolidation, the
grouping of granular votes pertaining to CPAS clients is represented as nodes
at four CAMNOC levels. The nodes at a particular level have some common
properties such as traffic merge type which indicates whether the votes at a
node have to be summed up, sum divided by two or taken max of all. CAMNOC Level
zero node usually represents granular vote info for clients. CAMNOC Level one
represents nodes which are clubbed together by arbiter in CAMNOC diagram. CAMNOC
Level two represents consolidated read and write nodes for RT and NRT paths.
CAMNOC Level three provides axi port information and these have nodes where all
paths from clients eventually converge according to their properties. This
includes master-slave IDs, ab, ib values for mnoc, camnoc bus interface
==================================
First Level Node - CAM CPAS device
==================================
- cell-index
Usage: required
Value type: <u32>
Definition: Node instance number.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-cpas".
- label
Usage: required
Value type: <string>
Definition: Should be "cpas".
- arch-compat
Usage: required
Value type: <string>
Definition: Should be "cpas_top" or "camss_top".
- reg-names
Usage: required
Value type: <string>
Definition: Name of the register resources.
- reg
Usage: required
Value type: <u32>
Definition: Register values.
- reg-cam-base
Usage: required
Value type: <u32>
Definition: Offset of the register space compared to
to Camera base register space.
- cam_hw_fuse
Usage: optional
Value type: <u32:fuse_id> <u32:fuse_address> <u32:fuse_mask> <u32:fuse_type> <u32:hw_map>
Definition: List of fuse based features and respective fuse info.
fuse_id: fuse id for each features
fuse_address: fuse register io address
fuse_mask: fuse mask for the fuse registers
fuse_type: fuse feature is enable, disable or value type
hw_map: Hw map of the feature, set bit positions which HWs are
supported for that feature. Use 0xFF if all HWs supported
- interrupt-names
Usage: optional
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: optional
Value type: <u32>
Definition: Interrupt associated with CAMNOC HW.
- qcom,cpas-hw-ver
Usage: required
Value type: <u32>
Definition: CAM HW Version information.
- camnoc-axi-min-ib-bw
Usage: optional
Value type: <u64>
Definition: Min camnoc axi bw for the given target.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for CPAS HW.
- camss-vdd-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed
in "regulator-names".
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for CPAS HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for CPAS HW.
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: List of strings corresponds clock-rates levels.
Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo.
- qcom,cam-cx-ipeak
Usage: required
Value type: <u32>
Definition: Camera Cx Ipeak ID.
- control-camnoc-axi-clk
Usage: optional
Value type: <empty>
Definition: Bool property specifying whether to control camnoc axi
clock from cpas driver.
- camnoc-bus-width
Usage: required if control-camnoc-axi-clk is enabled
Value type: <u32>
Definition: camnoc bus width.
- camnoc-axi-clk-bw-margin-perc
Usage: optional
Value type: <u32>
Definition: Percentage value to be added to camnoc bw while calculating
camnoc axi clock frequency.
- rpmh-bcm-info
Usage: optional
Value type: <u32:idx> <u32:bcm_fe> <u32:bcm_be> <u32:ddr_idx> <u32:mmnoc_idx>
Definition: Rpmh bcm register map
idx: Total number of BCMs
bcm_fe: First BCM FE (front-end) register offset.
bcm_be: First BCM BE (back-end) register offset.
ddr_idx: DDR BCM index
mmnoc_idx: MMNOC BCM index
- qcom,msm-bus,name
- qcom,msm-bus,num-cases
- qcom,msm-bus,num-paths
- qcom,msm-bus,vectors-KBps
Please refer Documentation/devicetree/bindings/arm/msm/msm_bus.txt
for the properties above.
- vdd-corners
Usage: required
Value type: <u32>
Definition: List of vdd corners to map for ahb level.
- vdd-corner-ahb-mapping
Usage: required
Value type: <string>
Definition: List of ahb level strings corresponds to vdd-corners.
Supported strings: suspend, svs, nominal, turbo
- client-id-based
Usage: required
Value type: <empty>
Definition: Bool property specifying whether CPAS clients are ID based.
- client-names
Usage: required
Value type: <string>
Definition: List of Clients supported by CPAS.
- client-bus-camnoc-based
Usage: optional
Value type: <empty>
Definition: Bool property specifying whether Clients are connected
through CAMNOC for AXI access.
===================================================================
Third Level Node - CAMNOC Level nodes
===================================================================
- level-index
Usage: required
Value type: <u32>
Definition: Number representing level index for ndoes at current CAMNOC level
- camnoc-max-needed
Usage: optional
Value type: <empty>
Definition: Bool property for all votes at current level to be taken maximum
for CAMNOC BW calculation.
===================================================================
Fourth Level Node - Generic CAMNOC node properties
===================================================================
- cell-index
Usage: required
Value type: <u32>
Definition: Unique index of node to be used by CPAS driver.
- node-name
Usage: required
Value type: <string>
Definition: Unique name representing this node.
- path-data-type
Usage: required if a CAMNOC Level 0 Node
Value type: <u32>
Definition: Type of path data for a specific client.
Supported : CAM_CPAS_PATH_DATA_IFE_LINEAR, CAM_CPAS_PATH_DATA_ALL, etc.
Please refer dt-bindings/msm/msm-camera.h for all supported
definitions.
- path-transaction-type
Usage: required if a CAMNOC Level 0 Node
Value type: <u32>
Definition: Type of path transaction for a specific client.
Supported : CAM_CPAS_TRANSACTION_READ, CAM_CPAS_TRANSACTION_WRITE
- client-name
Usage: required if a CAMNOC Level 0 Node
Value type: <string>
Definition: Name of the client with above properties.
Supported : From "client-names" property in CPAS node
- constituent-paths
Usage: optional, applicable only to CAMNOC Level 0 Nodes
Value type: <u32>
Definition: List of constituents of path data type of current node.
Supported : CAM_CPAS_PATH_DATA_IFE_VID, CAM_CPAS_PATH_DATA_IFE_DISP, etc.
Please refer dt-bindings/msm/msm-camera.h for all supported
definitions.
- traffic-merge-type
Usage: required if NOT a CAMNOC Level 0 Node
Value type: <u32>
Definition: Type of traffic merge for that node.
Supported : CAM_CPAS_TRAFFIC_MERGE_SUM, CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE.
- parent-node
Usage: required for all except CAMNOC Level 3 Nodes
Value type: <phandle>
Definition: Parent node of this node. Parent node must be at least
one level above the current level.
- bus-width-factor
Usage: optional
Value type: <u32>
Definition: For bus width factor consideration in CAMNOC BW calculation
- qcom,axi-port-name
Usage: required at CAMNOC Level 3
Value type: <string>
Definition: Name of the AXI Port.
- ib-bw-voting-needed
Usage: optional
Value type: <empty>
Definition: Bool property indicating axi port requires instantaneous bandwidth
===================================================================
Fifth Level Node - CAM AXI Bus Properties
===================================================================
- qcom,msm-bus,name
- qcom,msm-bus,num-cases
- qcom,msm-bus,num-paths
- qcom,msm-bus,vectors-KBps
Please refer Documentation/devicetree/bindings/arm/msm/msm_bus.txt
for the properties above.
- qcom,msm-bus-vector-dyn-vote
Usage: optional
Value type: <empty>
Definition: Bool property specifying whether this bus client
is dynamic vote based.
Example:
qcom,cam-cpas@ac40000 {
cell-index = <0>;
compatible = "qcom,cam-cpas";
label = "cpas";
arch-compat = "cpas_top";
status = "ok";
reg-names = "cam_cpas_top", "cam_camnoc";
reg = <0xac40000 0x1000>,
<0xac42000 0x5000>;
reg-cam-base = <0x40000 0x42000>;
cam_hw_fuse = <CAM_CPAS_QCFA_BINNING_ENABLE 0x00780210 29>,
<CAM_CPAS_SECURE_CAMERA_ENABLE 0x00780210 18>;
interrupt-names = "cpas_camnoc";
interrupts = <0 459 0>;
qcom,cpas-hw-ver = <0x170100>; /* Titan v170 v1.0.0 */
regulator-names = "camss-vdd";
camss-vdd-supply = <&titan_top_gdsc>;
clock-names = "gcc_ahb_clk",
"gcc_axi_clk",
"soc_ahb_clk",
"cpas_ahb_clk",
"slow_ahb_clk_src",
"camnoc_axi_clk";
clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
<&clock_gcc GCC_CAMERA_AXI_CLK>,
<&clock_camcc CAM_CC_SOC_AHB_CLK>,
<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
<&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>;
src-clock-name = "slow_ahb_clk_src";
clock-rates = <0 0 0 0 80000000 0>;
clock-cntl-level = "turbo";
qcom,cam-cx-ipeak = <&cx_ipeak_lm 8>;
control-camnoc-axi-clk;
camnoc-bus-width = <32>;
camnoc-axi-clk-bw-margin-perc = <10>;
qcom,msm-bus,name = "cam_ahb";
qcom,msm-bus,num-cases = <4>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<MSM_BUS_MASTER_AMPSS_M0
MSM_BUS_SLAVE_CAMERA_CFG 0 0>,
<MSM_BUS_MASTER_AMPSS_M0
MSM_BUS_SLAVE_CAMERA_CFG 0 300000>,
<MSM_BUS_MASTER_AMPSS_M0
MSM_BUS_SLAVE_CAMERA_CFG 0 640000>,
<MSM_BUS_MASTER_AMPSS_M0
MSM_BUS_SLAVE_CAMERA_CFG 0 640000>;
client-id-based;
client-names =
"csiphy0", "csiphy1", "csiphy2", "csiphy3",
"csiphy4", "csiphy5", "cci0", "cci1",
"csid0", "csid1", "csid2", "csid3",
"csid4", "csid5", "csid6",
"ife0", "ife1", "ife2", "ife3", "custom0",
"ipe0", "cam-cdm-intf0", "cpas-cdm0", "cpas-cdm1",
"cpas-cdm2",
"bps0", "icp0", "jpeg-dma0", "jpeg-enc0",
"fd0";
camera-bus-nodes {
level3-nodes {
level-index = <3>;
level3_rt0_rd_wr_sum: level3-rt0-rd-wr-sum {
cell-index = <0>;
node-name = "level3-rt0-rd-wr-sum";
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM>;
qcom,axi-port-name = "cam_hf_0";
ib-bw-voting-needed;
qcom,axi-port-mnoc {
qcom,msm-bus,name =
"cam_hf_0_mnoc";
qcom,msm-bus-vector-dyn-vote;
qcom,msm-bus,num-cases = <2>;
qcom,msm-bus,num-paths = <1>;
qcom,msm-bus,vectors-KBps =
<MSM_BUS_MASTER_CAMNOC_HF
MSM_BUS_SLAVE_EBI_CH0 0 0>,
<MSM_BUS_MASTER_CAMNOC_HF
MSM_BUS_SLAVE_EBI_CH0 0 0>;
};
};
};
level2-nodes {
level-index = <2>;
camnoc-max-needed;
level2_rt0_wr: level2-rt0-wr {
cell-index = <3>;
node-name = "level2-rt0-wr";
parent-node = <&level3_rt0_rd_wr_sum>;
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE>;
};
};
level1-nodes {
level-index = <1>;
camnoc-max-needed;
level1_rt0_wr0: level1-rt0-wr0 {
cell-index = <8>;
node-name = "level1-rt0-wr0";
parent-node = <&level2_rt0_wr>;
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM>;
};
};
level0-nodes {
level-index = <0>;
ife0_ubwc_stats_wr: ife0-ubwc-stats-wr {
cell-index = <16>;
node-name = "ife0-ubwc-stats-wr";
client-name = "ife0";
traffic-data =
<CAM_CPAS_PATH_DATA_IFE_UBWC_STATS>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_WRITE>;
constituent-paths =
<CAM_CPAS_PATH_DATA_IFE_VID
CAM_CPAS_PATH_DATA_IFE_DISP
CAM_CPAS_PATH_DATA_IFE_STATS>;
parent-node = <&level1_rt0_wr0>;
};
};
};
};

162
bindings/msm-cam-csiphy.txt Executable file
Просмотреть файл

@ -0,0 +1,162 @@
* Qualcomm Technologies, Inc. MSM CSI Phy
=======================
Required Node Structure
=======================
The camera CSIPHY node must be described in First level of device nodes. The
first level describe the overall CSIPHY node structure.
======================================
First Level Node - CSIPHY device
======================================
- cell-index: csiphy hardware core index
Usage: required
Value type: <u32>
Definition: Should specify the Hardware index id.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,csiphy-v1.0",
"qcom,csiphy-v1.1", "qcom,csiphy-v1.2", "qcom,csiphy-v1.2.1",
"qcom,csiphy-v1.2.2", "qcom,csiphy-v2.0", "qcom,csiphy-v1.2.2.2",
"qcom,csiphy-v1.2.3", "qcom,csiphy-v2.0.1", "qcom,csiphy-v2.1.0",
"qcom,csiphy-v1.2.4", "qcom,csiphy-v1.2.5", "qcom,csiphy".
- reg
Usage: required
Value type: <u32>
Definition: offset and length of the register set
for the device for the csiphy operating in
compatible mode.
- reg-names
Usage: required
Value type: <string>
Definition: Should specify relevant names to each
reg property defined.
- reg-cam-base
Usage: required
Value type: <string>
Definition: offset of CSIPHY in camera hw block
- interrupts
Usage: required
Value type: <u32>
Definition: Interrupt associated with CCI HW.
- interrupt-names
Usage: required
Value type: <string>
Definition: Name of the interrupt.
- regulator-names
Usage: required
Value type: <string>
Definition: name of the voltage regulators required for the device.
- gdscr-supply
Usage: required
Value type: <phandle>
Definition: should contain gdsr regulator used for CSIPHY clocks.
- mipi-csi-vdd-supply
Usage: required
Value type: <phandle>
Definition: should contain phandle for mipi-csi-vdd regulator used for
CSIPHY device.
- csi-vdd-xxx-supply
Usage: required
Value type: <phandle>
Definition: should contain phandles for csi-vdd-1p2 and csi-vdd-0p9
regulators used for CSIPHY.
- csi-vdd-voltage
Usage: required
Value type: <u32>
Definition: should contain required voltage for csi-vdd supply
for CSIPHY.
- rgltr-cntrl-support
Usage: required
Value type: <empty>
Definition: Flag to indicate whether regulator control support is
enabled or not.
- rgltr-min-voltage
Usage: required
Value type: <u32>
Definition: should contain required min voltage for gdsr, csi-vdd-1p2
and csi-vdd-0p9 supply for CSIPHY.
- rgltr-max-voltage
Usage: required
Value type: <u32>
Definition: should contain required max voltage for gdsr, csi-vdd-1p2
and csi-vdd-0p9 supply for CSIPHY.
- rgltr-load-current
Usage: required
Value type: <u32>
Definition: should contain peak current for gdsr, csi-vdd-1p2
and csi-vdd-0p9 supply for CSIPHY.
- clocks
Usage: required
Value type: <phandle>
Definition: all clock phandle and source clocks.
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for CSIPHY HW.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: All different clock level node can support.
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clock rates in Hz for CSIPHY HW.
Example:
cam_csiphy0: qcom,csiphy0@ace4000 {
cell-index = <0>;
compatible = "qcom,csiphy-v2.1.0", "qcom,csiphy";
reg = < 0x0ace4000 0x2000>;
reg-names = "csiphy";
reg-cam-base = <0xe4000>;
interrupts = <GIC_SPI 477 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "csiphy0";
gdscr-supply = <&cam_cc_titan_top_gdsc>;
csi-vdd-1p2-supply = <&pm8350_l6>;
csi-vdd-0p9-supply = <&pm8350_l5>;
rgltr-cntrl-support;
regulator-names = "gdscr", "csi-vdd-1p2", "csi-vdd-0p9";
rgltr-min-voltage = <0 1200000 880000>;
rgltr-max-voltage = <0 1248000 912000>;
rgltr-load-current = <0 54700 102000>;
clocks = <&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
<&clock_camcc CAM_CC_CSIPHY0_CLK>,
<&clock_camcc CAM_CC_CSI0PHYTIMER_CLK_SRC>,
<&clock_camcc CAM_CC_CSI0PHYTIMER_CLK>;
clock-names = "cphy_rx_clk_src",
"csiphy0_clk",
"csi0phytimer_clk_src",
"csi0phytimer_clk";
src-clock-name = "csi0phytimer_clk_src";
clock-cntl-level = "nominal";
clock-rates =
<480000000 0 400000000 0>;
status = "ok";
};

28
bindings/msm-cam-custom-hw.txt Executable file
Просмотреть файл

@ -0,0 +1,28 @@
* Qualcomm Technologies, Inc. MSM Camera Custom HW
Camera Custom device provides the definitions for enabling
the custom hardware. It also provides the functions for the client
to control the Custom hardware.
=======================
Required Node Structure
=======================
The Custom device is described in one level of the device node.
======================================
First Level Node - CAM Custom device
======================================
Required properties:
- compatible
Usage: required
Value type: <string>
Definition: Should specify the compatibility string for matching the
driver. e.g. "qcom,cam_custom_hw_sub_mod".
Example:
qcom,cam-custom-hw {
compatible = "qcom,cam_custom_hw_sub_mod";
arch-compat = "custom";
status = "ok";
};

31
bindings/msm-cam-custom.txt Executable file
Просмотреть файл

@ -0,0 +1,31 @@
* Qualcomm Technologies, Inc. MSM Camera Custom
The MSM camera Custom driver provides the definitions for enabling
the Camera custom hadware. It provides the functions for the Client to
control the custom hardware.
=======================
Required Node Structure
=======================
The camera Custom device is described in one level of device node.
==================================
First Level Node - CAM CUSTOM device
==================================
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-custom".
- arch-compat
Usage: required
Value type: <string>
Definition: Should be "custom".
Example:
qcom,cam-custom {
compatible = "qcom,cam-custom";
arch-compat = "custom";
status = "ok";
};

503
bindings/msm-cam-eeprom.txt Executable file
Просмотреть файл

@ -0,0 +1,503 @@
* Qualcomm Technologies, Inc. MSM EEPROM
EEPROM is a one time programmed(OTP) device that stores the calibration data
use for camera sensor. It may either be integrated in the sensor module or in
the sensor itself. As a result, the power, clock and GPIOs may be the same as
the camera sensor. The following describes the page block map, power supply,
clock, GPIO and power on sequence properties of the EEPROM device.
=======================================================
Required Node Structure if probe happens from userspace
=======================================================
The EEPROM device is described in one level of the device node.
======================================
First Level Node - CAM EEPROM device
======================================
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,eeprom".
- cell-index
Usage: required
Value type: <u32>
Definition: Should specify the hardware index id.
- reg
Usage: required
Value type: <u32>
Definition: Register values.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for EEPROM HW.
- xxxx-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed in
"regulator-names".
- rgltr-cntrl-support
Usage: required
Value type: <bool>
Definition: This property specifies if the regulator control is supported
e.g. rgltr-min-voltage.
- rgltr-min-voltage
Usage: required
Value type: <u32>
Definition: should contain minimum voltage level for regulators
mentioned in regulator-names property.
- rgltr-max-voltage
Usage: required
Value type: <u32>
Definition: should contain maximum voltage level for regulators
mentioned in regulator-names property.
- rgltr-load-current
Usage: required
Value type: <u32>
Definition: should contain the maximum current in microamps required for
the regulators mentioned in regulator-names property.
- gpio-no-mux
Usage: required
Value type: <u32>
Definition: should specify the gpio mux type.
- gpios
Usage: required
Value type: <phandle>
Definition: should specify the gpios to be used for the eeprom.
- gpio-reset
Usage: required
Value type: <u32>
Definition: should specify the reset gpio index.
- gpio-standby
Usage: required
Value type: <u32>
Definition: should specify the standby gpio index.
- gpio-req-tbl-num
Usage: required
Value type: <u32>
Definition: should specify the gpio table index.
- gpio-req-tbl-flags
Usage: required
Value type: <u32>
Definition: should specify the gpio functions.
- gpio-req-tbl-label
Usage: required
Value type: <string>
Definition: should specify the gpio labels.
- sensor-position
Usage: required
Value type: <u32>
Definition: should contain the mount angle of the camera sensor.
- cci-device
Usage: required
Value type: <u32>
Definition: should contain i2c device id to be used for this camera
sensor
- cci-master
Usage: required
Value type: <u32>
Definition: should contain i2c master id to be used for this camera
sensor.
- sensor-mode
Usage: required
Value type: <u32>
Definition: should contain sensor mode supported.
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for EEPROM HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for EEPROM HW.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: says what all different clock levels eeprom node has.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
Example:
eeprom0: qcom,eeprom@0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,eeprom";
cam_vdig-supply = <&pm8998_l5>;
cam_vio-supply = <&pm8998_lvs1>;
regulator-names = "cam_vdig", "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1200000 0>;
rgltr-max-voltage = <1200000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
gpios = <&msmgpio 26 0>,
<&msmgpio 37 0>,
<&msmgpio 36 0>;
gpio-reset = <1>;
gpio-standby = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK",
"CAM_RESET1",
"CAM_STANDBY";
sensor-position = <0>;
sensor-mode = <0>;
cci-device = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
=======================================================
Required Node Structure if probe happens from kernel
=======================================================
The EEPROM device is described in one level of the device node.
======================================
First Level Node - CAM EEPROM device
======================================
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,eeprom".
- cell-index
Usage: required
Value type: <u32>
Definition: Should specify the hardware index id.
- reg
Usage: required
Value type: <u32>
Definition: Register values.
- qcom,eeprom-name
Usage: required
Value type: <string>
Definition: Name of the EEPROM HW.
- qcom,slave-addr
Usage: required
Value type: <u32>
Definition: Slave address of the EEPROM HW.
- qcom,num-blocks
Usage: required
Value type: <u32>
Definition: Total block number that eeprom contains.
- qcom,pageX
Usage: required
Value type: <u32>
Definition: List of values specifying page size, start address,
address type, data, data type, delay in ms.
size 0 stand for non-paged.
- qcom,pollX
Usage: required
Value type: <u32>
Definition: List of values specifying poll size, poll reg address,
address type, data, data type, delay in ms.
size 0 stand for not used.
- qcom,memX
Usage: required
Value type: <u32>
Definition: List of values specifying memory size, start address,
address type, data, data type, delay in ms.
size 0 stand for not used.
- qcom,saddrX
Usage: required
Value type: <u32>
Definition: property should specify the slave address for block (%d).
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for EEPROM HW.
- qcom,cmm-data-support
Usage: required
Value type: <u32>
Definition: Camera MultiModule data capability flag..
- qcom,cmm-data-compressed
Usage: required
Value type: <u32>
Definition: Camera MultiModule data compression flag.
- qcom,cmm-data-offset
Usage: required
Value type: <u32>
Definition: Camera MultiModule data start offset.
- qcom,cmm-data-size
Usage: required
Value type: <u32>
Definition: Camera MultiModule data size.
- qcom,cam-power-seq-type
Usage: required
Value type: <string>
Definition: should specify the power on sequence types.
- qcom,cam-power-seq-val
Usage: required
Value type: <string>
Definition: should specify the power on sequence values.
- qcom,cam-power-seq-cfg-val
Usage: required
Value type: <u32>
Definition: should specify the power on sequence config values.
- qcom,cam-power-seq-delay
Usage: required
Value type: <u32>
Definition: should specify the power on sequence delay time in ms.
- spiop-read
Usage: required
Value type: <u32>
Definition: this array provides SPI read operation related data.
- spiop-readseq
Usage: required
Value type: <u32>
Definition: this array provides SPI read sequence operation realted data.
- spiop-queryid
Usage: required
Value type: <u32>
Definition: this array provides SPI query eeprom id operation related data.
- spiop-pprog:
Usage: required
Value type: <u32>
Definition: this array provides SPI page program operation related data.
- spiop-wenable
Usage: required
Value type: <u32>
Definition: this array provides SPI write enable operation related data.
- spiop-readst
Usage: required
Value type: <u32>
Definition: this array provides SPI read destination operation related data.
- spiop-erase
Usage: required
Value type: <u32>
Definition: this array provides SPI erase operation related data.
- eeprom-idx
Usage: required
Value type: <u32>
Definition: this array provides eeprom id realted data.
- xxxx-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed in
"regulator-names".
- rgltr-cntrl-support
Usage: required
Value type: <bool>
Definition: This property specifies if the regulator control is supported
e.g. rgltr-min-voltage.
- rgltr-min-voltage
Usage: required
Value type: <u32>
Definition: should contain minimum voltage level for regulators
mentioned in regulator-names property.
- rgltr-max-voltage
Usage: required
Value type: <u32>
Definition: should contain maximum voltage level for regulators
mentioned in regulator-names property.
- rgltr-load-current
Usage: required
Value type: <u32>
Definition: should contain the maximum current in microamps required for
the regulators mentioned in regulator-names property.
- gpio-no-mux
Usage: required
Value type: <u32>
Definition: should specify the gpio mux type.
- gpios
Usage: required
Value type: <phandle>
Definition: should specify the gpios to be used for the eeprom.
- gpio-reset
Usage: required
Value type: <u32>
Definition: should specify the reset gpio index.
- gpio-standby
Usage: required
Value type: <u32>
Definition: should specify the standby gpio index.
- gpio-req-tbl-num
Usage: required
Value type: <u32>
Definition: should specify the gpio table index.
- gpio-req-tbl-flags
Usage: required
Value type: <u32>
Definition: should specify the gpio functions.
- gpio-req-tbl-label
Usage: required
Value type: <string>
Definition: should specify the gpio labels.
- sensor-position
Usage: required
Value type: <u32>
Definition: should contain the mount angle of the camera sensor.
- cci-device
Usage: required
Value type: <u32>
Definition: should contain i2c device id to be used for this camera
sensor
- cci-master
Usage: required
Value type: <u32>
Definition: should contain i2c master id to be used for this camera
sensor.
- sensor-mode
Usage: required
Value type: <u32>
Definition: should contain sensor mode supported.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: says what all different clock levels eeprom node has.
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for EEPROM HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for EEPROM HW.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
Example:
eeprom0: qcom,eeprom0 {
cell-index = <0>;
reg = <0x0>;
qcom,eeprom-name = "msm_eeprom";
eeprom-id0 = <0xF8 0x15>;
eeprom-id1 = <0xEF 0x15>;
eeprom-id2 = <0xC2 0x36>;
eeprom-id3 = <0xC8 0x15>;
compatible = "qcom,eeprom";
qcom,slave-addr = <0x60>;
qcom,num-blocks = <2>;
qcom,page0 = <1 0x100 2 0x01 1 1>;
qcom,poll0 = <0 0x0 2 0 1 1>;
qcom,mem0 = <0 0x0 2 0 1 0>;
qcom,page1 = <1 0x0200 2 0x8 1 1>;
qcom,pageen1 = <1 0x0202 2 0x01 1 10>;
qcom,poll1 = <0 0x0 2 0 1 1>;
qcom,mem1 = <32 0x3000 2 0 1 0>;
qcom,saddr1 = <0x62>;
qcom,cmm-data-support;
qcom,cmm-data-compressed;
qcom,cmm-data-offset = <0>;
qcom,cmm-data-size = <0>;
spiop-read = <0x03 3 0 0 0>;
spiop-readseq = <0x03 3 0 0 0>;
spiop-queryid = <0x90 3 0 0 0>;
spiop-pprog = <0x02 3 0 3 100>;
spiop-wenable = <0x06 0 0 0 0>;
spiop-readst = <0x05 0 0 0 0>;
spiop-erase = <0x20 3 0 10 100>;
qcom,cam-power-seq-type = "sensor_vreg",
"sensor_vreg", "sensor_clk",
"sensor_gpio", "sensor_gpio";
qcom,cam-power-seq-val = "cam_vdig",
"cam_vio", "sensor_cam_mclk",
"sensor_gpio_reset",
"sensor_gpio_standby";
qcom,cam-power-seq-cfg-val = <1 1 24000000 1 1>;
qcom,cam-power-seq-delay = <1 1 5 5 10>;
cam_vdig-supply = <&pm8998_l5>;
cam_vio-supply = <&pm8998_lvs1>;
regulator-names = "cam_vdig", "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1200000 0>;
rgltr-max-voltage = <1200000 0>;
rgltr-load-current = <0 80000 105000 0>;
qcom,gpio-no-mux = <0>;
gpios = <&msmgpio 26 0>,
<&msmgpio 37 0>,
<&msmgpio 36 0>;
gpio-reset = <1>;
gpio-standby = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK",
"CAM_RESET1",
"CAM_STANDBY";
sensor-position = <0>;
sensor-mode = <0>;
cci-device = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-cntl-level = "turbo";
clock-names = "cam_clk";
clock-rates = <24000000>;
};

154
bindings/msm-cam-fd.txt Executable file
Просмотреть файл

@ -0,0 +1,154 @@
* Qualcomm Technologies, Inc. MSM Camera FD
The MSM camera Face Detection device provides dependency definitions
for enabling Camera FD HW. MSM camera FD is implemented in multiple
device nodes. The root FD device node has properties defined to hint
the driver about the FD HW nodes available during the probe sequence.
Each node has multiple properties defined for interrupts, clocks and
regulators.
=======================
Required Node Structure
=======================
FD root interface node takes care of the handling Face Detection high level
driver handling and controls underlying FD hardware present.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-fd".
- compat-hw-name
Usage: required
Value type: <string>
Definition: Should be "qcom,fd".
- num-fd
Usage: required
Value type: <u32>
Definition: Number of supported FD HW blocks.
Example:
qcom,cam-fd {
compatible = "qcom,cam-fd";
compat-hw-name = "qcom,fd";
num-fd = <1>;
};
=======================
Required Node Structure
=======================
FD Node provides interface for Face Detection hardware driver
about the device register map, interrupt map, clocks, regulators.
- cell-index
Usage: required
Value type: <u32>
Definition: Node instance number.
- compatible
Usage: required
Value type: <string>
Definition: Should be one of "qcom,fd41", "qcom,fd501",
"qcom,fd600".
- reg-names
Usage: optional
Value type: <string>
Definition: Name of the register resources.
- reg
Usage: optional
Value type: <u32>
Definition: Register values.
- reg-cam-base
Usage: optional
Value type: <u32>
Definition: Offset of the register space compared to
to Camera base register space.
- interrupt-names
Usage: optional
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: optional
Value type: <u32>
Definition: Interrupt line associated with FD HW.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for FD HW.
- camss-vdd-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed
in "regulator-names".
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for FD HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks required for FD HW.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name.
- clock-control-debugfs
Usage: optional
Value type: <string>
Definition: Enable/Disable clk rate control.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: List of strings corresponds clock-rates levels.
Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo.
Examples:
cam_fd: qcom,fd@ac5a000 {
cell-index = <0>;
compatible = "qcom,fd600";
reg-names = "fd_core", "fd_wrapper";
reg = <0xac5a000 0x1000>,
<0xac5b000 0x400>;
reg-cam-base = <0x5a000 0x5b000>;
interrupt-names = "fd";
interrupts = <0 462 0>;
regulator-names = "camss-vdd";
camss-vdd-supply = <&titan_top_gdsc>;
clock-names = "gcc_ahb_clk",
"gcc_axi_clk",
"soc_ahb_clk",
"cpas_ahb_clk",
"camnoc_axi_clk",
"fd_core_clk_src",
"fd_core_clk",
"fd_core_uar_clk";
clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
<&clock_gcc GCC_CAMERA_AXI_CLK>,
<&clock_camcc CAM_CC_SOC_AHB_CLK>,
<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
<&clock_camcc CAM_CC_FD_CORE_CLK_SRC>,
<&clock_camcc CAM_CC_FD_CORE_CLK>,
<&clock_camcc CAM_CC_FD_CORE_UAR_CLK>;
src-clock-name = "fd_core_clk_src";
clock-cntl-level = "svs";
clock-rates = <0 0 0 0 0 400000000 0 0>;
};

348
bindings/msm-cam-icp.txt Executable file
Просмотреть файл

@ -0,0 +1,348 @@
* Qualcomm Technologies, Inc. MSM Camera ICP
The MSM camera ICP devices are implemented multiple device nodes.
The root icp device node has properties defined to hint the driver
about the number of A5, LX7, IPE and BPS nodes available during the
probe sequence. Each node has multiple properties defined
for interrupts, clocks and regulators.
=======================
Required Node Structure
=======================
ICP root interface node takes care of the handling account for number
of A5, LX7, IPE and BPS devices present on the hardware.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-icp".
- compat-hw-name
Usage: required
Value type: <string>
Definition: Should be "qcom,a5", "qcom,lx7", "qcom,ipe0",
"qcom,ipe1" or "qcom,bps".
- num-a5 or num-lx7
Usage: required
Value type: <u32>
Definition: Number of supported A5 or LX7 processors.
- num-ipe
Usage: required
Value type: <u32>
Definition: Number of supported IPE HW blocks.
- num-bps
Usage: required
Value type: <u32>
Definition: Number of supported BPS HW blocks.
Example:
qcom,cam-icp {
compatible = "qcom,cam-icp";
compat-hw-name = "qcom,a5", "qcom,lx7", "qcom,ipe0",
"qcom,ipe0", "qcom,bps";
num-a5 = <1>; or num-lx7 = <1>;
num-ipe = <2>;
num-bps = <1>;
status = "ok";
};
=======================
Required Node Structure
=======================
A5/LX7/IPE/BPS Node's provides interface for Image Control Processor driver
about the A5/LX7 register map, interrupt map, clocks, regulators
and name of firmware image.
- cell-index
Usage: required
Value type: <u32>
Definition: Node instance number.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-a5", "qcom,cam-lx7",
"qcom,cam-ipe" or "qcom,cam-bps".
- reg-names
Usage: optional
Value type: <string>
Definition: Name of the register resources.
- reg
Usage: optional
Value type: <u32>
Definition: Register values.
- reg-cam-base
Usage: optional
Value type: <u32>
Definition: Register values.
- interrupt-names
Usage: optional
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: optional
Value type: <u32>
Definition: Interrupt associated with ICP HW.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for ICP HW.
- camss-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed
in "regulator-names".
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for ICP HW.
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name.
- clock-control-debugfs
Usage: optional
Value type: <string>
Definition: Enable/Disable clk rate control.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for ICP HW.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: List of strings corresponds clock-rates levels.
Supported strings: lowsvs, svs, svs_l1, nominal, turbo.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
- fw_name
Usage: optional
Value type: <string>
Definition: Name of firmware image.
- ubwc-ipe-fetch-cfg
Usage: required
Value type: <u32>
Definition: UBWC IPE fetch configuration based on DDR device type.
- ubwc-ipe-write-cfg
Usage: required
Value type: <u32>
Definition: UBWC IPE write configuration based on DDR device type.
- ubwc-bps-fetch-cfg
Usage: required
Value type: <u32>
Definition: UBWC BPS fetch configuration based on DDR device type.
- ubwc-bps-write-cfg
Usage: required
Value type: <u32>
Definition: UBWC BPS write configuration based on DDR device type.
- ubwc-cfg
Usage: optional
Value type: <u32>
Definition: UBWC configuration, this is mandatory if above
ipe/bps ubwc properties are not used.
Examples:
cam_a5: qcom,a5 {
cell-index = <0>;
compatible = "qcom,cam-a5";
reg = <0xac00000 0x6000>,
<0xac10000 0x8000>,
<0xac18000 0x3000>;
reg-names = "a5_qgic", "a5_sierra", "a5_csr";
reg-cam-base = <0x00000 0x10000 0x18000>;
interrupts = <GIC_SPI 463 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "a5";
regulator-names = "camss-vdd";
camss-vdd-supply = <&cam_cc_titan_top_gdsc>;
clock-names =
"soc_fast_ahb",
"icp_ahb_clk",
"icp_clk_src",
"icp_clk";
src-clock-name = "icp_clk_src";
clocks =
<&clock_camcc CAM_CC_FAST_AHB_CLK_SRC>,
<&clock_camcc CAM_CC_ICP_AHB_CLK>,
<&clock_camcc CAM_CC_ICP_CLK_SRC>,
<&clock_camcc CAM_CC_ICP_CLK>;
clock-rates =
<0 0 400000000 0>,
<0 0 480000000 0>,
<0 0 600000000 0>,
<0 0 600000000 0>,
<0 0 600000000 0>;
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
"turbo";
fw_name = "CAMERA_ICP.elf";
ubwc-ipe-fetch-cfg = <0x707b 0x7083>;
ubwc-ipe-write-cfg = <0x161ef 0x1620f>;
ubwc-bps-fetch-cfg = <0x707b 0x7083>;
ubwc-bps-write-cfg = <0x161ef 0x1620f>;
status = "ok";
};
cam_lx7: qcom,lx7 {
cell-index = <0>;
compatible = "qcom,cam-lx7";
reg = <0xac01000 0x400>,
<0xac01800 0x400>;
reg-names = "lx7_csr", "lx7_cirq";
reg-cam-base = <0x1000 0x1800>;
interrupts = <GIC_SPI 463 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "lx7";
regulator-names = "camss-vdd";
camss-vdd-supply = <&cam_cc_titan_top_gdsc>;
clock-names =
"soc_slow_ahb",
"icp_ahb_clk",
"icp_clk_src",
"icp_clk";
src-clock-name = "icp_clk_src";
clocks =
<&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
<&clock_camcc CAM_CC_ICP_AHB_CLK>,
<&clock_camcc CAM_CC_ICP_CLK_SRC>,
<&clock_camcc CAM_CC_ICP_CLK>;
clock-rates =
<80000000 0 400000000 0>,
<80000000 0 480000000 0>,
<80000000 0 600000000 0>,
<80000000 0 600000000 0>,
<80000000 0 600000000 0>;
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
"turbo";
fw_name = "CAMERA_ICP.elf";
ubwc-ipe-fetch-cfg = <0x707b 0x7083>;
ubwc-ipe-write-cfg = <0x161ef 0x1620f>;
ubwc-bps-fetch-cfg = <0x707b 0x7083>;
ubwc-bps-write-cfg = <0x161ef 0x1620f>;
status = "ok";
};
cam_ipe0: qcom,ipe0@ac42000 {
cell-index = <0>;
compatible = "qcom,cam-ipe";
reg = <0xac42000 0x18000>;
reg-names = "ipe0_top";
reg-cam-base = <0x42000>;
regulator-names = "ipe0-vdd";
ipe0-vdd-supply = <&cam_cc_ipe_0_gdsc>;
clock-names =
"ipe_nps_ahb_clk_src",
"ipe_nps_ahb_clk",
"ipe_fast_ahb_clk_src",
"ipe_nps_fast_ahb_clk",
"ipe_pps_fast_ahb_clk",
"ipe_nps_clk_src",
"ipe_nps_clk";
"ipe_pps_clk";
src-clock-name = "ipe_nps_clk_src";
clock-control-debugfs = "true";
clocks =
<&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
<&clock_camcc CAM_CC_IPE_NPS_AHB_CLK>,
<&clock_camcc CAM_CC_FAST_AHB_CLK_SRC>,
<&clock_camcc CAM_CC_IPE_NPS_FAST_AHB_CLK>,
<&clock_camcc CAM_CC_IPE_PPS_FAST_AHB_CLK>,
<&clock_camcc CAM_CC_IPE_NPS_CLK_SRC>,
<&clock_camcc CAM_CC_IPE_NPS_CLK>,
<&clock_camcc CAM_CC_IPE_PPS_CLK>;
clock-rates =
<80000000 0 100000000 0 0 364000000 0 0>,
<80000000 0 200000000 0 0 500000000 0 0>,
<80000000 0 300000000 0 0 600000000 0 0>,
<80000000 0 400000000 0 0 700000000 0 0>,
<80000000 0 400000000 0 0 700000000 0 0>;
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
"turbo";
status = "ok";
};
qcom,ipe1 {
cell-index = <1>;
compatible = "qcom,cam-ipe";
regulator-names = "ipe1-vdd";
ipe1-vdd-supply = <&ipe_1_gdsc>;
clock-names = "ipe_1_ahb_clk",
"ipe_1_areg_clk",
"ipe_1_axi_clk",
"ipe_1_clk",
"ipe_1_clk_src";
src-clock-name = "ipe_1_clk_src";
clocks = <&clock_camcc CAM_CC_IPE_1_AHB_CLK>,
<&clock_camcc CAM_CC_IPE_1_AREG_CLK>,
<&clock_camcc CAM_CC_IPE_1_AXI_CLK>,
<&clock_camcc CAM_CC_IPE_1_CLK>,
<&clock_camcc CAM_CC_IPE_1_CLK_SRC>;
clock-rates = <0 0 0 0 240000000>,
<0 0 0 0 404000000>,
<0 0 0 0 480000000>,
<0 0 0 0 538000000>,
<0 0 0 0 600000000>;
clock-cntl-level = "lowsvs", "svs",
"svs_l1", "nominal", "turbo";
};
cam_bps: qcom,bps@ac2c000 {
cell-index = <0>;
compatible = "qcom,cam-bps";
reg = <0xac2c000 0xB000>;
reg-names = "bps_top";
reg-cam-base = <0x2c000>;
regulator-names = "bps-vdd";
bps-vdd-supply = <&cam_cc_bps_gdsc>;
clock-names =
"bps_ahb_clk_src",
"bps_ahb_clk",
"bps_fast_ahb_clk_src",
"bps_fast_ahb_clk",
"bps_clk_src",
"bps_clk";
src-clock-name = "bps_clk_src";
clock-control-debugfs = "true";
clocks =
<&clock_camcc CAM_CC_SLOW_AHB_CLK_SRC>,
<&clock_camcc CAM_CC_BPS_AHB_CLK>,
<&clock_camcc CAM_CC_FAST_AHB_CLK_SRC>,
<&clock_camcc CAM_CC_BPS_FAST_AHB_CLK>,
<&clock_camcc CAM_CC_BPS_CLK_SRC>,
<&clock_camcc CAM_CC_BPS_CLK>;
clock-rates =
<80000000 0 100000000 0 200000000 0>,
<80000000 0 200000000 0 400000000 0>,
<80000000 0 300000000 0 480000000 0>,
<80000000 0 400000000 0 600000000 0>,
<80000000 0 400000000 0 600000000 0>;
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
"turbo";
status = "ok";
};

135
bindings/msm-cam-ife-csid.txt Executable file
Просмотреть файл

@ -0,0 +1,135 @@
* Qualcomm Technologies, Inc. MSM Camera IFE CSID
Camera IFE CSID device provides the definitions for enabling
the IFE CSID hardware. It also provides the functions for the client
to control the IFE CSID hardware.
=======================
Required Node Structure
=======================
The IFE CSID device is described in one level of the device node.
======================================
First Level Node - CAM IFE CSID device
======================================
- cell-index
Usage: required
Value type: <u32>
Definition: Should specify the hardware index id.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,csid170", "qcom,csid170_200", "qcom,csid175",
"qcom,csid175_200", "qcom,csid480", "qcom,csid580", "qcom,csid680",
"qcom,csid165_204", "qcom,csid-lite170", "qcom,csid-lite175",
"qcom,csid-lite480", "qcom,csid-custom480", "qcom,csid-lite580",
"qcom,csid-custom580", "qcom,csid-lite680" or "qcom,csid-custom680",
"qcom,csid-lite165".
- reg-names
Usage: required
Value type: <string>
Definition: Should be "csid".
- reg
Usage: required
Value type: <u32>
Definition: Register values.
- reg-cam-base
Usage: required
Value type: <u32>
Definition: List of bases.
- interrupt-names
Usage: Required
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: Required
Value type: <u32>
Definition: Interrupt associated with IFE CSID HW.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for IFE CSID HW.
- xxxx-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed in
"regulator-names".
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for IFE CSID HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for IFE CSID HW.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: All different clock level node can support.
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name.
- clock-control-debugfs
Usage: optional
Value type: <string>
Definition: Enable/Disable clk rate control.
Example:
cam_csid0: qcom,csid0@acb7000 {
cell-index = <0>;
compatible = "qcom,csid680";
reg-names = "csid", "csid_top", "rt_wrapper";
reg = <0xacb7000 0xd00>,
<0xacb6000 0x1000>,
<0xac62000 0x64000>;
reg-cam-base = <0xb7000 0xb6000 0x62000>;
interrupt-names = "csid";
interrupts = <GIC_SPI 464 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&cam_cc_titan_top_gdsc>;
clock-names =
"csid_clk_src",
"csid_clk",
"cphy_rx_clk_src",
"csiphy_rx_clk",
"cpas_fast_ahb_src",
"cpas_fast_ahb";
clocks =
<&clock_camcc CAM_CC_CSID_CLK_SRC>,
<&clock_camcc CAM_CC_CSID_CLK>,
<&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
<&clock_camcc CAM_CC_CSID_CSIPHY_RX_CLK>,
<&clock_camcc CAM_CC_FAST_AHB_CLK_SRC>,
<&clock_camcc CAM_CC_CPAS_FAST_AHB_CLK>;
clock-rates =
<400000000 0 400000000 0 100000000 0>,
<480000000 0 480000000 0 200000000 0>,
<480000000 0 480000000 0 300000000 0>,
<480000000 0 480000000 0 400000000 0>,
<480000000 0 480000000 0 400000000 0>;
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
"turbo";
src-clock-name = "csid_clk_src";
clock-control-debugfs = "true";
status = "ok";
};

36
bindings/msm-cam-isp.txt Executable file
Просмотреть файл

@ -0,0 +1,36 @@
* Qualcomm Technologies, Inc. MSM Camera ISP
The MSM camera ISP driver provides the definitions for enabling
the Camera ISP hadware. It provides the functions for the Client to
control the ISP hardware.
=======================
Required Node Structure
=======================
The camera ISP device is described in one level of device node.
==================================
First Level Node - CAM ISP device
==================================
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-isp".
- arch-compat
Usage: required
Value type: <string>
Definition: Should be "vfe", "ife" or "tfe".
- ubwc-static-cfg
Usage: optional
Value type: <u32>
Definition: IFE UBWC static configuration based on DDR device type.
Example:
qcom,cam-isp {
compatible = "qcom,cam-isp";
arch-compat = "ife";
status = "ok";
};

207
bindings/msm-cam-jpeg.txt Executable file
Просмотреть файл

@ -0,0 +1,207 @@
* Qualcomm Technologies, Inc. MSM Camera JPEG
The MSM camera JPEG devices are implemented multiple device nodes.
The root JPEG device node has properties defined to hint the driver
about the number of Encoder and DMA nodes available during the
probe sequence. Each node has multiple properties defined
for interrupts, clocks and regulators.
=======================
Required Node Structure
=======================
JPEG root interface node takes care of the handling account for number
of Encoder and DMA devices present on the hardware.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-jpeg".
- compat-hw-name
Usage: required
Value type: <string>
Definition: Should be "qcom,jpegenc" or "qcom,jpegdma".
- num-jpeg-enc
Usage: required
Value type: <u32>
Definition: Number of supported Encoder HW blocks.
- num-jpeg-dma
Usage: required
Value type: <u32>
Definition: Number of supported DMA HW blocks.
Example:
qcom,cam-jpeg {
compatible = "qcom,cam-jpeg";
compat-hw-name = "qcom,jpegenc",
"qcom,jpegdma";
num-jpeg-enc = <1>;
num-jpeg-dma = <1>;
status = "ok";
};
=======================
Required Node Structure
=======================
Encoder/DMA Nodes provide interface for JPEG driver about
the device register map, interrupt map, clocks and regulators.
Compatible string definition should be based on target.
- cell-index
Usage: required
Value type: <u32>
Definition: Node instance number.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam_jpeg_enc".
Definition: Should be "qcom,cam_jpeg_enc_165".
Definition: Should be "qcom,cam_jpeg_enc_580".
Definition: Should be "qcom,cam_jpeg_dma".
Definition: Should be "qcom,cam_jpeg_dma_165".
Definition: Should be "qcom,cam_jpeg_dma_580".
- reg-names
Usage: optional
Value type: <string>
Definition: Name of the register resources.
- reg
Usage: optional
Value type: <u32>
Definition: Register values.
- reg-cam-base
Usage: optional
Value type: <u32>
Definition: Offset of the register space compared to
to Camera base register space.
- interrupt-names
Usage: optional
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: optional
Value type: <u32>
Definition: Interrupt associated with JPEG HW.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for JPEG HW.
- camss-vdd-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed
in "regulator-names".
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for JPEG HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for JPEG HW.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: List of strings corresponds clock-rates levels.
Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo.
- cam_hw_pid:
Usage: optional
Value type: <u32>
Definition: HW unique Pid values
- cam_hw_rd_mid:
Usage: optional
Value type: <u32>
Definition: HW port read mid value
- cam_hw_wr_mid:
Usage: optional
Value type: <u32>
Definition: HW port write mid value
Examples:
cam_jpeg_enc: qcom,jpegenc@ac4e000 {
cell-index = <0>;
compatible = "qcom,cam_jpeg_enc";
reg-names = "jpege_hw";
reg = <0xac4e000 0x4000>;
reg-cam-base = <0x4e000>;
interrupt-names = "jpeg";
interrupts = <0 474 0>;
regulator-names = "camss-vdd";
camss-vdd-supply = <&titan_top_gdsc>;
clock-names = "camera_ahb",
"camera_axi",
"soc_ahb_clk",
"cpas_ahb_clk",
"camnoc_axi_clk",
"jpegenc_clk_src",
"jpegenc_clk";
clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
<&clock_gcc GCC_CAMERA_AXI_CLK>,
<&clock_camcc CAM_CC_SOC_AHB_CLK>,
<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
<&clock_camcc CAM_CC_JPEG_CLK_SRC>,
<&clock_camcc CAM_CC_JPEG_CLK>;
clock-rates = <0 0 0 0 0 600000000 0>;
src-clock-name = "jpegenc_clk_src";
clock-cntl-level = "nominal";
status = "ok";
};
cam_jpeg_dma: qcom,jpegdma@0xac52000{
cell-index = <0>;
compatible = "qcom,cam_jpeg_dma";
reg-names = "jpegdma_hw";
reg = <0xac52000 0x4000>;
reg-cam-base = <0x52000>;
interrupt-names = "jpegdma";
interrupts = <0 475 0>;
regulator-names = "camss-vdd";
camss-vdd-supply = <&titan_top_gdsc>;
clock-names = "camera_ahb",
"camera_axi",
"soc_ahb_clk",
"cpas_ahb_clk",
"camnoc_axi_clk",
"jpegdma_clk_src",
"jpegdma_clk";
clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
<&clock_gcc GCC_CAMERA_AXI_CLK>,
<&clock_camcc CAM_CC_SOC_AHB_CLK>,
<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
<&clock_camcc CAM_CC_JPEG_CLK_SRC>,
<&clock_camcc CAM_CC_JPEG_CLK>;
clock-rates = <0 0 0 0 0 600000000 0>;
src-clock-name = "jpegdma_clk_src";
clock-cntl-level = "nominal";
status = "ok";
};

148
bindings/msm-cam-lrme.txt Executable file
Просмотреть файл

@ -0,0 +1,148 @@
* Qualcomm Technologies, Inc. MSM Camera LRME
The MSM camera Low Resolution Motion Estimation device provides dependency
definitions for enabling Camera LRME HW. MSM camera LRME is implemented in
multiple device nodes. The root LRME device node has properties defined to
hint the driver about the LRME HW nodes available during the probe sequence.
Each node has multiple properties defined for interrupts, clocks and
regulators.
=======================
Required Node Structure
=======================
LRME root interface node takes care of the handling LRME high level
driver handling and controls underlying LRME hardware present.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-lrme"
- compat-hw-name
Usage: required
Value type: <string>
Definition: Should be "qcom,lrme"
- num-lrme
Usage: required
Value type: <u32>
Definition: Number of supported LRME HW blocks
Example:
qcom,cam-lrme {
compatible = "qcom,cam-lrme";
compat-hw-name = "qcom,lrme";
num-lrme = <1>;
};
=======================
Required Node Structure
=======================
LRME Node provides interface for Low Resolution Motion Estimation hardware
driver about the device register map, interrupt map, clocks, regulators.
- cell-index
Usage: required
Value type: <u32>
Definition: Node instance number
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,lrme"
- reg-names
Usage: optional
Value type: <string>
Definition: Name of the register resources
- reg
Usage: optional
Value type: <u32>
Definition: Register values
- reg-cam-base
Usage: optional
Value type: <u32>
Definition: Offset of the register space compared to
to Camera base register space
- interrupt-names
Usage: optional
Value type: <string>
Definition: Name of the interrupt
- interrupts
Usage: optional
Value type: <u32>
Definition: Interrupt line associated with LRME HW
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for LRME HW
- camss-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed
in "regulator-names"
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for LRME HW
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks required for LRME HW
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates
- clock-cntl-level
Usage: required
Value type: <string>
Definition: List of strings corresponds clock-rates levels
Supported strings: minsvs, lowsvs, svs, svs_l1, nominal, turbo
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name
Examples:
cam_lrme: qcom,lrme@ac6b000 {
cell-index = <0>;
compatible = "qcom,lrme";
reg-names = "lrme";
reg = <0xac6b000 0xa00>;
reg-cam-base = <0x6b000>;
interrupt-names = "lrme";
interrupts = <0 476 0>;
regulator-names = "camss";
camss-supply = <&titan_top_gdsc>;
clock-names = "camera_ahb",
"camera_axi",
"soc_ahb_clk",
"cpas_ahb_clk",
"camnoc_axi_clk",
"lrme_clk_src",
"lrme_clk";
clocks = <&clock_gcc GCC_CAMERA_AHB_CLK>,
<&clock_gcc GCC_CAMERA_AXI_CLK>,
<&clock_camcc CAM_CC_SOC_AHB_CLK>,
<&clock_camcc CAM_CC_CPAS_AHB_CLK>,
<&clock_camcc CAM_CC_CAMNOC_AXI_CLK>,
<&clock_camcc CAM_CC_LRME_CLK_SRC>,
<&clock_camcc CAM_CC_LRME_CLK>;
clock-rates = <0 0 0 0 0 0 0>,
<0 0 0 0 0 19200000 19200000>,
<0 0 0 0 0 19200000 19200000>,
<0 0 0 0 0 19200000 19200000>;
clock-cntl-level = "lowsvs", "svs", "svs_l1", "turbo";
src-clock-name = "lrme_core_clk_src";
};

168
bindings/msm-cam-ope.txt Executable file
Просмотреть файл

@ -0,0 +1,168 @@
* Qualcomm Technologies, Inc. MSM Camera OPE
The ope device node has properties defined to hint the driver
about the number of OPE nodes available during the
probe sequence. Each node has multiple properties defined
for interrupts, clocks and regulators.
=======================
Required Node Structure
=======================
OPE root interface node takes care of the handling account for number
of OPE devices present on the hardware.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,cam-ope".
- compat-hw-name
Usage: required
Value type: <string>
Definition: Should be "qcom,ope".
- num-ope
Usage: required
Value type: <u32>
Definition: Number of supported OPE HW blocks.
Example:
qcom,cam-ope {
compatible = "qcom,cam-ope";
compat-hw-name = "qcom,ope";
num-ope = <2>;
status = "ok";
};
=======================
Required Node Structure
=======================
OPE Node provides interface for Image Control Processor driver
about the OPE register map, interrupt map, clocks, regulators.
- cell-index
Usage: required
Value type: <u32>
Definition: Node instance number.
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,ope".
- reg-names
Usage: optional
Value type: <string>
Definition: Name of the register resources.
- reg
Usage: optional
Value type: <u32>
Definition: Register values.
- reg-cam-base
Usage: optional
Value type: <u32>
Definition: Register values.
- interrupt-names
Usage: optional
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: optional
Value type: <u32>
Definition: Interrupt associated with OPE HW.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for OPE HW.
- camss-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed
in "regulator-names".
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for CDM HW.
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name.
- clock-control-debugfs
Usage: optional
Value type: <string>
Definition: Enable/Disable clk rate control.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for CDM HW.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: List of strings corresponds clock-rates levels.
Supported strings: lowsvs, svs, svs_l1, nominal, turbo.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
Examples:
qcom,cam-ope {
compatible = "qcom,cam-ope";
compat-hw-name = "qcom,ope";
num-ope = <1>;
status = "ok";
};
ope: qcom,ope@ac00000 {
cell-index = <0>;
compatible = "qcom,ope";
reg =
<0x42000 0x400>,
<0x42400 0x200>,
<0x42600 0x200>,
<0x42800 0x4400>,
<0x46c00 0x190>,
<0x46d90 0x1270>;
reg-names =
"ope_cdm",
"ope_top",
"ope_qos",
"ope_pp",
"ope_bus_rd",
"ope_bus_wr";
reg-cam-base = <0x42000 0x42400 0x42600 0x42800 0x46c00 0x46d90>;
interrupts = <GIC_SPI 463 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "ope";
regulator-names = "camss-vdd";
camss-vdd-supply = <&gcc_camss_top_gdsc>;
clock-names =
"ope_ahb_clk_src",
"ope_ahb_clk",
"ope_clk_src",
"ope_clk";
clocks =
<&gcc GCC_CAMSS_OPE_AHB_CLK_SRC>,
<&gcc GCC_CAMSS_OPE_AHB_CLK>,
<&gcc GCC_CAMSS_OPE_CLK_SRC>,
<&gcc GCC_CAMSS_OPE_CLK>;
clock-rates =
<200000000 0 480000000 0>,
<400000000 0 600000000 0>;
clock-cntl-level = "svs", "turbo";
src-clock-name = "ope_clk_src";
status = "ok";
};

95
bindings/msm-cam-ppi.txt Executable file
Просмотреть файл

@ -0,0 +1,95 @@
* Qualcomm Technologies, Inc. MSM camera PPI
=======================
Required Node Structure
=======================
The camera PPI node must be described in First level of device nodes. The
first level describe the overall PPI node structure.
======================================
First Level Node - PPI device
======================================
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,ppi100".
- cell-index: ppi hardware core index
Usage: required
Value type: <u32>
Definition: Should specify the Hardware index id.
- reg
Usage: required
Value type: <u32>
Definition: offset and length of the register set
for the device for the ppi operating in
compatible mode.
- reg-names
Usage: required
Value type: <string>
Definition: Should specify relevant names to each
reg property defined.
- reg-cam-base
Usage: required
Value type: <string>
Definition: offset of PPI in camera hw block
- interrupts
Usage: required
Value type: <u32>
Definition: Interrupt associated with PPI HW.
- interrupt-names
Usage: required
Value type: <string>
Definition: Name of the interrupt.
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for PPI HW.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clock rates in Hz for PPI HW.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: All different clock level node can support.
- clocks
Usage: required
Value type: <phandle>
Definition: all clock phandle and source clocks.
- regulator-names
Usage: required
Value type: <string>
Definition: name of the voltage regulators required for the device.
- gdscr-supply
Usage: required
Value type: <phandle>
Definition: should contain gdsr regulator used for PPI clocks.
Example:
qcom,ppi0@5cb3000 {
cell-index = <0>;
compatible = "qcom,ppi100";
reg-names = "ppi0";
reg = <0x5cb3000 0x200>;
reg-cam-base = <0xb3000>;
interrupt-names = "ppi0";
interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
clocks = <&gcc GCC_CAMSS_CPHY_0_CLK>;
clock-names = "gcc_camss_cphy_0_clk";
clock-cntl-level = "svs";
clock-rates = <0>;
status = "ok";
};

132
bindings/msm-cam-sfe.txt Executable file
Просмотреть файл

@ -0,0 +1,132 @@
* Qualcomm Technologies, Inc. MSM Camera SFE
Camera SFE device provides the definitions for enabling
the SFE hardware. It also provides the functions for the client
to control the SFE hardware.
=======================
Required Node Structure
=======================
The SFE device is described in one level of the device node.
======================================
First Level Node - CAM SFE device
======================================
Required properties:
- cell-index
Usage: required
Value type: <u32>
Definition: Should specify the hardware index id.
- compatible
Usage: required
Value type: <string>
Definition: Should specify the compatibility string for matching the
driver. e.g. "qcom,sfe680".
- reg-names
Usage: required
Value type: <string>
Definition: Should specify the name of the register block.
- reg
Usage: required
Value type: <u32>
Definition: Register values.
- reg-cam-base
Usage: required
Value type: <u32>
Definition: List of bases.
- interrupt-names
Usage: Required
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: Required
Value type: <u32>
Definition: Interrupt associated with SFE HW.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for SFE HW.
- xxxx-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed in
"regulator-names".
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for SFE HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for SFE HW.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: All different clock level node can support.
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name.
- scl-clk-names
Usage: required
Value type: <string>
Definition: Source clock name for register write.
- clock-control-debugfs
Usage: optional
Value type: <string>
Definition: Enable/Disable clk rate control.
Example:
cam_sfe0: qcom,sfe0@ac9e000 {
cell-index = <0>;
compatible = "qcom,sfe680";
reg-names = "sfe0", "rt_wrapper";
reg = <0xac9e000 0x8000>,
<0xac62000 0x64000>;
reg-cam-base = <0x9e000 0x62000>;
interrupt-names = "sfe";
interrupts = <GIC_SPI 462 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss", "sfe0";
camss-supply = <&cam_cc_titan_top_gdsc>;
sfe0-supply = <&cam_cc_sfe_0_gdsc>;
clock-names =
"sfe_0_ahb",
"sfe_clk_src",
"sfe_clk";
clocks =
<&clock_camcc CAM_CC_SFE_0_FAST_AHB_CLK>,
<&clock_camcc CAM_CC_SFE_0_CLK_SRC>,
<&clock_camcc CAM_CC_SFE_0_CLK>;
clock-rates =
<100000000 432000000 0>,
<200000000 594000000 0>,
<300000000 675000000 0>,
<400000000 785000000 0>,
<400000000 785000000 0>;
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
"turbo";
src-clock-name = "sfe_clk_src";
scl-clk-names = "sfe_0_ahb";
clock-control-debugfs = "true";
status = "ok";
};

142
bindings/msm-cam-smmu.txt Executable file
Просмотреть файл

@ -0,0 +1,142 @@
* Qualcomm Technologies, Inc. MSM Camera SMMU
The MSM camera SMMU device provides SMMU context bank definitions
for all HW blocks that need to map IOVA to physical memory. These
definitions consist of various properties that define how the
IOVA address space is laid out for each HW block in the camera
subsystem.
=======================
Required Node Structure
=======================
The camera SMMU device must be described in three levels of device nodes. The
first level describes the overall SMMU device. Within it, second level nodes
describe individual context banks that map different stream ids. There can
also be second level nodes describing firmware device nodes. Each HW block
such as IFE, ICP maps into these second level device nodes. All context bank
specific properties that define how the IOVA is laid out is contained within
third level device nodes within the second level device nodes.
During the kernel initialization all the devices are probed recursively and
a device pointer is created for each context bank keeping track of the IOVA
mapping information.
Duplicate regions of the same type are not allowed within the same
context bank. All context banks must contain an IO region at the very least.
==================================
First Level Node - CAM SMMU device
==================================
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,msm-cam-smmu".
===================================================================
Second Level Node - CAM SMMU context bank device or firmware device
===================================================================
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,msm-cam-smmu-cb" or "qcom,msm-cam-smmu-fw-dev".
- memory-region
Usage: optional
Value type: <phandle>
Definition: Should specify the phandle of the memory region for firmware.
allocation
- iommus
Usage: required
Value type: <phandle u32 u32>
Definition: first cell is phandle of the iommu, second cell is stream id
and third cell is SMR mask.
- label
Usage: required
Value type: <string>
Definition: Should specify a string label to identify the context bank.
- qcom,secure-cb
Usage: optional
Value type: boolean
Definition: Specifies if the context bank is a secure context bank.
=============================================
Third Level Node - CAM SMMU memory map device
=============================================
- iova-region-name
Usage: required
Value type: <string>
Definition: Should specify a string label to identify the IOVA region.
- iova-region-start
Usage: required
Value type: <u32>
Definition: Should specify start IOVA for region.
- iova-region-len
Usage: required
Value type: <u32>
Definition: Should specify length for IOVA region.
- iova-region-id
Usage: required
Value type: <u32>
Definition: Should specify the numerical identifier for IOVA region.
Allowed values are: 0x00 to 0x03
- Firmware region: 0x00
- Shared region: 0x01
- Scratch region: 0x02
- IO region: 0x03
- iova-granularity
Usage: optional
Value type: <u32>
Definition: Should specify IOVA granularity for shared memory region.
Example:
qcom,cam_smmu {
compatible = "qcom,msm-cam-smmu";
msm_cam_smmu_icp {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&apps_smmu 0x1078>,
<&apps_smmu 0x1020>,
<&apps_smmu 0x1028>,
<&apps_smmu 0x1040>,
<&apps_smmu 0x1048>,
<&apps_smmu 0x1030>,
<&apps_smmu 0x1050>;
label = "icp";
icp_iova_mem_map: iova-mem-map {
iova-mem-region-firmware {
/* Firmware region is 5MB */
iova-region-name = "firmware";
iova-region-start = <0x0>;
iova-region-len = <0x500000>;
iova-region-id = <0x0>;
status = "ok";
};
iova-mem-region-shared {
/* Shared region is 100MB long */
iova-region-name = "shared";
iova-region-start = <0x7400000>;
iova-region-len = <0x6400000>;
iova-region-id = <0x1>;
iova-granularity = <0x15>;
status = "ok";
};
iova-mem-region-io {
/* IO region is approximately 3.5 GB */
iova-region-name = "io";
iova-region-start = <0xd800000>;
iova-region-len = <0xd2800000>;
iova-region-id = <0x3>;
status = "ok";
};
};
};
};

123
bindings/msm-cam-tfe-csid.txt Executable file
Просмотреть файл

@ -0,0 +1,123 @@
* Qualcomm Technologies, Inc. MSM Camera TFE CSID
Camera TFE CSID device provides the definitions for enabling
the TFE CSID hardware. It also provides the functions for the client
to control the TFE CSID hardware.
=======================
Required Node Structure
=======================
The TFE CSID device is described in one level of the device node.
======================================
First Level Node - CAM TFE CSID device
======================================
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,csid530"
- cell-index
Usage: required
Value type: <u32>
Definition: Should specify the hardware index id.
- reg-names
Usage: required
Value type: <string>
Definition: Should be "csid".
- reg
Usage: required
Value type: <u32>
Definition: Register values.
- interrupt-names
Usage: Required
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: Required
Value type: <u32>
Definition: Interrupt associated with TFE CSID HW.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for TFE CSID HW.
- xxxx-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed in
"regulator-names".
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for TFE CSID HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for TFE CSID HW.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: All different clock level node can support.
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name.
- clock-control-debugfs
Usage: optional
Value type: <string>
Definition: Enable/Disable clk rate control.
Example:
qcom,tfe_csid0@5c6e000 {
cell-index = <0>;
compatible = "qcom,csid530";
reg-names = reg-names = "csid", "top", "camnoc";
reg = <0x5c6e000 0x5000>,
<0x5c11000 0x1000>,
<0x5c13000 0x4000>;
interrupt-names = "csid0";
interrupts = <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_csid_clk_src",
"tfe_csid_clk",
"cphy_rx_clk_src",
"tfe_cphy_rx_clk",
"tfe_clk_src",
"tfe_clk",
"tfe_axi_clk";
clocks =
<&gcc GCC_CAMSS_TFE_0_CSID_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CSID_CLK>,
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_TFE_0_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CLK>,
<&gcc GCC_CAMSS_AXI_CLK>;
clock-rates =
<240000000 0 0 0 256000000 0 0>,
<384000000 0 0 0 460800000 0 0>,
<426400000 0 0 0 576000000 0 0>,
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "tfe_csid_clk_src";
clock-control-debugfs = "true";
status = "ok";
};

147
bindings/msm-cam-tfe.txt Executable file
Просмотреть файл

@ -0,0 +1,147 @@
* Qualcomm Technologies, Inc. MSM Camera TFE
Camera TFE device provides the definitions for enabling
the TFE hardware. It also provides the functions for the client
to control the TFE hardware.
=======================
Required Node Structure
=======================
The TFE device is described in one level of the device node.
======================================
First Level Node - CAM TFE device
======================================
Required properties:
- compatible
Usage: required
Value type: <string>
Definition: Should specify the compatibility string for matching the
driver. e.g. "qcom,tfe530"
- cell-index
Usage: required
Value type: <u32>
Definition: Should specify the hardware index id.
- reg-names
Usage: required
Value type: <string>
Definition: Should specify the name of the register block.
- reg
Usage: required
Value type: <u32>
Definition: Register values.
- interrupt-names
Usage: Required
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: Required
Value type: <u32>
Definition: Interrupt associated with TFE HW.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for TFE HW.
- xxxx-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed in
"regulator-names".
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for TFE HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for TFE HW.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name.
Optional properties:
- clock-names-option
Usage: optional
Value type: <string>
Definition: Optional clock names.
- clocks-option
Usage: required if clock-names-option defined
Value type: <phandle>
Definition: List of optinal clocks used for TFE HW.
- clock-rates-option
Usage: required if clock-names-option defined
Value type: <u32>
Definition: List of clocks rates for optional clocks.
- clock-control-debugfs
Usage: optional
Value type: <string>
Definition: Enable/Disable clk rate control.
- qcom,cam-cx-ipeak:
Usage: optional
Value type: <phandle bit>
phandle - phandle of CX Ipeak device node
bit - Every bit corresponds to a client of CX Ipeak
Definition: CX Ipeak is a mitigation scheme which throttles camera frequency
if all the clients are running at their respective threshold
frequencies to limit CX peak current.
driver in the relevant register.
- scl-clk-names:
Usage: optional
Value type: <string>
Definition: Scalable clock names to identify which clocks needs to update
along with source clock.
- cam_hw_pid:
Usage: optional
Value type: <u32>
Definition: HW unique Pid values
Example:
cam_tfe0: qcom,tfe0@5c6e000{
cell-index = <0>;
compatible = "qcom,tfe530";
reg-names = "tfe0";
reg = <0x5c6e000 0x5000>;
reg-cam-base = <0x6e000>;
interrupt-names = "tfe0";
interrupts = <GIC_SPI 211 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_clk_src",
"tfe_clk",
"tfe_axi_clk";
clocks =
<&gcc GCC_CAMSS_TFE_0_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CLK>,
<&gcc GCC_CAMSS_AXI_CLK>;
clock-rates =
<256000000 0 150000000>,
<460800000 0 200000000>,
<576000000 0 300000000>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "tfe_clk_src";
clock-control-debugfs = "true";
status = "ok";
};

126
bindings/msm-cam-tpg.txt Executable file
Просмотреть файл

@ -0,0 +1,126 @@
* Qualcomm Technologies, Inc. MSM Camera TPG
Camera TPG device provides the definitions for enabling
the TPG hardware. It also provides the functions for the client
to control the TPG hardware.
=======================
Required Node Structure
=======================
The TPG device is described in one level of the device node.
======================================
First Level Node - CAM TPG device
======================================
Required properties:
- cell-index
Usage: required
Value type: <u32>
Definition: Should specify the hardware index id.
- compatible
Usage: required
Value type: <string>
Definition: Should specify the compatibility string for matching the
driver. e.g. "qcom,tpg101", "qcom,tpg102", "qcom,tpgv1", "qcom,tpg103"
- reg-names
Usage: required
Value type: <string>
Definition: Should specify the name of the register block.
- reg
Usage: required
Value type: <u32>
Definition: Register values.
- reg-cam-base
Usage: required
Value type: <u32>
Definition: List of bases.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for TFE HW.
- xxxx-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed in
"regulator-names".
- interrupt-names
Usage: Required
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: Required
Value type: <u32>
Definition: Interrupt associated with TFE HW.
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for TFE HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for TFE HW.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
- clock-cntl-level
Usage: required
Value type: <string>
Definition: All different clock level node can support.
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name.
- clock-control-debugfs
Usage: optional
Value type: <string>
Definition: Enable/Disable clk rate control.
- scl-clk-names:
Usage: optional
Value type: <string>
Definition: Scalable clock names to identify which clocks needs to update
along with source clock.
Example:
cam_csiphy_tpg0: qcom,tpg0@acf6000 {
cell-index = <0>;
compatible = "qcom,tpg103";
reg-names = "tpg0", "cam_cpas_top";
reg = <0xacf6000 0x400>,
<0xac13000 0x1000>;
reg-cam-base = <0xf6000 0x13000>;
regulator-names = "camss";
camss-supply = <&cam_cc_titan_top_gdsc>;
interrupt-names = "tpg0";
interrupts = <GIC_SPI 413 IRQ_TYPE_EDGE_RISING>;
clock-names =
"cphy_rx_clk_src",
"csiphy0_clk",
"csi0phytimer_clk_src",
"csi0phytimer_clk";
clocks =
<&clock_camcc CAM_CC_CPHY_RX_CLK_SRC>,
<&clock_camcc CAM_CC_CSIPHY0_CLK>,
<&clock_camcc CAM_CC_CSI0PHYTIMER_CLK_SRC>,
<&clock_camcc CAM_CC_CSI0PHYTIMER_CLK>;
clock-rates =
<480000000 0 400000000 0>;
clock-cntl-level = "nominal";
src-clock-name = "csi0phytimer_clk_src";
status = "ok";
};

171
bindings/msm-cam-vfe.txt Executable file
Просмотреть файл

@ -0,0 +1,171 @@
* Qualcomm Technologies, Inc. MSM Camera VFE
Camera VFE device provides the definitions for enabling
the VFE hardware. It also provides the functions for the client
to control the VFE hardware.
=======================
Required Node Structure
=======================
The VFE device is described in one level of the device node.
======================================
First Level Node - CAM VFE device
======================================
Required properties:
- cell-index
Usage: required
Value type: <u32>
Definition: Should specify the hardware index id.
- compatible
Usage: required
Value type: <string>
Definition: Should specify the compatibility string for matching the
driver. e.g. "qcom,vfe680", "qcom,vfe580", "qcom,vfe480", "qcom,vfe175",
"qcom,vfe170", "qcom,vfe175_130", "qcom,vfe170_150", "qcom,vfe165_160",
"qcom,vfe-lite680", "qcom,vfe-lite580", "qcom,vfe-lite480",
"qcom,vfe-lite175", "qcom,vfe-lite175_130" or "qcom,vfe-lite170",
"qcom,vfe-lite165".
- reg-names
Usage: required
Value type: <string>
Definition: Should specify the name of the register block.
- reg
Usage: required
Value type: <u32>
Definition: Register values.
- reg-cam-base
Usage: required
Value type: <u32>
Definition: List of bases.
- interrupt-names
Usage: Required
Value type: <string>
Definition: Name of the interrupt.
- interrupts
Usage: Required
Value type: <u32>
Definition: Interrupt associated with VFE HW.
- regulator-names
Usage: required
Value type: <string>
Definition: Name of the regulator resources for VFE HW.
- xxxx-supply
Usage: required
Value type: <phandle>
Definition: Regulator reference corresponding to the names listed in
"regulator-names".
- clock-names
Usage: required
Value type: <string>
Definition: List of clock names required for VFE HW.
- clocks
Usage: required
Value type: <phandle>
Definition: List of clocks used for VFE HW.
- clock-rates
Usage: required
Value type: <u32>
Definition: List of clocks rates.
- src-clock-name
Usage: required
Value type: <string>
Definition: Source clock name.
Optional properties:
- clock-names-option
Usage: optional
Value type: <string>
Definition: Optional clock names.
- clocks-option
Usage: required if clock-names-option defined
Value type: <phandle>
Definition: List of optinal clocks used for VFE HW.
- clock-rates-option
Usage: required if clock-names-option defined
Value type: <u32>
Definition: List of clocks rates for optional clocks.
- clock-control-debugfs
Usage: optional
Value type: <string>
Definition: Enable/Disable clk rate control.
- qcom,cam-cx-ipeak:
Usage: optional
Value type: <phandle bit>
phandle - phandle of CX Ipeak device node
bit - Every bit corresponds to a client of CX Ipeak
Definition: CX Ipeak is a mitigation scheme which throttles camera frequency
if all the clients are running at their respective threshold
frequencies to limit CX peak current.
driver in the relevant register.
- scl-clk-names:
Usage: optional
Value type: <string>
Definition: Scalable clock names to identify which clocks needs to update
along with source clock.
- cam_hw_pid:
Usage: optional
Value type: <u32>
Definition: HW unique Pid values
Example:
cam_vfe0: qcom,ife0@ac62000 {
cell-index = <0>;
compatible = "qcom,vfe680";
reg-names = "ife", "cam_camnoc", "rt_wrapper";
reg = <0xac62000 0xF000>,
<0xac19000 0x9000>,
<0xac62000 0x64000>;
reg-cam-base = <0x62000 0x19000 0x62000>;
interrupt-names = "ife";
interrupts = <GIC_SPI 465 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss", "ife0";
camss-supply = <&cam_cc_titan_top_gdsc>;
ife0-supply = <&cam_cc_ife_0_gdsc>;
clock-names =
"ife_0_ahb_src",
"ife_0_ahb",
"ife_clk_src",
"ife_clk";
clocks =
<&clock_camcc CAM_CC_FAST_AHB_CLK_SRC>,
<&clock_camcc CAM_CC_IFE_0_FAST_AHB_CLK>,
<&clock_camcc CAM_CC_IFE_0_CLK_SRC>,
<&clock_camcc CAM_CC_IFE_0_CLK>;
clock-rates =
<100000000 0 432000000 0>,
<200000000 0 594000000 0>,
<300000000 0 675000000 0>,
<400000000 0 785000000 0>,
<400000000 0 785000000 0>;
clock-cntl-level = "lowsvs", "svs", "svs_l1", "nominal",
"turbo";
src-clock-name = "ife_clk_src";
scl-clk-names = "ife_0_ahb";
clock-control-debugfs = "true";
clock-names-option = "ife_dsp_clk";
clocks-option = <&clock_camcc CAM_CC_IFE_0_DSP_CLK>;
clock-rates-option = <594000000>;
ubwc-static-cfg = <0x1026 0x1036>;
cam_hw_pid = <16 28 20 8>;
status = "ok";
};

132
bindings/msm-camera-flash.txt Executable file
Просмотреть файл

@ -0,0 +1,132 @@
* Qualcomm Technologies, Inc. MSM FLASH
The MSM camera Flash driver provides the definitions for
enabling and disabling LED Torch/Flash by requesting it to
PMIC/I2C/GPIO based hardware. It provides the functions for
the Client to control the Flash hardware.
=======================================================
Required Node Structure
=======================================================
The Flash device is described in one level of the device node.
======================================
First Level Node - CAM FLASH device
======================================
- compatible
Usage: required
Value type: <string>
Definition: Should be "qcom,camera-flash".
- cell-index
Usage: required
Value type: <u32>
Definition: Should specify the hardware index id.
- reg
Usage: required
Value type: <u32>
Definition: Register values.
- flash-source
Usage: required
Value type: <phandle>
Definition: Should contain array of phandles to Flash source nodes.
- torch-source
Usage: required
Value type: <phandle>
Definition: Should contain array of phandles to torch source nodes.
- switch-source
Usage: Optional
Value type: <phandle>
Definition: Should contain phandle to switch source nodes.
- slave-id
Usage: optional
Value type: <u32>
Definition: should contain i2c slave address, device id address
and expected id read value.
- cci-master
Usage: optional
Value type: <u32>
Definition: should contain i2c master id to be used for this camera
flash.
- max-current
Usage: optional
Value type: <u32>
Definition: Max current in mA supported by flash
- max-duration
Usage: optional
Value type: <u32>
Definition: Max duration in ms flash can glow.
- wled-flash-support
Usage: optional
Value type: <boolean>
Definition: To identity wled flash hardware support.
- gpios
Usage: optional
Value type: <u32>
Definition: should specify the gpios to be used for the flash.
- gpio-req-tbl-num
Usage: optional
Value type: <u32>
Definition: should specify the gpio table index.
- gpio-req-tbl-flags
Usage: optional
Value type: <u32>
Definition: should specify the gpio functions.
- gpio-req-tbl-label
Usage: optional
Value type: <u32>
Definition: should specify the gpio labels.
- gpio-flash-reset
Usage: optional
Value type: <u32>
Definition: should contain index to gpio used by flash's "flash reset" pin.
- gpio-flash-en
Usage: optional
Value type: <u32>
Definition: should contain index to gpio used by flash's "flash enable" pin.
- gpio-flash-now
Usage: optional
Value type: <u32>
Definition: should contain index to gpio used by flash's "flash now" pin.
Example:
led_flash_rear: qcom,camera-flash0 {
reg = <0x00 0x00>;
cell-index = <0>;
compatible = "qcom,camera-flash";
flash-source = <&pmi8998_flash0 &pmi8998_flash1>;
torch-source = <&pmi8998_torch0 &pmi8998_torch1>;
switch-source = <&pmi8998_switch0>;
wled-flash-support;
qcom,slave-id = <0x00 0x00 0x0011>;
qcom,cci-master = <0>;
gpios = <&msmgpio 23 0>,
<&msmgpio 24 0>;
<&msmgpio 25 0>;
qcom,gpio-flash-reset = <0>;
qcom,gpio-flash-en = <0>;
qcom,gpio-flash-now = <1>;
qcom,gpio-req-tbl-num = <0 1>;
qcom,gpio-req-tbl-flags = <0 0>;
qcom,gpio-req-tbl-label = "FLASH_EN",
"FLASH_NOW";
qcom,max-current = <1500>;
qcom,max-duration = <1200>;
};

18
bindings/msm-camera.txt Executable file
Просмотреть файл

@ -0,0 +1,18 @@
* Qualcomm Technologies, Inc. MSM Camera
Required properties:
- compatible :
- "qcom,cam-req-mgr", "qcom,cam-sync"
- qcom,sensor-manual-probe : specify if sensor probes at kernel boot time or user driven
Example:
qcom,cam-req-mgr {
compatible = "qcom,cam-req-mgr";
qcom,sensor-manual-probe;
};
qcom,cam-sync {
compatible = "qcom,cam-sync";
status = "ok";
};

420
blair-camera-sensor-cdp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,420 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
#include <dt-bindings/msm/msm-camera.h>
&soc {
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
gpios-shared = <407>;
pinctrl-names = "cam_res_mgr_default", "cam_res_mgr_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
eeprom_rear_aux2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
led_flash_rear_aux2: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
/* Rear*/
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vaf-supply = <&L5P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-load-current = <120000 80000 100000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Rear Aux2*/
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux2>;
eeprom-src = <&eeprom_rear_aux2>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};
&cam_cci1 {
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master= <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Front*/
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/*Rear Aux*/
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear_aux>;
led-flash-src = <&led_flash_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};

490
blair-camera-sensor-mtp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,490 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
#include <dt-bindings/msm/msm-camera.h>
&soc {
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
gpios-shared = <407>;
pinctrl-names = "cam_res_mgr_default", "cam_res_mgr_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
eeprom_rear_aux2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
led_flash_rear_aux2: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
/* Rear*/
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vaf-supply = <&L5P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-load-current = <120000 80000 100000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Rear Aux2*/
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux2>;
eeprom-src = <&eeprom_rear_aux2>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG0*/
qcom,cam-tpg0 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG1*/
qcom,cam-tpg1 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG2*/
qcom,cam-tpg2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <6>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};
&cam_cci1 {
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master= <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Front*/
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/*Rear Aux*/
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear_aux>;
led-flash-src = <&led_flash_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};

491
blair-camera-sensor-qrd.dtsi Executable file
Просмотреть файл

@ -0,0 +1,491 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
#include <dt-bindings/msm/msm-camera.h>
&soc {
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
gpios-shared = <407>;
pinctrl-names = "cam_res_mgr_default", "cam_res_mgr_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2880000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2880000 1056000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
eeprom_rear_aux2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
led_flash_rear_aux2: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
/* Rear*/
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
eeprom-src = <&eeprom_rear>;
led-flash-src = <&led_flash_rear>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vaf-supply = <&L5P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2880000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2880000 2800000 1056000 0>;
rgltr-load-current = <120000 80000 100000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Rear Aux2*/
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_rear_aux2>;
led-flash-src = <&led_flash_rear_aux2>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG0*/
qcom,cam-tpg0 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG1*/
qcom,cam-tpg1 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG2*/
qcom,cam-tpg2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <6>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};
&cam_cci1 {
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master= <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Front*/
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/*Rear Aux*/
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
led-flash-src = <&led_flash_rear_aux>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};

1067
blair-camera.dtsi Executable file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

33
holi-camera-pm6125-overlay.dtsi Executable file
Просмотреть файл

@ -0,0 +1,33 @@
&soc {
cam_csiphy0: qcom,csiphy0 {
mipi-csi-vdd1-supply = <&L7A>;
mipi-csi-vdd2-supply = <&L4A>;
rgltr-min-voltage = <0 880000 1200000>;
rgltr-max-voltage = <0 1050000 1300000>;
rgltr-load-current = <0 15900 8900>;
};
cam_csiphy1: qcom,csiphy1 {
mipi-csi-vdd1-supply = <&L7A>;
mipi-csi-vdd2-supply = <&L4A>;
rgltr-min-voltage = <0 880000 1200000>;
rgltr-max-voltage = <0 1050000 1300000>;
rgltr-load-current = <0 15900 8900>;
};
cam_csiphy2: qcom,csiphy2 {
mipi-csi-vdd1-supply = <&L7A>;
mipi-csi-vdd2-supply = <&L4A>;
rgltr-min-voltage = <0 880000 1200000>;
rgltr-max-voltage = <0 1050000 1300000>;
rgltr-load-current = <0 15900 8900>;
};
cam_csiphy3: qcom,csiphy3 {
mipi-csi-vdd1-supply = <&L7A>;
mipi-csi-vdd2-supply = <&L4A>;
rgltr-min-voltage = <0 880000 1200000>;
rgltr-max-voltage = <0 1050000 1300000>;
rgltr-load-current = <0 15900 8900>;
};
};

384
holi-camera-sensor-cdp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,384 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
&soc {
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
status = "ok";
};
led_flash_rear_aux2: qcom,camera-flash@3 {
cell-index = <3>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
eeprom_rear_aux2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/* Rear*/
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vaf-supply = <&L5P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-load-current = <120000 80000 100000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Rear Aux2*/
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux2>;
eeprom-src = <&eeprom_rear_aux2>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};
&cam_cci1 {
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master= <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Front*/
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/*Rear Aux*/
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux>;
actuator-src = <&actuator_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};

454
holi-camera-sensor-mtp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,454 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
&soc {
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
status = "ok";
};
led_flash_rear_aux2: qcom,camera-flash@3 {
cell-index = <3>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
eeprom_rear_aux2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/* Rear*/
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vaf-supply = <&L5P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-load-current = <120000 80000 100000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Rear Aux2*/
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux2>;
eeprom-src = <&eeprom_rear_aux2>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG0*/
qcom,cam-tpg0 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG1*/
qcom,cam-tpg1 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG2*/
qcom,cam-tpg2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};
&cam_cci1 {
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master= <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Front*/
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/*Rear Aux*/
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux>;
actuator-src = <&actuator_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};

Просмотреть файл

@ -0,0 +1,502 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
#include <dt-bindings/msm/msm-camera.h>
&soc {
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
gpios-shared = <407>;
pinctrl-names = "cam_res_mgr_default", "cam_res_mgr_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
eeprom_rear_aux2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
led_flash_rear_aux2: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
/* Rear*/
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vaf-supply = <&L5P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-load-current = <120000 80000 100000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Rear Aux2*/
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux2>;
eeprom-src = <&eeprom_rear_aux2>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG0*/
qcom,cam-tpg0 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG1*/
qcom,cam-tpg1 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG2*/
qcom,cam-tpg2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <6>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};
&cam_cci1 {
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master= <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Front*/
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/*Rear Aux*/
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear_aux>;
led-flash-src = <&led_flash_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};

Просмотреть файл

@ -0,0 +1,502 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
#include <dt-bindings/msm/msm-camera.h>
&soc {
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
gpios-shared = <407>;
pinctrl-names = "cam_res_mgr_default", "cam_res_mgr_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
eeprom_rear_aux2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
led_flash_rear_aux2: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
/* Rear*/
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vaf-supply = <&L5P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-load-current = <120000 80000 100000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Rear Aux2*/
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux2>;
eeprom-src = <&eeprom_rear_aux2>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG0*/
qcom,cam-tpg0 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG1*/
qcom,cam-tpg1 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG2*/
qcom,cam-tpg2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <6>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};
&cam_cci1 {
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master= <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Front*/
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/*Rear Aux*/
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear_aux>;
led-flash-src = <&led_flash_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};

384
holi-camera-sensor-qrd.dtsi Executable file
Просмотреть файл

@ -0,0 +1,384 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
&soc {
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
status = "ok";
};
led_flash_rear_aux2: qcom,camera-flash@3 {
cell-index = <3>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2880000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2880000 1056000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
eeprom_rear_aux2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/* Rear*/
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vaf-supply = <&L5P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2880000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2880000 2800000 1056000 0>;
rgltr-load-current = <120000 80000 100000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Rear Aux2*/
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux2>;
eeprom-src = <&eeprom_rear_aux2>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};
&cam_cci1 {
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Front*/
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/*Rear Aux*/
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux>;
actuator-src = <&actuator_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};

Просмотреть файл

@ -0,0 +1,502 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
#include <dt-bindings/msm/msm-camera.h>
&soc {
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
gpios-shared = <407>;
pinctrl-names = "cam_res_mgr_default", "cam_res_mgr_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
eeprom_rear_aux2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
led_flash_rear_aux2: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
cci-master = <1>;
flash-type = <CAM_FLASH_TYPE_I2C>;
cam_vio-supply = <&L6P>;
regulator-names = "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000>;
rgltr-max-voltage = <1800000>;
rgltr-load-current = <120000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_flash_hwen_active>;
pinctrl-1 = <&cam_flash_hwen_suspend>;
gpios = <&tlmm 52 0>;
gpio-custom1 = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CUSTOM_GPIO1";
status = "ok";
};
/* Rear*/
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vaf-supply = <&L5P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 2800000 1056000 0>;
rgltr-load-current = <120000 80000 100000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Rear Aux2*/
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux2>;
eeprom-src = <&eeprom_rear_aux2>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_rear1_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_rear1_reset_suspend>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG0*/
qcom,cam-tpg0 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG1*/
qcom,cam-tpg1 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*TPG2*/
qcom,cam-tpg2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <6>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};
&cam_cci1 {
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master= <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1200000 0 2800000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
/*Front*/
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/*Rear Aux*/
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear_aux>;
led-flash-src = <&led_flash_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_rear2_reset_active>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_rear2_reset_suspend>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <19200000>;
};
};

1058
holi-camera.dtsi Executable file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

674
kona-camera-sensor-cdp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,674 @@
#include <dt-bindings/clock/qcom,camcc-kona.h>
&soc {
led_flash_rear: qcom,camera-flash0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_triple_wide: qcom,actuator4 {
cell-index = <4>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_triple_tele: qcom,actuator5 {
cell-index = <5>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_triple_uw: qcom,actuator6 {
cell-index = <6>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1104000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1200000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_wide: qcom,eeprom4 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1104000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_tele: qcom,eeprom5 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1200000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_uw: qcom,eeprom6 {
cell-index = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-position = <1>;
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1104000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_rear_aux>;
led-flash-src = <&led_flash_rear_aux>;
cam_bob-supply = <&pm8150a_bob>;
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor4 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
led-flash-src = <&led_flash_triple_rear>;
eeprom-src = <&eeprom_triple_wide>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1104000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor5 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_bob-supply = <&pm8150a_bob>;
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor6 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};
&cam_cci1 {
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <0 2800000 1056000 0 2856000>;
rgltr-max-voltage = <0 3000000 1056000 0 3104000>;
rgltr-load-current = <0 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-position = <1>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_tof: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vdig-supply = <&vreg_tof>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <0 3600000 0>;
rgltr-max-voltage = <0 3600000 0>;
rgltr-load-current = <180000 120000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_3>;
gpios = <&tlmm 97 0>,
<&tlmm 109 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-position = <1>;
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
eeprom-src = <&eeprom_tof>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&pm8009_l7>;
cam_vdig-supply = <&vreg_tof>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 3600000 0>;
rgltr-max-voltage = <1800000 3600000 0>;
rgltr-load-current = <180000 120000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_3>;
gpios = <&tlmm 97 0>,
<&tlmm 109 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};

676
kona-camera-sensor-mtp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,676 @@
#include <dt-bindings/clock/qcom,camcc-kona.h>
&soc {
led_flash_rear: qcom,camera-flash0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_triple_wide: qcom,actuator4 {
cell-index = <4>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_triple_tele: qcom,actuator5 {
cell-index = <5>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1104000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1200000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_wide: qcom,eeprom4 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1104000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_tele: qcom,eeprom5 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1200000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1104000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_rear_aux>;
led-flash-src = <&led_flash_rear_aux>;
actuator-src = <&actuator_rear_aux>;
cam_bob-supply = <&pm8150a_bob>;
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor4 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
led-flash-src = <&led_flash_triple_rear>;
eeprom-src = <&eeprom_triple_wide>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1104000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor5 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_bob-supply = <&pm8150a_bob>;
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};
&cam_cci1 {
actuator_triple_uw: qcom,actuator6 {
cell-index = <6>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-position = <1>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_uw: qcom,eeprom6 {
cell-index = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-position = <1>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_tof: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vdig-supply = <&vreg_tof>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <0 3600000 0>;
rgltr-max-voltage = <0 3600000 0>;
rgltr-load-current = <180000 120000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_3>;
gpios = <&tlmm 97 0>,
<&tlmm 109 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-position = <1>;
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
eeprom-src = <&eeprom_tof>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&pm8009_l7>;
cam_vdig-supply = <&vreg_tof>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 3600000 0>;
rgltr-max-voltage = <1800000 3600000 0>;
rgltr-load-current = <180000 120000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_3>;
gpios = <&tlmm 97 0>,
<&tlmm 109 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor6 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};

674
kona-camera-sensor-qrd.dtsi Executable file
Просмотреть файл

@ -0,0 +1,674 @@
&soc {
led_flash_rear: qcom,camera-flash0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_triple_wide: qcom,actuator4 {
cell-index = <4>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_triple_tele: qcom,actuator5 {
cell-index = <5>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_triple_uw: qcom,actuator6 {
cell-index = <6>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1104000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1200000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_wide: qcom,eeprom4 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1104000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_tele: qcom,eeprom5 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1200000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_uw: qcom,eeprom6 {
cell-index = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-position = <1>;
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1104000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_rear_aux>;
led-flash-src = <&led_flash_rear_aux>;
actuator-src = <&actuator_rear_aux>;
cam_bob-supply = <&pm8150a_bob>;
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor4 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
led-flash-src = <&led_flash_triple_rear>;
eeprom-src = <&eeprom_triple_wide>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1104000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor5 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_bob-supply = <&pm8150a_bob>;
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor6 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};
&cam_cci1 {
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-position = <1>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_tof: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vdig-supply = <&vreg_tof>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <0 3600000 0>;
rgltr-max-voltage = <0 3600000 0>;
rgltr-load-current = <180000 120000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_3>;
gpios = <&tlmm 97 0>,
<&tlmm 109 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-position = <1>;
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3960000>;
rgltr-load-current = <120000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
eeprom-src = <&eeprom_tof>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&pm8009_l7>;
cam_vdig-supply = <&vreg_tof>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 3600000 0>;
rgltr-max-voltage = <1800000 3600000 0>;
rgltr-load-current = <180000 120000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_3>;
gpios = <&tlmm 97 0>,
<&tlmm 109 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};

687
kona-camera-sensor-xr.dtsi Executable file
Просмотреть файл

@ -0,0 +1,687 @@
#include <dt-bindings/clock/qcom,camcc-kona.h>
&soc {
led_flash_rear: qcom,camera-flash0 {
cell-index = <0>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_rear_aux: qcom,camera-flash1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
shared-gpios = <84 83 82 114 145>;
pinctrl-names = "cam_res_mgr_default", "cam_res_mgr_suspend";
pinctrl-0 = <&cam_sensor_6dof_vana_active
&cam_sensor_6dof_vdig_active
&cam_sensor_6dof_vio_active
&cam_sensor_active_6
&cam_sensor_et_vio_active>;
pinctrl-1 = <&cam_sensor_6dof_vana_suspend
&cam_sensor_6dof_vdig_suspend
&cam_sensor_6dof_vio_suspend
&cam_sensor_suspend_6
&cam_sensor_et_vio_suspend>;
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_rear_aux: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_triple_wide: qcom,actuator4 {
cell-index = <4>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
actuator_triple_tele: qcom,actuator5 {
cell-index = <5>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1104000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "disabled";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1200000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <1>;
status = "disabled";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_wide: qcom,eeprom4 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l5>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1104000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "disabled";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_tele: qcom,eeprom5 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1200000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "disabled";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* RGB Left (Master) */
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l2>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3960000>;
rgltr-load-current = <600000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rgbleft>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rgbleft>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>,
<&tlmm 117 0>,
<&tlmm 116 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-vio = <3>;
gpio-vdig = <4>;
gpio-req-tbl-num = <0 1 2 3 4>;
gpio-req-tbl-flags = <1 0 0 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_VANA2",
"CAM_VIO2",
"CAM_VDIG2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* RGB Right(Slave) */
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l2>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3960000>;
rgltr-load-current = <600000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rgbright>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rgbright>;
gpios = <&tlmm 97 0>,
<&tlmm 109 0>,
<&tlmm 117 0>,
<&tlmm 116 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-vio = <3>;
gpio-vdig = <4>;
gpio-req-tbl-num = <0 1 2 3 4>;
gpio-req-tbl-flags = <1 0 0 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3",
"CAM_VANA3",
"CAM_VIO3",
"CAM_VDIG3";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* 6DOF Left (Slave) */
qcom,cam-sensor4 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l2>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3960000>;
rgltr-load-current = <6000000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_6dofright>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_6dofright>;
gpios = <&tlmm 98 0>,
<&tlmm 131 0>,
<&tlmm 84 0>,
<&tlmm 83 0>,
<&tlmm 82 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-vio = <3>;
gpio-vdig = <4>;
gpio-req-tbl-num = <0 1 2 3 4>;
gpio-req-tbl-flags = <1 0 0 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4",
"CAM_VANA4",
"CAM_VIO4",
"CAM_VDIG4";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* 6DOF Right (Master) */
qcom,cam-sensor5 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_bob-supply = <&pm8150a_bob>;
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3960000>;
rgltr-load-current = <6000000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_6dofleft>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_6dofleft>;
gpios = <&tlmm 99 0>,
<&tlmm 130 0>,
<&tlmm 84 0>,
<&tlmm 83 0>,
<&tlmm 82 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-vio = <3>;
gpio-vdig = <4>;
gpio-req-tbl-num = <0 1 2 3 4>;
gpio-req-tbl-flags = <1 0 0 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5",
"CAM_VANA5",
"CAM_VIO5",
"CAM_VDIG5";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};
&cam_cci1 {
actuator_triple_uw: qcom,actuator6 {
cell-index = <6>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2856000>;
rgltr-max-voltage = <3104000>;
rgltr-load-current = <100000>;
};
eeprom_front: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-position = <1>;
sensor-mode = <0>;
cci-master = <0>;
status = "disabled";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_uw: qcom,eeprom6 {
cell-index = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l3>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&pm8150a_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2856000>;
rgltr-max-voltage = <1800000 3000000 1056000 0 3104000>;
rgltr-load-current = <120000 80000 1200000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 96 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-position = <1>;
sensor-mode = <0>;
cci-master = <0>;
status = "disabled";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_tof: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8009_l7>;
cam_vdig-supply = <&vreg_tof>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <0 3600000 0>;
rgltr-max-voltage = <0 3600000 0>;
rgltr-load-current = <180000 120000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_3>;
gpios = <&tlmm 97 0>,
<&tlmm 109 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-position = <1>;
sensor-mode = <0>;
cci-master = <1>;
status = "disabled";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* ET LEFT (Master) */
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&pm8009_l7>;
cam_bob-supply = <&pm8150a_bob>;
cam_vana-supply = <&pm8009_l6>;
cam_vdig-supply = <&pm8009_l1>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1104000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1104000 0 3960000>;
rgltr-load-current = <600000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_etleft>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_etleft>;
gpios = <&tlmm 94 0>,
<&tlmm 93 0>,
<&tlmm 114 0>,
<&tlmm 145 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-vio = <3>;
gpio-req-tbl-num = <0 1 2 3>;
gpio-req-tbl-flags = <1 0 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_VANA0",
"CAM_VIO0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* ET RIGHT (Left) */
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_bob-supply = <&pm8150a_bob>;
cam_vdig-supply = <&pm8009_l2>;
cam_vio-supply = <&pm8009_l7>;
cam_vana-supply = <&pm8009_l6>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1200000 0 3960000>;
rgltr-load-current = <600000 80000 1200000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_etright>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_etright>;
gpios = <&tlmm 95 0>,
<&tlmm 92 0>,
<&tlmm 114 0>,
<&tlmm 145 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-vio = <3>;
gpio-req-tbl-num = <0 1 2 3>;
gpio-req-tbl-flags = <1 0 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1",
"CAM_VANA1",
"CAM_VIO1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};

1742
kona-camera.dtsi Executable file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

421
lagoon-camera-sensor-cdp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,421 @@
#include <dt-bindings/clock/qcom,camcc-lagoon.h>
&soc {
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
reg = <0x04 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
reg = <0x05 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
reg = <0x06 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_triple_rear: qcom,actuator@4 {
cell-index = <4>;
reg = <0x4>;
compatible = "qcom,actuator";
cci-device = <0>;
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
actuator_triple_rear_aux: qcom,actuator@5 {
cell-index = <5>;
reg = <0x5>;
compatible = "qcom,actuator";
cci-device = <0>;
cci-master = <1>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_triple_rear: qcom,eeprom@4 {
cell-index = <4>;
reg = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2904000 1104000 0 2800000>;
rgltr-max-voltage = <1800000 2904000 1104000 0 2800000>;
rgltr-load-current = <0 80000 105000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>,
<&tlmm 50 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4",
"CAM_VANA4";
sensor-mode = <0>;
cci-device = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_rear_aux: qcom,eeprom@5 {
cell-index = <5>;
reg = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-load-current = <0 2000000 105000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
sensor-mode = <0>;
cci-device = <0>;
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@4 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
reg = <0x4>;
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_triple_rear>;
actuator-src = <&actuator_triple_rear>;
eeprom-src = <&eeprom_triple_rear>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_v_custom1-supply = <&S2A>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_v_custom1";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2904000 1104000 0 2096000>;
rgltr-max-voltage = <1800000 2904000 1104000 0 2096000>;
rgltr-load-current = <0 80000 105000 0 80000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>,
<&tlmm 50 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4",
"CAM_VANA4";
sensor-mode = <0>;
cci-device = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@5 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
reg = <0x5>;
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_triple_rear_aux>;
actuator-src = <&actuator_triple_rear_aux>;
eeprom-src = <&eeprom_triple_rear_aux>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 2000000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
sensor-mode = <0>;
cci-device = <0>;
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};
&cam_cci1 {
actuator_triple_rear_aux2: qcom,actuator@6 {
cell-index = <6>;
reg = <0x6>;
compatible = "qcom,actuator";
cci-device = <1>;
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_front: qcom,eeprom@2 {
cell-index = <2>;
reg = <0x2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_front>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_front>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-position = <1>;
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_rear_aux2: qcom,eeprom@6 {
cell-index = <6>;
reg = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-load-current = <0 80000 105000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rear_aux2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rear_aux2>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
reg = <0x02>;
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_front>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_front>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@6 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
reg = <0x06>;
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_triple_rear_aux2>;
actuator-src = <&actuator_triple_rear_aux2>;
eeprom-src = <&eeprom_triple_rear_aux2>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rear_aux2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rear_aux2>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK6",
"CAM_RESET6";
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};

421
lagoon-camera-sensor-mtp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,421 @@
#include <dt-bindings/clock/qcom,camcc-lagoon.h>
&soc {
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
reg = <0x04 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
reg = <0x05 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
reg = <0x06 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm6150l_flash0 &pm6150l_flash1>;
torch-source = <&pm6150l_torch0 &pm6150l_torch1>;
switch-source = <&pm6150l_switch2>;
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_triple_rear: qcom,actuator@4 {
cell-index = <4>;
reg = <0x4>;
compatible = "qcom,actuator";
cci-device = <0>;
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
actuator_triple_rear_aux: qcom,actuator@5 {
cell-index = <5>;
reg = <0x5>;
compatible = "qcom,actuator";
cci-device = <0>;
cci-master = <1>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_triple_rear: qcom,eeprom@4 {
cell-index = <4>;
reg = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2904000 1104000 0 2800000>;
rgltr-max-voltage = <1800000 2904000 1104000 0 2800000>;
rgltr-load-current = <0 80000 105000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>,
<&tlmm 50 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4",
"CAM_VANA4";
sensor-mode = <0>;
cci-device = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_rear_aux: qcom,eeprom@5 {
cell-index = <5>;
reg = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-load-current = <0 2000000 105000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
sensor-mode = <0>;
cci-device = <0>;
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@4 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
reg = <0x4>;
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_triple_rear>;
actuator-src = <&actuator_triple_rear>;
eeprom-src = <&eeprom_triple_rear>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_v_custom1-supply = <&S2A>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_v_custom1";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2904000 1104000 0 2096000>;
rgltr-max-voltage = <1800000 2904000 1104000 0 2096000>;
rgltr-load-current = <0 80000 105000 0 80000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 29 0>,
<&tlmm 34 0>,
<&tlmm 50 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4",
"CAM_VANA4";
sensor-mode = <0>;
cci-device = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@5 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
reg = <0x5>;
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_triple_rear_aux>;
actuator-src = <&actuator_triple_rear_aux>;
eeprom-src = <&eeprom_triple_rear_aux>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 2000000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 30 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
sensor-mode = <0>;
cci-device = <0>;
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};
&cam_cci1 {
actuator_triple_rear_aux2: qcom,actuator@6 {
cell-index = <6>;
reg = <0x6>;
compatible = "qcom,actuator";
cci-device = <1>;
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_front: qcom,eeprom@2 {
cell-index = <2>;
reg = <0x2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_front>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_front>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-position = <1>;
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_rear_aux2: qcom,eeprom@6 {
cell-index = <6>;
reg = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-load-current = <0 80000 105000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rear_aux2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rear_aux2>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
reg = <0x02>;
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_front>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_front>;
gpios = <&tlmm 32 0>,
<&tlmm 37 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@6 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
reg = <0x06>;
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_triple_rear_aux2>;
actuator-src = <&actuator_triple_rear_aux2>;
eeprom-src = <&eeprom_triple_rear_aux2>;
cam_vio-supply = <&L6P>;
cam_vana-supply = <&L7P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rear_aux2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rear_aux2>;
gpios = <&tlmm 31 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK6",
"CAM_RESET6";
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};

1478
lagoon-camera.dtsi Executable file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

746
lahaina-camera-sensor-cdp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,746 @@
#include <dt-bindings/clock/qcom,camcc-lahaina.h>
&soc {
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
ois0: qcom,ois0 {
cell-index = <0>;
compatible = "qcom,ois";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
actuator_triple_tele: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
actuator_triple_wide: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_tele: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_v_custom1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l2>;
cam_v_custom2-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig", "cam_v_custom2", "cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 950000 1000000 0
2700000>;
rgltr-max-voltage = <1800000 2900000 1900000 1150000 1200000 0
3000000>;
rgltr-load-current = <15000 52000 72000 140000 250000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_triple_wide: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_vana1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vana1",
"cam_vdig", "cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 1000000 0 2700000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3000000>;
rgltr-load-current = <5000 68000 74000 805000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 16 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_tof2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8350_s12>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l6>;
cam_v_custom1-supply = <&pm8008j_l7>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1170000 0 2800000 3000000>;
rgltr-max-voltage = <1800000 2040000 0 2800000 3600000>;
rgltr-load-current = <200000 680000 0 50000 29000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_ext_rgb0: qcom,eeprom7 {
cell-index = <8>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <10000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3
&cam_sensor_active_ext_regs0>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3
&cam_sensor_suspend_ext_regs0>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>,
<&tlmm 28 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3",
"CAM_EXT_REGS0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor0 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <10000 52000 140000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor1 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
eeprom-src = <&eeprom_triple_wide>;
led-flash-src = <&led_flash_triple_rear>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_v_custom1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig","cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 1000000 0 3200000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3960000>;
rgltr-load-current = <5000 68000 74000 805000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 16 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor3 {
cell-index = <7>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
eeprom-src = <&eeprom_tof2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8350_s12>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l6>;
cam_v_custom1-supply = <&pm8008j_l7>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1170000 0 2800000 3000000>;
rgltr-max-voltage = <1800000 2040000 0 2800000 3600000>;
rgltr-load-current = <200000 680000 0 50000 29000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor6 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
ois-src = <&ois0>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_v_custom1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l2>;
cam_v_custom2-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig", "cam_v_custom2","cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 950000 1000000 0
3200000>;
rgltr-max-voltage = <1800000 2900000 1900000 1150000 1200000 0
3960000>;
rgltr-load-current = <15000 52000 72000 140000 250000 0
2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor7 {
cell-index = <8>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_ext_rgb0>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <10000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3
&cam_sensor_active_ext_regs0>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3
&cam_sensor_suspend_ext_regs0>;
gpios = <&tlmm 103 0>,
<&tlmm 117 0>,
<&tlmm 28 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3",
"CAM_EXT_REGS0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};
&cam_cci1 {
actuator_triple_uw: qcom,actuator2 {
cell-index = <2>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_uw: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 2700000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3000000>;
rgltr-load-current = <3000 52000 257000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 106 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_tof1: qcom,eeprom4 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <185000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4>;
gpios = <&tlmm 104 0>,
<&tlmm 116 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_front: qcom,eeprom5 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008j_l5>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0>;
rgltr-max-voltage = <1800000 2900000 1150000 0>;
rgltr-load-current = <5000 35000 301000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_ext_rgb1: qcom,eeprom8 {
cell-index = <9>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <10000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4
&cam_sensor_active_ext_regs1>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4
&cam_sensor_suspend_ext_regs1>;
gpios = <&tlmm 104 0>,
<&tlmm 116 0>,
<&tlmm 29 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4",
"CAM_EXT_REGS1";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <3000 52000 257000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 106 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor4 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
eeprom-src = <&eeprom_tof1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <185000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4>;
gpios = <&tlmm 104 0>,
<&tlmm 116 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor5 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008j_l5>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <5000 35000 301000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor8 {
cell-index = <9>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_ext_rgb1>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <10000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4
&cam_sensor_active_ext_regs1>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4
&cam_sensor_suspend_ext_regs1>;
gpios = <&tlmm 104 0>,
<&tlmm 116 0>,
<&tlmm 29 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4",
"CAM_EXT_REGS1";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};

176
lahaina-camera-sensor-hdk.dtsi Executable file
Просмотреть файл

@ -0,0 +1,176 @@
&cam_cci0 {
/delete-node/ qcom,cam-sensor0;
/delete-node/ qcom,cam-sensor1;
qcom,cam-sensor0 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <0>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1000000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <10000 52000 140000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor1 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <0>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
eeprom-src = <&eeprom_triple_wide>;
led-flash-src = <&led_flash_triple_rear>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_v_custom1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig","cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 1050000 0 3200000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3960000>;
rgltr-load-current = <5000 68000 74000 805000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 16 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};
&cam_cci1 {
/delete-node/ qcom,cam-sensor2;
/delete-node/ qcom,cam-sensor5;
qcom,cam-sensor2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <0>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1000000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <3000 52000 257000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 106 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor5 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <0>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008j_l5>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1000000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <5000 35000 301000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};

77
lahaina-camera-sensor-hhg.dtsi Executable file
Просмотреть файл

@ -0,0 +1,77 @@
&cam_cci1 {
/delete-node/ qcom,cam-sensor5;
qcom,eeprom5 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008j_l5>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1100000 0>;
rgltr-max-voltage = <1800000 2800000 1150000 0>;
rgltr-load-current = <5000 35000 301000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
};
qcom,cam-sensor5 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008j_l5>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1100000 0 3200000>;
rgltr-max-voltage = <1800000 2800000 1150000 0 3960000>;
rgltr-load-current = <5000 35000 301000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
};
};

824
lahaina-camera-sensor-mtp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,824 @@
#include <dt-bindings/clock/qcom,camcc-lahaina.h>
&soc {
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
ois0: qcom,ois0 {
cell-index = <0>;
compatible = "qcom,ois";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
actuator_triple_tele: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
actuator_triple_wide: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_tele: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_v_custom1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l2>;
cam_v_custom2-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig", "cam_v_custom2", "cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 950000 1000000 0
2700000>;
rgltr-max-voltage = <1800000 2900000 1900000 1150000 1200000 0
3000000>;
rgltr-load-current = <15000 52000 72000 140000 250000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_triple_wide: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_vana1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vana1",
"cam_vdig", "cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 1000000 0 2700000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3000000>;
rgltr-load-current = <5000 68000 74000 805000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 16 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_tof2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8350_s12>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l6>;
cam_v_custom1-supply = <&pm8008j_l7>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1170000 0 2800000 3000000>;
rgltr-max-voltage = <1800000 2040000 0 2800000 3600000>;
rgltr-load-current = <200000 680000 0 50000 29000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_ext_rgb0: qcom,eeprom7 {
cell-index = <8>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <10000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3
&cam_sensor_active_ext_regs0>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3
&cam_sensor_suspend_ext_regs0>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>,
<&tlmm 28 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3",
"CAM_EXT_REGS0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom9: qcom,eeprom9 {
cell-index = <7>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L4I>;
cam_v_custom1-supply = <&L5I>;
cam_vdig-supply = <&L1I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig", "cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 1000000 0 2700000>;
rgltr-max-voltage = <1800000 2900000 1900000 1200000 0 3000000>;
rgltr-load-current = <15000 52000 72000 140000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor0 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <10000 52000 140000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor1 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
eeprom-src = <&eeprom_triple_wide>;
led-flash-src = <&led_flash_triple_rear>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_v_custom1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig","cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 1000000 0 3200000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3960000>;
rgltr-load-current = <5000 68000 74000 805000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 16 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor3 {
cell-index = <7>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
eeprom-src = <&eeprom_tof2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8350_s12>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l6>;
cam_v_custom1-supply = <&pm8008j_l7>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1170000 0 2800000 3000000>;
rgltr-max-voltage = <1800000 2040000 0 2800000 3600000>;
rgltr-load-current = <200000 680000 0 50000 29000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor6 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
ois-src = <&ois0>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_v_custom1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l2>;
cam_v_custom2-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig", "cam_v_custom2","cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 950000 1000000 0
3200000>;
rgltr-max-voltage = <1800000 2900000 1900000 1150000 1200000 0
3960000>;
rgltr-load-current = <15000 52000 72000 140000 250000 0
2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor7 {
cell-index = <8>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_ext_rgb0>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <10000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3
&cam_sensor_active_ext_regs0>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3
&cam_sensor_suspend_ext_regs0>;
gpios = <&tlmm 103 0>,
<&tlmm 117 0>,
<&tlmm 28 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3",
"CAM_EXT_REGS0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor9 {
cell-index = <10>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
eeprom-src = <&eeprom9>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L4I>;
cam_v_custom1-supply = <&L5I>;
cam_vdig-supply = <&L1I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig", "cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 1000000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1900000 1200000 0 3960000>;
rgltr-load-current = <15000 52000 72000 140000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
};
&cam_cci1 {
actuator_triple_uw: qcom,actuator2 {
cell-index = <2>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_uw: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 2700000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3000000>;
rgltr-load-current = <3000 52000 257000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 106 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_tof1: qcom,eeprom4 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <185000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4>;
gpios = <&tlmm 104 0>,
<&tlmm 116 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_front: qcom,eeprom5 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008j_l5>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0>;
rgltr-max-voltage = <1800000 2900000 1150000 0>;
rgltr-load-current = <5000 35000 301000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_ext_rgb1: qcom,eeprom8 {
cell-index = <9>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <10000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4
&cam_sensor_active_ext_regs1>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4
&cam_sensor_suspend_ext_regs1>;
gpios = <&tlmm 104 0>,
<&tlmm 116 0>,
<&tlmm 29 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4",
"CAM_EXT_REGS1";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <3000 52000 257000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 106 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor4 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
eeprom-src = <&eeprom_tof1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <185000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4>;
gpios = <&tlmm 104 0>,
<&tlmm 116 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor5 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008j_l5>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <5000 35000 301000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor8 {
cell-index = <9>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_ext_rgb1>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <10000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4
&cam_sensor_active_ext_regs1>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4
&cam_sensor_suspend_ext_regs1>;
gpios = <&tlmm 104 0>,
<&tlmm 116 0>,
<&tlmm 29 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4",
"CAM_EXT_REGS1";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};

524
lahaina-camera-sensor-qrd.dtsi Executable file
Просмотреть файл

@ -0,0 +1,524 @@
#include <dt-bindings/clock/qcom,camcc-lahaina.h>
&soc {
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_triple_tele: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
actuator_triple_wide: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_tele: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1000000 0 2700000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3000000>;
rgltr-load-current = <10000 52000 140000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_triple_wide: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_vana1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vana1",
"cam_vdig", "cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 1050000 0 2700000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3000000>;
rgltr-load-current = <5000 68000 74000 805000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 16 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_tof2: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8350_s12>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l6>;
cam_v_custom1-supply = <&pm8008j_l7>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1170000 0 2800000 3000000>;
rgltr-max-voltage = <1800000 2040000 0 2800000 3600000>;
rgltr-load-current = <200000 680000 0 50000 29000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor0 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1000000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <10000 52000 140000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor1 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
eeprom-src = <&eeprom_triple_wide>;
led-flash-src = <&led_flash_triple_rear>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_v_custom1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig","cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 1050000 0 3200000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3960000>;
rgltr-load-current = <5000 68000 74000 805000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 16 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor3 {
cell-index = <7>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
eeprom-src = <&eeprom_tof2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8350_s12>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l6>;
cam_v_custom1-supply = <&pm8008j_l7>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1170000 0 2800000 3000000>;
rgltr-max-voltage = <1800000 2040000 0 2800000 3600000>;
rgltr-load-current = <200000 680000 0 50000 29000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};
&cam_cci1 {
actuator_triple_uw: qcom,actuator2 {
cell-index = <2>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_uw: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1000000 0 2700000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3000000>;
rgltr-load-current = <3000 52000 257000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 106 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_tof1: qcom,eeprom4 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <185000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4>;
gpios = <&tlmm 104 0>,
<&tlmm 116 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_front: qcom,eeprom5 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008j_l5>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1000000 0>;
rgltr-max-voltage = <1800000 2900000 1150000 0>;
rgltr-load-current = <5000 35000 301000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1000000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <3000 52000 257000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 106 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor4 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
eeprom-src = <&eeprom_tof1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <185000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4>;
gpios = <&tlmm 104 0>,
<&tlmm 116 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor5 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008j_l5>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1000000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <5000 35000 301000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <1>;
status = "ok";
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};

1935
lahaina-camera.dtsi Executable file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

293
lito-camera-sensor-cdp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,293 @@
#include <dt-bindings/clock/qcom,camcc-lito.h>
&soc {
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
reg = <0x00 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
reg = <0x01 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_rear: qcom,actuator@0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom@0 {
cell-index = <0>;
reg = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1104000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1104000 0 2800000>;
rgltr-load-current = <0 80000 105000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 13 0>,
<&tlmm 30 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom@1 {
cell-index = <1>;
reg = <0x1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&S8C>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1350000 0>;
rgltr-max-voltage = <1800000 2800000 1350000 0>;
rgltr-load-current = <0 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 14 0>,
<&tlmm 29 0>,
<&tlmm 71 0>;
gpio-reset = <1>;
gpio-vdig = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1",
"CAM_VDIG1";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <1>;
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
status="ok";
};
qcom,cam-sensor@0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
reg = <0x0>;
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1104000 0>;
rgltr-max-voltage = <1800000 2800000 1104000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 13 0>,
<&tlmm 30 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
reg = <0x1>;
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&S8C>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1350000 0>;
rgltr-max-voltage = <1800000 2800000 1350000 0>;
rgltr-load-current = <0 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 14 0>,
<&tlmm 29 0>,
<&tlmm 71 0>;
gpio-reset = <1>;
gpio-vdig = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1",
"CAM_VDIG1";
sensor-mode = <0>;
cci-master = <1>;
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
status = "ok";
clock-rates = <24000000>;
};
};
&cam_cci1 {
eeprom_front: qcom,eeprom@2 {
cell-index = <2>;
reg = <0x2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_front>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_front>;
gpios = <&tlmm 15 0>,
<&tlmm 32 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-position = <1>;
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
reg = <0x02>;
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_front>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_front>;
gpios = <&tlmm 15 0>,
<&tlmm 32 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};

293
lito-camera-sensor-mtp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,293 @@
#include <dt-bindings/clock/qcom,camcc-lito.h>
&soc {
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
reg = <0x00 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
reg = <0x01 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_rear: qcom,actuator@0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom@0 {
cell-index = <0>;
reg = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1104000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1104000 0 2800000>;
rgltr-load-current = <0 80000 105000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 13 0>,
<&tlmm 30 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom@1 {
cell-index = <1>;
reg = <0x1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&S8C>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1350000 0>;
rgltr-max-voltage = <1800000 2800000 1350000 0>;
rgltr-load-current = <0 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 14 0>,
<&tlmm 29 0>,
<&tlmm 71 0>;
gpio-reset = <1>;
gpio-vdig = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1",
"CAM_VDIG1";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <1>;
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
status="ok";
};
qcom,cam-sensor@0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
reg = <0x0>;
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1104000 0>;
rgltr-max-voltage = <1800000 2800000 1104000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 13 0>,
<&tlmm 30 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
reg = <0x1>;
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&S8C>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1350000 0>;
rgltr-max-voltage = <1800000 2800000 1350000 0>;
rgltr-load-current = <0 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 14 0>,
<&tlmm 29 0>,
<&tlmm 71 0>;
gpio-reset = <1>;
gpio-vdig = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1",
"CAM_VDIG1";
sensor-mode = <0>;
cci-master = <1>;
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
status = "ok";
clock-rates = <24000000>;
};
};
&cam_cci1 {
eeprom_front: qcom,eeprom@2 {
cell-index = <2>;
reg = <0x2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_front>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_front>;
gpios = <&tlmm 15 0>,
<&tlmm 32 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-position = <1>;
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
reg = <0x02>;
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_front>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_front>;
gpios = <&tlmm 15 0>,
<&tlmm 32 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};

672
lito-camera-sensor-qrd.dtsi Executable file
Просмотреть файл

@ -0,0 +1,672 @@
#include <dt-bindings/clock/qcom,camcc-lito.h>
&soc {
led_flash_rear: qcom,camera-flash@0 {
cell-index = <0>;
reg = <0x00 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
};
led_flash_rear_aux: qcom,camera-flash@1 {
cell-index = <1>;
reg = <0x01 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
};
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
reg = <0x04 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
reg = <0x05 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
reg = <0x06 0x00>;
compatible = "qcom,camera-flash";
flash-source = <&pm8150l_flash0 &pm8150l_flash1>;
torch-source = <&pm8150l_torch0 &pm8150l_torch1>;
switch-source = <&pm8150l_switch2>;
};
vreg_tof: regulator-dbb1 {
compatible = "regulator-fixed";
regulator-name = "vdd_tof";
regulator-min-microvolt = <3600000>;
regulator-max-microvolt = <3600000>;
gpio = <&pm8150l_gpios 2 GPIO_ACTIVE_HIGH>;
startup-delay-us = <1000>;
enable-active-high;
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_rear: qcom,actuator@0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
actuator_triple_rear: qcom,actuator@4 {
cell-index = <4>;
reg = <0x4>;
compatible = "qcom,actuator";
cci-device = <0>;
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
actuator_triple_rear_aux2: qcom,actuator@6 {
cell-index = <6>;
reg = <0x6>;
compatible = "qcom,actuator";
cci-device = <0>;
cci-master = <1>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom@0 {
cell-index = <0>;
reg = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1104000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1104000 0 2800000>;
rgltr-load-current = <0 80000 105000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 13 0>,
<&tlmm 30 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_rear_aux: qcom,eeprom@1 {
cell-index = <1>;
reg = <0x1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&S8C>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1350000 0>;
rgltr-max-voltage = <1800000 2800000 1350000 0>;
rgltr-load-current = <0 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 14 0>,
<&tlmm 29 0>,
<&tlmm 71 0>;
gpio-reset = <1>;
gpio-vdig = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1",
"CAM_VDIG1";
sensor-position = <0>;
sensor-mode = <0>;
cci-master = <1>;
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
status="ok";
};
eeprom_triple_rear: qcom,eeprom@4 {
cell-index = <4>;
reg = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1104000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1104000 0 2800000>;
rgltr-load-current = <0 80000 105000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 13 0>,
<&tlmm 30 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4";
sensor-mode = <0>;
cci-device = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_rear_aux2: qcom,eeprom@6 {
cell-index = <6>;
reg = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 2800000 1056000 0 2800000>;
rgltr-load-current = <0 80000 105000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rear_aux2>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rear_aux2>;
gpios = <&tlmm 25 0>,
<&tlmm 21 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK6",
"CAM_RESET6";
sensor-mode = <0>;
cci-device = <0>;
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
reg = <0x0>;
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
led-flash-src = <&led_flash_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1104000 0>;
rgltr-max-voltage = <1800000 2800000 1104000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 13 0>,
<&tlmm 30 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
reg = <0x1>;
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_rear_aux>;
eeprom-src = <&eeprom_rear_aux>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&S8C>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1350000 0>;
rgltr-max-voltage = <1800000 2800000 1350000 0>;
rgltr-load-current = <0 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rear_aux>;
gpios = <&tlmm 14 0>,
<&tlmm 29 0>,
<&tlmm 71 0>;
gpio-reset = <1>;
gpio-vdig = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1",
"CAM_VDIG1";
sensor-mode = <0>;
cci-master = <1>;
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
status = "ok";
clock-rates = <24000000>;
};
qcom,cam-sensor@4 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
reg = <0x4>;
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_triple_rear>;
actuator-src = <&actuator_triple_rear>;
eeprom-src = <&eeprom_triple_rear>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&titan_top_gdsc>;
cam_v_custom1-supply = <&L6P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_v_custom1";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1104000 0 1800000>;
rgltr-max-voltage = <1800000 2800000 1104000 0 1800000>;
rgltr-load-current = <0 80000 105000 0 80000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rear>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rear>;
gpios = <&tlmm 13 0>,
<&tlmm 30 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4";
sensor-mode = <0>;
cci-device = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@6 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
reg = <0x06>;
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_triple_rear_aux2>;
actuator-src = <&actuator_triple_rear_aux2>;
eeprom-src = <&eeprom_triple_rear_aux2>;
cam_vdig-supply = <&L1P>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rear_aux2>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rear_aux2>;
gpios = <&tlmm 25 0>,
<&tlmm 21 0>,
<&tlmm 51 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK6",
"CAM_RESET6",
"CAM_VANA6";
sensor-mode = <0>;
cci-device = <0>;
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};
&cam_cci1 {
actuator_triple_rear_aux: qcom,actuator@5 {
cell-index = <5>;
reg = <0x5>;
compatible = "qcom,actuator";
cci-device = <1>;
cci-master = <0>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000>;
rgltr-max-voltage = <2800000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_front: qcom,eeprom@2 {
cell-index = <2>;
reg = <0x2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_front>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_front>;
gpios = <&tlmm 15 0>,
<&tlmm 32 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-position = <1>;
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_triple_rear_aux: qcom,eeprom@5 {
cell-index = <5>;
reg = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L7P>;
cam_vana-supply = <&BOB>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&titan_top_gdsc>;
cam_vaf-supply = <&L5P>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 3008000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 4000000 1056000 0 2800000>;
rgltr-load-current = <0 2000000 105000 0 100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_triple_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_triple_rear_aux>;
gpios = <&tlmm 14 0>,
<&tlmm 29 0>,
<&tlmm 70 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5",
"CAM_VANA5";
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
reg = <0x02>;
csiphy-sd-index = <2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2800000 1056000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_front>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_front>;
gpios = <&tlmm 15 0>,
<&tlmm 32 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&L7P>;
cam_vdig-supply = <&vreg_tof>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 3600000 0>;
rgltr-max-voltage = <1800000 3600000 0>;
rgltr-load-current = <0 120000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_3>;
gpios = <&tlmm 16 0>,
<&tlmm 23 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
qcom,cam-sensor@5 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
reg = <0x5>;
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
led-flash-src = <&led_flash_triple_rear_aux>;
actuator-src = <&actuator_triple_rear_aux>;
eeprom-src = <&eeprom_triple_rear_aux>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&BOB>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 3008000 1056000 0>;
rgltr-max-voltage = <1800000 4000000 1056000 0>;
rgltr-load-current = <0 2000000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_triple_rear_aux>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_triple_rear_aux>;
gpios = <&tlmm 14 0>,
<&tlmm 29 0>,
<&tlmm 70 0>;
gpio-reset = <1>;
gpio-vana = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5",
"CAM_VANA5";
sensor-mode = <0>;
cci-device = <1>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};

1617
lito-camera.dtsi Executable file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

16
lito-v2-camera.dtsi Executable file
Просмотреть файл

@ -0,0 +1,16 @@
/* Override CSIPHY version */
&cam_csiphy0 {
compatible = "qcom,csiphy-v1.2.2.2", "qcom,csiphy";
};
&cam_csiphy1 {
compatible = "qcom,csiphy-v1.2.2.2", "qcom,csiphy";
};
&cam_csiphy2 {
compatible = "qcom,csiphy-v1.2.2.2", "qcom,csiphy";
};
&cam_csiphy3 {
compatible = "qcom,csiphy-v1.2.2.2", "qcom,csiphy";
};

179
monaco-camera-sensor-idp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,179 @@
#include <dt-bindings/clock/qcom,gcc-monaco.h>
&soc {
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_rear: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L7C>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <3000000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <100000>;
status = "ok";
};
eeprom_rear: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3C>;
cam_vana-supply = <&L5C>;
cam_vdig-supply = <&L1C>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <2500 50000 180000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
eeprom_front: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L4C>;
cam_vana-supply = <&L6C>;
cam_vdig-supply = <&L2C>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <3000 35000 80000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 33 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* Rear*/
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_rear>;
eeprom-src = <&eeprom_rear>;
cam_vio-supply = <&L3C>;
cam_vana-supply = <&L5C>;
cam_vdig-supply = <&L1C>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <2500 50000 180000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear0_reset_suspend>;
gpios = <&tlmm 32 0>,
<&tlmm 35 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/*Front*/
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L4C>;
cam_vana-supply = <&L6C>;
cam_vdig-supply = <&L2C>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <3000 35000 80000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_front0_reset_active>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_front0_reset_suspend>;
gpios = <&tlmm 33 0>,
<&tlmm 36 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};

782
monaco-camera.dtsi Executable file
Просмотреть файл

@ -0,0 +1,782 @@
#include <dt-bindings/msm/msm-camera.h>
&soc {
qcom,cam-req-mgr {
compatible = "qcom,cam-req-mgr";
status = "ok";
};
qcom,cam-sync {
compatible = "qcom,cam-sync";
status = "ok";
};
cam_csiphy0: qcom,csiphy0 {
cell-index = <0>;
compatible = "qcom,csiphy-v1.2.3", "qcom,csiphy";
reg = <0x05C52000 0x2000>;
reg-names = "csiphy";
reg-cam-base = <0x52000>;
interrupts = <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "csiphy";
regulator-names = "gdscr","mipi-csi-vdd1",
"mipi-csi-vdd2";
gdscr-supply = <&gcc_camss_top_gdsc>;
mipi-csi-vdd1-supply = <&L12A>;
mipi-csi-vdd2-supply = <&L9A>;
rgltr-cntrl-support;
rgltr-min-voltage = <0 904000 1232000>;
rgltr-max-voltage = <0 904000 1232000>;
rgltr-load-current = <0 126000 74000>;
clocks = <&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_CPHY_0_CLK>,
<&gcc GCC_CAMSS_CSI0PHYTIMER_CLK_SRC>,
<&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>;
clock-names = "cphy_rx_clk_src",
"csiphy0_clk",
"csi0phytimer_clk_src",
"csi0phytimer_clk";
src-clock-name = "csi0phytimer_clk_src";
clock-cntl-level = "lowsvs", "svs", "turbo";
clock-rates =
<19200000 0 19200000 0>,
<256000000 0 300000000 0>,
<384000000 0 300000000 0>;
status = "ok";
};
cam_csiphy1: qcom,csiphy1 {
cell-index = <1>;
compatible = "qcom,csiphy-v1.2.3", "qcom,csiphy";
reg = <0x05C54000 0x2000>;
reg-names = "csiphy";
reg-cam-base = <0x54000>;
interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "csiphy";
regulator-names = "gdscr","mipi-csi-vdd1",
"mipi-csi-vdd2";
gdscr-supply = <&gcc_camss_top_gdsc>;
mipi-csi-vdd1-supply = <&L12A>;
mipi-csi-vdd2-supply = <&L9A>;
rgltr-cntrl-support;
rgltr-min-voltage = <0 904000 1232000>;
rgltr-max-voltage = <0 904000 1232000>;
rgltr-load-current = <0 126000 74000>;
clocks = <&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_CPHY_1_CLK>,
<&gcc GCC_CAMSS_CSI1PHYTIMER_CLK_SRC>,
<&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>;
clock-names = "cphy_rx_clk_src",
"csiphy1_clk",
"csi1phytimer_clk_src",
"csi1phytimer_clk";
src-clock-name = "csi1phytimer_clk_src";
clock-cntl-level = "lowsvs", "svs", "turbo";
clock-rates =
<19200000 0 19200000 0>,
<256000000 0 300000000 0>,
<384000000 0 300000000 0>;
status = "ok";
};
cam_cci0: qcom,cci0 {
cell-index = <0>;
compatible = "qcom,cci", "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x05C1B000 0x1000>;
reg-names = "cci";
reg-cam-base = <0x1B000>;
interrupt-names = "cci";
interrupts = <GIC_SPI 206 IRQ_TYPE_EDGE_RISING>;
status = "ok";
gdscr-supply = <&gcc_camss_top_gdsc>;
regulator-names = "gdscr";
clocks = <&gcc GCC_CAMSS_CCI_0_CLK>,
<&gcc GCC_CAMSS_CCI_CLK_SRC>;
clock-names = "cci_0_clk",
"cci_0_clk_src";
src-clock-name = "cci_0_clk_src";
clock-cntl-level = "svs";
clock-rates = <0 37500000>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cci0_active &cci1_active>;
pinctrl-1 = <&cci0_suspend &cci1_suspend>;
gpios = <&tlmm 37 0>,
<&tlmm 38 0>,
<&tlmm 39 0>,
<&tlmm 40 0>;
gpio-req-tbl-num = <0 1 2 3>;
gpio-req-tbl-flags = <1 1 1 1>;
gpio-req-tbl-label = "CCI_I2C_DATA0",
"CCI_I2C_CLK0",
"CCI_I2C_DATA1",
"CCI_I2C_CLK1";
i2c_freq_100Khz_cci0: qcom,i2c_standard_mode {
hw-thigh = <201>;
hw-tlow = <174>;
hw-tsu-sto = <204>;
hw-tsu-sta = <231>;
hw-thd-dat = <22>;
hw-thd-sta = <162>;
hw-tbuf = <227>;
hw-scl-stretch-en = <0>;
hw-trdhld = <6>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
i2c_freq_400Khz_cci0: qcom,i2c_fast_mode {
hw-thigh = <38>;
hw-tlow = <56>;
hw-tsu-sto = <40>;
hw-tsu-sta = <40>;
hw-thd-dat = <22>;
hw-thd-sta = <35>;
hw-tbuf = <62>;
hw-scl-stretch-en = <0>;
hw-trdhld = <6>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
i2c_freq_custom_cci0: qcom,i2c_custom_mode {
hw-thigh = <38>;
hw-tlow = <56>;
hw-tsu-sto = <40>;
hw-tsu-sta = <40>;
hw-thd-dat = <22>;
hw-thd-sta = <35>;
hw-tbuf = <62>;
hw-scl-stretch-en = <1>;
hw-trdhld = <6>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
i2c_freq_1Mhz_cci0: qcom,i2c_fast_plus_mode {
hw-thigh = <16>;
hw-tlow = <22>;
hw-tsu-sto = <17>;
hw-tsu-sta = <18>;
hw-thd-dat = <16>;
hw-thd-sta = <15>;
hw-tbuf = <24>;
hw-scl-stretch-en = <0>;
hw-trdhld = <3>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
};
qcom,cam_smmu {
compatible = "qcom,msm-cam-smmu", "simple-bus";
status = "ok";
msm_cam_smmu_tfe {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&apps_smmu 0x400 0x000>;
qcom,iommu-faults = "non-fatal";
qcom,iommu-dma-addr-pool = <0x7400000 0xd8c00000>;
cam-smmu-label = "tfe";
tfe_iova_mem_map: iova-mem-map {
/* IO region is approximately 3.4 GB */
iova-mem-region-io {
iova-region-name = "io";
iova-region-start = <0x7400000>;
iova-region-len = <0xd8c00000>;
iova-region-id = <0x3>;
status = "ok";
};
};
};
msm_cam_smmu_ope {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&apps_smmu 0x820 0x000>,
<&apps_smmu 0x840 0x000>;
qcom,iommu-faults = "non-fatal";
multiple-client-devices;
qcom,iommu-dma-addr-pool = <0x7400000 0xd8c00000>;
cam-smmu-label = "ope", "ope-cdm";
ope_iova_mem_map: iova-mem-map {
/* IO region is approximately 3.4 GB */
iova-mem-region-io {
iova-region-name = "io";
iova-region-start = <0x7400000>;
iova-region-len = <0xd8c00000>;
iova-region-id = <0x3>;
status = "ok";
};
};
};
msm_cam_smmu_cpas_cdm {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&apps_smmu 0x800 0x000>;
cam-smmu-label = "cpas-cdm";
qcom,iommu-faults = "non-fatal";
qcom,iommu-dma-addr-pool = <0x7400000 0xd8c00000>;
cpas_cdm_iova_mem_map: iova-mem-map {
iova-mem-region-io {
/* IO region is approximately 3.4 GB */
iova-region-name = "io";
iova-region-start = <0x7400000>;
iova-region-len = <0xd8c00000>;
iova-region-id = <0x3>;
status = "ok";
};
};
};
msm_cam_smmu_secure {
compatible = "qcom,msm-cam-smmu-cb";
cam-smmu-label = "cam-secure";
qcom,secure-cb;
};
};
qcom,cam-cpas@5c11000 {
cell-index = <0>;
compatible = "qcom,cam-cpas", "simple-bus";
label = "cpas";
arch-compat = "cpas_top";
status = "ok";
reg-names = "cam_cpas_top", "cam_camnoc";
reg = <0x5c11000 0x1000>,
<0x5c13000 0x4000>;
reg-cam-base = <0x11000 0x13000>;
cam_hw_fuse = <CAM_CPAS_SECURE_CAMERA_ENABLE 0x01B401E4 100 CAM_CPAS_FEATURE_TYPE_ENABLE 0xFF>;
interrupt-names = "cpas_camnoc";
interrupts = <GIC_SPI 159 IRQ_TYPE_EDGE_RISING>;
camnoc-axi-min-ib-bw = <3000000000>;
regulator-names = "camss-vdd";
camss-vdd-supply = <&gcc_camss_top_gdsc>;
clock-names =
"gcc_camss_top_ahb_clk",
"gcc_camss_top_ahb_clk_src",
"gcc_camss_axi_clk",
"gcc_camss_axi_clk_src",
"gcc_camss_nrt_axi_clk",
"gcc_camss_rt_axi_clk";
clocks =
<&gcc GCC_CAMSS_TOP_AHB_CLK>,
<&gcc GCC_CAMSS_TOP_AHB_CLK_SRC>,
<&gcc GCC_CAMSS_AXI_CLK>,
<&gcc GCC_CAMSS_AXI_CLK_SRC>,
<&gcc GCC_CAMSS_NRT_AXI_CLK>,
<&gcc GCC_CAMSS_RT_AXI_CLK>;
src-clock-name = "gcc_camss_axi_clk_src";
clock-rates =
<0 0 0 0 0 0>,
<0 19200000 0 19200000 0 0>,
<0 80000000 0 150000000 0 0>,
<0 80000000 0 300000000 0 0>,
<0 80000000 0 300000000 0 0>;
clock-cntl-level = "suspend", "lowsvs", "svs", "nominal", "turbo";
qcom,cx-ipeak-gpu-limit = <921600000>;
control-camnoc-axi-clk;
camnoc-bus-width = <32>;
camnoc-axi-clk-bw-margin-perc = <20>;
interconnect-names = "cam_ahb";
interconnects =<&bimc MASTER_AMPSS_M0
&config_noc SLAVE_CAMERA_CFG>;
cam-ahb-num-cases = <7>;
cam-ahb-bw-KBps =
<0 0>, <0 133333>, <0 150000>, <0 150000>,
<0 300000>, <0 300000>, <0 300000>;
vdd-corners = <RPM_SMD_REGULATOR_LEVEL_NONE
RPM_SMD_REGULATOR_LEVEL_RETENTION
RPM_SMD_REGULATOR_LEVEL_RETENTION_PLUS
RPM_SMD_REGULATOR_LEVEL_MIN_SVS
RPM_SMD_REGULATOR_LEVEL_LOW_SVS
RPM_SMD_REGULATOR_LEVEL_SVS
RPM_SMD_REGULATOR_LEVEL_SVS_PLUS
RPM_SMD_REGULATOR_LEVEL_NOM
RPM_SMD_REGULATOR_LEVEL_NOM_PLUS
RPM_SMD_REGULATOR_LEVEL_TURBO
RPM_SMD_REGULATOR_LEVEL_TURBO_NO_CPR
RPM_SMD_REGULATOR_LEVEL_BINNING>;
vdd-corner-ahb-mapping = "suspend", "lowsvs", "lowsvs",
"lowsvs", "lowsvs", "svs", "svs_l1", "svs_l1",
"svs_l1", "nominal", "nominal", "nominal",
"turbo", "turbo";
client-id-based;
client-names =
"csiphy0", "csiphy1", "cci0",
"csid0", "csid1", "tfe0",
"tfe1", "ope0", "cam-cdm-intf0",
"cpas-cdm0", "ope-cdm0", "tpg0", "tpg1";
camera-bus-nodes {
level2-nodes {
level-index = <2>;
level2_rt0_rd_wr_sum: level2-rt0-rd-wr-sum {
cell-index = <0>;
node-name = "level2-rt0-rd-wr-sum";
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM>;
ib-bw-voting-needed;
qcom,axi-port-mnoc {
interconnect-names = "cam_hf_0";
interconnects =
<&mmrt_virt MASTER_CAMNOC_HF
&bimc SLAVE_EBI_CH0>;
};
};
level2_nrt0_rd_wr_sum: level2-nrt0-rd-wr-sum {
cell-index = <1>;
node-name = "level2-nrt0-rd-wr-sum";
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM>;
qcom,axi-port-mnoc {
interconnect-names = "cam_sf_0";
interconnects =
<&mmnrt_virt MASTER_CAMNOC_SF
&bimc SLAVE_EBI_CH0>;
};
};
};
level1-nodes {
level-index = <1>;
camnoc-max-needed;
level1_rt0_wr: level1-rt0-wr {
cell-index = <2>;
node-name = "level1-rt0-wr";
parent-node = <&level2_rt0_rd_wr_sum>;
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE>;
};
level1_nrt0_rd_wr: level1-nrt0-rd-wr {
cell-index = <3>;
node-name = "level1-nrt0-rd-wr";
parent-node = <&level2_nrt0_rd_wr_sum>;
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE>;
};
};
level0-nodes {
level-index = <0>;
ope0_all_wr: ope0-all-wr {
cell-index = <4>;
node-name = "ope0-all-wr";
client-name = "ope0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_WRITE>;
constituent-paths =
<CAM_CPAS_PATH_DATA_OPE_WR_VID
CAM_CPAS_PATH_DATA_OPE_WR_DISP
CAM_CPAS_PATH_DATA_OPE_WR_REF>;
parent-node = <&level1_nrt0_rd_wr>;
};
ope0_all_rd: ope0-all-rd {
cell-index = <5>;
node-name = "ope0-all-rd";
client-name = "ope0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_READ>;
constituent-paths =
<CAM_CPAS_PATH_DATA_OPE_RD_IN
CAM_CPAS_PATH_DATA_OPE_RD_REF>;
parent-node = <&level1_nrt0_rd_wr>;
};
tfe0_all_wr: tfe0-all-wr {
cell-index = <6>;
node-name = "tfe0-all-wr";
client-name = "tfe0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_WRITE>;
constituent-paths =
<CAM_CPAS_PATH_DATA_IFE_RDI0
CAM_CPAS_PATH_DATA_IFE_RDI1
CAM_CPAS_PATH_DATA_IFE_RDI2
CAM_CPAS_PATH_DATA_IFE_RDI3
CAM_CPAS_PATH_DATA_IFE_VID
CAM_CPAS_PATH_DATA_IFE_DISP
CAM_CPAS_PATH_DATA_IFE_STATS>;
parent-node = <&level1_rt0_wr>;
};
tfe1_all_wr: tfe1-all-wr {
cell-index = <7>;
node-name = "tfe1-all-wr";
client-name = "tfe1";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_WRITE>;
constituent-paths =
<CAM_CPAS_PATH_DATA_IFE_RDI0
CAM_CPAS_PATH_DATA_IFE_RDI1
CAM_CPAS_PATH_DATA_IFE_RDI2
CAM_CPAS_PATH_DATA_IFE_RDI3
CAM_CPAS_PATH_DATA_IFE_VID
CAM_CPAS_PATH_DATA_IFE_DISP
CAM_CPAS_PATH_DATA_IFE_STATS>;
parent-node = <&level1_rt0_wr>;
};
cpas_cdm0_all_rd: cpas-cdm0-all-rd {
cell-index = <9>;
node-name = "cpas-cdm0-all-rd";
client-name = "cpas-cdm0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_READ>;
parent-node = <&level1_nrt0_rd_wr>;
};
ope_cdm0_all_rd: ope-cdm0-all-rd {
cell-index = <10>;
node-name = "ope-cdm0-all-rd";
client-name = "ope-cdm0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_READ>;
parent-node = <&level1_nrt0_rd_wr>;
};
};
};
};
qcom,cam-cdm-intf {
compatible = "qcom,cam-cdm-intf";
cell-index = <0>;
label = "cam-cdm-intf";
num-hw-cdm = <2>;
cdm-client-names = "vfe";
status = "ok";
};
cam_cpas_cdm: qcom,cpas-cdm0@5c23000 {
cell-index = <0>;
compatible = "qcom,cam-cpas-cdm2_0";
label = "cpas-cdm";
reg = <0x5c23000 0x400>;
reg-names = "cpas-cdm0";
reg-cam-base = <0x23000>;
interrupts = <GIC_SPI 207 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "cpas-cdm0";
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names = "cam_cc_cpas_top_ahb_clk";
clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>;
clock-rates = <0>;
clock-cntl-level = "svs";
cdm-client-names = "tfe0", "tfe1";
config-fifo;
fifo-depths = <64 64 64 64>;
status = "ok";
};
cam_ope_cdm: qcom,ope-cdm0@5c42000 {
cell-index = <0>;
compatible = "qcom,cam-ope-cdm2_1";
label = "ope-cdm";
reg = <0x5c42000 0x400>;
reg-names = "ope-cdm0";
reg-cam-base = <0x42000>;
interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "ope-cdm0";
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"ope_ahb_clk",
"ope_clk_src",
"ope_clk";
clocks =
<&gcc GCC_CAMSS_OPE_AHB_CLK>,
<&gcc GCC_CAMSS_OPE_CLK_SRC>,
<&gcc GCC_CAMSS_OPE_CLK>;
clock-rates = <0 0 0>,
<0 0 0>,
<0 0 0>;
clock-cntl-level = "lowsvs", "svs", "turbo";
cdm-client-names = "ope";
config-fifo;
fifo-depths = <64 64 64 64>;
status = "ok";
};
qcom,cam-isp {
compatible = "qcom,cam-isp";
arch-compat = "tfe";
status = "ok";
};
cam_tfe_csid0: qcom,tfe_csid0@5c6e000 {
cell-index = <0>;
compatible = "qcom,csid530";
reg-names = "csid", "top", "camnoc";
reg = <0x5c6e000 0x1000>,
<0x5c11000 0x1000>,
<0x5c13000 0x4000>;
reg-cam-base = <0x6e000 0x11000 0x13000>;
interrupt-names = "csid0";
interrupts = <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_csid_clk_src",
"tfe_csid_clk",
"cphy_rx_clk_src",
"tfe_cphy_rx_clk",
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_0_CSID_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CSID_CLK>,
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_TFE_0_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CLK>;
clock-rates =
<19200000 0 19200000 0 19200000 0>,
<256000000 0 256000000 0 288000000 0>,
<384000000 0 384000000 0 576000000 0>,
<426400000 0 384000000 0 576000000 0>;
clock-cntl-level = "lowsvs", "svs", "nominal", "turbo";
src-clock-name = "tfe_csid_clk_src";
clock-control-debugfs = "true";
ppi-enable;
status = "ok";
};
cam_tfe0: qcom,tfe0@5c6e000 {
cell-index = <0>;
compatible = "qcom,tfe530";
reg-names = "tfe0";
reg = <0x5c6e000 0x5000>;
reg-cam-base = <0x6e000>;
interrupt-names = "tfe0";
interrupts = <GIC_SPI 211 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_0_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CLK>;
clock-rates =
<19200000 0>,
<288000000 0>,
<576000000 0>;
clock-cntl-level = "lowsvs", "svs", "turbo";
src-clock-name = "tfe_clk_src";
clock-control-debugfs = "true";
cam_hw_pid = <4>;
status = "ok";
};
cam_tfe_csid1: qcom,tfe_csid1@5c75000 {
cell-index = <1>;
compatible = "qcom,csid530";
reg-names = "csid", "top", "camnoc";
reg = <0x5c75000 0x1000>,
<0x5c11000 0x1000>,
<0x5c13000 0x4000>;
reg-cam-base = <0x75000 0x11000 0x13000>;
interrupt-names = "csid1";
interrupts = <GIC_SPI 212 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_csid_clk_src",
"tfe_csid_clk",
"cphy_rx_clk_src",
"tfe_cphy_rx_clk",
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_1_CSID_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CSID_CLK>,
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_TFE_1_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CLK>;
clock-rates =
<19200000 0 19200000 0 19200000 0>,
<256000000 0 256000000 0 288000000 0>,
<384000000 0 384000000 0 576000000 0>,
<426000000 0 384000000 0 576000000 0>;
clock-cntl-level = "lowsvs", "svs", "nominal", "turbo";
src-clock-name = "tfe_csid_clk_src";
clock-control-debugfs = "true";
ppi-enable;
status = "ok";
};
cam_tfe1: qcom,tfe1@5c75000 {
cell-index = <1>;
compatible = "qcom,tfe530";
reg-names = "tfe1";
reg = <0x5c75000 0x5000>;
reg-cam-base = <0x75000>;
interrupt-names = "tfe1";
interrupts = <GIC_SPI 213 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_1_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CLK>;
clock-rates =
<19200000 0>,
<288000000 0>,
<576000000 0>;
clock-cntl-level = "lowsvs", "svs", "turbo";
src-clock-name = "tfe_clk_src";
clock-control-debugfs = "true";
cam_hw_pid = <5>;
status = "ok";
};
cam_ppi0: qcom,ppi0@5cb3000 {
cell-index = <0>;
compatible = "qcom,ppi100";
reg-names = "ppi0";
reg = <0x5cb3000 0x200>;
reg-cam-base = <0xb3000>;
interrupt-names = "ppi0";
interrupts = <GIC_SPI 157 IRQ_TYPE_EDGE_RISING>;
clocks = <&gcc GCC_CAMSS_CPHY_0_CLK>;
clock-names = "gcc_camss_cphy_0_clk";
clock-cntl-level = "svs";
clock-rates = <0>;
status = "ok";
};
cam_ppi1: qcom,ppi1@5cb3200 {
cell-index = <1>;
compatible = "qcom,ppi100";
reg-names = "ppi1";
reg = <0x5cb3200 0x200>;
reg-cam-base = <0xb3200>;
interrupt-names = "ppi1";
interrupts = <GIC_SPI 158 IRQ_TYPE_EDGE_RISING>;
clocks = <&gcc GCC_CAMSS_CPHY_1_CLK>;
clock-names = "gcc_camss_cphy_1_clk";
clock-cntl-level = "svs";
clock-rates = <0>;
status = "ok";
};
cam_tfe_tpg0: qcom,tpg0@5c66000 {
cell-index = <0>;
compatible = "qcom,tpg101";
reg-names = "tpg0", "top";
reg = <0x5c66000 0x400>,
<0x5c11000 0x1000>;
reg-cam-base = <0x66000 0x11000>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"cphy_rx_clk_src",
"tfe_0_cphy_rx_clk",
"gcc_camss_cphy_0_clk";
clocks =
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_CPHY_0_CLK>;
clock-rates =
<19200000 0 0>,
<256000000 0 0>,
<384000000 0 0>;
clock-cntl-level = "lowsvs", "svs", "turbo";
src-clock-name = "cphy_rx_clk_src";
clock-control-debugfs = "false";
status = "ok";
};
cam_tfe_tpg1: qcom,tpg1@5c68000 {
cell-index = <1>;
compatible = "qcom,tpg101";
reg-names = "tpg1", "top";
reg = <0x5c68000 0x400>,
<0x5c11000 0x1000>;
reg-cam-base = <0x68000 0x11000>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"cphy_rx_clk_src",
"tfe_1_cphy_rx_clk",
"gcc_camss_cphy_1_clk";
clocks =
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_CPHY_1_CLK>;
clock-rates =
<19200000 0 0>,
<256000000 0 0>,
<384000000 0 0>;
clock-cntl-level = "lowsvs", "svs", "turbo";
src-clock-name = "cphy_rx_clk_src";
clock-control-debugfs = "false";
status = "ok";
};
qcom,cam-ope {
compatible = "qcom,cam-ope";
compat-hw-name = "qcom,ope";
num-ope = <1>;
status = "ok";
};
ope: qcom,ope@0x5c42000 {
cell-index = <0>;
compatible = "qcom,ope";
reg =
<0x5c42000 0x400>,
<0x5c42400 0x200>,
<0x5c42600 0x200>,
<0x5c42800 0x4400>,
<0x5c46c00 0x190>,
<0x5c46d90 0xA00>;
reg-names =
"ope_cdm",
"ope_top",
"ope_qos",
"ope_pp",
"ope_bus_rd",
"ope_bus_wr";
reg-cam-base = <0x42000 0x42400 0x42600 0x42800 0x46c00 0x46d90>;
interrupts = <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "ope";
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"ope_ahb_clk_src",
"ope_ahb_clk",
"ope_clk_src",
"ope_clk";
clocks =
<&gcc GCC_CAMSS_OPE_AHB_CLK_SRC>,
<&gcc GCC_CAMSS_OPE_AHB_CLK>,
<&gcc GCC_CAMSS_OPE_CLK_SRC>,
<&gcc GCC_CAMSS_OPE_CLK>;
clock-rates =
<19200000 0 19200000 0>,
<171428571 0 200000000 0>,
<240000000 0 465000000 0>,
<240000000 0 580000000 0>;
clock-cntl-level = "lowsvs", "svs", "nominal", "turbo";
src-clock-name = "ope_clk_src";
status = "ok";
};
};

63
qcs610-camera-sensor-idp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,63 @@
&soc {
camera_ldo: gpio-regulator@0 {
compatible = "regulator-fixed";
reg = <0x00 0x00>;
regulator-name = "camera_ldo";
regulator-min-microvolt = <1200000>;
regulator-max-microvolt = <1200000>;
regulator-enable-ramp-delay = <135>;
enable-active-high;
gpio = <&pm6150l_gpios 3 0>;
pinctrl-names = "default";
pinctrl-0 = <&cam_sensor_dvdd_en>;
vin-supply = <&pm6150l_s8>;
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci {
qcom,cam-sensor@0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
reg = <0x0>;
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&pm6150_l13>;
cam_vana-supply = <&pm6150l_l4>;
cam_vdig-supply = <&camera_ldo>;
cam_clk-supply = <&titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2850000 1200000 0>;
rgltr-max-voltage = <1800000 2850000 1200000 0>;
rgltr-load-current = <0 80000 105000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_rear_active>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_rear_suspend>;
gpios = <&tlmm 28 0>,
<&tlmm 47 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <37125000>;
};
};

232
scuba-camera-sensor-idp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,232 @@
#include <dt-bindings/clock/qcom,gcc-scuba.h>
&soc {
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
gpios-shared-pinctrl = <466>;
shared-pctrl-gpio-names = "gmsl";
pinctrl-names = "gmsl_active", "gmsl_suspend";
pinctrl-0 = <&cam_sensor_gmsl_active>;
pinctrl-1 = <&cam_sensor_gmsl_suspend>;
};
};
&tlmm {
cam_sensor_gmsl_active: cam_sensor_active_gmsl {
/* RESET */
mux {
pins = "gpio81";
function = "gpio";
};
config {
pins = "gpio81";
bias-pull-up;
drive-strength = <2>; /* 2 MA */
output-high;
};
};
cam_sensor_gmsl_suspend: cam_sensor_suspend_gmsl {
/* RESET */
mux {
pins = "gpio81";
function = "gpio";
};
config {
pins = "gpio81";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
};
&cam_cci0 {
/* CAM0A */
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L3P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 28 0>,
<&tlmm 18 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <1>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* CAM1 */
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L5P>;
cam_vdig-supply = <&L2P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 21 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* CAM0B */
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L7P>;
cam_vana-supply = <&L4P>;
cam_vdig-supply = <&L1P>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <1800000 2800000 1200000 0>;
rgltr-max-voltage = <1800000 2800000 1200000 0>;
rgltr-load-current = <120000 80000 1200000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 20 0>,
<&tlmm 44 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
/* GMSL-1 */
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <0>;
rgltr-max-voltage = <0>;
rgltr-load-current = <0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_gmsl_active>;
pinctrl-1 = <&cam_sensor_gmsl_suspend>;
gpios = <&tlmm 81 0>;
gpio-reset = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
};
/* GMSL-2 */
qcom,cam-sensor4 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_clk-supply = <&gcc_camss_top_gdsc>;
regulator-names = "cam_clk";
rgltr-cntrl-support;
pwm-switch;
rgltr-min-voltage = <0>;
rgltr-max-voltage = <0>;
rgltr-load-current = <0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_gmsl_active>;
pinctrl-1 = <&cam_sensor_gmsl_suspend>;
gpios = <&tlmm 81 0>;
gpio-reset = <0>;
gpio-req-tbl-num = <0>;
gpio-req-tbl-flags = <0>;
gpio-req-tbl-label = "CAM_RESET2";
sensor-mode = <0>;
cci-master = <0>;
status = "ok";
};
};

743
scuba-camera.dtsi Executable file
Просмотреть файл

@ -0,0 +1,743 @@
#include <dt-bindings/msm/msm-camera.h>
&soc {
qcom,cam-req-mgr {
compatible = "qcom,cam-req-mgr";
status = "ok";
};
qcom,cam-sync {
compatible = "qcom,cam-sync";
status = "ok";
};
cam_csiphy0: qcom,csiphy0 {
cell-index = <0>;
compatible = "qcom,csiphy-v2.0", "qcom,csiphy";
reg = <0x05C52000 0x1000>;
reg-names = "csiphy";
reg-cam-base = <0x52000>;
interrupts = <GIC_SPI 72 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "csiphy";
regulator-names = "gdscr";
gdscr-supply = <&gcc_camss_top_gdsc>;
csi-vdd-voltage = <1200000>;
mipi-csi-vdd-supply = <&L5A>;
clocks = <&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_CPHY_0_CLK>,
<&gcc GCC_CAMSS_CSI0PHYTIMER_CLK_SRC>,
<&gcc GCC_CAMSS_CSI0PHYTIMER_CLK>;
clock-names = "cphy_rx_clk_src",
"csiphy0_clk",
"csi0phytimer_clk_src",
"csi0phytimer_clk";
src-clock-name = "csi0phytimer_clk_src";
clock-cntl-level = "lowsvs", "svs", "svs_l1", "turbo";
clock-rates =
<19200000 0 19200000 0>,
<341330000 0 200000000 0>,
<341330000 0 200000000 0>,
<384000000 0 268800000 0>;
status = "ok";
};
cam_csiphy1: qcom,csiphy1 {
cell-index = <1>;
compatible = "qcom,csiphy-v2.0", "qcom,csiphy";
reg = <0x05C53000 0x1000>;
reg-names = "csiphy";
reg-cam-base = <0x53000>;
interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "csiphy";
regulator-names = "gdscr";
gdscr-supply = <&gcc_camss_top_gdsc>;
csi-vdd-voltage = <1200000>;
mipi-csi-vdd-supply = <&L5A>;
clocks = <&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_CPHY_1_CLK>,
<&gcc GCC_CAMSS_CSI1PHYTIMER_CLK_SRC>,
<&gcc GCC_CAMSS_CSI1PHYTIMER_CLK>;
clock-names = "cphy_rx_clk_src",
"csiphy1_clk",
"csi1phytimer_clk_src",
"csi1phytimer_clk";
src-clock-name = "csi1phytimer_clk_src";
clock-cntl-level = "lowsvs", "svs", "svs_l1", "turbo";
clock-rates =
<19200000 0 19200000 0>,
<341330000 0 200000000 0>,
<341330000 0 200000000 0>,
<384000000 0 268800000 0>;
status = "ok";
};
cam_cci0: qcom,cci0 {
cell-index = <0>;
compatible = "qcom,cci", "simple-bus";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x05C1B000 0x1000>;
reg-names = "cci";
reg-cam-base = <0x1B000>;
interrupt-names = "cci";
interrupts = <GIC_SPI 206 IRQ_TYPE_EDGE_RISING>;
status = "ok";
gdscr-supply = <&gcc_camss_top_gdsc>;
regulator-names = "gdscr";
clocks = <&gcc GCC_CAMSS_CCI_0_CLK>,
<&gcc GCC_CAMSS_CCI_CLK_SRC>;
clock-names = "cci_0_clk",
"cci_0_clk_src";
src-clock-name = "cci_0_clk_src";
clock-cntl-level = "svs";
clock-rates = <0 37500000>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cci0_active &cci1_active>;
pinctrl-1 = <&cci0_suspend &cci1_suspend>;
gpios = <&tlmm 22 0>,
<&tlmm 23 0>,
<&tlmm 29 0>,
<&tlmm 30 0>;
gpio-req-tbl-num = <0 1 2 3>;
gpio-req-tbl-flags = <1 1 1 1>;
gpio-req-tbl-label = "CCI_I2C_DATA0",
"CCI_I2C_CLK0",
"CCI_I2C_DATA1",
"CCI_I2C_CLK1";
i2c_freq_100Khz_cci0: qcom,i2c_standard_mode {
hw-thigh = <201>;
hw-tlow = <174>;
hw-tsu-sto = <204>;
hw-tsu-sta = <231>;
hw-thd-dat = <22>;
hw-thd-sta = <162>;
hw-tbuf = <227>;
hw-scl-stretch-en = <0>;
hw-trdhld = <6>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
i2c_freq_400Khz_cci0: qcom,i2c_fast_mode {
hw-thigh = <38>;
hw-tlow = <56>;
hw-tsu-sto = <40>;
hw-tsu-sta = <40>;
hw-thd-dat = <22>;
hw-thd-sta = <35>;
hw-tbuf = <62>;
hw-scl-stretch-en = <0>;
hw-trdhld = <6>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
i2c_freq_custom_cci0: qcom,i2c_custom_mode {
hw-thigh = <38>;
hw-tlow = <56>;
hw-tsu-sto = <40>;
hw-tsu-sta = <40>;
hw-thd-dat = <22>;
hw-thd-sta = <35>;
hw-tbuf = <62>;
hw-scl-stretch-en = <1>;
hw-trdhld = <6>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
i2c_freq_1Mhz_cci0: qcom,i2c_fast_plus_mode {
hw-thigh = <16>;
hw-tlow = <22>;
hw-tsu-sto = <17>;
hw-tsu-sta = <18>;
hw-thd-dat = <16>;
hw-thd-sta = <15>;
hw-tbuf = <24>;
hw-scl-stretch-en = <0>;
hw-trdhld = <3>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
};
qcom,cam_smmu {
compatible = "qcom,msm-cam-smmu", "simple-bus";
status = "ok";
msm_cam_smmu_tfe {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&apps_smmu 0x400 0x000>;
qcom,iommu-faults = "non-fatal";
qcom,iommu-dma-addr-pool = <0x7400000 0xd8c00000>;
cam-smmu-label = "tfe";
tfe_iova_mem_map: iova-mem-map {
/* IO region is approximately 3.4 GB */
iova-mem-region-io {
iova-region-name = "io";
iova-region-start = <0x7400000>;
iova-region-len = <0xd8c00000>;
iova-region-id = <0x3>;
status = "ok";
};
};
};
msm_cam_smmu_ope {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&apps_smmu 0x820 0x000>,
<&apps_smmu 0x840 0x000>;
qcom,iommu-faults = "non-fatal";
multiple-client-devices;
qcom,iommu-dma-addr-pool = <0x7400000 0xd8c00000>;
cam-smmu-label = "ope", "ope-cdm";
ope_iova_mem_map: iova-mem-map {
/* IO region is approximately 3.4 GB */
iova-mem-region-io {
iova-region-name = "io";
iova-region-start = <0x7400000>;
iova-region-len = <0xd8c00000>;
iova-region-id = <0x3>;
status = "ok";
};
};
};
msm_cam_smmu_cpas_cdm {
compatible = "qcom,msm-cam-smmu-cb";
iommus = <&apps_smmu 0x800 0x000>;
cam-smmu-label = "cpas-cdm";
qcom,iommu-faults = "non-fatal";
qcom,iommu-dma-addr-pool = <0x7400000 0xd8c00000>;
cpas_cdm_iova_mem_map: iova-mem-map {
iova-mem-region-io {
/* IO region is approximately 3.4 GB */
iova-region-name = "io";
iova-region-start = <0x7400000>;
iova-region-len = <0xd8c00000>;
iova-region-id = <0x3>;
status = "ok";
};
};
};
msm_cam_smmu_secure {
compatible = "qcom,msm-cam-smmu-cb";
cam-smmu-label = "cam-secure";
qcom,secure-cb;
};
};
qcom,cam-cpas@5c11000 {
cell-index = <0>;
compatible = "qcom,cam-cpas", "simple-bus";
label = "cpas";
arch-compat = "cpas_top";
status = "ok";
reg-names = "cam_cpas_top", "cam_camnoc";
reg = <0x5c11000 0x1000>,
<0x5c13000 0x4000>;
reg-cam-base = <0x11000 0x13000>;
cam_hw_fuse = <CAM_CPAS_SECURE_CAMERA_ENABLE 0x01B401E4 100 CAM_CPAS_FEATURE_TYPE_ENABLE 0xFF>;
interrupt-names = "cpas_camnoc";
interrupts = <GIC_SPI 159 IRQ_TYPE_EDGE_RISING>;
camnoc-axi-min-ib-bw = <3000000000>;
regulator-names = "camss-vdd";
camss-vdd-supply = <&gcc_camss_top_gdsc>;
clock-names =
"gcc_camss_top_ahb_clk",
"gcc_camss_top_ahb_clk_src",
"gcc_camss_axi_clk",
"gcc_camss_axi_clk_src",
"gcc_camss_nrt_axi_clk",
"gcc_camss_rt_axi_clk";
clocks =
<&gcc GCC_CAMSS_TOP_AHB_CLK>,
<&gcc GCC_CAMSS_TOP_AHB_CLK_SRC>,
<&gcc GCC_CAMSS_AXI_CLK>,
<&gcc GCC_CAMSS_AXI_CLK_SRC>,
<&gcc GCC_CAMSS_NRT_AXI_CLK>,
<&gcc GCC_CAMSS_RT_AXI_CLK>;
src-clock-name = "gcc_camss_axi_clk_src";
clock-rates =
<0 0 0 0 0 0>,
<0 19200000 0 19200000 0 0>,
<0 80000000 0 150000000 0 0>,
<0 80000000 0 200000000 0 0>,
<0 80000000 0 300000000 0 0>,
<0 80000000 0 300000000 0 0>,
<0 80000000 0 300000000 0 0>;
clock-cntl-level = "suspend", "lowsvs", "svs",
"svs_l1", "nominal", "nominal_l1", "turbo";
control-camnoc-axi-clk;
camnoc-bus-width = <32>;
camnoc-axi-clk-bw-margin-perc = <20>;
interconnect-names = "cam_ahb";
interconnects =<&bimc MASTER_AMPSS_M0
&config_noc SLAVE_CAMERA_CFG>;
cam-ahb-num-cases = <7>;
cam-ahb-bw-KBps =
<0 0>, <0 133333>, <0 150000>, <0 150000>,
<0 300000>, <0 300000>, <0 300000>;
vdd-corners = <RPM_SMD_REGULATOR_LEVEL_NONE
RPM_SMD_REGULATOR_LEVEL_RETENTION
RPM_SMD_REGULATOR_LEVEL_RETENTION_PLUS
RPM_SMD_REGULATOR_LEVEL_MIN_SVS
RPM_SMD_REGULATOR_LEVEL_LOW_SVS
RPM_SMD_REGULATOR_LEVEL_SVS
RPM_SMD_REGULATOR_LEVEL_SVS_PLUS
RPM_SMD_REGULATOR_LEVEL_NOM
RPM_SMD_REGULATOR_LEVEL_NOM_PLUS
RPM_SMD_REGULATOR_LEVEL_TURBO
RPM_SMD_REGULATOR_LEVEL_TURBO_NO_CPR
RPM_SMD_REGULATOR_LEVEL_BINNING>;
vdd-corner-ahb-mapping = "suspend", "lowsvs", "lowsvs",
"lowsvs", "lowsvs", "svs", "svs_l1", "svs_l1",
"svs_l1", "nominal", "nominal", "nominal",
"turbo", "turbo";
client-id-based;
client-names =
"csiphy0", "csiphy1", "cci0",
"csid0", "csid1", "tfe0",
"tfe1", "ope0", "cam-cdm-intf0",
"cpas-cdm0", "ope-cdm0", "tpg0", "tpg1";
camera-bus-nodes {
level2-nodes {
level-index = <2>;
level2_rt0_rd_wr_sum: level2-rt0-rd-wr-sum {
cell-index = <0>;
node-name = "level2-rt0-rd-wr-sum";
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM>;
ib-bw-voting-needed;
qcom,axi-port-mnoc {
interconnect-names = "cam_hf_0";
interconnects =
<&mmrt_virt MASTER_CAMNOC_HF
&bimc SLAVE_EBI_CH0>;
};
};
level2_nrt0_rd_wr_sum: level2-nrt0-rd-wr-sum {
cell-index = <1>;
node-name = "level2-nrt0-rd-wr-sum";
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM>;
qcom,axi-port-mnoc {
interconnect-names = "cam_sf_0";
interconnects =
<&mmnrt_virt MASTER_CAMNOC_SF
&bimc SLAVE_EBI_CH0>;
};
};
};
level1-nodes {
level-index = <1>;
camnoc-max-needed;
level1_rt0_wr: level1-rt0-wr {
cell-index = <2>;
node-name = "level1-rt0-wr";
parent-node = <&level2_rt0_rd_wr_sum>;
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE>;
};
level1_nrt0_rd_wr: level1-nrt0-rd-wr {
cell-index = <3>;
node-name = "level1-nrt0-rd-wr";
parent-node = <&level2_nrt0_rd_wr_sum>;
traffic-merge-type =
<CAM_CPAS_TRAFFIC_MERGE_SUM_INTERLEAVE>;
};
};
level0-nodes {
level-index = <0>;
ope0_all_wr: ope0-all-wr {
cell-index = <4>;
node-name = "ope0-all-wr";
client-name = "ope0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_WRITE>;
constituent-paths =
<CAM_CPAS_PATH_DATA_OPE_WR_VID
CAM_CPAS_PATH_DATA_OPE_WR_DISP
CAM_CPAS_PATH_DATA_OPE_WR_REF>;
parent-node = <&level1_nrt0_rd_wr>;
};
ope0_all_rd: ope0-all-rd {
cell-index = <5>;
node-name = "ope0-all-rd";
client-name = "ope0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_READ>;
constituent-paths =
<CAM_CPAS_PATH_DATA_OPE_RD_IN
CAM_CPAS_PATH_DATA_OPE_RD_REF>;
parent-node = <&level1_nrt0_rd_wr>;
};
tfe0_all_wr: tfe0-all-wr {
cell-index = <6>;
node-name = "tfe0-all-wr";
client-name = "tfe0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_WRITE>;
constituent-paths =
<CAM_CPAS_PATH_DATA_IFE_RDI0
CAM_CPAS_PATH_DATA_IFE_RDI1
CAM_CPAS_PATH_DATA_IFE_RDI2
CAM_CPAS_PATH_DATA_IFE_RDI3
CAM_CPAS_PATH_DATA_IFE_VID
CAM_CPAS_PATH_DATA_IFE_DISP
CAM_CPAS_PATH_DATA_IFE_STATS>;
parent-node = <&level1_rt0_wr>;
};
tfe1_all_wr: tfe1-all-wr {
cell-index = <7>;
node-name = "tfe1-all-wr";
client-name = "tfe1";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_WRITE>;
constituent-paths =
<CAM_CPAS_PATH_DATA_IFE_RDI0
CAM_CPAS_PATH_DATA_IFE_RDI1
CAM_CPAS_PATH_DATA_IFE_RDI2
CAM_CPAS_PATH_DATA_IFE_RDI3
CAM_CPAS_PATH_DATA_IFE_VID
CAM_CPAS_PATH_DATA_IFE_DISP
CAM_CPAS_PATH_DATA_IFE_STATS>;
parent-node = <&level1_rt0_wr>;
};
cpas_cdm0_all_rd: cpas-cdm0-all-rd {
cell-index = <9>;
node-name = "cpas-cdm0-all-rd";
client-name = "cpas-cdm0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_READ>;
parent-node = <&level1_nrt0_rd_wr>;
};
ope_cdm0_all_rd: ope-cdm0-all-rd {
cell-index = <10>;
node-name = "ope-cdm0-all-rd";
client-name = "ope-cdm0";
traffic-data = <CAM_CPAS_PATH_DATA_ALL>;
traffic-transaction-type =
<CAM_CPAS_TRANSACTION_READ>;
parent-node = <&level1_nrt0_rd_wr>;
};
};
};
};
qcom,cam-cdm-intf {
compatible = "qcom,cam-cdm-intf";
cell-index = <0>;
label = "cam-cdm-intf";
num-hw-cdm = <2>;
cdm-client-names = "vfe";
status = "ok";
};
cam_cpas_cdm: qcom,cpas-cdm0@5c23000 {
cell-index = <0>;
compatible = "qcom,cam-cpas-cdm2_0";
label = "cpas-cdm";
reg = <0x5c23000 0x400>;
reg-names = "cpas-cdm0";
reg-cam-base = <0x23000>;
interrupts = <GIC_SPI 207 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "cpas-cdm0";
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names = "cam_cc_cpas_top_ahb_clk";
clocks = <&gcc GCC_CAMSS_TOP_AHB_CLK>;
clock-rates = <0>;
clock-cntl-level = "svs";
cdm-client-names = "tfe0", "tfe1";
config-fifo;
fifo-depths = <64 64 64 64>;
status = "ok";
};
cam_ope_cdm: qcom,ope-cdm0@5c42000 {
cell-index = <0>;
compatible = "qcom,cam-ope-cdm2_1";
label = "ope-cdm";
reg = <0x5c42000 0x400>;
reg-names = "ope-cdm0";
reg-cam-base = <0x42000>;
interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "ope-cdm0";
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"ope_ahb_clk",
"ope_clk_src",
"ope_clk";
clocks =
<&gcc GCC_CAMSS_OPE_AHB_CLK>,
<&gcc GCC_CAMSS_OPE_CLK_SRC>,
<&gcc GCC_CAMSS_OPE_CLK>;
clock-rates = <0 0 0>,
<0 0 0>,
<0 0 0>,
<0 0 0>;
clock-cntl-level = "lowsvs", "svs", "svs_l1", "turbo";
cdm-client-names = "ope";
config-fifo;
fifo-depths = <64 64 64 64>;
status = "ok";
};
qcom,cam-isp {
compatible = "qcom,cam-isp";
arch-compat = "tfe";
status = "ok";
};
cam_tfe_csid0: qcom,tfe_csid0@5c6e000 {
cell-index = <0>;
compatible = "qcom,csid530";
reg-names = "csid", "top", "camnoc";
reg = <0x5c6e000 0x1000>,
<0x5c11000 0x1000>,
<0x5c13000 0x4000>;
reg-cam-base = <0x6e000 0x11000 0x13000>;
interrupt-names = "csid0";
interrupts = <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_csid_clk_src",
"tfe_csid_clk",
"cphy_rx_clk_src",
"tfe_cphy_rx_clk",
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_0_CSID_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CSID_CLK>,
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_TFE_0_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CLK>;
clock-rates =
<240000000 0 0 0 256000000 0>,
<384000000 0 0 0 460800000 0>,
<426400000 0 0 0 576000000 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "tfe_csid_clk_src";
clock-control-debugfs = "true";
status = "ok";
};
cam_tfe0: qcom,tfe0@5c6e000 {
cell-index = <0>;
compatible = "qcom,tfe530";
reg-names = "tfe0";
reg = <0x5c6e000 0x5000>;
reg-cam-base = <0x6e000>;
interrupt-names = "tfe0";
interrupts = <GIC_SPI 211 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_0_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CLK>;
clock-rates =
<256000000 0>,
<460800000 0>,
<576000000 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "tfe_clk_src";
clock-control-debugfs = "true";
cam_hw_pid = <4>;
status = "ok";
};
cam_tfe_csid1: qcom,tfe_csid1@5c75000 {
cell-index = <1>;
compatible = "qcom,csid530";
reg-names = "csid", "top", "camnoc";
reg = <0x5c75000 0x1000>,
<0x5c11000 0x1000>,
<0x5c13000 0x4000>;
reg-cam-base = <0x75000 0x11000 0x13000>;
interrupt-names = "csid1";
interrupts = <GIC_SPI 212 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_csid_clk_src",
"tfe_csid_clk",
"cphy_rx_clk_src",
"tfe_cphy_rx_clk",
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_1_CSID_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CSID_CLK>,
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_TFE_1_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CLK>;
clock-rates =
<240000000 0 240000000 0 256000000 0>,
<384000000 0 341333333 0 460800000 0>,
<426400000 0 384000000 0 576000000 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "tfe_csid_clk_src";
clock-control-debugfs = "true";
status = "ok";
};
cam_tfe1: qcom,tfe1@5c75000 {
cell-index = <1>;
compatible = "qcom,tfe530";
reg-names = "tfe1";
reg = <0x5c75000 0x5000>;
reg-cam-base = <0x75000>;
interrupt-names = "tfe1";
interrupts = <GIC_SPI 213 IRQ_TYPE_EDGE_RISING>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"tfe_clk_src",
"tfe_clk";
clocks =
<&gcc GCC_CAMSS_TFE_1_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CLK>;
clock-rates =
<256000000 0>,
<460800000 0>,
<576000000 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "tfe_clk_src";
clock-control-debugfs = "true";
cam_hw_pid = <5>;
status = "ok";
};
cam_tfe_tpg0: qcom,tpg0@5c66000 {
cell-index = <0>;
compatible = "qcom,tpg101";
reg-names = "tpg0", "top";
reg = <0x5c66000 0x400>,
<0x5c11000 0x1000>;
reg-cam-base = <0x66000 0x11000>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"cphy_rx_clk_src",
"tfe_0_cphy_rx_clk",
"gcc_camss_cphy_0_clk";
clocks =
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_0_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_CPHY_0_CLK>;
clock-rates =
<240000000 0 0>,
<341333333 0 0>,
<384000000 0 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "cphy_rx_clk_src";
clock-control-debugfs = "false";
status = "ok";
};
cam_tfe_tpg1: qcom,tpg1@5c68000 {
cell-index = <1>;
compatible = "qcom,tpg101";
reg-names = "tpg1", "top";
reg = <0x5c68000 0x400>,
<0x5c11000 0x1000>;
reg-cam-base = <0x68000 0x11000>;
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"cphy_rx_clk_src",
"tfe_1_cphy_rx_clk",
"gcc_camss_cphy_1_clk";
clocks =
<&gcc GCC_CAMSS_TFE_CPHY_RX_CLK_SRC>,
<&gcc GCC_CAMSS_TFE_1_CPHY_RX_CLK>,
<&gcc GCC_CAMSS_CPHY_1_CLK>;
clock-rates =
<240000000 0 0>,
<341333333 0 0>,
<384000000 0 0>;
clock-cntl-level = "svs", "svs_l1", "turbo";
src-clock-name = "cphy_rx_clk_src";
clock-control-debugfs = "false";
status = "ok";
};
qcom,cam-ope {
compatible = "qcom,cam-ope";
compat-hw-name = "qcom,ope";
num-ope = <1>;
status = "ok";
};
ope: qcom,ope@0x5c42000 {
cell-index = <0>;
compatible = "qcom,ope";
reg =
<0x5c42000 0x400>,
<0x5c42400 0x200>,
<0x5c42600 0x200>,
<0x5c42800 0x4400>,
<0x5c46c00 0x190>,
<0x5c46d90 0xA00>;
reg-names =
"ope_cdm",
"ope_top",
"ope_qos",
"ope_pp",
"ope_bus_rd",
"ope_bus_wr";
reg-cam-base = <0x42000 0x42400 0x42600 0x42800 0x46c00 0x46d90>;
interrupts = <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "ope";
regulator-names = "camss";
camss-supply = <&gcc_camss_top_gdsc>;
clock-names =
"ope_ahb_clk_src",
"ope_ahb_clk",
"ope_clk_src",
"ope_clk";
clocks =
<&gcc GCC_CAMSS_OPE_AHB_CLK_SRC>,
<&gcc GCC_CAMSS_OPE_AHB_CLK>,
<&gcc GCC_CAMSS_OPE_CLK_SRC>,
<&gcc GCC_CAMSS_OPE_CLK>;
clock-rates =
<171428571 0 200000000 0>,
<171428571 0 266600000 0>,
<240000000 0 465000000 0>,
<240000000 0 580000000 0>;
clock-cntl-level = "svs", "svs_l1", "nominal", "turbo";
src-clock-name = "ope_clk_src";
status = "ok";
};
};

545
shima-camera-sensor-idp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,545 @@
#include <dt-bindings/clock/qcom,camcc-shima.h>
&soc {
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_triple_wide: qcom,actuator0 {
cell-index = <4>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2960000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
actuator_triple_tele: qcom,actuator1 {
cell-index = <5>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2960000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_wide: qcom,eeprom0 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L3I>;
cam_vana1-supply = <&L5I>;
cam_vdig-supply = <&L1I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vio", "cam_vana", "cam_vana1",
"cam_vdig", "cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2904000 1800000 1104000 0 2960000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3000000>;
rgltr-load-current = <5000 68000 74000 805000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_triple_tele: qcom,eeprom1 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L4I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2960000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3000000>;
rgltr-load-current = <10000 52000 140000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 16 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_triple_rear: qcom,eeprom4 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&BOB>;
cam_vdig-supply = <&S9B>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 3200000 1000000 0>;
rgltr-max-voltage = <1800000 3960000 1500000 0>;
rgltr-load-current = <15000 2000000 805000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Rear (W) */
qcom,cam-sensor0 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
eeprom-src = <&eeprom_triple_wide>;
led-flash-src = <&led_flash_triple_rear>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L3I>;
cam_v_custom1-supply = <&L5I>;
cam_vdig-supply = <&L1I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig","cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2904000 1800000 1104000 0 3296000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3960000>;
rgltr-load-current = <5000 68000 74000 805000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Rear-aux (T) */
qcom,cam-sensor1 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L4I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 3296000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <10000 52000 140000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 16 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Rear */
qcom,cam-sensor4 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_rear>;
actuator-src = <&actuator_triple_wide>;
led-flash-src = <&led_flash_triple_rear>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&BOB>;
cam_vdig-supply = <&S9B>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 3200000 1000000 0>;
rgltr-max-voltage = <1800000 3960000 1500000 0>;
rgltr-load-current = <15000 2000000 805000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* TPG */
qcom,cam-tpg0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* TPG */
qcom,cam-tpg1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* TPG */
qcom,cam-tpg2 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 17 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};
&cam_cci1 {
actuator_triple_uw: qcom,actuator2 {
cell-index = <6>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2960000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_uw: qcom,eeprom2 {
cell-index = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L6I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2960000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3000000>;
rgltr-load-current = <3000 52000 257000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 106 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_front: qcom,eeprom3 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L5J>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2900000 1150000 0>;
rgltr-load-current = <5000 35000 301000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Rear-aux (UW) */
qcom,cam-sensor2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L6I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 3296000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <3000 52000 257000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 106 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Front */
qcom,cam-sensor3 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L5J>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 3296000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <5000 35000 301000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};

382
shima-camera-sensor-qrd.dtsi Executable file
Просмотреть файл

@ -0,0 +1,382 @@
#include <dt-bindings/clock/qcom,camcc-shima.h>
&soc {
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_triple_wide: qcom,actuator0 {
cell-index = <4>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
actuator_triple_tele: qcom,actuator1 {
cell-index = <5>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_wide: qcom,eeprom0 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_vana1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vana1",
"cam_vdig", "cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 1000000 0 2700000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3000000>;
rgltr-load-current = <5000 68000 74000 805000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 106 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_triple_tele: qcom,eeprom1 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 2700000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3000000>;
rgltr-load-current = <10000 52000 140000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor0 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
eeprom-src = <&eeprom_triple_wide>;
led-flash-src = <&led_flash_triple_rear>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_v_custom1-supply = <&pm8008i_l5>;
cam_vdig-supply = <&pm8008i_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig","cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 1700000 1000000 0 3200000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3960000>;
rgltr-load-current = <5000 68000 74000 805000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 106 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor1 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <10000 52000 140000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};
&cam_cci1 {
actuator_triple_uw: qcom,actuator2 {
cell-index = <6>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2700000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_uw: qcom,eeprom2 {
cell-index = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 2700000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3000000>;
rgltr-load-current = <3000 52000 257000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 16 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_front: qcom,eeprom3 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008j_l5>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0>;
rgltr-max-voltage = <1800000 2900000 1150000 0>;
rgltr-load-current = <5000 35000 301000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <3000 52000 257000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 16 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
qcom,cam-sensor3 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008j_l5>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2700000 950000 0 3200000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <5000 35000 301000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 115 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};

1904
shima-camera.dtsi Executable file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

1471
sm6150-camera.dtsi Executable file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

597
waipio-camera-sensor-cdp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,597 @@
#include <dt-bindings/clock/qcom,camcc-waipio.h>
&soc {
led_flash_triple_rear: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@3 {
cell-index = <3>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_triple_uw: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2704000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
actuator_triple_tele: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2704000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_tof1: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8350_s12>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l6>;
cam_v_custom1-supply = <&pm8008j_l7>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1256000 0 2800000 3000000>;
rgltr-max-voltage = <1800000 1256000 0 2800000 3304000>;
rgltr-load-current = <5000 680000 0 35000 15000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 25 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
eeprom_triple_uw: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 952000 0 2704000>;
rgltr-max-voltage = <1800000 2896000 1144000 0 3000000>;
rgltr-load-current = <3000 52000 257000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
eeprom_triple_tele: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 952000 0 2704000>;
rgltr-max-voltage = <1800000 2896000 1144000 0 3000000>;
rgltr-load-current = <10000 52000 140000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 120 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor0 {
cell-index = <7>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
eeprom-src = <&eeprom_tof1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8350_s12>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l6>;
cam_v_custom1-supply = <&pm8008j_l7>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1256000 0 2800000 3000000>;
rgltr-max-voltage = <1800000 1256000 0 2800000 3304000>;
rgltr-load-current = <5000 680000 0 35000 15000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 25 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor1 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 952000 0 3008000>;
rgltr-max-voltage = <1800000 2896000 1144000 0 3960000>;
rgltr-load-current = <3000 52000 257000 0 7100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor3 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 952000 0 3008000>;
rgltr-max-voltage = <1800000 2896000 1144000 0 3960000>;
rgltr-load-current = <10000 52000 140000 0 7100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 120 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
};
&cam_cci1 {
actuator_triple_wide: qcom,actuator2 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2704000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_wide: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_vana1-supply = <&pm8008j_l4>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vana1",
"cam_vdig", "cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 1704000 1000000 0 2704000>;
rgltr-max-voltage = <1800000 3000000 1896000 1200000 0 3000000>;
rgltr-load-current = <4000 96000 88000 872000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
eeprom_tof2: qcom,eeprom4 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <185000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4>;
gpios = <&tlmm 104 0>,
<&tlmm 119 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
eeprom_front: qcom,eeprom5 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 952000 0>;
rgltr-max-voltage = <1800000 2896000 1144000 0>;
rgltr-load-current = <3000 52000 257000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 118 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
eeprom_aon: qcom,eeprom6 {
cell-index = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8008j_l5>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l2>;
regulator-names = "cam_vio", "cam_vdig","cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 0 952000>;
rgltr-max-voltage = <1800000 2896000 0 1144000>;
rgltr-load-current = <1120 14700 0 23800>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk6_active
&cam_sensor_active_rst6>;
pinctrl-1 = <&cam_sensor_mclk6_suspend
&cam_sensor_suspend_rst6>;
gpios = <&tlmm 106 0>,
<&tlmm 108 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK6",
"CAM_RESET6";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK6_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor2 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
eeprom-src = <&eeprom_triple_wide>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_vana1-supply = <&pm8008j_l4>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vana1",
"cam_vdig", "cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 1704000 1000000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1896000 1200000 0 3960000>;
rgltr-load-current = <4000 96000 88000 872000 0 7100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor4 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
eeprom-src = <&eeprom_tof2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <185000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4>;
gpios = <&tlmm 104 0>,
<&tlmm 119 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor5 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 952000 0 3008000>;
rgltr-max-voltage = <1800000 2896000 1144000 0 3960000>;
rgltr-load-current = <3000 52000 257000 0 7100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 118 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor6 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_aon>;
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8008j_l5>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l2>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana",
"cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 0 952000 3008000>;
rgltr-max-voltage = <1800000 2896000 0 1144000 3960000>;
rgltr-load-current = <1120 14700 0 23800 7100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk6_active
&cam_sensor_active_rst6>;
pinctrl-1 = <&cam_sensor_mclk6_suspend
&cam_sensor_suspend_rst6>;
gpios = <&tlmm 106 0>,
<&tlmm 108 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK6",
"CAM_RESET6";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK6_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
};

597
waipio-camera-sensor-mtp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,597 @@
#include <dt-bindings/clock/qcom,camcc-waipio.h>
&soc {
led_flash_triple_rear: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@3 {
cell-index = <3>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_triple_uw: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2704000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
actuator_triple_tele: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2704000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_tof1: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8350_s12>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l6>;
cam_v_custom1-supply = <&pm8008j_l7>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1256000 0 2800000 3000000>;
rgltr-max-voltage = <1800000 1256000 0 2800000 3304000>;
rgltr-load-current = <5000 680000 0 35000 15000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 25 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
eeprom_triple_uw: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 952000 0 2704000>;
rgltr-max-voltage = <1800000 2896000 1144000 0 3000000>;
rgltr-load-current = <3000 52000 257000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
eeprom_triple_tele: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 952000 0 2704000>;
rgltr-max-voltage = <1800000 2896000 1144000 0 3000000>;
rgltr-load-current = <10000 52000 140000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 120 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor0 {
cell-index = <7>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
eeprom-src = <&eeprom_tof1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8350_s12>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l6>;
cam_v_custom1-supply = <&pm8008j_l7>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1256000 0 2800000 3000000>;
rgltr-max-voltage = <1800000 1256000 0 2800000 3304000>;
rgltr-load-current = <5000 680000 0 35000 15000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 100 0>,
<&tlmm 25 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor1 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 952000 0 3008000>;
rgltr-max-voltage = <1800000 2896000 1144000 0 3960000>;
rgltr-load-current = <3000 52000 257000 0 7100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor3 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l4>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 952000 0 3008000>;
rgltr-max-voltage = <1800000 2896000 1144000 0 3960000>;
rgltr-load-current = <10000 52000 140000 0 7100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 103 0>,
<&tlmm 120 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
};
&cam_cci1 {
actuator_triple_wide: qcom,actuator2 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2704000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_wide: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_vana1-supply = <&pm8008j_l4>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&pm8008i_l7>;
regulator-names = "cam_vio", "cam_vana", "cam_vana1",
"cam_vdig", "cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 1704000 1000000 0 2704000>;
rgltr-max-voltage = <1800000 3000000 1896000 1200000 0 3000000>;
rgltr-load-current = <4000 96000 88000 872000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
eeprom_tof2: qcom,eeprom4 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <185000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4>;
gpios = <&tlmm 104 0>,
<&tlmm 119 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
eeprom_front: qcom,eeprom5 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 952000 0>;
rgltr-max-voltage = <1800000 2896000 1144000 0>;
rgltr-load-current = <3000 52000 257000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 118 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
eeprom_aon: qcom,eeprom6 {
cell-index = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8008j_l5>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l2>;
regulator-names = "cam_vio", "cam_vdig","cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 0 952000>;
rgltr-max-voltage = <1800000 2896000 0 1144000>;
rgltr-load-current = <1120 14700 0 23800>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk6_active
&cam_sensor_active_rst6>;
pinctrl-1 = <&cam_sensor_mclk6_suspend
&cam_sensor_suspend_rst6>;
gpios = <&tlmm 106 0>,
<&tlmm 108 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK6",
"CAM_RESET6";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK6_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor2 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
eeprom-src = <&eeprom_triple_wide>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l3>;
cam_vana1-supply = <&pm8008j_l4>;
cam_vdig-supply = <&pm8008j_l1>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vana1",
"cam_vdig", "cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 1704000 1000000 0 3008000>;
rgltr-max-voltage = <1800000 3000000 1896000 1200000 0 3960000>;
rgltr-load-current = <4000 96000 88000 872000 0 7100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 102 0>,
<&tlmm 117 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor4 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
eeprom-src = <&eeprom_tof2>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&pm8008j_l3>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
rgltr-load-current = <185000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk4_active
&cam_sensor_active_rst4>;
pinctrl-1 = <&cam_sensor_mclk4_suspend
&cam_sensor_suspend_rst4>;
gpios = <&tlmm 104 0>,
<&tlmm 119 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK4",
"CAM_RESET4";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor5 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <5>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&pm8008j_l3>;
cam_vana-supply = <&pm8008i_l6>;
cam_vdig-supply = <&pm8008i_l2>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 952000 0 3008000>;
rgltr-max-voltage = <1800000 2896000 1144000 0 3960000>;
rgltr-load-current = <3000 52000 257000 0 7100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 118 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
qcom,cam-sensor6 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_aon>;
cam_vio-supply = <&pm8008j_l3>;
cam_vdig-supply = <&pm8008j_l5>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&pm8008j_l2>;
cam_bob-supply = <&pm8350c_bob>;
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana",
"cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2704000 0 952000 3008000>;
rgltr-max-voltage = <1800000 2896000 0 1144000 3960000>;
rgltr-load-current = <1120 14700 0 23800 7100000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk6_active
&cam_sensor_active_rst6>;
pinctrl-1 = <&cam_sensor_mclk6_suspend
&cam_sensor_suspend_rst6>;
gpios = <&tlmm 106 0>,
<&tlmm 108 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK6",
"CAM_RESET6";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK6_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
status = "ok";
};
};

2719
waipio-camera.dtsi Executable file

Разница между файлами не показана из-за своего большого размера Загрузить разницу

433
yupik-camera-sensor-idp.dtsi Executable file
Просмотреть файл

@ -0,0 +1,433 @@
#include <dt-bindings/clock/qcom,camcc-yupik.h>
&soc {
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_triple_wide: qcom,actuator0 {
cell-index = <4>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2960000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
actuator_triple_tele: qcom,actuator1 {
cell-index = <5>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2960000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_wide: qcom,eeprom0 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L3I>;
cam_vana1-supply = <&L5I>;
cam_vdig-supply = <&L1I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vio", "cam_vana", "cam_vana1",
"cam_vdig", "cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2904000 1800000 1104000 0 2960000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3000000>;
rgltr-load-current = <5000 68000 74000 805000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 64 0>,
<&tlmm 20 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_triple_tele: qcom,eeprom1 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L4I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2960000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3000000>;
rgltr-load-current = <10000 52000 140000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 65 0>,
<&tlmm 21 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Rear (W) */
qcom,cam-sensor0 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
eeprom-src = <&eeprom_triple_wide>;
led-flash-src = <&led_flash_triple_rear>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L3I>;
cam_vaf-supply = <&L7I>;
cam_v_custom1-supply = <&L5I>;
cam_vdig-supply = <&L1I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_v_custom1",
"cam_vdig","cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2904000 2960000 1800000 1104000 0 3296000>;
rgltr-max-voltage = <1800000 3000000 3000000 1900000 1200000 0 3960000>;
rgltr-load-current = <5000 68000 103000 74000 805000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 64 0>,
<&tlmm 20 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Rear-aux (T) */
qcom,cam-sensor1 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L4I>;
cam_vaf-supply = <&L7I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 2960000 1056000 0 3296000>;
rgltr-max-voltage = <1800000 2900000 3000000 1150000 0 3960000>;
rgltr-load-current = <10000 52000 103000 140000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 65 0>,
<&tlmm 21 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};
&cam_cci1 {
actuator_triple_uw: qcom,actuator2 {
cell-index = <6>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2960000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_uw: qcom,eeprom2 {
cell-index = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L6I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2960000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3000000>;
rgltr-load-current = <3000 52000 257000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 66 0>,
<&tlmm 77 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_front: qcom,eeprom3 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L5J>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2900000 1150000 0>;
rgltr-load-current = <5000 35000 301000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 67 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Rear-aux (UW) */
qcom,cam-sensor2 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L6I>;
cam_vaf-supply = <&L7I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 2960000 1056000 0 3296000>;
rgltr-max-voltage = <1800000 2900000 3000000 1150000 0 3960000>;
rgltr-load-current = <3000 52000 103000 257000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 66 0>,
<&tlmm 77 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Front */
qcom,cam-sensor3 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L5J>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 3296000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <5000 35000 301000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 67 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Rear */
qcom,cam-sensor4 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L6I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0>;
rgltr-max-voltage = <1800000 2900000 1150000 0>;
rgltr-load-current = <3000 52000 257000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend", "cam_mux";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2
&cam_sensor_active_mux>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2
&cam_sensor_suspend_mux>;
gpios = <&tlmm 66 0>,
<&tlmm 77 0>,
<&tlmm 1 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_MUX";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "turbo";
clock-rates = <24000000>;
};
};

390
yupik-camera-sensor-qrd.dtsi Executable file
Просмотреть файл

@ -0,0 +1,390 @@
#include <dt-bindings/clock/qcom,camcc-yupik.h>
&soc {
led_flash_triple_rear: qcom,camera-flash@4 {
cell-index = <4>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@5 {
cell-index = <5>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@6 {
cell-index = <6>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
status = "ok";
};
};
&cam_cci0 {
actuator_triple_tele: qcom,actuator1 {
cell-index = <5>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2960000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_front: qcom,eeprom3 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L5J>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 3296000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <5000 35000 301000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 64 0>,
<&tlmm 20 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_triple_tele: qcom,eeprom1 {
cell-index = <5>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L4I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 2960000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3000000>;
rgltr-load-current = <10000 52000 140000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 65 0>,
<&tlmm 21 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Front */
qcom,cam-sensor0 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L5J>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 3296000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <5000 35000 301000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst0>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst0>;
gpios = <&tlmm 64 0>,
<&tlmm 20 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Rear-aux (T) */
qcom,cam-sensor1 {
cell-index = <5>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_triple_rear_aux>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L4I>;
cam_vaf-supply = <&L7I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 2960000 1056000 0 3296000>;
rgltr-max-voltage = <1800000 2900000 3000000 1150000 0 3960000>;
rgltr-load-current = <10000 52000 103000 140000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 65 0>,
<&tlmm 21 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};
&cam_cci1 {
actuator_triple_wide: qcom,actuator0 {
cell-index = <4>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2960000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
actuator_triple_uw: qcom,actuator2 {
cell-index = <6>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&L7I>;
regulator-names = "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <2960000>;
rgltr-max-voltage = <3000000>;
rgltr-load-current = <103000>;
};
eeprom_triple_wide: qcom,eeprom0 {
cell-index = <4>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L3I>;
cam_v_custom1-supply = <&L5I>;
cam_vdig-supply = <&L1I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_v_custom1",
"cam_vdig","cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2904000 1800000 1104000 0 3296000>;
rgltr-max-voltage = <1800000 3000000 1900000 1200000 0 3960000>;
rgltr-load-current = <5000 68000 74000 805000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 66 0>,
<&tlmm 77 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
eeprom_triple_uw: qcom,eeprom2 {
cell-index = <6>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L6I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 1056000 0 3296000>;
rgltr-max-voltage = <1800000 2900000 1150000 0 3960000>;
rgltr-load-current = <3000 52000 257000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 67 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Rear (W) */
qcom,cam-sensor2 {
cell-index = <4>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
actuator-src = <&actuator_triple_wide>;
eeprom-src = <&eeprom_triple_wide>;
led-flash-src = <&led_flash_triple_rear>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L3I>;
cam_vaf-supply = <&L7I>;
cam_v_custom1-supply = <&L5I>;
cam_vdig-supply = <&L1I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_v_custom1",
"cam_vdig","cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2904000 2960000 1800000 1104000 0 3296000>;
rgltr-max-voltage = <1800000 3000000 3000000 1900000 1200000 0 3960000>;
rgltr-load-current = <5000 68000 103000 74000 805000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_active
&cam_sensor_active_rst2>;
pinctrl-1 = <&cam_sensor_mclk2_suspend
&cam_sensor_suspend_rst2>;
gpios = <&tlmm 66 0>,
<&tlmm 77 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
/* Rear-aux (UW) */
qcom,cam-sensor3 {
cell-index = <6>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_uw>;
actuator-src = <&actuator_triple_uw>;
led-flash-src = <&led_flash_triple_rear_aux2>;
cam_vio-supply = <&L3J>;
cam_vana-supply = <&L6I>;
cam_vaf-supply = <&L7I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_bob-supply = <&BOB>;
regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig",
"cam_clk", "cam_bob";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 2800000 2960000 1056000 0 3296000>;
rgltr-max-voltage = <1800000 2900000 3000000 1150000 0 3960000>;
rgltr-load-current = <3000 52000 103000 257000 0 2000000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst3>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst3>;
gpios = <&tlmm 67 0>,
<&tlmm 78 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET3";
cci-master = <1>;
status = "ok";
clocks = <&camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <24000000>;
};
};

1651
yupik-camera.dtsi Executable file

Разница между файлами не показана из-за своего большого размера Загрузить разницу