diff --git a/qcom/camera/config/waipio.mk b/qcom/camera/config/waipio.mk index b6dbd2a7..29484614 100644 --- a/qcom/camera/config/waipio.mk +++ b/qcom/camera/config/waipio.mk @@ -19,7 +19,8 @@ dtbo-$(CONFIG_ARCH_CAPE) += cape-camera-sensor-mtp.dtbo \ thor-sm8475-camera-sensor.dtbo \ mayfly-sm8475-camera-sensor.dtbo \ mondrian-sm8475-camera-sensor.dtbo \ - zizhan-sm8475-camera-sensor.dtbo + zizhan-sm8475-camera-sensor.dtbo \ + diting-sm8475-camera-sensor.dtbo dtbo-$(CONFIG_ARCH_CAPE) += ukee-camera-sensor-mtp.dtbo \ ukee-camera-sensor-cdp.dtbo \ diff --git a/qcom/camera/diting-sm8475-camera-sensor.dts b/qcom/camera/diting-sm8475-camera-sensor.dts new file mode 100644 index 00000000..4f53a08d --- /dev/null +++ b/qcom/camera/diting-sm8475-camera-sensor.dts @@ -0,0 +1,17 @@ +/dts-v1/; +/plugin/; + +#include +#include +#include +#include +#include + +#include "diting-sm8475-camera-sensor.dtsi" +/ { + model = "Qualcomm Technologies, Inc. 8475 diting"; + compatible = "qcom,cape", "qcom,capep"; + qcom,msm-id = <530 0x10000>, <531 0x10000>, <540 0x10000>; + qcom,board-id = <0x10008 0>; + xiaomi,miboard-id = <0xA 0>; +}; diff --git a/qcom/camera/diting-sm8475-camera-sensor.dtsi b/qcom/camera/diting-sm8475-camera-sensor.dtsi new file mode 100644 index 00000000..04d8aac2 --- /dev/null +++ b/qcom/camera/diting-sm8475-camera-sensor.dtsi @@ -0,0 +1,817 @@ +#include + +&cci0_active { + config { + pins = "gpio110","gpio111"; + bias-pull-up; /* PULL UP*/ + drive-strength = <4>; /* 4 MA */ + }; +}; + +&cci0_suspend { + config { + pins = "gpio110","gpio111"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 4 MA */ + }; +}; + +&cci1_active { + config { + pins = "gpio112","gpio113"; + bias-pull-up; /* PULL UP*/ + drive-strength = <8>; /* 4 MA */ + }; +}; + +&cci1_suspend { + config { + pins = "gpio112","gpio113"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <8>; /* 4 MA */ + }; +}; + +&cci2_active { + config { + pins = "gpio114","gpio115"; + bias-pull-up; /* PULL UP*/ + drive-strength = <4>; /* 4 MA */ + }; +}; + +&cci2_suspend { + config { + pins = "gpio114","gpio115"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 4 MA */ + }; +}; + +&cci3_active { + config { + pins = "gpio208","gpio209"; + bias-pull-up; /* PULL UP*/ + drive-strength = <4>; /* 4 MA */ + qcom,apps; + }; +}; + + +&tlmm { + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + /* MCLK2 */ + mux { + pins = "gpio102"; + function = "cam_mclk"; + }; + + config { + pins = "gpio102"; + bias-disable; /* No PULL */ + drive-strength = <8>; /* 4 MA */ + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + /* MCLK2 */ + mux { + pins = "gpio102"; + function = "cam_mclk"; + }; + + config { + pins = "gpio102"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <8>; /* 4 MA */ + }; + }; + + cam_sensor_active_rst0: cam_sensor_active_rst0 { + /* RESET REAR */ + mux { + pins = "gpio126"; + function = "gpio"; + }; + + config { + pins = "gpio126"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_suspend_rst0: cam_sensor_suspend_rst0 { + /* RESET REAR */ + mux { + pins = "gpio126"; + function = "gpio"; + }; + + config { + pins = "gpio126"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_active_rst5: cam_sensor_active_rst5 { + /* RESET 5 */ + mux { + pins = "gpio127"; + function = "gpio"; + }; + + config { + pins = "gpio127"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_suspend_rst5: cam_sensor_suspend_rst5 { + /* RESET 5 */ + mux { + pins = "gpio127"; + function = "gpio"; + }; + + config { + pins = "gpio127"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_avdd_active: cam_sensor_front_avdd_active { + /* FRONT AVDD */ + mux { + pins = "gpio64"; + function = "gpio"; + }; + + config { + pins = "gpio64"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_avdd_suspend: cam_sensor_front_avdd_suspend { + /* FRONT AVDD */ + mux { + pins = "gpio64"; + function = "gpio"; + }; + + config { + pins = "gpio64"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + 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; + }; + }; + + cam_sensor_active_wide: cam_sensor_active_wide { + mux { + pins = "gpio70", "gpio2"; + function = "gpio"; + }; + + config { + pins = "gpio70", "gpio2"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_suspend_wide: cam_sensor_suspend_wide { + mux { + pins = "gpio70", "gpio2"; + function = "gpio"; + }; + + config { + pins = "gpio70", "gpio2"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_ultra_avdd_active: cam_sensor_ultra_avdd_active { + /* SENSOR MACRO AVDD ENABLE */ + mux { + pins = "gpio6"; + function = "gpio"; + }; + + config { + pins = "gpio6"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_ultra_avdd_suspend: cam_sensor_ultra_avdd_suspend { + /* SENSOR MACRO AVDD DISABLE */ + mux { + pins = "gpio6"; + function = "gpio"; + }; + + config { + pins = "gpio6"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_avdd_active: cam_sensor_macro_avdd_active { + /* SENSOR MACRO AVDD ENABLE */ + mux { + pins = "gpio118"; + function = "gpio"; + }; + + config { + pins = "gpio118"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_avdd_suspend: cam_sensor_macro_avdd_suspend { + /* SENSOR MACRO AVDD DISABLE */ + mux { + pins = "gpio118"; + function = "gpio"; + }; + + config { + pins = "gpio118"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_iovdd_active: cam_sensor_macro_iovdd_active { + /* SENSOR MACRO AVDD ENABLE */ + mux { + pins = "gpio7"; + function = "gpio"; + }; + + config { + pins = "gpio7"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_iovdd_suspend: cam_sensor_macro_iovdd_suspend { + /* SENSOR MACRO AVDD DISABLE */ + mux { + pins = "gpio7"; + function = "gpio"; + }; + + config { + pins = "gpio7"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&pm8350c_switch0 { + qcom,led-mask = <1>; /* Channels 1 & 4 */ + qcom,symmetry-en; +}; + +&cam_csiphy2{ + compatible = "qcom,csiphy-v2.1.3-xiaomi-l2s", "qcom,csiphy"; +}; + +&soc { + led_flash_wide: qcom,camera-flash@1 { + cell-index = <1>; + compatible = "qcom,camera-flash"; + flash-source = <&pm8350c_flash0>; + torch-source = <&pm8350c_torch0>; + switch-source = <&pm8350c_switch0>; + status = "ok"; + }; + + led_flash_ultra: qcom,camera-flash@2 { + cell-index = <2>; + compatible = "qcom,camera-flash"; + flash-source = <&pm8350c_flash0>; + torch-source = <&pm8350c_torch0>; + switch-source = <&pm8350c_switch0>; + status = "ok"; + }; + + led_flash_macro: qcom,camera-flash@3 { + cell-index = <3>; + compatible = "qcom,camera-flash"; + flash-source = <&pm8350c_flash0>; + torch-source = <&pm8350c_torch0>; + switch-source = <&pm8350c_switch0>; + status = "ok"; + }; + + camera_front_avdd_ldo: gpio-regulator@2 { + compatible = "regulator-fixed"; + reg = <0x02 0x00>; + regulator-name = "camera_front_avdd_ldo"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + regulator-enable-ramp-delay = <100>; + enable-active-high; + gpio = <&tlmm 64 0>; + pinctrl-names = "front_avdd_active", "front_avdd_suspend"; + pinctrl-0 = <&cam_sensor_front_avdd_active + &cam_sensor_front_avdd_suspend>; + }; + + CAMERA_ULTRA_AVDD: gpio-regulator@3 { + compatible = "regulator-fixed"; + reg = <0x03 0x00>; + regulator-name = "CAMERA_ULTRA_AVDD"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <100>; + enable-active-high; + gpio = <&tlmm 6 0>; + pinctrl-names = "ultra_avdd_active", "ultra_avdd_suspend"; + pinctrl-0 = <&cam_sensor_ultra_avdd_active + &cam_sensor_ultra_avdd_suspend>; + vin-supply = <&BOB>; + }; + + CAMERA_MACRO_AVDD: gpio-regulator@4 { + compatible = "regulator-fixed"; + reg = <0x04 0x00>; + regulator-name = "CAMERA_MACRO_AVDD"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <100>; + enable-active-high; + gpio = <&tlmm 118 0>; + pinctrl-names = "macro_avdd_active", "macro_avdd_suspend"; + pinctrl-0 = <&cam_sensor_macro_avdd_active + &cam_sensor_macro_avdd_suspend>; + vin-supply = <&BOB>; + }; + + camera_wide_avdd_ldo: gpio-regulator@5 { + compatible = "regulator-fixed"; + reg = <0x05 0x00>; + regulator-name = "camera_wide_avdd_ldo"; + regulator-min-microvolt = <2900000>; + regulator-max-microvolt = <2900000>; + regulator-enable-ramp-delay = <100>; + enable-active-high; + gpio = <&tlmm 70 0>; + //vin-supply = <&S1C>; + }; + + camera_wide_dvdd_ldo: gpio-regulator@6 { + compatible = "regulator-fixed"; + reg = <0x06 0x00>; + regulator-name = "camera_wide_dvdd_ldo"; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + regulator-enable-ramp-delay = <100>; + enable-active-high; + gpio = <&tlmm 2 0>; + vin-supply = <&S12B>; + }; + + camera_wide_avdd2_ldo: gpio-regulator@7 { + compatible = "regulator-fixed"; + reg = <0x07 0x00>; + regulator-name = "camera_wide_avdd2_ldo"; + regulator-min-microvolt = <1860000>; + regulator-max-microvolt = <1860000>; + regulator-enable-ramp-delay = <100>; + enable-active-high; + gpio = <&tlmm 97 0>; + //vin-supply = <&S1C>; + }; + + CAMERA_MACRO_IOVDD: gpio-regulator@8 { + compatible = "regulator-fixed"; + reg = <0x08 0x00>; + regulator-name = "CAMERA_MACRO_IOVDD"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <100>; + enable-active-high; + gpio = <&tlmm 7 0>; + pinctrl-names = "macro_iovdd_active", "macro_iovdd_suspend"; + pinctrl-0 = <&cam_sensor_macro_iovdd_active + &cam_sensor_macro_iovdd_suspend>; + vin-supply = <&BOB>; + }; + + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + gpios-shared-pinctrl = <427 371 303 403>; + shared-pctrl-gpio-names = "cam_wide", "cam_wide", "cam_wide", "cam_wide"; + pinctrl-names = "cam_wide_active", "cam_wide_suspend"; + pinctrl-0 = <&cam_sensor_active_rst0 + &cam_sensor_active_wide + &cam_sensor_mclk2_active>; + pinctrl-1 = <&cam_sensor_suspend_rst0 + &cam_sensor_suspend_wide + &cam_sensor_mclk2_suspend>; + status = "ok"; + }; +}; + +&cam_cci0 +{ + /*ois_wide: qcom,ois0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,ois"; + //cam_vio-supply = <&L5J>; + cam_vdig-supply = <&camera_wide_dvdd_ldo>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&camera_wide_avdd_ldo>; + cam_v_custom1-supply = <&camera_wide_avdd2_ldo>; + //cam_vaf-supply = <&L7J>; + regulator-names = "cam_vdig", + "cam_clk", "cam_vana", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1100000 0 2900000 1860000>; + rgltr-max-voltage = <1100000 0 2900000 1860000>; + rgltr-load-current = <680000 0 103000 50000>; + use-shared-clk; + gpio-no-mux = <0>; + 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_RESET0"; + cci-master = <1>; + clocks = <&clock_camcc CAM_CC_MCLK2_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_vdig-supply = <&camera_wide_dvdd_ldo>; + regulator-names = "cam_vdig"; + }; + + eeprom_triple_wide: qcom,eeprom0 { + cell-index = <0>; + compatible = "qcom,eeprom"; + //cam_vio-supply = <&L5J>; + cam_vdig-supply = <&camera_wide_dvdd_ldo>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&camera_wide_avdd_ldo>; + cam_v_custom1-supply = <&camera_wide_avdd2_ldo>; + //cam_vaf-supply = <&L7J>; + regulator-names = "cam_vdig", + "cam_clk", "cam_vana", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1100000 0 2900000 1860000>; + rgltr-max-voltage = <1100000 0 2900000 1860000>; + rgltr-load-current = <680000 0 103000 50000>; + use-shared-clk; + gpio-no-mux = <0>; + 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_RESET0"; + 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 { + cell-index = <1>; + compatible = "qcom,eeprom"; + //cam_vio-supply = <&L5J>; + //cam_vdig-supply = <&camera_front_vdig_ldo>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&camera_front_avdd_ldo>; + regulator-names = "cam_clk", "cam_vana"; + rgltr-cntrl-support; + rgltr-min-voltage = <0 2900000>; + rgltr-max-voltage = <0 2900000>; + rgltr-load-current = <0 35000>; + 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 127 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-device = <1>; + 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 = <&CAMERA_ULTRA_AVDD>; + //cam_v_custom1-supply = <&L7J>; + regulator-names = "cam_vana", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000 0>; + rgltr-max-voltage = <2800000 0>; + rgltr-load-current = <35000 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 101 0>, + <&tlmm 24 0>; + gpio-reset = <0>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1"; + cci-device = <1>; + cci-master = <0>; + clocks = <&clock_camcc CAM_CC_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + eeprom-src = <&eeprom_triple_wide>; + actuator-src = <&actuator_triple_wide>; + led-flash-src = <&led_flash_wide>; + //ois-src = <&ois_wide>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + //cam_vio-supply = <&L5J>; + cam_vdig-supply = <&camera_wide_dvdd_ldo>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&camera_wide_avdd_ldo>; + cam_v_custom1-supply = <&camera_wide_avdd2_ldo>; + //cam_vaf-supply = <&L7J>; + regulator-names = "cam_vdig", + "cam_clk", "cam_vana", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1100000 0 2900000 1860000>; + rgltr-max-voltage = <1100000 0 2900000 1860000>; + rgltr-load-current = <680000 0 103000 50000>; + use-shared-clk; + gpio-no-mux = <0>; + 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_RESET0"; + 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 { + 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_front_vdig_ldo>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&camera_front_avdd_ldo>; + regulator-names = "cam_clk", "cam_vana"; + rgltr-cntrl-support; + rgltr-min-voltage = <0 2900000>; + rgltr-max-voltage = <0 2900000>; + rgltr-load-current = <0 35000>; + 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 127 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-device = <1>; + cci-master = <0>; + clocks = <&clock_camcc CAM_CC_MCLK5_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + //Ultra + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + eeprom-src = <&eeprom_triple_ultra>; + led-flash-src = <&led_flash_ultra>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + /*cam_vio-supply = <&L5J>; WL2866D_AVDD1 1.8V + cam_vdig-supply = <&L2J>; WL2866D_DVDD2 1.2V*/ + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&CAMERA_ULTRA_AVDD>; + //cam_v_custom1-supply = <&L7J>; + regulator-names = "cam_clk", "cam_vana"; + rgltr-cntrl-support; + rgltr-min-voltage = <0 2800000>; + rgltr-max-voltage = <0 2800000>; + rgltr-load-current = <0 35000>; + 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 = <1>; + 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_triple_macro: qcom,eeprom3 { + cell-index = <3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&CAMERA_MACRO_IOVDD>; + //cam_vdig-supply = <&L1J>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&CAMERA_MACRO_AVDD>; + //cam_v_custom1-supply = <&L7J>; + regulator-names = "cam_vio", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 0>; + rgltr-max-voltage = <1800000 0>; + rgltr-load-current = <5000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_active_rst7>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_suspend_rst7>; + gpios = <&tlmm 100 0>, + <&tlmm 128 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET7"; + //cci-device = <0>; + cci-master = <0>; + clocks = <&clock_camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + + //macro + qcom,cam-sensor3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + eeprom-src = <&eeprom_triple_macro>; + led-flash-src = <&led_flash_macro>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&CAMERA_MACRO_IOVDD>; + //cam_vdig-supply = <&L1J>; + cam_clk-supply = <&cam_cc_titan_top_gdsc>; + cam_vana-supply = <&CAMERA_MACRO_AVDD>; + //cam_v_custom1-supply = <&L7J>; + regulator-names = "cam_vio", + "cam_clk", "cam_vana"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 0 2800000>; + rgltr-max-voltage = <1800000 0 2800000>; + rgltr-load-current = <5000 0 35000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_active_rst7>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_suspend_rst7>; + gpios = <&tlmm 100 0>, + <&tlmm 128 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET7"; + //cci-device = <0>; + cci-master = <0>; + clocks = <&clock_camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "ok"; + }; + +};