Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d712be12 authored by Viswanadha Raju Thotakura's avatar Viswanadha Raju Thotakura
Browse files

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: default avatarViswanadha Raju Thotakura <viswanad@codeaurora.org>
parent dec3acb0
Loading
Loading
Loading
Loading
+0 −45
Original line number Diff line number Diff line
@@ -11,24 +11,7 @@ Required properties:
- compatible :
    - "qcom,eeprom"
- reg : offset of eeprom device registers.
- qcom,eeprom-name : should specify relevant names of the eeprom module
    library.
- qcom,slave-addr : should specify the slave address of the eeprom.
- qcom,cci-master : should specify the cci core index that eeprom use.
- qcom,num-blocks : should specify the total block number that eeprom contains,
    every block should contains page poll and mem.
- qcom,page%d : number %d page size, start address, address type, data,
    data type, delay in ms. size 0 stand for non-paged.
    - address type : 1 byte, 2 word.
    - data type : 1 byte, 2 word.
- qcom,poll%d : number %d poll size, poll reg address, address type, data,
    data type, delay in ms. size 0 stand for not used.
    - address type : 1 byte, 2 word.
    - data type : 1 byte, 2 word.
- qcom,mem%d : number %d memory size, start address, address type, data,
    data type, delay in ms. size 0 stand for not used.
    - address type : 1 byte, 2 word.
    - data type : 1 byte, 2 word.
- cam_vio-supply : should contain regulator to be used for the IO vdd.
- qcom,cam-vreg-name : should specify the regulator name to be used for
    this eeprom.
@@ -54,43 +37,15 @@ Required properties:
    time in ms.

Optional properties:
- qcom,pageen%d : number %d page enable reg size, start address, address type,
    data, data type, delay in ms. size 0 stand for not used.
- cam_vdig-supply : should contain regulator to be used for the digital vdd.
- qcom,saddr%d : property should specify the slave address for block (%d).
- qcom,i2c-freq-mode : property should specify the I2C speed mode.

Optional properties -EEPROM Camera Multimodule
- qcom,cmm-data-support - Camera MultiModule data capability flag.
- qcom,cmm-data-compressed - Camera MultiModule data compresion flag.
- qcom,cmm-data-offset - Camera MultiModule data start offset.
- qcom,cmm-data-size - Camera MultiModule data size.


