msm: camera: Add eeprom multi module design

Add eeprom slave related information in userspace driver
and propagate it to kernel for device probe. Probe happens
from camera daemon. This helps in reducing the boot time.

Change-Id: I92ab450cedece2b145f6c180009dcb7bcce85964
Signed-off-by: Viswanadha Raju Thotakura <viswanad@codeaurora.org>
This commit is contained in:
Viswanadha Raju Thotakura 2015-08-18 11:24:31 -07:00
parent 4062623aad
commit 79bc4df814
11 changed files with 857 additions and 1781 deletions

View File

@ -49,257 +49,14 @@
eeprom0: qcom,eeprom@0 {
cell-index = <0>;
compatible = "qcom,eeprom";
qcom,cci-master = <0>;
reg = <0x0>;
qcom,eeprom-name = "le2464c_master";
compatible = "qcom,eeprom";
qcom,slave-addr = <0xa0>;
qcom,cci-master = <0>;
qcom,num-blocks = <2>;
qcom,page0 = <0 0 0 0 0 0>;
qcom,poll0 = <0 0 0 0 0 0>;
qcom,saddr0 = <0xa0>;
qcom,mem0 = <2048 0x0000 2 0 1 0>;
qcom,page1 = <0 0 0 0 0 0>;
qcom,poll1 = <0 0 0 0 0 0>;
qcom,saddr1 = <0xa0>;
qcom,mem1 = <470 0x1a52 2 0 1 0>;
cam_vio-supply = <&pm8950_l6>;
qcom,cam-vreg-name = "cam_vio";
qcom,cam-vreg-min-voltage = <0>;
qcom,cam-vreg-max-voltage = <0>;
qcom,cam-vreg-op-mode = <0>;
qcom,cam-power-seq-type = "sensor_vreg";
qcom,cam-power-seq-val = "cam_vio";
qcom,cam-power-seq-cfg-val = <1>;
qcom,cam-power-seq-delay = <1>;
status = "ok";
};
eeprom1: qcom,eeprom@1 {
cell-index = <1>;
reg = <0x1>;
qcom,eeprom-name = "sunny_8865";
compatible = "qcom,eeprom";
qcom,slave-addr = <0x6c>;
qcom,cci-master = <0>;
qcom,num-blocks = <8>;
qcom,page0 = <1 0x0100 2 0x01 1 1>;
qcom,poll0 = <0 0x0 2 0x0 1 0>;
qcom,mem0 = <0 0x0 2 0x0 1 0>;
qcom,page1 = <1 0x5002 2 0x00 1 0>;
qcom,poll1 = <0 0x0 2 0x0 1 0>;
qcom,mem1 = <0 0x0 2 0x0 1 0>;
qcom,page2 = <1 0x3d84 2 0xC0 1 0>;
qcom,poll2 = <0 0x0 2 0x0 1 0>;
qcom,mem2 = <0 0x0 2 0x0 1 0>;
qcom,page3 = <1 0x3d88 2 0x70 1 0>;
qcom,poll3 = <0 0x0 2 0x0 1 0>;
qcom,mem3 = <0 0x0 2 0x0 1 0>;
qcom,page4 = <1 0x3d89 2 0x10 1 0>;
qcom,poll4 = <0 0x0 2 0x0 1 0>;
qcom,mem4 = <0 0x0 2 0x0 1 0>;
qcom,page5 = <1 0x3d8A 2 0x70 1 0>;
qcom,poll5 = <0 0x0 2 0x0 1 0>;
qcom,mem5 = <0 0x0 2 0x0 1 0>;
qcom,page6 = <1 0x3d8B 2 0xf4 1 0>;
qcom,poll6 = <0 0x0 2 0x0 1 0>;
qcom,mem6 = <0 0x0 2 0x0 1 0>;
qcom,page7 = <1 0x3d81 2 0x01 1 10>;
qcom,poll7 = <0 0x0 2 0x0 1 1>;
qcom,mem7 = <1536 0x7010 2 0 1 0>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;
cam_vaf-supply = <&pm8950_l17>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf";
qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-op-mode = <105000 0 80000 100000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_default &cam_sensor_front1_default>;
pinctrl-1 = <&cam_sensor_mclk2_sleep &cam_sensor_front1_sleep>;
gpios = <&msm_gpio 28 0>,
<&msm_gpio 40 0>,
<&msm_gpio 39 0>;
qcom,gpio-reset = <1>;
qcom,gpio-standby = <2>;
qcom,gpio-req-tbl-num = <0 1 2>;
qcom,gpio-req-tbl-flags = <1 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_STANDBY2";
qcom,cam-power-seq-type = "sensor_vreg", "sensor_vreg", "sensor_vreg",
"sensor_gpio", "sensor_gpio" , "sensor_clk";
qcom,cam-power-seq-val = "cam_vdig", "cam_vana", "cam_vio",
"sensor_gpio_reset", "sensor_gpio_standby","sensor_cam_mclk";
qcom,cam-power-seq-cfg-val = <1 1 1 1 1 24000000>;
qcom,cam-power-seq-delay = <1 1 1 30 30 5>;
status = "ok";
clocks = <&clock_gcc clk_mclk2_clk_src>,
<&clock_gcc clk_gcc_camss_mclk2_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
eeprom2: qcom,eeprom@2 {
cell-index = <2>;
reg = <0x2>;
qcom,eeprom-name = "dw9761b";
compatible = "qcom,eeprom";
qcom,slave-addr = <0xB0>;
qcom,cci-master = <0>;
qcom,num-blocks = <29>;
qcom,page0 = <0 0x0 2 0x0 1 0>;
qcom,poll0 = <0 0x0 2 0x0 1 0>;
qcom,mem0 = <2332 0x0400 2 0 1 0>;
qcom,page1 = <0 0x0 2 0x0 1 0>;
qcom,poll1 = <0 0x0 2 0x0 1 0>;
qcom,mem1 = <3 0x0F10 2 0 1 0>;
/* bpc: insensor bpc */
qcom,saddr2 = <0x5A>;
qcom,page2 = <1 0x6028 2 0x4000 2 0>;
qcom,poll2 = <0 0x0 2 0x0 2 0>;
qcom,mem2 = <0 0x0 2 0x0 1 0>;
qcom,page3 = <1 0x0136 2 0x1800 2 0>;
qcom,poll3 = <0 0x0 2 0x0 2 0>;
qcom,mem3 = <0 0x0 2 0x0 1 0>;
qcom,page4 = <1 0x0304 2 0x0006 2 0>;
qcom,poll4 = <0 0x0 2 0x0 2 0>;
qcom,mem4 = <0 0x0 2 0x0 1 0>;
qcom,page5 = <1 0x0306 2 0x0073 2 0>;
qcom,poll5 = <0 0x0 2 0x0 2 0>;
qcom,mem5 = <0 0x0 2 0x0 1 0>;
qcom,page6 = <1 0x030C 2 0x0004 2 0>;
qcom,poll6 = <0 0x0 2 0x0 2 0>;
qcom,mem6 = <0 0x0 2 0x0 1 0>;
qcom,page7 = <1 0x030E 2 0x0064 2 0>;
qcom,poll7 = <0 0x0 2 0x0 2 0>;
qcom,mem7 = <0 0x0 2 0x0 1 0>;
qcom,page8 = <1 0x0302 2 0x0001 2 0>;
qcom,poll8 = <0 0x0 2 0x0 2 0>;
qcom,mem8 = <0 0x0 2 0x0 1 0>;
qcom,page9 = <1 0x0300 2 0x0004 2 0>;
qcom,poll9 = <0 0x0 2 0x0 2 0>;
qcom,mem9 = <0 0x0 2 0x0 1 0>;
qcom,page10 = <1 0x030A 2 0x0001 2 0>;
qcom,poll10 = <0 0x0 2 0x0 2 0>;
qcom,mem10 = <0 0x0 2 0x0 1 0>;
qcom,page11 = <1 0x0308 2 0x0008 2 0>;
qcom,poll11 = <0 0x0 2 0x0 2 0>;
qcom,mem11 = <0 0x0 2 0x0 1 0>;
qcom,page12 = <1 0x0100 2 0x0100 2 10>;
qcom,poll12 = <0 0x0 2 0x0 2 0>;
qcom,mem12 = <0 0x0 2 0x0 1 0>;
qcom,page13 = <1 0x0A02 2 0x0D 1 0>;
qcom,pageen13 = <1 0x0A00 2 0x01 1 0>;
qcom,poll13 = <0 0x0 2 0x0 2 0>;
qcom,mem13 = <64 0xA04 2 0x0 1 0>;
qcom,page14 = <1 0x0A02 2 0x0E 1 0>;
qcom,pageen14 = <1 0x0A00 2 0x01 1 0>;
qcom,poll14 = <0 0x0 2 0x0 2 0>;
qcom,mem14 = <64 0xA04 2 0x0 1 0>;
qcom,page15 = <1 0x0A02 2 0x0F 1 0>;
qcom,pageen15 = <1 0x0A00 2 0x01 1 0>;
qcom,poll15 = <0 0x0 2 0x0 2 0>;
qcom,mem15 = <64 0xA04 2 0x0 1 0>;
qcom,page16 = <1 0x0A02 2 0x10 1 0>;
qcom,pageen16 = <1 0x0A00 2 0x01 1 0>;
qcom,poll16 = <0 0x0 2 0x0 2 0>;
qcom,mem16 = <64 0xA04 2 0x0 1 0>;
qcom,page17 = <1 0x0A02 2 0x11 1 0>;
qcom,pageen17 = <1 0x0A00 2 0x01 1 0>;
qcom,poll17 = <0 0x0 2 0x0 2 0>;
qcom,mem17 = <64 0xA04 2 0x0 1 0>;
qcom,page18 = <1 0x0A02 2 0x12 1 0>;
qcom,pageen18 = <1 0x0A00 2 0x01 1 0>;
qcom,poll18 = <0 0x0 2 0x0 2 0>;
qcom,mem18 = <64 0xA04 2 0x0 1 0>;
qcom,page19 = <1 0x0A02 2 0x13 1 0>;
qcom,pageen19 = <1 0x0A00 2 0x01 1 0>;
qcom,poll19 = <0 0x0 2 0x0 2 0>;
qcom,mem19 = <64 0xA04 2 0x0 1 0>;
qcom,page20 = <1 0x0A02 2 0x14 1 0>;
qcom,pageen20 = <1 0x0A00 2 0x01 1 0>;
qcom,poll20 = <0 0x0 2 0x0 2 0>;
qcom,mem20 = <64 0xA04 2 0x0 1 0>;
qcom,page21 = <1 0x0A02 2 0x15 1 0>;
qcom,pageen21 = <1 0x0A00 2 0x01 1 0>;
qcom,poll21 = <0 0x0 2 0x0 2 0>;
qcom,mem21 = <64 0xA04 2 0x0 1 0>;
qcom,page22 = <1 0x0A02 2 0x16 1 0>;
qcom,pageen22 = <1 0x0A00 2 0x01 1 0>;
qcom,poll22 = <0 0x0 2 0x0 2 0>;
qcom,mem22 = <64 0xA04 2 0x0 1 0>;
qcom,page23 = <1 0x0A02 2 0x17 1 0>;
qcom,pageen23 = <1 0x0A00 2 0x01 1 0>;
qcom,poll23 = <0 0x0 2 0x0 2 0>;
qcom,mem23 = <64 0xA04 2 0x0 1 0>;
qcom,page24 = <1 0x0A02 2 0x18 1 0>;
qcom,pageen24 = <1 0x0A00 2 0x01 1 0>;
qcom,poll24 = <0 0x0 2 0x0 2 0>;
qcom,mem24 = <64 0xA04 2 0x0 1 0>;
qcom,page25 = <1 0x0A02 2 0x19 1 0>;
qcom,pageen25 = <1 0x0A00 2 0x01 1 0>;
qcom,poll25 = <0 0x0 2 0x0 2 0>;
qcom,mem25 = <64 0xA04 2 0x0 1 0>;
qcom,page26 = <1 0x0A02 2 0x1A 1 0>;
qcom,pageen26 = <1 0x0A00 2 0x01 1 0>;
qcom,poll26 = <0 0x0 2 0x0 2 0>;
qcom,mem26 = <64 0xA04 2 0x0 1 0>;
qcom,page27 = <1 0x0A02 2 0x1B 1 0>;
qcom,pageen27 = <1 0x0A00 2 0x01 1 0>;
qcom,poll27 = <0 0x0 2 0x0 2 0>;
qcom,mem27 = <64 0xA04 2 0x0 1 0>;
qcom,page28 = <1 0x0A02 2 0x1C 1 0>;
qcom,pageen28 = <1 0x0A00 2 0x01 1 0>;
qcom,poll28 = <0 0x0 2 0x0 2 0>;
qcom,mem28 = <60 0xA04 2 0x0 1 0>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;
cam_vaf-supply = <&pm8950_l17>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana",
qcom,cam-vreg-name = "cam_vdig", "cam_vana", "cam_vio",
"cam_vaf";
qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>;
@ -318,23 +75,50 @@
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_STANDBY0";
qcom,gpio-set-tbl-num = <1 1>;
qcom,gpio-set-tbl-flags = <0 2>;
qcom,gpio-set-tbl-delay = <1000 4000>;
qcom,cam-power-seq-type = "sensor_vreg", "sensor_vreg",
"sensor_vreg", "sensor_vreg", "sensor_gpio",
"sensor_clk";
qcom,cam-power-seq-val = "cam_vdig", "cam_vana", "cam_vio",
"cam_vaf", "sensor_gpio_reset", "sensor_cam_mclk";
qcom,cam-power-seq-cfg-val = <1 1 1 1 1 24000000>;
qcom,cam-power-seq-delay = <1 1 1 1 30 5>;
status = "ok";
clocks = <&clock_gcc clk_mclk0_clk_src>,
<&clock_gcc clk_gcc_camss_mclk0_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
eeprom1: qcom,eeprom@1 {
cell-index = <1>;
compatible = "qcom,eeprom";
reg = <0x01>;
cam_vdig-supply = <&pm8950_l23>;
cam_vio-supply = <&pm8950_l22>;
cam_vana-supply = <&pm8950_l6>;
cam_vaf-supply = <&pm8950_l17>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana",
"cam_vaf";
qcom,cam-vreg-min-voltage = <1200000 0 1800000 2850000>;
qcom,cam-vreg-max-voltage = <1200000 0 1800000 2850000>;
qcom,cam-vreg-op-mode = <200000 0 80000 100000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_default
&cam_sensor_rear_default>;
pinctrl-1 = <&cam_sensor_mclk1_sleep &cam_sensor_rear_sleep>;
gpios = <&msm_gpio 27 0>,
<&msm_gpio 38 0>,
<&msm_gpio 37 0>;
qcom,gpio-reset = <1>;
qcom,gpio-standby = <2>;
qcom,gpio-req-tbl-num = <0 1 2>;
qcom,gpio-req-tbl-flags = <1 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1",
"CAM_STANDBY1";
qcom,gpio-set-tbl-num = <1 1>;
qcom,gpio-set-tbl-flags = <0 2>;
qcom,gpio-set-tbl-delay = <1000 30000>;
qcom,cci-master = <1>;
status = "ok";
clocks = <&clock_gcc clk_mclk1_clk_src>,
<&clock_gcc clk_gcc_camss_mclk1_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
qcom,camera@0 {
cell-index = <0>;
compatible = "qcom,camera";
@ -342,7 +126,7 @@
qcom,csiphy-sd-index = <0>;
qcom,csid-sd-index = <0>;
qcom,mount-angle = <90>;
qcom,eeprom-src = <&eeprom0 &eeprom2>;
qcom,eeprom-src = <&eeprom0>;
qcom,actuator-src = <&actuator0>;
qcom,led-flash-src = <&led_flash0>;
cam_vdig-supply = <&pm8950_l23>;
@ -414,6 +198,7 @@
<&clock_gcc clk_gcc_camss_mclk1_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
qcom,camera@2 {
cell-index = <2>;
compatible = "qcom,camera";

View File

@ -50,76 +50,42 @@
eeprom0: qcom,eeprom@0 {
cell-index = <0>;
reg = <0x0>;
qcom,eeprom-name = "le2464c_master";
compatible = "qcom,eeprom";
qcom,slave-addr = <0xa0>;
qcom,cci-master = <0>;
qcom,num-blocks = <2>;
qcom,page0 = <0 0 0 0 0 0>;
qcom,poll0 = <0 0 0 0 0 0>;
qcom,saddr0 = <0xa0>;
qcom,mem0 = <2048 0x0000 2 0 1 0>;
qcom,page1 = <0 0 0 0 0 0>;
qcom,poll1 = <0 0 0 0 0 0>;
qcom,saddr1 = <0xa0>;
qcom,mem1 = <470 0x1a52 2 0 1 0>;
reg = <0x0>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;
qcom,cam-vreg-name = "cam_vio";
qcom,cam-vreg-min-voltage = <0>;
qcom,cam-vreg-max-voltage = <0>;
qcom,cam-vreg-op-mode = <0>;
qcom,cam-power-seq-type = "sensor_vreg";
qcom,cam-power-seq-val = "cam_vio";
qcom,cam-power-seq-cfg-val = <1>;
qcom,cam-power-seq-delay = <1>;
cam_vaf-supply = <&pm8950_l17>;
qcom,cam-vreg-name = "cam_vdig", "cam_vana", "cam_vio",
"cam_vaf";
qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-op-mode = <200000 0 80000 100000>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_default
&cam_sensor_rear_default>;
pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>;
gpios = <&msm_gpio 26 0>,
<&msm_gpio 36 0>,
<&msm_gpio 35 0>;
qcom,gpio-reset = <1>;
qcom,gpio-standby = <2>;
qcom,gpio-req-tbl-num = <0 1 2>;
qcom,gpio-req-tbl-flags = <1 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_STANDBY0";
status = "ok";
clocks = <&clock_gcc clk_mclk0_clk_src>,
<&clock_gcc clk_gcc_camss_mclk0_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
eeprom1: qcom,eeprom@1 {
cell-index = <1>;
reg = <0x1>;
qcom,eeprom-name = "sunny_8865";
compatible = "qcom,eeprom";
qcom,slave-addr = <0x6c>;
qcom,cci-master = <0>;
qcom,num-blocks = <8>;
qcom,page0 = <1 0x0100 2 0x01 1 1>;
qcom,poll0 = <0 0x0 2 0x0 1 0>;
qcom,mem0 = <0 0x0 2 0x0 1 0>;
qcom,page1 = <1 0x5002 2 0x00 1 0>;
qcom,poll1 = <0 0x0 2 0x0 1 0>;
qcom,mem1 = <0 0x0 2 0x0 1 0>;
qcom,page2 = <1 0x3d84 2 0xC0 1 0>;
qcom,poll2 = <0 0x0 2 0x0 1 0>;
qcom,mem2 = <0 0x0 2 0x0 1 0>;
qcom,page3 = <1 0x3d88 2 0x70 1 0>;
qcom,poll3 = <0 0x0 2 0x0 1 0>;
qcom,mem3 = <0 0x0 2 0x0 1 0>;
qcom,page4 = <1 0x3d89 2 0x10 1 0>;
qcom,poll4 = <0 0x0 2 0x0 1 0>;
qcom,mem4 = <0 0x0 2 0x0 1 0>;
qcom,page5 = <1 0x3d8A 2 0x70 1 0>;
qcom,poll5 = <0 0x0 2 0x0 1 0>;
qcom,mem5 = <0 0x0 2 0x0 1 0>;
qcom,page6 = <1 0x3d8B 2 0xf4 1 0>;
qcom,poll6 = <0 0x0 2 0x0 1 0>;
qcom,mem6 = <0 0x0 2 0x0 1 0>;
qcom,page7 = <1 0x3d81 2 0x01 1 10>;
qcom,poll7 = <0 0x0 2 0x0 1 1>;
qcom,mem7 = <1536 0x7010 2 0 1 0>;
reg = <0x01>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;
@ -142,200 +108,13 @@
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_STANDBY2";
qcom,cam-power-seq-type = "sensor_vreg", "sensor_vreg", "sensor_vreg",
"sensor_gpio", "sensor_gpio" , "sensor_clk";
qcom,cam-power-seq-val = "cam_vdig", "cam_vana", "cam_vio",
"sensor_gpio_reset", "sensor_gpio_standby","sensor_cam_mclk";
qcom,cam-power-seq-cfg-val = <1 1 1 1 1 24000000>;
qcom,cam-power-seq-delay = <1 1 1 30 30 5>;
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_gcc clk_mclk2_clk_src>,
<&clock_gcc clk_gcc_camss_mclk2_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
eeprom2: qcom,eeprom@2 {
cell-index = <2>;
reg = <0x2>;
qcom,eeprom-name = "dw9761b";
compatible = "qcom,eeprom";
qcom,slave-addr = <0xB0>;
qcom,cci-master = <0>;
qcom,num-blocks = <29>;
qcom,page0 = <0 0x0 2 0x0 1 0>;
qcom,poll0 = <0 0x0 2 0x0 1 0>;
qcom,mem0 = <2332 0x0400 2 0 1 0>;
qcom,page1 = <0 0x0 2 0x0 1 0>;
qcom,poll1 = <0 0x0 2 0x0 1 0>;
qcom,mem1 = <3 0x0F10 2 0 1 0>;
/* bpc: insensor bpc */
qcom,saddr2 = <0x5A>;
qcom,page2 = <1 0x6028 2 0x4000 2 0>;
qcom,poll2 = <0 0x0 2 0x0 2 0>;
qcom,mem2 = <0 0x0 2 0x0 1 0>;
qcom,page3 = <1 0x0136 2 0x1800 2 0>;
qcom,poll3 = <0 0x0 2 0x0 2 0>;
qcom,mem3 = <0 0x0 2 0x0 1 0>;
qcom,page4 = <1 0x0304 2 0x0006 2 0>;
qcom,poll4 = <0 0x0 2 0x0 2 0>;
qcom,mem4 = <0 0x0 2 0x0 1 0>;
qcom,page5 = <1 0x0306 2 0x0073 2 0>;
qcom,poll5 = <0 0x0 2 0x0 2 0>;
qcom,mem5 = <0 0x0 2 0x0 1 0>;
qcom,page6 = <1 0x030C 2 0x0004 2 0>;
qcom,poll6 = <0 0x0 2 0x0 2 0>;
qcom,mem6 = <0 0x0 2 0x0 1 0>;
qcom,page7 = <1 0x030E 2 0x0064 2 0>;
qcom,poll7 = <0 0x0 2 0x0 2 0>;
qcom,mem7 = <0 0x0 2 0x0 1 0>;
qcom,page8 = <1 0x0302 2 0x0001 2 0>;
qcom,poll8 = <0 0x0 2 0x0 2 0>;
qcom,mem8 = <0 0x0 2 0x0 1 0>;
qcom,page9 = <1 0x0300 2 0x0004 2 0>;
qcom,poll9 = <0 0x0 2 0x0 2 0>;
qcom,mem9 = <0 0x0 2 0x0 1 0>;
qcom,page10 = <1 0x030A 2 0x0001 2 0>;
qcom,poll10 = <0 0x0 2 0x0 2 0>;
qcom,mem10 = <0 0x0 2 0x0 1 0>;
qcom,page11 = <1 0x0308 2 0x0008 2 0>;
qcom,poll11 = <0 0x0 2 0x0 2 0>;
qcom,mem11 = <0 0x0 2 0x0 1 0>;
qcom,page12 = <1 0x0100 2 0x0100 2 10>;
qcom,poll12 = <0 0x0 2 0x0 2 0>;
qcom,mem12 = <0 0x0 2 0x0 1 0>;
qcom,page13 = <1 0x0A02 2 0x0D 1 0>;
qcom,pageen13 = <1 0x0A00 2 0x01 1 0>;
qcom,poll13 = <0 0x0 2 0x0 2 0>;
qcom,mem13 = <64 0xA04 2 0x0 1 0>;
qcom,page14 = <1 0x0A02 2 0x0E 1 0>;
qcom,pageen14 = <1 0x0A00 2 0x01 1 0>;
qcom,poll14 = <0 0x0 2 0x0 2 0>;
qcom,mem14 = <64 0xA04 2 0x0 1 0>;
qcom,page15 = <1 0x0A02 2 0x0F 1 0>;
qcom,pageen15 = <1 0x0A00 2 0x01 1 0>;
qcom,poll15 = <0 0x0 2 0x0 2 0>;
qcom,mem15 = <64 0xA04 2 0x0 1 0>;
qcom,page16 = <1 0x0A02 2 0x10 1 0>;
qcom,pageen16 = <1 0x0A00 2 0x01 1 0>;
qcom,poll16 = <0 0x0 2 0x0 2 0>;
qcom,mem16 = <64 0xA04 2 0x0 1 0>;
qcom,page17 = <1 0x0A02 2 0x11 1 0>;
qcom,pageen17 = <1 0x0A00 2 0x01 1 0>;
qcom,poll17 = <0 0x0 2 0x0 2 0>;
qcom,mem17 = <64 0xA04 2 0x0 1 0>;
qcom,page18 = <1 0x0A02 2 0x12 1 0>;
qcom,pageen18 = <1 0x0A00 2 0x01 1 0>;
qcom,poll18 = <0 0x0 2 0x0 2 0>;
qcom,mem18 = <64 0xA04 2 0x0 1 0>;
qcom,page19 = <1 0x0A02 2 0x13 1 0>;
qcom,pageen19 = <1 0x0A00 2 0x01 1 0>;
qcom,poll19 = <0 0x0 2 0x0 2 0>;
qcom,mem19 = <64 0xA04 2 0x0 1 0>;
qcom,page20 = <1 0x0A02 2 0x14 1 0>;
qcom,pageen20 = <1 0x0A00 2 0x01 1 0>;
qcom,poll20 = <0 0x0 2 0x0 2 0>;
qcom,mem20 = <64 0xA04 2 0x0 1 0>;
qcom,page21 = <1 0x0A02 2 0x15 1 0>;
qcom,pageen21 = <1 0x0A00 2 0x01 1 0>;
qcom,poll21 = <0 0x0 2 0x0 2 0>;
qcom,mem21 = <64 0xA04 2 0x0 1 0>;
qcom,page22 = <1 0x0A02 2 0x16 1 0>;
qcom,pageen22 = <1 0x0A00 2 0x01 1 0>;
qcom,poll22 = <0 0x0 2 0x0 2 0>;
qcom,mem22 = <64 0xA04 2 0x0 1 0>;
qcom,page23 = <1 0x0A02 2 0x17 1 0>;
qcom,pageen23 = <1 0x0A00 2 0x01 1 0>;
qcom,poll23 = <0 0x0 2 0x0 2 0>;
qcom,mem23 = <64 0xA04 2 0x0 1 0>;
qcom,page24 = <1 0x0A02 2 0x18 1 0>;
qcom,pageen24 = <1 0x0A00 2 0x01 1 0>;
qcom,poll24 = <0 0x0 2 0x0 2 0>;
qcom,mem24 = <64 0xA04 2 0x0 1 0>;
qcom,page25 = <1 0x0A02 2 0x19 1 0>;
qcom,pageen25 = <1 0x0A00 2 0x01 1 0>;
qcom,poll25 = <0 0x0 2 0x0 2 0>;
qcom,mem25 = <64 0xA04 2 0x0 1 0>;
qcom,page26 = <1 0x0A02 2 0x1A 1 0>;
qcom,pageen26 = <1 0x0A00 2 0x01 1 0>;
qcom,poll26 = <0 0x0 2 0x0 2 0>;
qcom,mem26 = <64 0xA04 2 0x0 1 0>;
qcom,page27 = <1 0x0A02 2 0x1B 1 0>;
qcom,pageen27 = <1 0x0A00 2 0x01 1 0>;
qcom,poll27 = <0 0x0 2 0x0 2 0>;
qcom,mem27 = <64 0xA04 2 0x0 1 0>;
qcom,page28 = <1 0x0A02 2 0x1C 1 0>;
qcom,pageen28 = <1 0x0A00 2 0x01 1 0>;
qcom,poll28 = <0 0x0 2 0x0 2 0>;
qcom,mem28 = <60 0xA04 2 0x0 1 0>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;
cam_vaf-supply = <&pm8950_l17>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana",
"cam_vaf";
qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-op-mode = <200000 0 80000 100000>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_default
&cam_sensor_rear_default>;
pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>;
gpios = <&msm_gpio 26 0>,
<&msm_gpio 36 0>,
<&msm_gpio 35 0>;
qcom,gpio-reset = <1>;
qcom,gpio-standby = <2>;
qcom,gpio-req-tbl-num = <0 1 2>;
qcom,gpio-req-tbl-flags = <1 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_STANDBY0";
qcom,gpio-set-tbl-num = <1 1>;
qcom,gpio-set-tbl-flags = <0 2>;
qcom,gpio-set-tbl-delay = <1000 4000>;
qcom,cam-power-seq-type = "sensor_vreg", "sensor_vreg",
"sensor_vreg", "sensor_vreg", "sensor_gpio",
"sensor_clk";
qcom,cam-power-seq-val = "cam_vdig", "cam_vana", "cam_vio",
"cam_vaf", "sensor_gpio_reset", "sensor_cam_mclk";
qcom,cam-power-seq-cfg-val = <1 1 1 1 1 24000000>;
qcom,cam-power-seq-delay = <1 1 1 1 30 5>;
status = "ok";
clocks = <&clock_gcc clk_mclk0_clk_src>,
<&clock_gcc clk_gcc_camss_mclk0_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
qcom,camera@0 {
cell-index = <0>;
compatible = "qcom,camera";
@ -343,7 +122,7 @@
qcom,csiphy-sd-index = <0>;
qcom,csid-sd-index = <0>;
qcom,mount-angle = <90>;
qcom,eeprom-src = <&eeprom0 &eeprom2>;
qcom,eeprom-src = <&eeprom0>;
qcom,actuator-src = <&actuator0>;
qcom,led-flash-src = <&led_flash0>;
cam_vdig-supply = <&pm8950_l23>;

View File

@ -35,50 +35,23 @@
qcom,cam-vreg-op-mode = <80000>;
};
eeprom0: qcom,eeprom@0{
eeprom0: qcom,eeprom@0 {
cell-index = <0>;
reg = <0x00>;
qcom,eeprom-name = "sunny_q13v06k";
compatible = "qcom,eeprom";
qcom,slave-addr = <0x20>;
qcom,cci-master = <0>;
qcom,num-blocks = <8>;
qcom,page0 = <1 0x0100 2 0x01 1 1>;
qcom,poll0 = <0 0x0 2 0 1 1>;
qcom,mem0 = <0 0x0 2 0 1 0>;
qcom,page1 = <1 0x5002 2 0x5 1 1>;
qcom,poll1 = <0 0x0 2 0 1 1>;
qcom,mem1 = <0 0x0 2 0 1 0>;
qcom,page2 = <1 0x3d84 2 0xc0 1 0>;
qcom,poll2 = <0 0x0 2 0 1 1>;
qcom,mem2 = <0 0x0 2 0 1 0>;
qcom,page3 = <1 0x3d88 2 0x7220 2 0>;
qcom,poll3 = <0 0x0 2 0 1 1>;
qcom,mem3 = <0 0x0 2 0 1 0>;
qcom,page4 = <1 0x3d8a 2 0x73BA 2 0>;
qcom,poll4 = <0 0x0 2 0 1 1>;
qcom,mem4 = <0 0x0 2 0 1 0>;
qcom,page5 = <1 0x3d81 2 0x01 1 15>;
qcom,poll5 = <0 0x0 2 0 1 1>;
qcom,mem5 = <411 0x7220 2 0 1 0>;
qcom,page6 = <1 0x5002 2 0x7 1 1>;
qcom,poll6 = <0 0x0 2 0 1 1>;
qcom,mem6 = <0 0x0 2 0 1 0>;
qcom,page7 = <0 0 0 0 0 0>;
qcom,poll7 = <0 0 0 0 0 0>;
qcom,saddr7 = <0xa0>;
qcom,mem7 = <470 0x16ba 2 0 1 0>;
reg = <0x0>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
qcom,cam-vreg-min-voltage = <1200000 0 2800000>;
qcom,cam-vreg-max-voltage = <1200000 0 2800000>;
qcom,cam-vreg-op-mode = <200000 0 80000>;
cam_vaf-supply = <&pm8950_l17>;
qcom,cam-vreg-name = "cam_vdig", "cam_vana", "cam_vio",
"cam_vaf";
qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-op-mode = <200000 0 80000 100000>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>;
pinctrl-0 = <&cam_sensor_mclk0_default
&cam_sensor_rear_default>;
pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>;
gpios = <&msm_gpio 26 0>,
<&msm_gpio 36 0>,
@ -88,283 +61,58 @@
qcom,gpio-req-tbl-num = <0 1 2>;
qcom,gpio-req-tbl-flags = <1 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
"MCAM_RESET0",
"MCAM_STANDBY0";
qcom,cam-power-seq-type = "sensor_vreg",
"sensor_vreg", "sensor_vreg",
"sensor_clk",
"sensor_gpio", "sensor_gpio";
qcom,cam-power-seq-val = "cam_vio",
"cam_vana", "cam_vdig",
"sensor_cam_mclk",
"sensor_gpio_reset",
"sensor_gpio_standby";
qcom,cam-power-seq-cfg-val = <1 1 1 24000000 1 1>;
qcom,cam-power-seq-delay = <1 1 5 5 5 10>;
"CAM_RESET0",
"CAM_STANDBY0";
status = "ok";
clocks = <&clock_gcc clk_mclk0_clk_src>,
<&clock_gcc clk_gcc_camss_mclk0_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
eeprom1: qcom,eeprom@1{
eeprom1: qcom,eeprom@1 {
cell-index = <1>;
reg = <0x01>;
qcom,eeprom-name = "sunny_q5v41b";
compatible = "qcom,eeprom";
qcom,slave-addr = <0x6c>;
qcom,cci-master = <0>;
qcom,num-blocks = <10>;
qcom,page0 = <1 0x0100 2 0x01 1 1>;
qcom,poll0 = <0 0x0 2 0 1 1>;
qcom,mem0 = <0 0x0 2 0 1 0>;
qcom,page1 = <1 0x5002 2 0xa8 1 1>;
qcom,poll1 = <0 0x0 2 0 1 1>;
qcom,mem1 = <0 0x0 2 0 1 0>;
qcom,page2 = <1 0x3d84 2 0xc0 1 1>;
qcom,poll2 = <0 0x0 2 0 1 1>;
qcom,mem2 = <0 0x0 2 0 1 0>;
qcom,page3 = <1 0x3d88 2 0x70 1 1>;
qcom,poll3 = <0 0x0 2 0 1 1>;
qcom,mem3 = <0 0x3d00 2 0 1 0>;
qcom,page4 = <1 0x3d89 2 0x10 1 1>;
qcom,poll4 = <0 0x0 2 0 1 1>;
qcom,mem4 = <0 0x3d00 2 0 1 0>;
qcom,page5 = <1 0x3d8a 2 0x70 1 1>;
qcom,poll5 = <0 0x0 2 0 1 1>;
qcom,mem5 = <0 0x3d00 2 0 1 0>;
qcom,page6 = <1 0x3d8b 2 0x29 1 1>;
qcom,poll6 = <0 0x0 2 0 1 1>;
qcom,mem6 = <0 0x3d00 2 0 1 0>;
qcom,page7 = <1 0x3d81 2 0x01 1 5>;
qcom,poll7 = <0 0x0 2 0 1 1>;
qcom,mem7 = <26 0x7010 2 0 1 1>;
qcom,page8 = <1 0x5002 2 0xaa 1 1>;
qcom,poll8 = <0 0x0 2 0 1 1>;
qcom,mem8 = <0 0x0 2 0 1 0>;
qcom,page9 = <1 0x0100 2 0x00 1 1>;
qcom,poll9 = <0 0x0 2 0 1 1>;
qcom,mem9 = <0 0x0 2 0 1 0>;
reg = <0x01>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
qcom,cam-vreg-type = <0 1 0>;
qcom,cam-vreg-min-voltage = <1200000 0 2800000>;
qcom,cam-vreg-max-voltage = <1200000 0 2800000>;
qcom,cam-vreg-op-mode = <105000 0 80000>;
cam_vaf-supply = <&pm8950_l17>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana",
"cam_vaf";
qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-op-mode = <105000 0 80000 100000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_default &cam_sensor_front1_default>;
pinctrl-1 = <&cam_sensor_mclk2_sleep &cam_sensor_front1_sleep>;
pinctrl-0 = <&cam_sensor_mclk2_default
&cam_sensor_front1_default
&cam_sensor_ext_gpio_default>;
pinctrl-1 = <&cam_sensor_mclk2_sleep
&cam_sensor_front1_sleep
&cam_sensor_ext_gpio_sleep>;
gpios = <&msm_gpio 28 0>,
<&msm_gpio 40 0>,
<&msm_gpio 39 0>;
<&msm_gpio 39 0>,
<&msm_gpio 130 0>,
<&msm_gpio 131 0>;
qcom,gpio-reset = <1>;
qcom,gpio-standby = <2>;
qcom,gpio-req-tbl-num = <0 1 2>;
qcom,gpio-req-tbl-flags = <1 0 0>;
qcom,gpio-custom1 = <3>;
qcom,gpio-custom2 = <4>;
qcom,gpio-req-tbl-num = <0 1 2 3 4>;
qcom,gpio-req-tbl-flags = <1 0 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_STANDBY2";
qcom,cam-power-seq-type = "sensor_vreg",
"sensor_vreg", "sensor_vreg",
"sensor_gpio", "sensor_gpio",
"sensor_clk";
qcom,cam-power-seq-val = "cam_vio",
"cam_vana", "cam_vdig",
"sensor_gpio_reset",
"sensor_gpio_standby",
"sensor_cam_mclk" ;
qcom,cam-power-seq-cfg-val = <1 1 1 1 1 24000000>;
qcom,cam-power-seq-delay = <10 10 10 10 10 5>;
"CAM_STANDBY2",
"CAM_CUSTOM1",
"CAM_CUSTOM2";
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_gcc clk_mclk2_clk_src>,
<&clock_gcc clk_gcc_camss_mclk2_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
eeprom2: qcom,eeprom@2 {
cell-index = <2>;
reg = <0x2>;
qcom,eeprom-name = "dw9761b";
compatible = "qcom,eeprom";
qcom,slave-addr = <0xB0>;
qcom,cci-master = <0>;
qcom,num-blocks = <29>;
qcom,page0 = <0 0x0 2 0x0 1 0>;
qcom,poll0 = <0 0x0 2 0x0 1 0>;
qcom,mem0 = <2332 0x0400 2 0 1 0>;
qcom,page1 = <0 0x0 2 0x0 1 0>;
qcom,poll1 = <0 0x0 2 0x0 1 0>;
qcom,mem1 = <3 0x0F10 2 0 1 0>;
/* bpc: insensor bpc */
qcom,saddr2 = <0x5A>;
qcom,page2 = <1 0x6028 2 0x4000 2 0>;
qcom,poll2 = <0 0x0 2 0x0 2 0>;
qcom,mem2 = <0 0x0 2 0x0 1 0>;
qcom,page3 = <1 0x0136 2 0x1800 2 0>;
qcom,poll3 = <0 0x0 2 0x0 2 0>;
qcom,mem3 = <0 0x0 2 0x0 1 0>;
qcom,page4 = <1 0x0304 2 0x0006 2 0>;
qcom,poll4 = <0 0x0 2 0x0 2 0>;
qcom,mem4 = <0 0x0 2 0x0 1 0>;
qcom,page5 = <1 0x0306 2 0x0073 2 0>;
qcom,poll5 = <0 0x0 2 0x0 2 0>;
qcom,mem5 = <0 0x0 2 0x0 1 0>;
qcom,page6 = <1 0x030C 2 0x0004 2 0>;
qcom,poll6 = <0 0x0 2 0x0 2 0>;
qcom,mem6 = <0 0x0 2 0x0 1 0>;
qcom,page7 = <1 0x030E 2 0x0064 2 0>;
qcom,poll7 = <0 0x0 2 0x0 2 0>;
qcom,mem7 = <0 0x0 2 0x0 1 0>;
qcom,page8 = <1 0x0302 2 0x0001 2 0>;
qcom,poll8 = <0 0x0 2 0x0 2 0>;
qcom,mem8 = <0 0x0 2 0x0 1 0>;
qcom,page9 = <1 0x0300 2 0x0004 2 0>;
qcom,poll9 = <0 0x0 2 0x0 2 0>;
qcom,mem9 = <0 0x0 2 0x0 1 0>;
qcom,page10 = <1 0x030A 2 0x0001 2 0>;
qcom,poll10 = <0 0x0 2 0x0 2 0>;
qcom,mem10 = <0 0x0 2 0x0 1 0>;
qcom,page11 = <1 0x0308 2 0x0008 2 0>;
qcom,poll11 = <0 0x0 2 0x0 2 0>;
qcom,mem11 = <0 0x0 2 0x0 1 0>;
qcom,page12 = <1 0x0100 2 0x0100 2 10>;
qcom,poll12 = <0 0x0 2 0x0 2 0>;
qcom,mem12 = <0 0x0 2 0x0 1 0>;
qcom,page13 = <1 0x0A02 2 0x0D 1 0>;
qcom,pageen13 = <1 0x0A00 2 0x01 1 0>;
qcom,poll13 = <0 0x0 2 0x0 2 0>;
qcom,mem13 = <64 0xA04 2 0x0 1 0>;
qcom,page14 = <1 0x0A02 2 0x0E 1 0>;
qcom,pageen14 = <1 0x0A00 2 0x01 1 0>;
qcom,poll14 = <0 0x0 2 0x0 2 0>;
qcom,mem14 = <64 0xA04 2 0x0 1 0>;
qcom,page15 = <1 0x0A02 2 0x0F 1 0>;
qcom,pageen15 = <1 0x0A00 2 0x01 1 0>;
qcom,poll15 = <0 0x0 2 0x0 2 0>;
qcom,mem15 = <64 0xA04 2 0x0 1 0>;
qcom,page16 = <1 0x0A02 2 0x10 1 0>;
qcom,pageen16 = <1 0x0A00 2 0x01 1 0>;
qcom,poll16 = <0 0x0 2 0x0 2 0>;
qcom,mem16 = <64 0xA04 2 0x0 1 0>;
qcom,page17 = <1 0x0A02 2 0x11 1 0>;
qcom,pageen17 = <1 0x0A00 2 0x01 1 0>;
qcom,poll17 = <0 0x0 2 0x0 2 0>;
qcom,mem17 = <64 0xA04 2 0x0 1 0>;
qcom,page18 = <1 0x0A02 2 0x12 1 0>;
qcom,pageen18 = <1 0x0A00 2 0x01 1 0>;
qcom,poll18 = <0 0x0 2 0x0 2 0>;
qcom,mem18 = <64 0xA04 2 0x0 1 0>;
qcom,page19 = <1 0x0A02 2 0x13 1 0>;
qcom,pageen19 = <1 0x0A00 2 0x01 1 0>;
qcom,poll19 = <0 0x0 2 0x0 2 0>;
qcom,mem19 = <64 0xA04 2 0x0 1 0>;
qcom,page20 = <1 0x0A02 2 0x14 1 0>;
qcom,pageen20 = <1 0x0A00 2 0x01 1 0>;
qcom,poll20 = <0 0x0 2 0x0 2 0>;
qcom,mem20 = <64 0xA04 2 0x0 1 0>;
qcom,page21 = <1 0x0A02 2 0x15 1 0>;
qcom,pageen21 = <1 0x0A00 2 0x01 1 0>;
qcom,poll21 = <0 0x0 2 0x0 2 0>;
qcom,mem21 = <64 0xA04 2 0x0 1 0>;
qcom,page22 = <1 0x0A02 2 0x16 1 0>;
qcom,pageen22 = <1 0x0A00 2 0x01 1 0>;
qcom,poll22 = <0 0x0 2 0x0 2 0>;
qcom,mem22 = <64 0xA04 2 0x0 1 0>;
qcom,page23 = <1 0x0A02 2 0x17 1 0>;
qcom,pageen23 = <1 0x0A00 2 0x01 1 0>;
qcom,poll23 = <0 0x0 2 0x0 2 0>;
qcom,mem23 = <64 0xA04 2 0x0 1 0>;
qcom,page24 = <1 0x0A02 2 0x18 1 0>;
qcom,pageen24 = <1 0x0A00 2 0x01 1 0>;
qcom,poll24 = <0 0x0 2 0x0 2 0>;
qcom,mem24 = <64 0xA04 2 0x0 1 0>;
qcom,page25 = <1 0x0A02 2 0x19 1 0>;
qcom,pageen25 = <1 0x0A00 2 0x01 1 0>;
qcom,poll25 = <0 0x0 2 0x0 2 0>;
qcom,mem25 = <64 0xA04 2 0x0 1 0>;
qcom,page26 = <1 0x0A02 2 0x1A 1 0>;
qcom,pageen26 = <1 0x0A00 2 0x01 1 0>;
qcom,poll26 = <0 0x0 2 0x0 2 0>;
qcom,mem26 = <64 0xA04 2 0x0 1 0>;
qcom,page27 = <1 0x0A02 2 0x1B 1 0>;
qcom,pageen27 = <1 0x0A00 2 0x01 1 0>;
qcom,poll27 = <0 0x0 2 0x0 2 0>;
qcom,mem27 = <64 0xA04 2 0x0 1 0>;
qcom,page28 = <1 0x0A02 2 0x1C 1 0>;
qcom,pageen28 = <1 0x0A00 2 0x01 1 0>;
qcom,poll28 = <0 0x0 2 0x0 2 0>;
qcom,mem28 = <60 0xA04 2 0x0 1 0>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
qcom,cam-vreg-min-voltage = <1200000 0 2800000>;
qcom,cam-vreg-max-voltage = <1200000 0 2800000>;
qcom,cam-vreg-op-mode = <200000 0 80000>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_default &cam_sensor_rear_default>;
pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>;
gpios = <&msm_gpio 26 0>,
<&msm_gpio 36 0>,
<&msm_gpio 35 0>;
qcom,gpio-reset = <1>;
qcom,gpio-standby = <2>;
qcom,gpio-req-tbl-num = <0 1 2>;
qcom,gpio-req-tbl-flags = <1 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
"MCAM_RESET0",
"MCAM_STANDBY0";
qcom,cam-power-seq-type = "sensor_vreg",
"sensor_vreg", "sensor_vreg",
"sensor_clk",
"sensor_gpio", "sensor_gpio";
qcom,cam-power-seq-val = "cam_vio",
"cam_vana", "cam_vdig",
"sensor_cam_mclk",
"sensor_gpio_reset",
"sensor_gpio_standby";
qcom,cam-power-seq-cfg-val = <1 1 1 24000000 1 1>;
qcom,cam-power-seq-delay = <1 1 5 5 5 10>;
status = "ok";
clocks = <&clock_gcc clk_mclk0_clk_src>,
<&clock_gcc clk_gcc_camss_mclk0_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
qcom,camera@0 {
cell-index = <0>;
compatible = "qcom,camera";
@ -375,7 +123,7 @@
qcom,mount-angle = <90>;
qcom,actuator-src = <&actuator0>;
qcom,led-flash-src = <&led_flash0>;
qcom,eeprom-src = <&eeprom0 &eeprom2>;
qcom,eeprom-src = <&eeprom0>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;

View File

@ -49,76 +49,52 @@
eeprom0: qcom,eeprom@0 {
cell-index = <0>;
reg = <0x0>;
qcom,eeprom-name = "le2464c";
compatible = "qcom,eeprom";
qcom,slave-addr = <0xa0>;
qcom,cci-master = <0>;
qcom,num-blocks = <1>;
qcom,page0 = <0 0 0 0 0 0>;
qcom,poll0 = <0 0 0 0 0 0>;
qcom,saddr0 = <0xa0>;
qcom,mem0 = <2048 0x0000 2 0 1 0>;
reg = <0x0>;
cam_vdig-supply = <&pm8950_l3>;
cam_vio-supply = <&pm8950_l6>;
qcom,cam-vreg-name = "cam_vio";
qcom,cam-vreg-min-voltage = <0>;
qcom,cam-vreg-max-voltage = <0>;
qcom,cam-vreg-op-mode = <0>;
qcom,cam-power-seq-type = "sensor_vreg";
qcom,cam-power-seq-val = "cam_vio";
qcom,cam-power-seq-cfg-val = <1>;
qcom,cam-power-seq-delay = <1>;
cam_vaf-supply = <&pm8950_l17>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vaf";
qcom,cam-vreg-min-voltage = <1100000 0 2850000>;
qcom,cam-vreg-max-voltage = <1100000 0 2850000>;
qcom,cam-vreg-op-mode = <200000 0 100000>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_default
&cam_sensor_rear_default
&cam_sensor_rear_vana>;
pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep
&cam_sensor_rear_vana_sleep>;
gpios = <&msm_gpio 26 0>,
<&msm_gpio 129 0>,
<&msm_gpio 35 0>,
<&msm_gpio 63 0>;
qcom,gpio-reset = <1>;
qcom,gpio-standby = <2>;
qcom,gpio-vana = <3>;
qcom,gpio-req-tbl-num = <0 1 2 3>;
qcom,gpio-req-tbl-flags = <1 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_STANDBY0",
"CAM_VANA";
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_gcc clk_mclk0_clk_src>,
<&clock_gcc clk_gcc_camss_mclk0_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
eeprom1: qcom,eeprom@1 {
cell-index = <1>;
reg = <0x1>;
qcom,eeprom-name = "sunny_8865";
compatible = "qcom,eeprom";
qcom,slave-addr = <0x6c>;
qcom,cci-master = <0>;
qcom,num-blocks = <8>;
qcom,page0 = <1 0x0100 2 0x01 1 1>;
qcom,poll0 = <0 0x0 2 0x0 1 0>;
qcom,mem0 = <0 0x0 2 0x0 1 0>;
qcom,page1 = <1 0x5002 2 0x00 1 0>;
qcom,poll1 = <0 0x0 2 0x0 1 0>;
qcom,mem1 = <0 0x0 2 0x0 1 0>;
qcom,page2 = <1 0x3d84 2 0xC0 1 0>;
qcom,poll2 = <0 0x0 2 0x0 1 0>;
qcom,mem2 = <0 0x0 2 0x0 1 0>;
qcom,page3 = <1 0x3d88 2 0x70 1 0>;
qcom,poll3 = <0 0x0 2 0x0 1 0>;
qcom,mem3 = <0 0x0 2 0x0 1 0>;
qcom,page4 = <1 0x3d89 2 0x10 1 0>;
qcom,poll4 = <0 0x0 2 0x0 1 0>;
qcom,mem4 = <0 0x0 2 0x0 1 0>;
qcom,page5 = <1 0x3d8A 2 0x70 1 0>;
qcom,poll5 = <0 0x0 2 0x0 1 0>;
qcom,mem5 = <0 0x0 2 0x0 1 0>;
qcom,page6 = <1 0x3d8B 2 0xf4 1 0>;
qcom,poll6 = <0 0x0 2 0x0 1 0>;
qcom,mem6 = <0 0x0 2 0x0 1 0>;
qcom,page7 = <1 0x3d81 2 0x01 1 10>;
qcom,poll7 = <0 0x0 2 0x0 1 1>;
qcom,mem7 = <1536 0x7010 2 0 1 0>;
reg = <0x1>;
qcom,actuator-src = <&actuator1>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;
cam_vaf-supply = <&pm8950_l17>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf";
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana",
"cam_vaf";
qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-op-mode = <105000 0 80000 100000>;
@ -136,12 +112,9 @@
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_STANDBY2";
qcom,cam-power-seq-type = "sensor_vreg", "sensor_vreg", "sensor_vreg",
"sensor_gpio", "sensor_gpio" , "sensor_clk";
qcom,cam-power-seq-val = "cam_vdig", "cam_vana", "cam_vio",
"sensor_gpio_reset", "sensor_gpio_standby","sensor_cam_mclk";
qcom,cam-power-seq-cfg-val = <1 1 1 1 1 24000000>;
qcom,cam-power-seq-delay = <1 1 1 30 30 5>;
qcom,sensor-position = <1>;
qcom,sensor-mode = <0>;
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_gcc clk_mclk2_clk_src>,
<&clock_gcc clk_gcc_camss_mclk2_clk>;

View File

@ -49,71 +49,45 @@
eeprom0: qcom,eeprom@0 {
cell-index = <0>;
reg = <0x0>;
qcom,eeprom-name = "le2464c";
compatible = "qcom,eeprom";
qcom,slave-addr = <0xa0>;
qcom,cci-master = <0>;
qcom,num-blocks = <1>;
qcom,page0 = <0 0 0 0 0 0>;
qcom,poll0 = <0 0 0 0 0 0>;
qcom,saddr0 = <0xa0>;
qcom,mem0 = <8192 0x0000 2 0 1 0>;
reg = <0x0>;
cam_vdig-supply = <&pm8950_l3>;
cam_vio-supply = <&pm8950_l6>;
qcom,cam-vreg-name = "cam_vio";
qcom,cam-vreg-min-voltage = <0>;
qcom,cam-vreg-max-voltage = <0>;
qcom,cam-vreg-op-mode = <0>;
qcom,cam-power-seq-type = "sensor_vreg";
qcom,cam-power-seq-val = "cam_vio";
qcom,cam-power-seq-cfg-val = <1>;
qcom,cam-power-seq-delay = <1>;
cam_vaf-supply = <&pm8950_l17>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vaf";
qcom,cam-vreg-min-voltage = <1100000 0 2850000>;
qcom,cam-vreg-max-voltage = <1100000 0 2850000>;
qcom,cam-vreg-op-mode = <200000 0 100000>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_default
&cam_sensor_rear_default
&cam_sensor_rear_vana>;
pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep
&cam_sensor_rear_vana_sleep>;
gpios = <&msm_gpio 26 0>,
<&msm_gpio 129 0>,
<&msm_gpio 35 0>,
<&msm_gpio 63 0>;
qcom,gpio-reset = <1>;
qcom,gpio-standby = <2>;
qcom,gpio-vana = <3>;
qcom,gpio-req-tbl-num = <0 1 2 3>;
qcom,gpio-req-tbl-flags = <1 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_STANDBY0",
"CAM_VANA";
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_gcc clk_mclk0_clk_src>,
<&clock_gcc clk_gcc_camss_mclk0_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
eeprom1: qcom,eeprom@1 {
cell-index = <1>;
reg = <0x1>;
qcom,eeprom-name = "sunny_8865";
compatible = "qcom,eeprom";
qcom,slave-addr = <0x6c>;
qcom,cci-master = <0>;
qcom,num-blocks = <8>;
qcom,page0 = <1 0x0100 2 0x01 1 1>;
qcom,poll0 = <0 0x0 2 0x0 1 0>;
qcom,mem0 = <0 0x0 2 0x0 1 0>;
qcom,page1 = <1 0x5002 2 0x00 1 0>;
qcom,poll1 = <0 0x0 2 0x0 1 0>;
qcom,mem1 = <0 0x0 2 0x0 1 0>;
qcom,page2 = <1 0x3d84 2 0xC0 1 0>;
qcom,poll2 = <0 0x0 2 0x0 1 0>;
qcom,mem2 = <0 0x0 2 0x0 1 0>;
qcom,page3 = <1 0x3d88 2 0x70 1 0>;
qcom,poll3 = <0 0x0 2 0x0 1 0>;
qcom,mem3 = <0 0x0 2 0x0 1 0>;
qcom,page4 = <1 0x3d89 2 0x10 1 0>;
qcom,poll4 = <0 0x0 2 0x0 1 0>;
qcom,mem4 = <0 0x0 2 0x0 1 0>;
qcom,page5 = <1 0x3d8A 2 0x70 1 0>;
qcom,poll5 = <0 0x0 2 0x0 1 0>;
qcom,mem5 = <0 0x0 2 0x0 1 0>;
qcom,page6 = <1 0x3d8B 2 0xf4 1 0>;
qcom,poll6 = <0 0x0 2 0x0 1 0>;
qcom,mem6 = <0 0x0 2 0x0 1 0>;
qcom,page7 = <1 0x3d81 2 0x01 1 10>;
qcom,poll7 = <0 0x0 2 0x0 1 1>;
qcom,mem7 = <1536 0x7010 2 0 1 0>;
reg = <0x1>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;
@ -136,12 +110,9 @@
qcom,gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2",
"CAM_STANDBY2";
qcom,cam-power-seq-type = "sensor_vreg", "sensor_vreg", "sensor_vreg",
"sensor_gpio", "sensor_gpio" , "sensor_clk";
qcom,cam-power-seq-val = "cam_vdig", "cam_vana", "cam_vio",
"sensor_gpio_reset", "sensor_gpio_standby","sensor_cam_mclk";
qcom,cam-power-seq-cfg-val = <1 1 1 1 1 24000000>;
qcom,cam-power-seq-delay = <1 1 1 30 30 5>;
qcom,sensor-position = <1>;
qcom,sensor-mode = <0>;
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_gcc clk_mclk2_clk_src>,
<&clock_gcc clk_gcc_camss_mclk2_clk>;

View File

@ -35,76 +35,37 @@
qcom,cam-vreg-op-mode = <80000>;
};
eeprom0: qcom,eeprom@0{
eeprom0: qcom,eeprom@0 {
cell-index = <0>;
reg = <0x00>;
qcom,eeprom-name = "sunny_q13v06k";
compatible = "qcom,eeprom";
qcom,slave-addr = <0x20>;
qcom,cci-master = <0>;
qcom,num-blocks = <8>;
qcom,page0 = <1 0x0100 2 0x01 1 1>;
qcom,poll0 = <0 0x0 2 0 1 1>;
qcom,mem0 = <0 0x0 2 0 1 0>;
qcom,page1 = <1 0x5002 2 0x5 1 1>;
qcom,poll1 = <0 0x0 2 0 1 1>;
qcom,mem1 = <0 0x0 2 0 1 0>;
qcom,page2 = <1 0x3d84 2 0xc0 1 0>;
qcom,poll2 = <0 0x0 2 0 1 1>;
qcom,mem2 = <0 0x0 2 0 1 0>;
qcom,page3 = <1 0x3d88 2 0x7220 2 0>;
qcom,poll3 = <0 0x0 2 0 1 1>;
qcom,mem3 = <0 0x0 2 0 1 0>;
qcom,page4 = <1 0x3d8a 2 0x73BA 2 0>;
qcom,poll4 = <0 0x0 2 0 1 1>;
qcom,mem4 = <0 0x0 2 0 1 0>;
qcom,page5 = <1 0x3d81 2 0x01 1 15>;
qcom,poll5 = <0 0x0 2 0 1 1>;
qcom,mem5 = <411 0x7220 2 0 1 0>;
qcom,page6 = <1 0x5002 2 0x7 1 1>;
qcom,poll6 = <0 0x0 2 0 1 1>;
qcom,mem6 = <0 0x0 2 0 1 0>;
qcom,page7 = <0 0 0 0 0 0>;
qcom,poll7 = <0 0 0 0 0 0>;
qcom,saddr7 = <0xa0>;
qcom,mem7 = <470 0x16ba 2 0 1 0>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
reg = <0x0>;
cam_vdig-supply = <&pm8950_l3>;
cam_vio-supply = <&pm8950_l6>;
cam_vaf-supply = <&pm8950_l17>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana",
"cam_vaf";
qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-op-mode = <200000 0 80000 100000>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vaf";
qcom,cam-vreg-min-voltage = <1100000 0 2850000>;
qcom,cam-vreg-max-voltage = <1100000 0 2850000>;
qcom,cam-vreg-op-mode = <200000 0 100000>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_default
&cam_sensor_rear_default>;
pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep>;
&cam_sensor_rear_default
&cam_sensor_rear_vana>;
pinctrl-1 = <&cam_sensor_mclk0_sleep &cam_sensor_rear_sleep
&cam_sensor_rear_vana_sleep>;
gpios = <&msm_gpio 26 0>,
<&msm_gpio 129 0>,
<&msm_gpio 35 0>;
<&msm_gpio 35 0>,
<&msm_gpio 63 0>;
qcom,gpio-reset = <1>;
qcom,gpio-standby = <2>;
qcom,gpio-req-tbl-num = <0 1 2>;
qcom,gpio-req-tbl-flags = <1 0 0>;
qcom,gpio-req-tbl-label = "MCAM1_MCLK0",
"MCAM1_RESET",
"MCAM1_STANDBY";
qcom,cam-power-seq-type = "sensor_vreg",
"sensor_vreg", "sensor_vreg",
"sensor_clk",
"sensor_gpio", "sensor_gpio";
qcom,cam-power-seq-val = "cam_vio",
"cam_vana", "cam_vdig",
"sensor_cam_mclk",
"sensor_gpio_reset",
"sensor_gpio_standby";
qcom,cam-power-seq-cfg-val = <1 1 1 24000000 1 1>;
qcom,cam-power-seq-delay = <1 1 5 5 5 10>;
qcom,gpio-vana = <3>;
qcom,gpio-req-tbl-num = <0 1 2 3>;
qcom,gpio-req-tbl-flags = <1 0 0 0>;
qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_STANDBY0",
"CAM_VANA";
qcom,cci-master = <0>;
status = "ok";
clocks = <&clock_gcc clk_mclk0_clk_src>,
<&clock_gcc clk_gcc_camss_mclk0_clk>;
@ -113,44 +74,8 @@
eeprom1: qcom,eeprom@1{
cell-index = <1>;
reg = <0x01>;
qcom,eeprom-name = "sunny_q5v41b";
compatible = "qcom,eeprom";
qcom,slave-addr = <0x6c>;
qcom,cci-master = <0>;
qcom,num-blocks = <10>;
qcom,page0 = <1 0x0100 2 0x01 1 1>;
qcom,poll0 = <0 0x0 2 0 1 1>;
qcom,mem0 = <0 0x0 2 0 1 0>;
qcom,page1 = <1 0x5002 2 0xa8 1 1>;
qcom,poll1 = <0 0x0 2 0 1 1>;
qcom,mem1 = <0 0x0 2 0 1 0>;
qcom,page2 = <1 0x3d84 2 0xc0 1 1>;
qcom,poll2 = <0 0x0 2 0 1 1>;
qcom,mem2 = <0 0x0 2 0 1 0>;
qcom,page3 = <1 0x3d88 2 0x70 1 1>;
qcom,poll3 = <0 0x0 2 0 1 1>;
qcom,mem3 = <0 0x3d00 2 0 1 0>;
qcom,page4 = <1 0x3d89 2 0x10 1 1>;
qcom,poll4 = <0 0x0 2 0 1 1>;
qcom,mem4 = <0 0x3d00 2 0 1 0>;
qcom,page5 = <1 0x3d8a 2 0x70 1 1>;
qcom,poll5 = <0 0x0 2 0 1 1>;
qcom,mem5 = <0 0x3d00 2 0 1 0>;
qcom,page6 = <1 0x3d8b 2 0x29 1 1>;
qcom,poll6 = <0 0x0 2 0 1 1>;
qcom,mem6 = <0 0x3d00 2 0 1 0>;
qcom,page7 = <1 0x3d81 2 0x01 1 5>;
qcom,poll7 = <0 0x0 2 0 1 1>;
qcom,mem7 = <26 0x7010 2 0 1 1>;
qcom,page8 = <1 0x5002 2 0xaa 1 1>;
qcom,poll8 = <0 0x0 2 0 1 1>;
qcom,mem8 = <0 0x0 2 0 1 0>;
qcom,page9 = <1 0x0100 2 0x00 1 1>;
qcom,poll9 = <0 0x0 2 0 1 1>;
qcom,mem9 = <0 0x0 2 0 1 0>;
reg = <0x01>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;
@ -175,84 +100,8 @@
qcom,gpio-req-tbl-label = "SCAM_MCLK2",
"SCAM_RESET",
"SCAM_STANDBY";
qcom,cam-power-seq-type = "sensor_vreg",
"sensor_vreg", "sensor_vreg",
"sensor_gpio", "sensor_gpio",
"sensor_clk";
qcom,cam-power-seq-val = "cam_vio",
"cam_vana", "cam_vdig",
"sensor_gpio_reset",
"sensor_gpio_standby",
"sensor_cam_mclk" ;
qcom,cam-power-seq-cfg-val = <1 1 1 1 1 24000000>;
qcom,cam-power-seq-delay = <10 10 10 10 10 5>;
clocks = <&clock_gcc clk_mclk2_clk_src>,
<&clock_gcc clk_gcc_camss_mclk2_clk>;
clock-names = "cam_src_clk", "cam_clk";
};
eeprom2: qcom,eeprom@2{
cell-index = <2>;
reg = <0x02>;
qcom,eeprom-name = "truly_cma481";
compatible = "qcom,eeprom";
qcom,slave-addr = <0x6c>;
qcom,cci-master = <0>;
qcom,num-blocks = <4>;
qcom,page0 = <1 0x0100 2 0x01 1 1>;
qcom,poll0 = <0 0x0 2 0 1 1>;
qcom,mem0 = <0 0x0 2 0 1 0>;
qcom,page1 = <1 0x3d84 2 0xc0 1 1>;
qcom,poll1 = <0 0x0 2 0 1 1>;
qcom,mem1 = <0 0x3d00 2 0 1 0>;
qcom,page2 = <1 0x3d88 2 0x7010 2 1>;
qcom,poll2 = <0 0x0 2 0 1 1>;
qcom,mem2 = <0 0x3d00 2 0 1 0>;
qcom,page3 = <1 0x3d8A 2 0x720a 2 1>;
qcom,pageen3 = <1 0x3d81 2 0x01 1 10>;
qcom,poll3 = <0 0x0 2 0 1 1>;
qcom,mem3 = <507 0x7010 2 0 1 1>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;
cam_vaf-supply = <&pm8950_l17>;
qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana", "cam_vaf";
qcom,cam-vreg-min-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-max-voltage = <1200000 0 2800000 2850000>;
qcom,cam-vreg-op-mode = <105000 0 80000 100000>;
qcom,gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk2_default
&cam_sensor_front1_default>;
pinctrl-1 = <&cam_sensor_mclk2_sleep
&cam_sensor_front1_sleep>;
gpios = <&msm_gpio 28 0>,
<&msm_gpio 131 0>,
<&msm_gpio 38 0>;
qcom,gpio-reset = <1>;
qcom,gpio-standby = <2>;
qcom,gpio-req-tbl-num = <0 1 2>;
qcom,gpio-req-tbl-flags = <1 0 0>;
qcom,gpio-req-tbl-label = "SCAM_MCLK2",
"SCAM_RESET",
"SCAM_STANDBY";
qcom,cam-power-seq-type = "sensor_vreg",
"sensor_vreg", "sensor_vreg",
"sensor_gpio", "sensor_gpio",
"sensor_clk";
qcom,cam-power-seq-val = "cam_vio",
"cam_vana", "cam_vdig",
"sensor_gpio_reset",
"sensor_gpio_standby",
"sensor_cam_mclk" ;
qcom,cam-power-seq-cfg-val = <1 1 1 1 1 24000000>;
qcom,cam-power-seq-delay = <10 10 10 10 10 5>;
status = "ok";
clocks = <&clock_gcc clk_mclk2_clk_src>,
<&clock_gcc clk_gcc_camss_mclk2_clk>;
clock-names = "cam_src_clk", "cam_clk";
@ -346,7 +195,7 @@
qcom,csiphy-sd-index = <1>;
qcom,csid-sd-index = <1>;
qcom,mount-angle = <270>;
qcom,eeprom-src = <&eeprom1 &eeprom2>;
qcom,eeprom-src = <&eeprom1>;
cam_vdig-supply = <&pm8950_l23>;
cam_vana-supply = <&pm8950_l22>;
cam_vio-supply = <&pm8950_l6>;

File diff suppressed because it is too large Load Diff

View File

@ -41,10 +41,10 @@ struct msm_eeprom_ctrl_t {
enum i2c_freq_mode_t i2c_freq_mode;
struct msm_camera_i2c_client i2c_client;
struct msm_eeprom_memory_block_t cal_data;
uint8_t is_supported;
struct msm_eeprom_board_info *eboard_info;
uint32_t subdev_id;
uint8_t *read_mem;
int32_t read_data_size;
};
#endif

View File

@ -149,14 +149,11 @@ static int32_t msm_sensor_fill_eeprom_subdevid_by_name(
struct msm_sensor_ctrl_t *s_ctrl)
{
int32_t rc = 0;
const char *eeprom_name;
struct device_node *src_node = NULL;
uint32_t val = 0, count = 0, eeprom_name_len;
int i;
uint32_t val = 0, eeprom_name_len;
int32_t *eeprom_subdev_id;
struct msm_sensor_info_t *sensor_info;
struct device_node *of_node = s_ctrl->of_node;
const void *p;
if (!s_ctrl->sensordata->eeprom_name || !of_node)
return -EINVAL;
@ -176,47 +173,26 @@ static int32_t msm_sensor_fill_eeprom_subdevid_by_name(
if (0 == eeprom_name_len)
return 0;
CDBG("Try to find eeprom subdev for %s\n",
s_ctrl->sensordata->eeprom_name);
p = of_get_property(of_node, "qcom,eeprom-src", &count);
if (!p || !count)
return 0;
count /= sizeof(uint32_t);
for (i = 0; i < count; i++) {
eeprom_name = NULL;
src_node = of_parse_phandle(of_node, "qcom,eeprom-src", i);
if (!src_node) {
pr_err("eeprom src node NULL\n");
continue;
}
rc = of_property_read_string(src_node, "qcom,eeprom-name",
&eeprom_name);
if (rc < 0) {
pr_err("failed\n");
of_node_put(src_node);
continue;
}
if (strcmp(eeprom_name, s_ctrl->sensordata->eeprom_name))
continue;
rc = of_property_read_u32(src_node, "cell-index", &val);
CDBG("%s qcom,eeprom cell index %d, rc %d\n", __func__,
val, rc);
if (rc < 0) {
pr_err("failed\n");
of_node_put(src_node);
continue;
}
*eeprom_subdev_id = val;
CDBG("Done. Eeprom subdevice id is %d\n", val);
of_node_put(src_node);
src_node = NULL;
break;
src_node = of_parse_phandle(of_node, "qcom,eeprom-src", 0);
if (!src_node) {
pr_err("eeprom src node NULL\n");
return -EINVAL;
}
rc = of_property_read_u32(src_node, "cell-index", &val);
if (rc < 0) {
pr_err("%s qcom,eeprom cell index %d, rc %d\n",
__func__, val, rc);
of_node_put(src_node);
return -EINVAL;
}
*eeprom_subdev_id = val;
CDBG("%s:%d Eeprom subdevice id is %d\n",
__func__, __LINE__, val);
of_node_put(src_node);
src_node = NULL;
return rc;
}

View File

@ -261,6 +261,7 @@ enum eeprom_cfg_type_t {
CFG_EEPROM_READ_CAL_DATA,
CFG_EEPROM_WRITE_DATA,
CFG_EEPROM_GET_MM_INFO,
CFG_EEPROM_INIT,
};
struct eeprom_get_t {
@ -283,6 +284,12 @@ struct eeprom_get_cmm_t {
uint32_t cmm_size;
};
struct msm_eeprom_info_t {
struct msm_sensor_power_setting_array *power_setting_array;
enum i2c_freq_mode_t i2c_freq_mode;
struct msm_eeprom_memory_map_array *mem_map_array;
};
struct msm_eeprom_cfg_data {
enum eeprom_cfg_type_t cfgtype;
uint8_t is_supported;
@ -292,6 +299,7 @@ struct msm_eeprom_cfg_data {
struct eeprom_read_t read_data;
struct eeprom_write_t write_data;
struct eeprom_get_cmm_t get_cmm_data;
struct msm_eeprom_info_t eeprom_info;
} cfg;
};
@ -370,6 +378,12 @@ struct eeprom_write_t32 {
uint32_t num_bytes;
};
struct msm_eeprom_info_t32 {
compat_uptr_t power_setting_array;
enum i2c_freq_mode_t i2c_freq_mode;
compat_uptr_t mem_map_array;
};
struct msm_eeprom_cfg_data32 {
enum eeprom_cfg_type_t cfgtype;
uint8_t is_supported;
@ -378,6 +392,7 @@ struct msm_eeprom_cfg_data32 {
struct eeprom_get_t get_data;
struct eeprom_read_t32 read_data;
struct eeprom_write_t32 write_data;
struct msm_eeprom_info_t32 eeprom_info;
} cfg;
};

View File

@ -33,6 +33,9 @@
#define MAX_NAME_SIZE 32
#define MAX_LED_TRIGGERS 3
#define MSM_EEPROM_MEMORY_MAP_MAX_SIZE 80
#define MSM_EEPROM_MAX_MEM_MAP_CNT 8
enum msm_sensor_camera_id_t {
CAMERA_0,
CAMERA_1,
@ -204,6 +207,11 @@ struct msm_sensor_power_setting_array {
unsigned short size_down;
};
enum msm_camera_i2c_operation {
MSM_CAM_WRITE = 0,
MSM_CAM_POLL,
MSM_CAM_READ,
};
struct msm_sensor_i2c_sync_params {
unsigned int cid;
@ -212,6 +220,27 @@ struct msm_sensor_i2c_sync_params {
unsigned short delay;
};
struct msm_camera_reg_settings_t {
uint16_t reg_addr;
enum msm_camera_i2c_reg_addr_type addr_type;
uint16_t reg_data;
enum msm_camera_i2c_data_type data_type;
enum msm_camera_i2c_operation i2c_operation;
uint16_t delay;
};
struct msm_eeprom_mem_map_t {
int slave_addr;
struct msm_camera_reg_settings_t
mem_settings[MSM_EEPROM_MEMORY_MAP_MAX_SIZE];
int memory_map_size;
};
struct msm_eeprom_memory_map_array {
struct msm_eeprom_mem_map_t memory_map[MSM_EEPROM_MAX_MEM_MAP_CNT];
uint32_t msm_size_of_max_mappings;
};
struct msm_sensor_init_params {
/* mask of modes supported: 2D, 3D */
int modes_supported;