From 4d611e79c59c7c7e19fd055ef6c79c38b60053f3 Mon Sep 17 00:00:00 2001 From: Arian Date: Wed, 13 Mar 2024 00:36:54 +0100 Subject: [PATCH] camera: Add support for Xiaomi 12 (cupid|L3) Change-Id: Ia4cdb2c4152e071cf7a3a3f0342a6b8eb1cd6eeb --- qcom/camera/config/waipio.mk | 3 +- qcom/camera/cupid-sm8450-camera-sensor.dts | 17 + qcom/camera/cupid-sm8450-camera-sensor.dtsi | 745 ++++++++++++++++++++ 3 files changed, 764 insertions(+), 1 deletion(-) create mode 100644 qcom/camera/cupid-sm8450-camera-sensor.dts create mode 100644 qcom/camera/cupid-sm8450-camera-sensor.dtsi diff --git a/qcom/camera/config/waipio.mk b/qcom/camera/config/waipio.mk index e27c0880..c137b4fc 100644 --- a/qcom/camera/config/waipio.mk +++ b/qcom/camera/config/waipio.mk @@ -3,7 +3,8 @@ dtbo-$(CONFIG_ARCH_WAIPIO) += waipio-camera-overlay-v2.dtbo \ waipio-camera-sensor-mtp.dtbo \ waipio-camera-sensor-cdp.dtbo \ waipio-camera-sensor-qrd.dtbo \ - zeus-sm8450-camera-sensor.dtbo + zeus-sm8450-camera-sensor.dtbo \ + cupid-sm8450-camera-sensor.dtbo dtbo-$(CONFIG_ARCH_DIWALI) += diwali-camera.dtbo dtbo-$(CONFIG_ARCH_DIWALI) += diwali-camera-sensor-idp.dtbo diff --git a/qcom/camera/cupid-sm8450-camera-sensor.dts b/qcom/camera/cupid-sm8450-camera-sensor.dts new file mode 100644 index 00000000..492cb71a --- /dev/null +++ b/qcom/camera/cupid-sm8450-camera-sensor.dts @@ -0,0 +1,17 @@ +/dts-v1/; +/plugin/; + +#include +#include +#include +#include +#include + +#include "cupid-sm8450-camera-sensor.dtsi" +/ { + model = "Qualcomm Technologies, Inc. 8450 zeus"; + compatible = "qcom,waipio", "qcom,waipiop"; + qcom,msm-id = <457 0x10000>, <482 0x10000>, <457 0x20000>, <482 0x20000>; + qcom,board-id = <0x10008 0>; + xiaomi,miboard-id = <0x2 0>; +}; diff --git a/qcom/camera/cupid-sm8450-camera-sensor.dtsi b/qcom/camera/cupid-sm8450-camera-sensor.dtsi new file mode 100644 index 00000000..4f602510 --- /dev/null +++ b/qcom/camera/cupid-sm8450-camera-sensor.dtsi @@ -0,0 +1,745 @@ +#include + +&tlmm { +//macro reset + cam_sensor_active_rst7: cam_sensor_active_rst7 { + /* RESET REARAUX */ + mux { + pins = "gpio128"; + function = "gpio"; + }; + + config { + pins = "gpio128"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_suspend_rst7: cam_sensor_suspend_rst7 { + /* RESET REARAUX */ + mux { + pins = "gpio128"; + function = "gpio"; + }; + + config { + pins = "gpio128"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +//front reset + cam_sensor_active_rst8: cam_sensor_active_rst8 { + /* RESET FRONT */ + mux { + pins = "gpio127"; + function = "gpio"; + }; + + config { + pins = "gpio127"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_suspend_rst8: cam_sensor_suspend_rst8 { + /* RESET FRONT */ + mux { + pins = "gpio127"; + function = "gpio"; + }; + + config { + pins = "gpio127"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + +//wide reset + cam_sensor_active_rst9: cam_sensor_active_rst9 { + /* RESET FRONT */ + mux { + pins = "gpio126"; + function = "gpio"; + }; + + config { + pins = "gpio126"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_suspend_rst9: cam_sensor_suspend_rst9 { + /* RESET FRONT */ + mux { + pins = "gpio126"; + function = "gpio"; + }; + + config { + pins = "gpio126"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + +//macro + cam_sensor_m_avdd_active: cam_sensor_m_avdd_active { + /* SENSOR MACRO AVDD ENABLE */ + mux { + pins = "gpio71"; + function = "gpio"; + }; + + config { + pins = "gpio71"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_m_avdd_suspend: cam_sensor_m_avdd_suspend { + /* SENSOR MACRO AVDD DISABLE */ + mux { + pins = "gpio71"; + function = "gpio"; + }; + + config { + pins = "gpio71"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +//front dvdd + cam_sensor_f_dvdd_active: cam_sensor_f_dvdd_active { + /* SENSOR FRONT DVDD ENABLE */ + mux { + pins = "gpio93"; + function = "gpio"; + }; + + config { + pins = "gpio93"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_f_dvdd_suspend: cam_sensor_f_dvdd_suspend { + /* SENSOR FRONT DVDD DISABLE */ + mux { + pins = "gpio93"; + function = "gpio"; + }; + + config { + pins = "gpio93"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +//front avdd + cam_sensor_f_avdd_active: cam_sensor_f_avdd_active { + /* SENSOR FRONT AVDD ENABLE */ + mux { + pins = "gpio68"; + function = "gpio"; + }; + + config { + pins = "gpio68"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_f_avdd_suspend: cam_sensor_f_avdd_suspend { + /* SENSOR FRONT AVDD DISABLE */ + mux { + pins = "gpio68"; + function = "gpio"; + }; + + config { + pins = "gpio68"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +//wide dvdd + cam_sensor_w_dvdd_active: cam_sensor_w_dvdd_active { + /* SENSOR WIDE DVDD ENABLE */ + mux { + pins = "gpio2"; + function = "gpio"; + }; + + config { + pins = "gpio2"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_w_dvdd_suspend: cam_sensor_w_dvdd_suspend { + /* SENSOR WIDE DVDD DISABLE */ + mux { + pins = "gpio2"; + function = "gpio"; + }; + + config { + pins = "gpio2"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +//wide avdd + cam_sensor_w_avdd1_active: cam_sensor_w_avdd1_active { + /* SENSOR WIDE DVDD ENABLE */ + mux { + pins = "gpio70"; + function = "gpio"; + }; + + config { + pins = "gpio70"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_w_avdd1_suspend: cam_sensor_w_avdd1_suspend { + /* SENSOR WIDE DVDD DISABLE */ + mux { + pins = "gpio70"; + function = "gpio"; + }; + + config { + pins = "gpio70"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +//ultra avdd + cam_sensor_u_avdd_active: cam_sensor_u_avdd_active { + /* SENSOR ULTRA DVDD ENABLE */ + mux { + pins = "gpio53"; + function = "gpio"; + }; + + config { + pins = "gpio53"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_u_avdd_suspend: cam_sensor_u_avdd_suspend { + /* SENSOR ULTRA DVDD DISABLE */ + mux { + pins = "gpio53"; + function = "gpio"; + }; + + config { + pins = "gpio53"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; +&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"; + }; + + CAMERA_M_AVDD: gpio-regulator@0 { + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "CAMERA_M_AVDD"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <100>; + enable-active-high; + gpio = <&tlmm 71 0>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&cam_sensor_m_avdd_active &cam_sensor_m_avdd_suspend>; + vin-supply = <&BOB>; + }; + + CAMERA_F_DVDD: gpio-regulator@1 { + compatible = "regulator-fixed"; + reg = <0x01 0x00>; + regulator-name = "CAMERA_F_DVDD"; + regulator-min-microvolt = <1104000>; + regulator-max-microvolt = <1104000>; + regulator-enable-ramp-delay = <100>; + enable-active-high; + gpio = <&tlmm 93 0>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&cam_sensor_f_dvdd_active &cam_sensor_f_dvdd_suspend>; + vin-supply = <&S12B>; + }; + + CAMERA_F_AVDD: gpio-regulator@2 { + compatible = "regulator-fixed"; + reg = <0x02 0x00>; + regulator-name = "CAMERA_F_AVDD"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <100>; + enable-active-high; + gpio = <&tlmm 68 0>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&cam_sensor_f_avdd_active &cam_sensor_f_avdd_suspend>; + vin-supply = <&BOB>; + }; + + CAMERA_W_DVDD: gpio-regulator@3 { + compatible = "regulator-fixed"; + reg = <0x03 0x00>; + regulator-name = "CAMERA_W_DVDD"; + regulator-min-microvolt = <1104000>; + regulator-max-microvolt = <1104000>; + regulator-enable-ramp-delay = <100>; + enable-active-high; + gpio = <&tlmm 2 0>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&cam_sensor_w_dvdd_active &cam_sensor_w_dvdd_suspend>; + vin-supply = <&S12B>; + }; + + CAMERA_W_AVDD: gpio-regulator@4 { + compatible = "regulator-fixed"; + reg = <0x04 0x00>; + regulator-name = "CAMERA_W_AVDD"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <100>; + enable-active-high; + gpio = <&tlmm 70 0>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&cam_sensor_w_avdd1_active &cam_sensor_w_avdd1_suspend>; + vin-supply = <&S1C>; + }; + + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + gpios-shared-pinctrl = <403>; + shared-pctrl-gpio-names = "mclk2"; + pinctrl-names = "mclk2_active", "mclk2_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend>; + status = "ok"; + }; +}; + +&cam_cci0 +{ + ois0: qcom,ois0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,ois"; + cam_vio-supply = <&L5J>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_v_custom1-supply = <&L6J>; + regulator-names = "cam_vio", "cam_clk", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 0 3104000>; + rgltr-max-voltage = <1800000 0 3104000>; + rgltr-load-current = <5000 0 6000>; + use-shared-clk; + gpio-no-mux = <0>; + gpios = <&tlmm 102 0>; + gpio-req-tbl-num = <0>; + gpio-req-tbl-flags = <1>; + gpio-req-tbl-label = "CAMIF_MCLK2"; + cci-device = <0>; + cci-master = <1>; + clocks = <&clock_camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + eeprom_triple_wide: qcom,eeprom0 { + cell-index = <0>; + compatible = "qcom,eeprom"; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&L5J>; + cam_vdig-supply = <&CAMERA_W_DVDD>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&CAMERA_W_AVDD>; + cam_v_custom1-supply = <&L6J>; + cam_v_custom2-supply = <&S12B>; + cam_vaf-supply = <&L7J>; + regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana", + "cam_v_custom1", "cam_v_custom2", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1104000 0 1800000 3104000 1350000 3104000>; + rgltr-max-voltage = <1800000 1104000 0 1800000 3104000 1400000 3104000>; + rgltr-load-current = <155000 653600 0 57500 6000 2356666 103000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_active_rst9>; + pinctrl-1 = <&cam_sensor_suspend_rst9>; + gpios = <&tlmm 102 0>, + <&tlmm 126 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET9"; + cci-device = <0>; + cci-master = <1>; + clocks = <&clock_camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + eeprom_front: qcom,eeprom1 { //front ov32b + cell-index = <1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L5J>; + cam_vdig-supply = <&CAMERA_F_DVDD>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&CAMERA_F_AVDD>; + regulator-names = "cam_vio", "cam_vdig", + "cam_clk", "cam_vana"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1104000 0 2800000>; + rgltr-max-voltage = <1800000 1104000 0 2800000>; + rgltr-load-current = <3000 180000 0 43500>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk5_active + &cam_sensor_active_rst8>; + pinctrl-1 = <&cam_sensor_mclk5_suspend + &cam_sensor_suspend_rst8>; + gpios = <&tlmm 105 0>, + <&tlmm 127 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK5", + "CAM_RESET8"; + cci-device = <0>; + cci-master = <0>; + clocks = <&clock_camcc CAM_CC_MCLK5_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + eeprom_triple_ultra: qcom,eeprom2 { + cell-index = <2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L5J>; + cam_vdig-supply = <&L2J>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&L3J>; + //cam_v_custom1-supply = <&L7J>; + regulator-names = "cam_vio", "cam_vdig", + "cam_clk", "cam_vana"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1200000 0 2800000>; + rgltr-max-voltage = <1800000 1200000 0 2800000>; + rgltr-load-current = <400 78000 0 35700>; + 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-device = <0>; + cci-master = <0>; + clocks = <&clock_camcc CAM_CC_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + actuator_triple_wide: qcom,actuator0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <1>; + cam_vaf-supply = <&L7J>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <3104000>; + rgltr-max-voltage = <3104000>; + rgltr-load-current = <103000>; + }; + + qcom,cam-sensor0 { //wide imx707 + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + eeprom-src = <&eeprom_triple_wide>; + actuator-src = <&actuator_triple_wide>; + ois-src = <&ois0>; + led-flash-src = <&led_flash_triple_rear>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&L5J>; + cam_vdig-supply = <&CAMERA_W_DVDD>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&CAMERA_W_AVDD>; + cam_v_custom1-supply = <&L6J>; + cam_v_custom2-supply = <&S12B>; + cam_vaf-supply = <&L7J>; + regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana", + "cam_v_custom1", "cam_v_custom2", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1104000 0 1800000 3104000 1350000 3104000>; + rgltr-max-voltage = <1800000 1104000 0 1800000 3104000 1400000 3104000>; + rgltr-load-current = <155000 653600 0 57500 6000 2356666 103000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_active_rst9>; + pinctrl-1 = <&cam_sensor_suspend_rst9>; + gpios = <&tlmm 102 0>, + <&tlmm 126 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET9"; + cci-device = <0>; + cci-master = <1>; + clocks = <&clock_camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + qcom,cam-sensor1 { //front ov32b + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + eeprom-src = <&eeprom_front>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + cam_vio-supply = <&L5J>; + cam_vdig-supply = <&CAMERA_F_DVDD>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&CAMERA_F_AVDD>; + regulator-names = "cam_vio", "cam_vdig", + "cam_clk", "cam_vana"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1104000 0 2800000>; + rgltr-max-voltage = <1800000 1104000 0 2800000>; + rgltr-load-current = <3000 180000 0 43500>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk5_active + &cam_sensor_active_rst8>; + pinctrl-1 = <&cam_sensor_mclk5_suspend + &cam_sensor_suspend_rst8>; + gpios = <&tlmm 105 0>, + <&tlmm 127 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK5", + "CAM_RESET8"; + cci-device = <0>; + cci-master = <0>; + clocks = <&clock_camcc CAM_CC_MCLK5_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + qcom,cam-sensor2 { //ultra ov13b10 + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + eeprom-src = <&eeprom_triple_ultra>; + led-flash-src = <&led_flash_triple_rear_aux2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&L5J>; + cam_vdig-supply = <&L2J>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&L3J>; + //cam_v_custom1-supply = <&L7J>; + regulator-names = "cam_vio", "cam_vdig", + "cam_clk", "cam_vana"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1200000 0 2800000>; + rgltr-max-voltage = <1800000 1200000 0 2800000>; + rgltr-load-current = <400 78000 0 35700>; + 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-device = <0>; + cci-master = <0>; + clocks = <&clock_camcc CAM_CC_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; +}; + +&cam_cci1 { + eeprom_macro: qcom,eeprom3 { //macro s5k5e9 + cell-index = <3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L5J>; + cam_vdig-supply = <&L1J>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&CAMERA_M_AVDD>; + regulator-names = "cam_vio", "cam_vdig", + "cam_clk", "cam_vana"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1200000 0 2800000>; + rgltr-max-voltage = <1800000 1200000 0 2800000>; + rgltr-load-current = <25 56000 0 21000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_active_rst7>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_suspend_rst7>; + gpios = <&tlmm 103 0>, + <&tlmm 128 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET7"; + cci-device = <1>; + cci-master = <0>; + clocks = <&clock_camcc CAM_CC_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + actuator_triple_macro: qcom,actuator1 { + cell-index = <1>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vaf-supply = <&L4J>; + cam_vio-supply = <&L5J>; + regulator-names = "cam_vaf", "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <2808000 1800000>; + rgltr-max-voltage = <2808000 1800000>; + rgltr-load-current = <100000 5000>; + }; + + qcom,cam-sensor3 { //macro s5k5e9 + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + eeprom-src = <&eeprom_macro>; + actuator-src = <&actuator_triple_macro>; + led-flash-src = <&led_flash_triple_rear_aux>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&L5J>; + cam_vdig-supply = <&L1J>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&CAMERA_M_AVDD>; + regulator-names = "cam_vio", "cam_vdig", + "cam_clk", "cam_vana"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1200000 0 2800000>; + rgltr-max-voltage = <1800000 1200000 0 2800000>; + rgltr-load-current = <25 56000 0 21000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_active_rst7>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_suspend_rst7>; + gpios = <&tlmm 103 0>, + <&tlmm 128 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET7"; + cci-device = <1>; + cci-master = <0>; + clocks = <&clock_camcc CAM_CC_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; +};