Example:

    eeprom0: qcom,eeprom@60 {
        cell-index = <0>;
        reg = <0x60 0x0>;
        qcom,eeprom-name = "msm_eeprom";
        compatible = "qcom,eeprom";
        qcom,slave-addr = <0x60>;
        qcom,cci-master = <0>;
        qcom,num-blocks = <2>;
        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 0x0200 2 0x8 1 1>;
        qcom,pageen1 = <1 0x0202 2 0x01 1 10>;
        qcom,poll1 = <0 0x0 2 0 1 1>;
        qcom,mem1 = <32 0x3000 2 0 1 0>;
        qcom,saddr1 = <0x62>;

	qcom,cmm-data-support;
	qcom,cmm-data-compressed;
	qcom,cmm-data-offset = <0>;
	qcom,cmm-data-size = <0>;

        cam_vdig-supply = <&pm8226_l5>;
        cam_vio-supply = <&pm8226_lvs1>;
        qcom,cam-vreg-name = "cam_vdig", "cam_vio";
+36 −255
Original line number Diff line number Diff line
@@ -49,250 +49,8 @@
	eeprom0: qcom,eeprom@0 {
		cell-index = <0>;
		reg = <0>;
		qcom,eeprom-name = "onsemi_cat24c32";
		compatible = "qcom,eeprom";
		qcom,slave-addr = <0xa0>;
		qcom,i2c-freq-mode = <1>;
		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 = <2245 0x00 2 0 1 0>;

		cam_vio-supply = <&pm8994_lvs1>;
		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>;
	};

	eeprom1: qcom,eeprom@1 {
		cell-index = <1>;
		reg = <0x1>;
		qcom,eeprom-name = "onsemi_cat24c16";
		compatible = "qcom,eeprom";
		qcom,slave-addr = <0xa0>;
		qcom,i2c-freq-mode = <1>;
		qcom,cci-master = <1>;
		qcom,num-blocks = <7>;

		qcom,page0 = <0 0 0 0 0 0>;
		qcom,poll0 = <0 0 0 0 0 0>;
		qcom,saddr0 = <0xa0>;
		qcom,mem0 = <256 0x00 1 0 1 0>;

		qcom,page1 = <0 0 0 0 0 0>;
		qcom,poll1 = <0 0 0 0 0 0>;
		qcom,saddr1 = <0xa2>;
		qcom,mem1 = <256 0x00 1 0 1 0>;

		qcom,page2 = <0 0 0 0 0 0>;
		qcom,poll2 = <0 0 0 0 0 0>;
		qcom,saddr2 = <0xa4>;
		qcom,mem2 = <256 0x00 1 0 1 0>;

		qcom,page3 = <0 0 0 0 0 0>;
		qcom,poll3 = <0 0 0 0 0 0>;
		qcom,saddr3 = <0xa6>;
		qcom,mem3 = <256 0x00 1 0 1 0>;

		qcom,page4 = <0 0 0 0 0 0>;
		qcom,poll4 = <0 0 0 0 0 0>;
		qcom,saddr4 = <0xa8>;
		qcom,mem4 = <256 0x00 1 0 1 0>;

		qcom,page5 = <0 0 0 0 0 0>;
		qcom,poll5 = <0 0 0 0 0 0>;
		qcom,saddr5 = <0xaa>;
		qcom,mem5 = <256 0x00 1 0 1 0>;

		qcom,page6 = <0 0 0 0 0 0>;
		qcom,poll6 = <0 0 0 0 0 0>;
		qcom,saddr6 = <0xac>;
		qcom,mem6 = <254 0x00 1 0 1 0>;

		cam_vio-supply = <&pm8994_lvs1>;
		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>;
	};

	eeprom2: qcom,eeprom@2 {
		cell-index = <2>;
		reg = <2>;
		qcom,eeprom-name = "imx258_gt24c16";
		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 = <2160 0x00 2 0 1 0>;

		cam_vio-supply = <&pm8994_lvs1>;
		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";
	};

	eeprom3: qcom,eeprom@3 {
		cell-index = <3>;
		reg = <0x3>;
		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 = <&pm8994_s3>;
		cam_vio-supply = <&pm8994_lvs1>;
		cam_vana-supply = <&pm8994_l17>;
@@ -317,20 +75,43 @@
		qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
					  "CAM_RESET0",
					  "CAM_STANDBY0";
		qcom,cam-power-seq-type = "sensor_vreg", "sensor_vreg",
			"sensor_vreg", "sensor_vreg", "sensor_gpio",
			"sensor_gpio", "sensor_clk";
		qcom,cam-power-seq-val = "cam_vdig", "cam_vana", "cam_vio",
			"cam_vaf", "sensor_gpio_reset", "sensor_gpio_standby",
			"sensor_cam_mclk";
		qcom,cam-power-seq-cfg-val = <1 1 1 1 1 1 24000000>;
		qcom,cam-power-seq-delay = <1 1 1 1 30 30 5>;
		status = "ok";
		clocks = <&clock_mmss clk_mclk0_clk_src>,
			<&clock_mmss clk_camss_mclk0_clk>;
		clock-names = "cam_src_clk", "cam_clk";
	};

	eeprom1: qcom,eeprom@1 {
		cell-index = <1>;
		reg = <0x1>;
		compatible = "qcom,eeprom";
		qcom,cci-master = <1>;
		cam_vdig-supply = <&pm8994_l27>;
		cam_vio-supply = <&pm8994_lvs1>;
		cam_vana-supply = <&pm8994_l29>;
		qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
		qcom,cam-vreg-min-voltage = <1000000 0 2800000>;
		qcom,cam-vreg-max-voltage = <1000000 0 2800000>;
		qcom,cam-vreg-op-mode = <105000 0 80000>;
		qcom,gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_front_active>;
		pinctrl-1 = <&cam_sensor_mclk2_suspend
			&cam_sensor_front_suspend>;
		gpios = <&tlmm 15 0>,
			<&tlmm 23 0>,
			<&tlmm 26 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";
		clocks = <&clock_mmss clk_mclk2_clk_src>,
			<&clock_mmss clk_camss_mclk2_clk>;
		clock-names = "cam_src_clk", "cam_clk";
	};

	qcom,camera@0 {
		cell-index = <0>;
		compatible = "qcom,camera";
@@ -340,7 +121,7 @@
		qcom,mount-angle = <0>;
		qcom,led-flash-src = <&led_flash0>;
		qcom,actuator-src = <&actuator0>;
		qcom,eeprom-src = <&eeprom0 &eeprom2 &eeprom3>;
		qcom,eeprom-src = <&eeprom0>;
		cam_vdig-supply = <&pm8994_s3>;
		cam_vio-supply = <&pm8994_lvs1>;
		cam_vana-supply = <&pm8994_l17>;
+48 −63
Original line number Diff line number Diff line
@@ -49,80 +49,65 @@
	eeprom0: qcom,eeprom@0 {
		cell-index = <0>;
		reg = <0>;
		qcom,eeprom-name = "onsemi_cat24c32";
		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 = <2245 0x00 2 0 1 0>;

		cam_vdig-supply = <&pm8994_s3>;
		cam_vio-supply = <&pm8994_lvs1>;
		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_vana-supply = <&pm8994_l17>;
		qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
		qcom,cam-vreg-min-voltage = <1300000 0 2500000>;
		qcom,cam-vreg-max-voltage = <1300000 0 2500000>;
		qcom,cam-vreg-op-mode = <105000 0 80000>;
		qcom,gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_rear_active>;
		pinctrl-1 = <&cam_sensor_mclk0_suspend
			&cam_sensor_rear_suspend>;
		gpios = <&tlmm 13 0>,
			<&tlmm 30 0>,
			<&tlmm 29 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";
		clocks = <&clock_mmss clk_mclk0_clk_src>,
				<&clock_mmss clk_camss_mclk0_clk>;
		clock-names = "cam_src_clk", "cam_clk";
	};

	eeprom1: qcom,eeprom@1 {
		cell-index = <1>;
		reg = <0x1>;
		qcom,eeprom-name = "onsemi_cat24c16";
		compatible = "qcom,eeprom";
		qcom,slave-addr = <0xa0>;
		qcom,cci-master = <1>;
		qcom,num-blocks = <7>;

		qcom,page0 = <0 0 0 0 0 0>;
		qcom,poll0 = <0 0 0 0 0 0>;
		qcom,saddr0 = <0xa0>;
		qcom,mem0 = <256 0x00 1 0 1 0>;

		qcom,page1 = <0 0 0 0 0 0>;
		qcom,poll1 = <0 0 0 0 0 0>;
		qcom,saddr1 = <0xa2>;
		qcom,mem1 = <256 0x00 1 0 1 0>;

		qcom,page2 = <0 0 0 0 0 0>;
		qcom,poll2 = <0 0 0 0 0 0>;
		qcom,saddr2 = <0xa4>;
		qcom,mem2 = <256 0x00 1 0 1 0>;

		qcom,page3 = <0 0 0 0 0 0>;
		qcom,poll3 = <0 0 0 0 0 0>;
		qcom,saddr3 = <0xa6>;
		qcom,mem3 = <256 0x00 1 0 1 0>;

		qcom,page4 = <0 0 0 0 0 0>;
		qcom,poll4 = <0 0 0 0 0 0>;
		qcom,saddr4 = <0xa8>;
		qcom,mem4 = <256 0x00 1 0 1 0>;

		qcom,page5 = <0 0 0 0 0 0>;
		qcom,poll5 = <0 0 0 0 0 0>;
		qcom,saddr5 = <0xaa>;
		qcom,mem5 = <256 0x00 1 0 1 0>;

		qcom,page6 = <0 0 0 0 0 0>;
		qcom,poll6 = <0 0 0 0 0 0>;
		qcom,saddr6 = <0xac>;
		qcom,mem6 = <254 0x00 1 0 1 0>;

		cam_vdig-supply = <&pm8994_l27>;
		cam_vio-supply = <&pm8994_lvs1>;
		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_vana-supply = <&pm8994_l29>;
		qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
		qcom,cam-vreg-min-voltage = <1000000 0 2800000>;
		qcom,cam-vreg-max-voltage = <1000000 0 2800000>;
		qcom,cam-vreg-op-mode = <105000 0 80000>;
		qcom,gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_front_active>;
		pinctrl-1 = <&cam_sensor_mclk2_suspend
			&cam_sensor_front_suspend>;
		gpios = <&tlmm 15 0>,
			<&tlmm 23 0>,
			<&tlmm 26 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";
		clocks = <&clock_mmss clk_mclk2_clk_src>,
			<&clock_mmss clk_camss_mclk2_clk>;
		clock-names = "cam_src_clk", "cam_clk";
	};

	qcom,camera@0 {
+35 −254
Original line number Diff line number Diff line
@@ -49,250 +49,8 @@
	eeprom0: qcom,eeprom@0 {
		cell-index = <0>;
		reg = <0>;
		qcom,eeprom-name = "onsemi_cat24c32";
		compatible = "qcom,eeprom";
		qcom,slave-addr = <0xa0>;
		qcom,i2c-freq-mode = <1>;
		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 = <2245 0x00 2 0 1 0>;

		cam_vio-supply = <&pm8994_lvs1>;
		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>;
	};

	eeprom1: qcom,eeprom@1 {
		cell-index = <1>;
		reg = <0x1>;
		qcom,eeprom-name = "onsemi_cat24c16";
		compatible = "qcom,eeprom";
		qcom,slave-addr = <0xa0>;
		qcom,i2c-freq-mode = <1>;
		qcom,cci-master = <1>;
		qcom,num-blocks = <7>;

		qcom,page0 = <0 0 0 0 0 0>;
		qcom,poll0 = <0 0 0 0 0 0>;
		qcom,saddr0 = <0xa0>;
		qcom,mem0 = <256 0x00 1 0 1 0>;

		qcom,page1 = <0 0 0 0 0 0>;
		qcom,poll1 = <0 0 0 0 0 0>;
		qcom,saddr1 = <0xa2>;
		qcom,mem1 = <256 0x00 1 0 1 0>;

		qcom,page2 = <0 0 0 0 0 0>;
		qcom,poll2 = <0 0 0 0 0 0>;
		qcom,saddr2 = <0xa4>;
		qcom,mem2 = <256 0x00 1 0 1 0>;

		qcom,page3 = <0 0 0 0 0 0>;
		qcom,poll3 = <0 0 0 0 0 0>;
		qcom,saddr3 = <0xa6>;
		qcom,mem3 = <256 0x00 1 0 1 0>;

		qcom,page4 = <0 0 0 0 0 0>;
		qcom,poll4 = <0 0 0 0 0 0>;
		qcom,saddr4 = <0xa8>;
		qcom,mem4 = <256 0x00 1 0 1 0>;

		qcom,page5 = <0 0 0 0 0 0>;
		qcom,poll5 = <0 0 0 0 0 0>;
		qcom,saddr5 = <0xaa>;
		qcom,mem5 = <256 0x00 1 0 1 0>;

		qcom,page6 = <0 0 0 0 0 0>;
		qcom,poll6 = <0 0 0 0 0 0>;
		qcom,saddr6 = <0xac>;
		qcom,mem6 = <254 0x00 1 0 1 0>;

		cam_vio-supply = <&pm8994_lvs1>;
		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>;
	};

	eeprom2: qcom,eeprom@2 {
		cell-index = <2>;
		reg = <2>;
		qcom,eeprom-name = "imx258_gt24c16";
		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 = <2160 0x00 2 0 1 0>;

		cam_vio-supply = <&pm8994_lvs1>;
		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";
	};

	eeprom3: qcom,eeprom@3 {
		cell-index = <3>;
		reg = <0x3>;
		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 = <&pm8994_s3>;
		cam_vio-supply = <&pm8994_lvs1>;
		cam_vana-supply = <&pm8994_l17>;
@@ -317,20 +75,43 @@
		qcom,gpio-req-tbl-label = "CAMIF_MCLK0",
					  "CAM_RESET0",
					  "CAM_STANDBY0";
		qcom,cam-power-seq-type = "sensor_vreg", "sensor_vreg",
			"sensor_vreg", "sensor_vreg", "sensor_gpio",
			"sensor_gpio", "sensor_clk";
		qcom,cam-power-seq-val = "cam_vdig", "cam_vana", "cam_vio",
			"cam_vaf", "sensor_gpio_reset", "sensor_gpio_standby",
			"sensor_cam_mclk";
		qcom,cam-power-seq-cfg-val = <1 1 1 1 1 1 24000000>;
		qcom,cam-power-seq-delay = <1 1 1 1 30 30 5>;
		status = "ok";
		clocks = <&clock_mmss clk_mclk0_clk_src>,
				<&clock_mmss clk_camss_mclk0_clk>;
		clock-names = "cam_src_clk", "cam_clk";
	};

	eeprom1: qcom,eeprom@1 {
		cell-index = <1>;
		reg = <0x1>;
		compatible = "qcom,eeprom";
		qcom,cci-master = <1>;
		cam_vdig-supply = <&pm8994_l27>;
		cam_vio-supply = <&pm8994_lvs1>;
		cam_vana-supply = <&pm8994_l29>;
		qcom,cam-vreg-name = "cam_vdig", "cam_vio", "cam_vana";
		qcom,cam-vreg-min-voltage = <1000000 0 2800000>;
		qcom,cam-vreg-max-voltage = <1000000 0 2800000>;
		qcom,cam-vreg-op-mode = <105000 0 80000>;
		qcom,gpio-no-mux = <0>;
		pinctrl-names = "cam_default", "cam_suspend";
		pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_front_active>;
		pinctrl-1 = <&cam_sensor_mclk2_suspend
			&cam_sensor_front_suspend>;
		gpios = <&tlmm 15 0>,
			<&tlmm 23 0>,
			<&tlmm 26 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";
		clocks = <&clock_mmss clk_mclk2_clk_src>,
			<&clock_mmss clk_camss_mclk2_clk>;
		clock-names = "cam_src_clk", "cam_clk";
	};

	qcom,camera@0 {
		cell-index = <0>;
		compatible = "qcom,camera";
@@ -340,7 +121,7 @@
		qcom,mount-angle = <90>;
		qcom,led-flash-src = <&led_flash0>;
		qcom,actuator-src = <&actuator0>;
		qcom,eeprom-src = <&eeprom0 &eeprom2 &eeprom3>;
		qcom,eeprom-src = <&eeprom0>;
		cam_vdig-supply = <&pm8994_s3>;
		cam_vio-supply = <&pm8994_lvs1>;
		cam_vana-supply = <&pm8994_l17>;
+501 −474

File changed.

Preview size limit exceeded, changes collapsed.

Loading