#include <dt-bindings/clock/qcom,camcc-lito.h>

&pm8150l_gpios{                                         //pm7150a

    cam_sensor_pmi_gpio {

        cam_sensor_front_0_vana_active: cam_sensor_front_0_vana_active {
            pins = "gpio9";
            function = "normal";
            power-source = <0>;
            output-low;
            input-disable;
        };

        cam_sensor_front_0_vana_suspend: cam_sensor_front_0_vana_suspend {
            pins = "gpio9";
            function = "normal";
            power-source = <0>;
            bias-pull-down;
            input-disable;
        };
    };
};

&pm7250b_gpios{

    cam_sensor_pmi_gpio {

        cam_sensor_rear_0_avdd_active: cam_sensor_rear_0_avdd_active {
            pins = "gpio12";
            function = "normal";
            power-source = <0>;
            output-low;
            input-disable;
        };

        cam_sensor_rear_0_avdd_suspend: cam_sensor_rear_0_avdd_suspend {
            pins = "gpio12";
            function = "normal";
            power-source = <0>;
            bias-pull-down;
            input-disable;
        };
    };
};

&soc {
    led_flash_rear: qcom,camera-flash0 {
        cell-index = <0>;
        compatible = "qcom,camera-flash";
        flash-source = <&pm8150l_flash0 &pm8150l_flash1>;//pm8150a_bob
        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_rear_micro: qcom,camera-flash2 {
        cell-index = <2>;
        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";
    };

    camera_vdig_ldo: gpio-regulator@0 {
		compatible = "regulator-fixed";
		reg = <0x00 0x00>;
		regulator-name = "camera_vdig_ldo";
		regulator-min-microvolt = <1200000>;
		regulator-max-microvolt = <1200000>;
		regulator-enable-ramp-delay = <135>;
		enable-active-high;
		gpio = <&tlmm 72 0>;
		pinctrl-names = "default";
		pinctrl-0 = <&cam_sensor_rear_vdig>;
		vin-supply = <&pm8150a_s8>;
	};

};

&pm8008_regulators {
    vdd_l6-supply = <&BOB>;
    vdd_l7-supply = <&BOB>;
};

&L6P {
    regulator-max-microvolt = <2800000>;
    /* Reduced the headroom by 16mV for AHC */
    qcom,min-dropout-voltage = <184000>;
};

&L7P {
    regulator-max-microvolt = <2900000>;
    /* Reduced the headroom by 16mV for AHC */
    qcom,min-dropout-voltage = <200000>;
};

&pm8150_s5 {
    regulator-min-microvolt = <2024000>;
    regulator-max-microvolt = <2024000>;
};

&cam_cci0 {

    actuator_rear_0: qcom,actuator@0 {
        cell-index = <0>;
        compatible = "qcom,actuator";
        cci-master = <0>;
        cam_vaf-supply = <&L6P>;
        regulator-names = "cam_vaf";
        rgltr-cntrl-support;
        rgltr-min-voltage = <2800000>;
        rgltr-max-voltage = <2800000>;
        rgltr-load-current = <300000>;
    };


    ois_rear_0: qcom,ois@0{
        cell-index = <0>;
        reg = <0>;
        compatible = "qcom,ois";
        cam_vio-supply = <&pm8150_l17>;
        cam_vdig-supply = <&camera_vdig_ldo>;
        cam_vaf-supply = <&L3P>;
        regulator-names ="cam_vio","cam_vdig","cam_vaf";
        rgltr-cntrl-support;
        rgltr-min-voltage = <0 696000 2800000>;
        rgltr-max-voltage = <0 1416000 2800000>;
        rgltr-load-current = <0 1000000 300000>;
        cci-master = <0>;
        status = "ok";
        ois_gyro,position=<3>;
        ois,type=<0>;
        ois_gyro,type=<3>;
        ois,name="LC898124";
        ois_module,vendor=<0>;
        ois_actuator,vednor=<0>;
        ois,fw=<1>;
    };

    eeprom_rear_0: qcom,eeprom@0 {
        cell-index = <0>;
        compatible = "qcom,eeprom";
        reg = <0x0>;
        cam_vio-supply = <&pm8150_l17>;         //pm7250_l17
        cam_vdig-supply = <&camera_vdig_ldo>;
        cam_vana-supply = <&L7P>;               //pm8008_l7
        cam_v_custom1-supply = <&pm8150_s5>;
        cam_clk-supply = <&titan_top_gdsc>;
        regulator-names = "cam_vio","cam_vdig","cam_vana","cam_v_custom1",
            "cam_clk";
        rgltr-cntrl-support;
        rgltr-min-voltage = <0 696000 2900000 2024000  0>;
        rgltr-max-voltage = <0 1416000 2900000 2024000  0>;
        rgltr-load-current = <0 1000000 300000 300000 0>;
        gpio-no-mux = <0>;
        pinctrl-names = "cam_default", "cam_suspend";
        pinctrl-0 = <&cam_sensor_rear_0_clock_active
                     &cam_sensor_rear_0_reset_active
                     &cam_sensor_rear_0_avdd_active>;
        pinctrl-1 = <&cam_sensor_rear_0_clock_suspend
                     &cam_sensor_rear_0_reset_suspend
                     &cam_sensor_rear_0_avdd_suspend>;
        gpios = <&tlmm 15 0>,
                <&tlmm 30 0>,
                <&pm7250b_gpios 12 GPIO_ACTIVE_HIGH>;
        use-shared-clk;
        gpio-reset = <1>;
        gpio-custom1 = <2>;
        gpio-req-tbl-num = <0 1 2>;
        gpio-req-tbl-flags = <1 0 0>;
        gpio-req-tbl-label = "CAM_MCLK0",
            "CAM_RESET0",
            "CAM_CUSTOM1";
        sensor-mode = <0>;
        cci-master = <0>;
        status = "ok";
        clocks = <&camcc CAM_CC_MCLK2_CLK>;
        clock-names = "cam_clk";
        clock-cntl-level = "turbo";
        clock-rates = <19200000>;
    };

    eeprom_rear_1: qcom,eeprom@1 {
        cell-index = <1>;
        compatible = "qcom,eeprom";
        reg = <0x01>;
        cam_vio-supply = <&pm8150_l17>;
        cam_vana-supply = <&L4P>;
        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 = <0 2800000 1056000 0>;
        rgltr-max-voltage = <0 2800000 1056000 0>;
        rgltr-load-current = <300000 300000 600000 0>;
        gpio-no-mux = <0>;
        pinctrl-names = "cam_default", "cam_suspend";
        pinctrl-0 = <&cam_sensor_rear_2_clock_active
                     &cam_sensor_rear_2_reset_active>;

        pinctrl-1 = <&cam_sensor_rear_2_clock_suspend
                     &cam_sensor_rear_2_reset_suspend>;

        gpios = <&tlmm 14 0>,
                <&tlmm 21 0>;

        use-shared-clk;
        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 = <&camcc CAM_CC_MCLK1_CLK>;
        clock-names = "cam_clk";
        clock-cntl-level = "turbo";
        clock-rates = <19200000>;
    };

    eeprom_front_0: qcom,eeprom@2 {
        cell-index = <2>;
        compatible = "qcom,eeprom";
        reg = <0x02>;
        cam_vio-supply = <&pm8150_l17>; //pm7250_l17
        cam_vdig-supply = <&camera_vdig_ldo>;
        cam_vana-supply = <&pm8150a_bob>;
        cam_clk-supply = <&titan_top_gdsc>;
        regulator-names = "cam_vio","cam_vdig","cam_vana",
            "cam_clk";
        rgltr-cntrl-support;
        rgltr-min-voltage = <0 696000 3008000 0>;
        rgltr-max-voltage = <0 1416000 3960000 0>;
        rgltr-load-current = <0 1000000  250000 0>;
        gpio-no-mux = <0>;
        pinctrl-names = "cam_default", "cam_suspend";
        pinctrl-0 = <&cam_sensor_front_0_clock_active
                     &cam_sensor_front_0_reset_active
                     &cam_sensor_front_0_vana_active>;
        pinctrl-1 = <&cam_sensor_front_0_clock_suspend
                     &cam_sensor_front_0_reset_suspend
                     &cam_sensor_front_0_vana_suspend>;
        gpios = <&tlmm 25 0>,
                <&tlmm 29 0>,
                <&pm8150l_gpios 9 GPIO_ACTIVE_HIGH>;            //pm7150a
        use-shared-clk;
        gpio-reset = <1>;
        gpio-vana = <2>;
        gpio-req-tbl-num = <0 1 2>;
        gpio-req-tbl-flags = <1 0 0>;
        gpio-req-tbl-label = "CAM_front_MCLK",
            "CAM_front_RESET",
             "CAM_front_VANA";
        sensor-mode = <0>;
        cci-master = <1>;
        status = "ok";
        clocks = <&camcc CAM_CC_MCLK4_CLK>;
        clock-names = "cam_clk";
        clock-cntl-level = "turbo";
        clock-rates = <19200000>;
    };

    /*wide camera*/
    qcom,cam-sensor@0 {
        cell-index = <0>;
        compatible = "qcom,cam-sensor";
        reg = <0x0>;
        csiphy-sd-index = <1>;
        sensor-position-roll = <90>;
        sensor-position-pitch = <0>;
        sensor-position-yaw = <180>;
        actuator-src = <&actuator_rear_0>;
        eeprom-src = <&eeprom_rear_0>;
        ois-src = <&ois_rear_0>;
        led-flash-src = <&led_flash_rear>;
        cam_vio-supply = <&pm8150_l17>;         //pm7250_l17
        cam_vdig-supply = <&camera_vdig_ldo>;
        cam_vana-supply = <&L7P>;               //pm8008_l7
        cam_v_custom1-supply = <&pm8150_s5>;
        //cam_v_custom2-supply = <&pm8009_l2>;
        cam_vaf-supply = <&L6P>;                //pm8008_l6
        cam_clk-supply = <&titan_top_gdsc>;
        regulator-names = "cam_vio","cam_vdig","cam_vana","cam_v_custom1","cam_vaf",
            "cam_clk";
        rgltr-cntrl-support;
        rgltr-min-voltage = <0 696000 2900000 2024000 2800000 0>;
        rgltr-max-voltage = <0 1416000 2900000 2024000 2800000 0>;
        rgltr-load-current = <0 1000000 300000 300000 300000 0>;
        gpio-no-mux = <0>;
        pinctrl-names = "cam_default", "cam_suspend";
        pinctrl-0 = <&cam_sensor_rear_0_clock_active
                     &cam_sensor_rear_0_reset_active
                     &cam_sensor_rear_0_avdd_active>;
        pinctrl-1 = <&cam_sensor_rear_0_clock_suspend
                     &cam_sensor_rear_0_reset_suspend
                     &cam_sensor_rear_0_avdd_suspend>;
        gpios = <&tlmm 15 0>,
                <&tlmm 30 0>,
                <&pm7250b_gpios 12 GPIO_ACTIVE_HIGH>;
        use-shared-clk;
        gpio-reset = <1>;
        gpio-custom1 = <2>;
        gpio-req-tbl-num = <0 1 2>;
        gpio-req-tbl-flags = <1 0 0>;
        gpio-req-tbl-label = "CAM_MCLK0",
            "CAM_RESET0",
            "CAM_CUSTOM1";
        sensor-mode = <0>;
        cci-master = <0>;
        status = "ok";
        clocks = <&camcc CAM_CC_MCLK2_CLK>;
        clock-names = "cam_clk";
        clock-cntl-level = "turbo";
        clock-rates = <19200000>;
    };

  /*ultra wide-rear-hi846-8M*/
  qcom,cam-sensor@1 {
        cell-index = <1>;
        compatible = "qcom,cam-sensor";
        reg = <0x01>;
        csiphy-sd-index = <3>;
        sensor-position-roll = <270>;
        sensor-position-pitch = <0>;
        sensor-position-yaw = <180>;
        eeprom-src = <&eeprom_rear_1>;
        led-flash-src = <&led_flash_rear_aux>;
        cam_vio-supply = <&pm8150_l17>;
        cam_vana-supply = <&L4P>;
        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 = <0 2800000 1056000 0>;
        rgltr-max-voltage = <0 2800000 1056000 0>;
        rgltr-load-current = <300000 300000 600000 0>;
        gpio-no-mux = <0>;
        pinctrl-names = "cam_default", "cam_suspend";
        pinctrl-0 = <&cam_sensor_rear_2_clock_active
                     &cam_sensor_rear_2_reset_active>;

        pinctrl-1 = <&cam_sensor_rear_2_clock_suspend
                     &cam_sensor_rear_2_reset_suspend>;
        gpios = <&tlmm 14 0>,
                <&tlmm 21 0>;
        use-shared-clk;
        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 = <&camcc CAM_CC_MCLK1_CLK>;
        clock-names = "cam_clk";
        clock-cntl-level = "turbo";
        clock-rates = <19200000>;
    };

   /*Front Main-IMX616-32M*/

   qcom,cam-sensor@2 {
        cell-index = <2>;
        compatible = "qcom,cam-sensor";
        reg = <0x02>;
        csiphy-sd-index = <0>;
        sensor-position-roll = <270>;
        sensor-position-pitch = <0>;
        sensor-position-yaw = <0>;
        eeprom-src = <&eeprom_front_0>;
        cam_vio-supply = <&pm8150_l17>; //pm7250_l17
        cam_vdig-supply = <&camera_vdig_ldo>;
        cam_vana-supply = <&pm8150a_bob>;
        cam_clk-supply = <&titan_top_gdsc>;
        regulator-names = "cam_vio","cam_vdig","cam_vana",
            "cam_clk";
        rgltr-cntrl-support;
        rgltr-min-voltage = <0 696000 3008000 0>;
        rgltr-max-voltage = <0 1416000 3960000 0>;
        rgltr-load-current = <0 1000000  250000 0>;
        gpio-no-mux = <0>;
        pinctrl-names = "cam_default", "cam_suspend";
        pinctrl-0 = <&cam_sensor_front_0_clock_active
                     &cam_sensor_front_0_reset_active
                     &cam_sensor_front_0_vana_active>;
        pinctrl-1 = <&cam_sensor_front_0_clock_suspend
                     &cam_sensor_front_0_reset_suspend
                     &cam_sensor_front_0_vana_suspend>;
        gpios = <&tlmm 25 0>,
                <&tlmm 29 0>,
                <&pm8150l_gpios 9 GPIO_ACTIVE_HIGH>;            //pm7150a
        use-shared-clk;
        gpio-reset = <1>;
        gpio-vana = <2>;
        gpio-req-tbl-num = <0 1 2>;
        gpio-req-tbl-flags = <1 0 0>;
        gpio-req-tbl-label = "CAM_front_MCLK",
            "CAM_front_RESET",
             "CAM_front_VANA";
        sensor-mode = <0>;
        cci-master = <1>;
        status = "ok";
        clocks = <&camcc CAM_CC_MCLK4_CLK>;
        clock-names = "cam_clk";
        clock-cntl-level = "turbo";
        clock-rates = <19200000>;
    };

};

&cam_cci1 {

    eeprom_rear_3: qcom,eeprom@3 {
        cell-index = <3>;
        compatible = "qcom,eeprom";
        reg = <0x3>;
        cam_vio-supply = <&pm8150_l17>;
        cam_vana-supply = <&L5P>;
        cam_clk-supply = <&titan_top_gdsc>;
        regulator-names = "cam_vio","cam_vana",
            "cam_clk";
        rgltr-cntrl-support;
        pwm-switch;
        rgltr-min-voltage = <0 2800000 0>;
        rgltr-max-voltage = <0 2800000 0>;
        rgltr-load-current = <300000 300000 0>;
        gpio-no-mux = <0>;
        pinctrl-names = "cam_default", "cam_suspend";
        pinctrl-0 = <&cam_sensor_rear_1_clock_active
                     &cam_sensor_rear_1_reset_active>;
        pinctrl-1 = <&cam_sensor_rear_1_clock_suspend
                     &cam_sensor_rear_1_reset_suspend>;
        gpios = <&tlmm 16 0>,
                <&tlmm 23 0>;
        use-shared-clk;
        gpio-reset = <1>;
        gpio-req-tbl-num = <0 1>;
        gpio-req-tbl-flags = <1 0>;
        gpio-req-tbl-label = "CAM_MCLK1",
            "CAM_RESET1";
        sensor-mode = <0>;
        cci-master = <0>;
        status = "ok";
        clocks = <&camcc CAM_CC_MCLK3_CLK>;
        clock-names = "cam_clk";
        clock-cntl-level = "turbo";
        clock-rates = <19200000>;
    };

    eeprom_rear_4: qcom,eeprom@4 {
        cell-index = <4>;
        compatible = "qcom,eeprom";
        reg = <0x4>;
        cam_vio-supply = <&pm8150_l17>;
        cam_vdig-supply = <&L2P>;
        cam_vana-supply = <&L5P>;
        cam_clk-supply = <&titan_top_gdsc>;
        regulator-names = "cam_vio","cam_vdig","cam_vana",
            "cam_clk";
        rgltr-cntrl-support;
        rgltr-min-voltage = <0 1104000 2800000 0>;
        rgltr-max-voltage = <0 1104000 2800000 0>;
        rgltr-load-current = <0 1056000 800000 0>;
        gpio-no-mux = <0>;
        pinctrl-names = "cam_default", "cam_suspend";
        pinctrl-0 = <&cam_sensor_rear_3_clock_active
                     &cam_sensor_rear_3_reset_active>;
        pinctrl-1 = <&cam_sensor_rear_3_clock_suspend
                     &cam_sensor_rear_3_reset_suspend>;
        gpios = <&tlmm 13 0>,
                <&tlmm 32 0>;
        use-shared-clk;
        gpio-reset = <1>;
        gpio-req-tbl-num = <0 1>;
        gpio-req-tbl-flags = <1 0>;
        gpio-req-tbl-label = "CAM_MCLK3",
            "CAM_RESET3";
        sensor-mode = <0>;
        cci-master = <0>;
        status = "ok";
        clocks = <&camcc CAM_CC_MCLK0_CLK>;
        clock-names = "cam_clk";
        clock-cntl-level = "turbo";
        clock-rates = <19200000>;
    };

    /*macro_camera*/
    qcom,cam-sensor@3 {
        cell-index = <3>;
        compatible = "qcom,cam-sensor";
        reg = <0x3>;
        csiphy-sd-index = <2>;
        sensor-position-roll = <90>;
        sensor-position-pitch = <0>;
        sensor-position-yaw = <180>;
        eeprom-src = <&eeprom_rear_3>;
        led-flash-src = <&led_flash_rear_micro>;
        cam_vio-supply = <&pm8150_l17>;
        cam_vana-supply = <&L5P>;
        cam_clk-supply = <&titan_top_gdsc>;
        regulator-names = "cam_vio","cam_vana",
            "cam_clk";
        rgltr-cntrl-support;
        pwm-switch;
        rgltr-min-voltage = <0 2800000 0>;
        rgltr-max-voltage = <0 2800000 0>;
        rgltr-load-current = <300000 300000 0>;
        gpio-no-mux = <0>;
        pinctrl-names = "cam_default", "cam_suspend";
        pinctrl-0 = <&cam_sensor_rear_1_clock_active
                     &cam_sensor_rear_1_reset_active>;
        pinctrl-1 = <&cam_sensor_rear_1_clock_suspend
                     &cam_sensor_rear_1_reset_suspend>;
        gpios = <&tlmm 16 0>,
                <&tlmm 23 0>;
        use-shared-clk;
        gpio-reset = <1>;
        gpio-req-tbl-num = <0 1>;
        gpio-req-tbl-flags = <1 0>;
        gpio-req-tbl-label = "CAM_MCLK1",
            "CAM_RESET1";
        sensor-mode = <0>;
        cci-master = <0>;
        status = "ok";
        clocks = <&camcc CAM_CC_MCLK3_CLK>;
        clock-names = "cam_clk";
        clock-cntl-level = "turbo";
        clock-rates = <19200000>;
    };

    /* IR Rear camera: gc5035*/
    qcom,cam-sensor@4 {
        cell-index = <4>;
        compatible = "qcom,cam-sensor";
        reg = <0x4>;
        csiphy-sd-index = <2>;
        sensor-position-roll = <90>;
        sensor-position-pitch = <0>;
        sensor-position-yaw = <180>;
        cam_vio-supply = <&pm8150_l17>;
        cam_vdig-supply = <&L2P>;
        cam_vana-supply = <&L5P>;
        cam_clk-supply = <&titan_top_gdsc>;
        eeprom-src = <&eeprom_rear_4>;
        regulator-names = "cam_vio","cam_vdig","cam_vana",
            "cam_clk";
        rgltr-cntrl-support;
        rgltr-min-voltage = <0 1104000 2800000 0>;
        rgltr-max-voltage = <0 1104000 2800000 0>;
        rgltr-load-current = <0 1056000 800000 0>;
        gpio-no-mux = <0>;
        pinctrl-names = "cam_default", "cam_suspend";
        pinctrl-0 = <&cam_sensor_rear_3_clock_active
                     &cam_sensor_rear_3_reset_active>;
        pinctrl-1 = <&cam_sensor_rear_3_clock_suspend
                     &cam_sensor_rear_3_reset_suspend>;
        gpios = <&tlmm 13 0>,
                <&tlmm 32 0>;
        use-shared-clk;
        gpio-reset = <1>;
        gpio-req-tbl-num = <0 1>;
        gpio-req-tbl-flags = <1 0>;
        gpio-req-tbl-label = "CAM_MCLK3",
            "CAM_RESET3";
        sensor-mode = <0>;
        cci-master = <0>;
        status = "ok";
        clocks = <&camcc CAM_CC_MCLK0_CLK>;
        clock-names = "cam_clk";
        clock-cntl-level = "turbo";
        clock-rates = <19200000>;
    };

    //front camera-gc8054-8M
    qcom,cam-sensor@5 {
        cell-index = <5>;
        compatible = "qcom,cam-sensor";
        reg = <0x05>;
        csiphy-sd-index = <3>;
        sensor-position-roll = <270>;
        sensor-position-pitch = <0>;
        sensor-position-yaw = <0>;
        eeprom-src = <&eeprom_rear_4>;
        cam_vio-supply = <&pm8150_l17>;
        cam_vdig-supply = <&L2P>;
        cam_vana-supply = <&pm8150a_bob>;
        cam_clk-supply = <&titan_top_gdsc>;
        regulator-names = "cam_vio","cam_vdig","cam_vana",
            "cam_clk";
        rgltr-cntrl-support;
        rgltr-min-voltage = <0 1104000 3008000 0>;
        rgltr-max-voltage = <0 1104000 3960000 0>;
        rgltr-load-current = <300000 600000 300000 0>;
        gpio-no-mux = <0>;
        pinctrl-names = "cam_default", "cam_suspend";
        pinctrl-0 = <&cam_sensor_front_clock_active
                     &cam_sensor_front_reset_active
                     &cam_sensor_front_avdd_active
                     &cam_sensor_front_switch_active>;
        pinctrl-1 = <&cam_sensor_front_clock_suspend
                     &cam_sensor_front_reset_suspend
                     &cam_sensor_front_avdd_suspend
                     &cam_sensor_front_switch_suspend>;
        gpios = <&tlmm 14 0>,
                <&tlmm 21 0>,
                <&tlmm 22 0>,
                <&tlmm 56 0>;
        use-shared-clk;
        gpio-reset = <1>;
        gpio-vana = <2>;
        gpio-custom1 = <3>;
        gpio-req-tbl-num = <0 1 2 3>;
        gpio-req-tbl-flags = <1 0 0 0>;
        gpio-req-tbl-label = "CAM_front_MCLK",
            "CAM_front_RESET",
            "CAM_front_VANA",
            "CAM_custom1";
        sensor-mode = <0>;
        cci-master = <0>;
        status = "ok";
        clocks = <&camcc CAM_CC_MCLK1_CLK>;
        clock-names = "cam_clk";
        clock-cntl-level = "turbo";
        clock-rates = <19200000>;
    };


};

&tlmm {
    cam_sensor_front_0_clock_active: cam_sensor_front_0_clock_active {
	    /* MCLK3 */
	    mux {
	        pins = "gpio25";
	        function = "cam_mclk";
	    };

	    config {
	           pins = "gpio25";
	           bias-disable; /* No PULL */
	           drive-strength = <2>; /* 2 MA */
	    };
    };

    cam_sensor_front_0_clock_suspend: cam_sensor_front_0_clock_suspend {
	    /* MCLK3 */
	    mux {
	           pins = "gpio25";
	        function = "cam_mclk";
	    };

	    config {
	           pins = "gpio25";
	           bias-pull-down; /* PULL DOWN */
	           drive-strength = <2>; /* 2 MA */
	    };
    };

    cam_sensor_rear_0_clock_active: cam_sensor_rear_0_clock_active {
        /* MCLK0 */
        mux {
	    pins = "gpio15";
            function = "cam_mclk";
        };

        config {
               pins = "gpio15";
               bias-disable; /* No PULL */
               drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_rear_0_clock_suspend: cam_sensor_rear_0_clock_suspend {
    	/* MCLK0 */
    	mux {
                pins = "gpio15";
                function = "cam_mclk";
            };

    	config {
    	       pins = "gpio15";
    	       bias-pull-down; /* PULL DOWN */
                   drive-strength = <2>; /* 2 MA */
    	};
    };

    cam_sensor_rear_1_clock_active: cam_sensor_rear_1_clock_active {
	/* MCLK1 */
	mux {
	    pins = "gpio16";
	    function = "cam_mclk";
	};

	config {
	       pins = "gpio16";
	       bias-disable; /* No PULL */
	       drive-strength = <2>; /* 2 MA */
	};
    };

    cam_sensor_rear_1_clock_suspend: cam_sensor_rear_1_clock_suspend {
	/* MCLK1 */
	mux {
	    pins = "gpio16";
	    function = "cam_mclk";
	};

	config {
	       pins = "gpio16";
	       bias-pull-down; /* PULL DOWN */
	       drive-strength = <2>; /* 2 MA */
	};
   };

    cam_sensor_rear_3_clock_active: cam_sensor_rear_3_clock_active {
	/* MCLK4 */
	mux {
	    pins = "gpio13";
	    function = "cam_mclk";
	};

        config {
	       pins = "gpio13";
	       bias-disable; /* No PULL */
	       drive-strength = <2>; /* 2 MA */
	};
    };

    cam_sensor_rear_3_clock_suspend: cam_sensor_rear_3_clock_suspend {
	/* MCLK4 */
	mux {
	    pins = "gpio13";
	    function = "cam_mclk";
	};

	config {
	       pins = "gpio13";
	       bias-pull-down; /* PULL DOWN */
	       drive-strength = <2>; /* 2 MA */
	};
    };

    cam_sensor_front_clock_active: cam_sensor_front_clock_active {
	/* MCLK2 */
	mux {
	    pins = "gpio14";
	    function = "cam_mclk";
	};

	config {
	       pins = "gpio14";
	       bias-disable; /* No PULL */
	       drive-strength = <2>; /* 2 MA */
	};
    };

    cam_sensor_front_clock_suspend: cam_sensor_front_clock_suspend {
	/* MCLK2 */
	mux {
   	    pins = "gpio14";
	    function = "cam_mclk";
	};

	config {
	       pins = "gpio14";
	       bias-pull-down; /* PULL DOWN */
	       drive-strength = <2>; /* 2 MA */
	};
    };

    cam_sensor_rear_2_clock_active: cam_sensor_rear_2_clock_active {
	/* MCLK4 */
	mux {
	    pins = "gpio14";
	    function = "cam_mclk";
	};

        config {
	       pins = "gpio14";
	       bias-disable; /* No PULL */
	       drive-strength = <2>; /* 2 MA */
	};
    };

    cam_sensor_rear_2_clock_suspend: cam_sensor_rear_2_clock_suspend {
	/* MCLK4 */
	mux {
	    pins = "gpio14";
	    function = "cam_mclk";
	};

	config {
	       pins = "gpio14";
	       bias-pull-down; /* PULL DOWN */
	       drive-strength = <2>; /* 2 MA */
	};
    };

    cam_sensor_front_0_reset_active: cam_sensor_front_0_reset_active {
        /* RESET 2 */
        mux {
            pins = "gpio29";
            function = "gpio";
        };

        config {
               pins = "gpio29";
               bias-disable; /* No PULL */
               drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_front_0_reset_suspend: cam_sensor_front_0_reset_suspend {
        /* RESET 2 */
        mux {
            pins = "gpio29";
            function = "gpio";
        };
            config {
               pins = "gpio29";
               bias-pull-down; /* PULL DOWN */
               drive-strength = <2>; /* 2 MA */
               output-low;
        };
    };

    cam_sensor_rear_0_reset_active: cam_sensor_rear_0_reset_active {
        /* RESET, STANDBY */
        mux {
            pins = "gpio30";
            function = "gpio";
        };

        config {
            pins = "gpio30";
            bias-disable; /* No PULL */
            drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_rear_0_reset_suspend: cam_sensor_rear_0_reset_suspend {
        /* RESET, STANDBY */
        mux {
            pins = "gpio30";
            function = "gpio";
        };

        config {
            pins = "gpio30";
            bias-disable; /* No PULL */
            drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_rear_1_reset_active: cam_sensor_rear_1_reset_active {
        /* RESET, STANDBY */
        mux {
            pins = "gpio23";
            function = "gpio";
        };

        config {
            pins = "gpio23";
            bias-disable; /* No PULL */
            drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_rear_1_reset_suspend: cam_sensor_rear_1_reset_suspend {
        /* RESET, STANDBY */
        mux {
            pins = "gpio23";
            function = "gpio";
        };

        config {
            pins = "gpio23";
            bias-disable; /* No PULL */
            drive-strength = <2>; /* 2 MA */
        };
    };

 	cam_sensor_rear_vdig: cam_sensor_rear_vdig {
		pins = "gpio72";
		function = "normal";
		power-source = <0>;
		drive-push-pull;
		output-low;
	};
    cam_sensor_rear_1_avdd_active: cam_sensor_rear_1_avdd_active {
        /* RESET, STANDBY */
        mux {
            pins = "gpio139";
            function = "gpio";
        };

        config {
            pins = "gpio139";
            bias-disable; /* No PULL */
            drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_rear_1_avdd_suspend: cam_sensor_rear_1_avdd_suspend {
        /* RESET, STANDBY */
        mux {
            pins = "gpio139";
            function = "gpio";
        };

        config {
            pins = "gpio139";
            bias-disable; /* No PULL */
            drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_front_reset_active: cam_sensor_front_reset_active {
	/* RESET 2 */
	mux {
	    pins = "gpio21";
	    function = "gpio";
	};

	config {
	       pins = "gpio21";
	       bias-disable; /* No PULL */
	       drive-strength = <2>; /* 2 MA */
	};
    };

    cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend {
	/* RESET 2 */
	mux {
	    pins = "gpio21";
	    function = "gpio";
	};

        config {
	       pins = "gpio21";
	       bias-pull-down; /* PULL DOWN */
	       drive-strength = <2>; /* 2 MA */
	       output-low;
	};
    };

    cam_sensor_front_switch_active: cam_sensor_front_switch_active {
	/* switch */
	mux {
	    pins = "gpio56";
	    function = "gpio";
	};

	config {
	       pins = "gpio56";
	       bias-disable; /* No PULL */
	       drive-strength = <2>; /* 2 MA */
	};
    };

    cam_sensor_front_switch_suspend: cam_sensor_front_switch_suspend {
	/* switch */
	mux {
	    pins = "gpio56";
	    function = "gpio";
	};

        config {
	       pins = "gpio56";
	       bias-pull-down; /* PULL DOWN */
	       drive-strength = <2>; /* 2 MA */
	       output-low;
	};
    };

    cam_sensor_front_avdd_active: cam_sensor_front_avdd_active {
	/* RESET 2 */
	mux {
	    pins = "gpio22";
	    function = "gpio";
	};

	config {
	       pins = "gpio22";
	       bias-disable; /* No PULL */
	       drive-strength = <2>; /* 2 MA */
	};
    };

    cam_sensor_front_avdd_suspend: cam_sensor_front_avdd_suspend {
	/* RESET 2 */
	mux {
	    pins = "gpio22";
	    function = "gpio";
	};

        config {
	       pins = "gpio22";
	       bias-pull-down; /* PULL DOWN */
	       drive-strength = <2>; /* 2 MA */
	       output-low;
	};
    };

    cam_sensor_rear_2_reset_active: cam_sensor_rear_2_reset_active {
        /* RESET, STANDBY */
        mux {
            pins = "gpio21";
            function = "gpio";
        };

        config {
            pins = "gpio21";
           bias-disable; /* No PULL */
            drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_rear_2_reset_suspend: cam_sensor_rear_2_reset_suspend {
        /* RESET, STANDBY */
        mux {
            pins = "gpio21";
            function = "gpio";
        };

        config {
            pins = "gpio21";
            bias-pull-down; /* PULL DOWN */
            drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_rear_2_vaf_active: cam_sensor_rear_2_vaf_active {
        /* RESET, STANDBY */
        mux {
            pins = "gpio159";
            function = "gpio";
        };

        config {
            pins = "gpio159";
            bias-disable; /* No PULL */
            drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_rear_2_vaf_suspend: cam_sensor_rear_2_vaf_suspend {
        /* RESET, STANDBY */
        mux {
            pins = "gpio159";
            function = "gpio";
        };

        config {
            pins = "gpio159";
            bias-disable; /* No PULL */
            drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_rear_3_reset_active: cam_sensor_rear_3_reset_active {
        /* RESET, STANDBY */
        mux {
            pins = "gpio32";
            function = "gpio";
        };

        config {
            pins = "gpio32";
            bias-pull-down; /* No PULL */
            drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_rear_3_reset_suspend: cam_sensor_rear_3_reset_suspend {
        /* RESET, STANDBY */
        mux {
            pins = "gpio32";
            function = "gpio";
        };

        config {
            pins = "gpio32";
            bias-disable; /* No PULL */
            drive-strength = <2>; /* 2 MA */
        };
    };

    cam_sensor_rear_0_avdd2_active: cam_sensor_rear_0_avdd2_active {
        /* RESET, STANDBY */
        mux {
            pins = "gpio156";
            function = "gpio";
        };

        config {
            pins = "gpio156";
            drive-strength = <16>; /* 2 MA */
	    output-high;
	    bias-pull-up;
        };
    };

    cam_sensor_rear_0_avdd2_suspend: cam_sensor_rear_0_avdd2_suspend {
        /* RESET, STANDBY */
        mux {
            pins = "gpio156";
            function = "gpio";
        };

        config {
            pins = "gpio156";
	    output-low; /* active low reset */
	    bias-pull-down;
            drive-strength = <2>; /* 2 MA */
        };
    };

};
