diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-flash-pwm.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-flash-pwm.dtsi new file mode 100644 index 000000000000..d372343ec14a --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-flash-pwm.dtsi @@ -0,0 +1,22 @@ +&pm6125_gpios { + camera_flash_pwm { + camera_flash_pwm_default: camera_flash_pwm_default { + pins = "gpio8"; + function = "func1"; + input-disable; /* No PULL */ + output-low; + bias-disable; + power-source = <0>; + drive-strength = <3>; + }; + }; +}; + +&soc { + pm6125_flash_gpio:pm6125_flash_gpio { + compatible = "qualcomm,pm6125_flash_gpio"; + pinctrl-names = "camera_flash_pwm_default"; + pinctrl-0 = <&camera_flash_pwm_default>; + pwms = <&pm6125_pwm 0 0>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-bangkk-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-bangkk-overlay.dtsi new file mode 100644 index 000000000000..f696c9d272ae --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-bangkk-overlay.dtsi @@ -0,0 +1,1039 @@ +#include +#include +&soc { + cam_cci0: qcom,cci0 { + cell-index = <0>; + compatible = "qcom,cci", "simple-bus"; + reg = <0x05C1B000 0x1000>; + reg-names = "cci"; + reg-cam-base = <0x1B000>; + interrupt-names = "cci"; + interrupts = ; + status = "ok"; + gdscr-supply = <&gcc_camss_top_gdsc>; + regulator-names = "gdscr"; + clocks = <&gcc GCC_CAMSS_CCI_0_CLK>, + <&gcc GCC_CAMSS_CCI_0_CLK_SRC>; + clock-names = "cci_0_clk", + "cci_0_clk_src"; + src-clock-name = "cci_0_clk_src"; + clock-cntl-level = "svs"; + clock-rates = <0 37500000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cci0_active &cci1_active>; + pinctrl-1 = <&cci0_suspend &cci1_suspend>; + gpios = <&tlmm 39 0>, + <&tlmm 40 0>, + <&tlmm 41 0>, + <&tlmm 42 0>; + gpio-req-tbl-num = <0 1 2 3>; + gpio-req-tbl-flags = <1 1 1 1>; + gpio-req-tbl-label = "CCI_I2C_DATA0", + "CCI_I2C_CLK0", + "CCI_I2C_DATA1", + "CCI_I2C_CLK1"; + + i2c_freq_100Khz_cci0: qcom,i2c_standard_mode { + hw-thigh = <201>; + hw-tlow = <174>; + hw-tsu-sto = <204>; + hw-tsu-sta = <231>; + hw-thd-dat = <22>; + hw-thd-sta = <162>; + hw-tbuf = <227>; + hw-scl-stretch-en = <0>; + hw-trdhld = <6>; + hw-tsp = <3>; + cci-clk-src = <37500000>; + status = "ok"; + }; + + i2c_freq_400Khz_cci0: qcom,i2c_fast_mode { + hw-thigh = <38>; + hw-tlow = <56>; + hw-tsu-sto = <40>; + hw-tsu-sta = <40>; + hw-thd-dat = <22>; + hw-thd-sta = <35>; + hw-tbuf = <62>; + hw-scl-stretch-en = <0>; + hw-trdhld = <6>; + hw-tsp = <3>; + cci-clk-src = <37500000>; + status = "ok"; + }; + + i2c_freq_custom_cci0: qcom,i2c_custom_mode { + hw-thigh = <38>; + hw-tlow = <56>; + hw-tsu-sto = <40>; + hw-tsu-sta = <40>; + hw-thd-dat = <22>; + hw-thd-sta = <35>; + hw-tbuf = <62>; + hw-scl-stretch-en = <1>; + hw-trdhld = <6>; + hw-tsp = <3>; + cci-clk-src = <37500000>; + status = "ok"; + }; + + i2c_freq_1Mhz_cci0: qcom,i2c_fast_plus_mode { + hw-thigh = <16>; + hw-tlow = <22>; + hw-tsu-sto = <17>; + hw-tsu-sta = <18>; + hw-thd-dat = <16>; + hw-thd-sta = <15>; + hw-tbuf = <24>; + hw-scl-stretch-en = <0>; + hw-trdhld = <3>; + hw-tsp = <3>; + cci-clk-src = <37500000>; + status = "ok"; + }; + }; + + cam_cci1: qcom,cci1 { + cell-index = <1>; + compatible = "qcom,cci", "simple-bus"; + reg = <0x05C1C000 0x1000>; + reg-names = "cci"; + reg-cam-base = <0x1C000>; + interrupt-names = "cci"; + interrupts = ; + status = "ok"; + gdscr-supply = <&gcc_camss_top_gdsc>; + regulator-names = "gdscr"; + clocks = <&gcc GCC_CAMSS_CCI_1_CLK>, + <&gcc GCC_CAMSS_CCI_1_CLK_SRC>; + clock-names = "cci_1_clk", + "cci_1_clk_src"; + src-clock-name = "cci_1_clk_src"; + clock-cntl-level = "svs"; + clock-rates = <0 37500000>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cci2_active>; + pinctrl-1 = <&cci2_suspend>; + gpios = <&tlmm 43 0>, + <&tlmm 44 0>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 1>; + gpio-req-tbl-label = "CCI_I2C_DATA2", + "CCI_I2C_CLK2"; + + i2c_freq_100Khz_cci1: qcom,i2c_standard_mode { + hw-thigh = <201>; + hw-tlow = <174>; + hw-tsu-sto = <204>; + hw-tsu-sta = <231>; + hw-thd-dat = <22>; + hw-thd-sta = <162>; + hw-tbuf = <227>; + hw-scl-stretch-en = <0>; + hw-trdhld = <6>; + hw-tsp = <3>; + cci-clk-src = <37500000>; + status = "ok"; + }; + + i2c_freq_400Khz_cci1: qcom,i2c_fast_mode { + hw-thigh = <38>; + hw-tlow = <56>; + hw-tsu-sto = <40>; + hw-tsu-sta = <40>; + hw-thd-dat = <22>; + hw-thd-sta = <35>; + hw-tbuf = <62>; + hw-scl-stretch-en = <0>; + hw-trdhld = <6>; + hw-tsp = <3>; + cci-clk-src = <37500000>; + status = "ok"; + }; + + i2c_freq_custom_cci1: qcom,i2c_custom_mode { + hw-thigh = <38>; + hw-tlow = <56>; + hw-tsu-sto = <40>; + hw-tsu-sta = <40>; + hw-thd-dat = <22>; + hw-thd-sta = <35>; + hw-tbuf = <62>; + hw-scl-stretch-en = <1>; + hw-trdhld = <6>; + hw-tsp = <3>; + cci-clk-src = <37500000>; + status = "ok"; + }; + + i2c_freq_1Mhz_cci1: qcom,i2c_fast_plus_mode { + hw-thigh = <16>; + hw-tlow = <22>; + hw-tsu-sto = <17>; + hw-tsu-sta = <18>; + hw-thd-dat = <16>; + hw-thd-sta = <15>; + hw-tbuf = <24>; + hw-scl-stretch-en = <0>; + hw-trdhld = <3>; + hw-tsp = <3>; + cci-clk-src = <37500000>; + status = "ok"; + }; + }; + /*s5kgn9 ov16a1a s5k4h7 iovdd*/ + camera_ldo_dovdd: gpio-regulator@0 { + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "camera_ldo_dovdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 38 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_dovdd_en>; + }; + /*s5kgn9 avdd*/ + camera_ldo_50m_avdd: gpio-regulator@1 { + compatible = "regulator-fixed"; + reg = <0x0A 0x00>; + regulator-name = "camera_ldo_50m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 6 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_avdd_en>; + }; + /*s5kgn9 dvdd*/ + camera_ldo_50m_dvdd: gpio-regulator@2 { + compatible = "regulator-fixed"; + reg = <0x0B 0x00>; + regulator-name = "camera_ldo_50m_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 8 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_dvdd_en>; + }; + /*ov16a1q avdd*/ + camera_ldo_16m_avdd: gpio-regulator@3 { + compatible = "regulator-fixed"; + reg = <0x03 0x00>; + regulator-name = "camera_ldo_16m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 37 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_16m_avdd_en>; + }; + /*ov16a1q dvdd*/ + camera_ldo_16m_dvdd: gpio-regulator@4 { + compatible = "regulator-fixed"; + reg = <0x04 0x00>; + regulator-name = "camera_ldo_16m_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 92 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_16m_dvdd_en>; + }; + /*s5k4h7 avdd*/ + camera_ldo_8m_avdd: gpio-regulator@5 { + compatible = "regulator-fixed"; + reg = <0x05 0x00>; + regulator-name = "camera_ldo_8m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 36 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_avdd_en>; + }; + /*s5k4h7 dvdd*/ + camera_ldo_8m_dvdd: gpio-regulator@6 { + compatible = "regulator-fixed"; + reg = <0x06 0x00>; + regulator-name = "camera_ldo_8m_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 51 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_dvdd_en>; + }; + /* s5kgn9 afvdd */ + camera_ldo_50m_afvdd: gpio-regulator@7 { + compatible = "regulator-fixed"; + reg = <0x07 0x00>; + regulator-name = "camera_ldo_50m_afvdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 59 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_afvdd_en>; + }; + /* s5kgn9 oisvdd */ + camera_ldo_50m_oisvdd: gpio-regulator@8 { + compatible = "regulator-fixed"; + reg = <0x08 0x00>; + regulator-name = "camera_ldo_50m_oisvdd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 87 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_oisvdd_en>; + }; + /* s5k4h7 afvdd */ + camera_ldo_8m_afvdd: gpio-regulator@9 { + compatible = "regulator-fixed"; + reg = <0x09 0x00>; + regulator-name = "camera_ldo_8m_afvdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 50 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_afvdd_en>; + }; + + flash_ldo_dovdd: gpio-regulator@10 { + compatible = "regulator-fixed"; + reg = <0x10 0x00>; + regulator-name = "flash_ldo_dovdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 24 0>; + pinctrl-names = "default"; + pinctrl-0 = <&flash_ldo_dovdd_en>; + }; + + ois_vsync_dovdd: gpio-regulator@11 { + compatible = "regulator-fixed"; + reg = <0x11 0x00>; + regulator-name = "ois_vsync_dovdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 86 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_ois_vsync_dovdd_default>; + }; + + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; +}; + +&tlmm { + flash_ldo_dovdd_en: flash_ldo_dovdd_en { + mux { + pins = "gpio24"; + function = "gpio"; + }; + + config { + pins = "gpio24"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 4 MA */ + }; + }; + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + cam_sensor_mainaux_reset_active: cam_sensor_mainaux_reset_active { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mainaux_reset_suspend: cam_sensor_mainaux_reset_suspend { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + camera_ldo_dovdd_en: camera_ldo_dovdd_en { + mux { + pins = "gpio38"; + function = "gpio"; + }; + + config { + pins = "gpio38"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + camera_ldo_50m_avdd_en: camera_ldo_50m_avdd_en { + mux { + pins = "gpio6"; + function = "gpio"; + }; + + config { + pins = "gpio6"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + camera_ldo_50m_dvdd_en: camera_ldo_50m_dvdd_en { + mux { + pins = "gpio8"; + function = "gpio"; + }; + + config { + pins = "gpio8"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + camera_ldo_16m_avdd_en: camera_ldo_16m_avdd_en { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_16m_dvdd_en: camera_ldo_16m_dvdd_en { + mux { + pins = "gpio92"; + function = "gpio"; + }; + + config { + pins = "gpio92"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + camera_ldo_8m_avdd_en: camera_ldo_8m_avdd_en { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_8m_dvdd_en: camera_ldo_8m_dvdd_en { + mux { + pins = "gpio51"; + function = "gpio"; + }; + + config { + pins = "gpio51"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_50m_afvdd_en: camera_ldo_50m_afvdd_en { + mux { + pins = "gpio59"; + function = "gpio"; + }; + + config { + pins = "gpio59"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_50m_oisvdd_en: camera_ldo_50m_oisvdd_en { + mux { + pins = "gpio87"; + function = "gpio"; + }; + + config { + pins = "gpio87"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_8m_afvdd_en: camera_ldo_8m_afvdd_en { + mux { + pins = "gpio50"; + function = "gpio"; + }; + + config { + pins = "gpio50"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_ois_vsync_dovdd_default: cam_ois_vsync_dovdd_default { + mux { + pins = "gpio86"; + function = "gpio"; + }; + + config { + pins = "gpio86"; + bias-pull-down; /* PULL DOWN */ + output-low; + drive-strength = <2>; /* 2 MA */ + }; + }; + /* Camera GPIOs CCI*/ + cci0_active: cci0_active { + mux { + /* CLK, DATA */ + pins = "gpio39", "gpio40"; + function = "CCI_I2C"; + }; + + config { + pins = "gpio39", "gpio40"; + bias-disable; /*NOT PULL*/ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cci0_suspend: cci0_suspend { + mux { + /* CLK, DATA */ + pins = "gpio39", "gpio40"; + function = "CCI_I2C"; + }; + + config { + pins = "gpio39", "gpio40"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cci1_active: cci1_active { + mux { + /* CLK, DATA */ + pins = "gpio41", "gpio42"; + function = "CCI_I2C"; + }; + + config { + pins = "gpio41", "gpio42"; + bias-disable; /*NOT PULL*/ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cci1_suspend: cci1_suspend { + mux { + /* CLK, DATA */ + pins = "gpio41", "gpio42"; + function = "CCI_I2C"; + }; + + config { + pins = "gpio41", "gpio42"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cci2_active: cci2_active { + mux { + /* CLK, DATA */ + pins = "gpio43", "gpio44"; + function = "CCI_I2C"; + }; + + config { + pins = "gpio43", "gpio44"; + bias-disable; /*NOT PULL*/ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cci2_suspend: cci2_suspend { + mux { + /* CLK, DATA */ + pins = "gpio43", "gpio44"; + function = "CCI_I2C"; + }; + + config { + pins = "gpio43", "gpio44"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; +}; + +&cam_cci0 { + i2c_freq_100Khz_cci0: qcom,i2c_standard_mode { + hw-scl-stretch-en = <1>; + }; + + i2c_freq_400Khz_cci0: qcom,i2c_fast_mode { + hw-scl-stretch-en = <0>; + }; + + i2c_freq_1Mhz_cci0: qcom,i2c_fast_plus_mode { + hw-scl-stretch-en = <1>; + }; + + /* Rear 50M AF */ + actuator_rear_main:qcom,actuator0{ + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vaf-supply = <&camera_ldo_50m_afvdd>; + cam_v_custom1-supply = <&camera_ldo_50m_oisvdd>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 3300000 3300000>; + rgltr-max-voltage = <1800000 3300000 3300000>; + rgltr-load-current = <500 300000 30000>; + af-drift-support; + status = "ok"; + }; + + /* Rear 50M OIS */ + ois_rear_main: qcom,ois@0 { + cell-index = <0>; + compatible = "qcom,ois"; + cci-master = <0>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vaf-supply = <&camera_ldo_50m_afvdd>; + cam_v_custom1-supply = <&camera_ldo_50m_oisvdd>; + cam_v_custom2-supply = <&ois_vsync_dovdd>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom1", "cam_v_custom2"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 3300000 3300000 1800000>; + rgltr-max-voltage = <1800000 3300000 3300000 1800000>; + rgltr-load-current = <500 300000 30000 120000>; + status = "ok"; + ois-name = "mot_bangkk_aw86006"; + }; + + /* Rear 50M FLASH */ + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,camera-flash"; + flash-type = ; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_v_custom2-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio","cam_v_custom2"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000>; + rgltr-max-voltage = <1800000 1800000>; + rgltr-load-current = <100000 120000>; + distinguish-flash-supplier = <0xc6 0x0c 0x0a>; + cci-master = <1>; + status = "ok"; + }; + + /* WIDE 8m FLASH */ + led_flash_wide: qcom,camera-flash@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,camera-flash"; + flash-type = ; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_v_custom2-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio","cam_v_custom2"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000>; + rgltr-max-voltage = <1800000 1800000>; + rgltr-load-current = <100000 120000>; + distinguish-flash-supplier = <0xc6 0x0c 0x0a>; + cci-master = <1>; + status = "ok"; + }; + + actuator_wide: qcom,actuator@1 { + cell-index = <2>; + compatible = "qcom,actuator"; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vaf-supply = <&camera_ldo_8m_afvdd>; + regulator-names = "cam_vio", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000>; + rgltr-max-voltage = <1800000 2800000>; + rgltr-load-current = <120000 100000>; + cci-master = <1>; + status = "ok"; + }; + + /* Rear s5kgn9 eeprom */ + eeprom_rear: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&camera_ldo_dovdd>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + /* Rear s5kgn9 */ + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_rear_main>; + ois-src = <&ois_rear_main>; + led-flash-src = <&led_flash_rear>; + eeprom-src = <&eeprom_rear>; + cam_v_custom2-supply = <&flash_ldo_dovdd>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_50m_avdd>; + cam_vdig-supply = <&camera_ldo_50m_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_v_custom2","cam_vaf", "cam_vio", "cam_vana", "cam_v_custom1", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 3300000 1800000 2800000 3300000 1200000 0>; + rgltr-max-voltage = <1800000 3300000 1800000 2800000 3300000 1200000 0>; + rgltr-load-current = <120000 105000 80000 80000 105000 105000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + sensor-mode = <0>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /*Rear Aux s5k4h7*/ + eeprom_wide: qcom,eeprom@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&camera_ldo_8m_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_mainaux_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_mainaux_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 49 0>; + 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 = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_wide>; + led-flash-src = <&led_flash_wide>; + eeprom-src = <&eeprom_wide>; + cam_v_custom2-supply = <&flash_ldo_dovdd>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&camera_ldo_8m_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_v_custom2","cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 1800000 2800000 1200000 0>; + rgltr-load-current = <120000 120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_mainaux_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_mainaux_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 49 0>; + 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 = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + +}; + +&cam_cci1 { + /*Front ov16a1q eeprom*/ + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&camera_ldo_dovdd>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + /*Front ov16a1q*/ + qcom,cam-sensor1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + //actuator-src = <&actuator_rear>; + //led-flash-src = <&led_flash_rear>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_16m_avdd>; + cam_vdig-supply = <&camera_ldo_16m_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1 >; + gpio-req-tbl-flags = <1 0 >; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET1"; + sensor-mode = <1>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-corfup-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-corfup-overlay.dtsi new file mode 100644 index 000000000000..0457ee88cd83 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-corfup-overlay.dtsi @@ -0,0 +1,590 @@ +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_depth_reset_active: cam_sensor_macro_depth_reset_active { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_depth_reset_suspend: cam_sensor_macro_depth_reset_suspend { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + cam_macro_avdd_en_default: cam_macro_avdd_en_default { + mux { + pins = "gpio38"; + function = "gpio"; + }; + + config { + pins = "gpio38"; + bias-disable; /* NO PULL */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + mot,cam-actuator { + compatible = "mot,actuator"; + status = "ok"; + }; + cam_macro_avdd: gpio-regulator@0{ + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "cam_macro_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 38 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_macro_avdd_en_default>; + }; + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <0>; + status = "ok"; + }; + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <0>; + status = "ok"; + }; + led_flash_wide: qcom,camera-flash@3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <0>; + status = "ok"; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator@0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <100000>; + cci-master = <1>; + status = "ok"; + multi-user-support; + }; + + eeprom_main: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <1>; + status = "ok"; + }; + + sensor_main: qcom,cam-sensor@0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + led-flash-src = <&led_flash_rear>; + eeprom-src = <&eeprom_main>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo6_vddois>; + cam_vdig-supply = <&cam_pmic2_ldo2_dvdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-max-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-load-current = <120000 80000 1200000 0 100000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RM_RST"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + // front camera + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + sensor_front: qcom,cam-sensor@1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo3_avdd1>; + cam_vdig-supply = <&cam_pmic1_ldo1_dvdd1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1100000 0>; + rgltr-max-voltage = <1800000 2800000 1100000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_FW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + // ROW/PRC: macro OV02B10; JP: depth OV02B1B;5G: macro GC02M1 + eeprom_macro: qcom,eeprom@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_macro_depth_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_macro_depth_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RD_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + sensor_macro: qcom,cam-sensor@2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_macro>; + eeprom-src = <&eeprom_macro>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_macro_depth_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_macro_depth_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RD_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + eeprom_wide: qcom,eeprom@3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_vdig-supply = <&cam_pmic1_ldo2_dvdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + sensor_wide: qcom,cam-sensor@3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_vdig-supply = <&cam_pmic1_ldo2_dvdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-cypfr-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-cypfr-overlay.dtsi new file mode 100644 index 000000000000..c9ef1bc3880e --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-cypfr-overlay.dtsi @@ -0,0 +1,575 @@ +#include +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_wide_dvdd_en_default: cam_wide_dvdd_en_default { + mux { + pins = "gpio134"; + function = "gpio"; + }; + + config { + pins = "gpio134"; + bias-disable; /* NO PULL */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + mot,cam-actuator { + compatible = "mot,actuator"; + status = "ok"; + }; + + cam_wide_dvdd: gpio-regulator@0{ + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "cam_wide_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 134 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_wide_dvdd_en_default>; + vin-supply = <&S6A>; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vaf-supply = <&cam_ldo5>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <100000>; + status = "ok"; + multi-user-support; + }; + + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <1>; + status = "ok"; + }; + + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <1>; + status = "ok"; + }; + + led_flash_wide: qcom,camera-flash@3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <1>; + status = "ok"; + }; + + eeprom_main: qcom,eeprom0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vaf-supply = <&cam_ldo5>; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vaf", "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000 1800000>; + rgltr-max-voltage = <2800000 1800000>; + rgltr-load-current = <100000 120000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + led-flash-src = <&led_flash_rear>; + eeprom-src = <&eeprom_main>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_vaf-supply = <&cam_ldo5>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-max-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-load-current = <120000 80000 1200000 0 100000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_wide: qcom,eeprom2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_vdig-supply = <&cam_wide_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_vdig-supply = <&cam_wide_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + eeprom_front: qcom,eeprom1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo3>; + cam_vdig-supply = <&cam_ldo1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0>; + rgltr-max-voltage = <1800000 2800000 1050000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET1"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_macro: qcom,eeprom3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio","cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_macro>; + eeprom-src = <&eeprom_macro>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio","cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-fogo-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-fogo-overlay.dtsi new file mode 100644 index 000000000000..cbbc29a03125 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-fogo-overlay.dtsi @@ -0,0 +1,610 @@ +#include +#include + +/*s5k4h7 dvdd*/ +&L3A{ + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + qcom,init-voltage = <1200000>; + status = "okay"; +}; + +/*s5kjns afvdd*/ +&L21A{ + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + qcom,init-voltage = <2800000>; + status = "okay"; +}; + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + camera_ldo_iovdd_en: camera_ldo_iovdd_en { + mux { + pins = "gpio33"; + function = "gpio"; + }; + + config { + pins = "gpio33"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + /* s5kjns avdd enable */ + camera_ldo_50m_avdd_en: camera_ldo_50m_avdd_en { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + /* s5kjns dvdd enable */ + camera_ldo_50m_dvdd_en: camera_ldo_50m_dvdd_en { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + /*s5k4h7 avdd enable*/ + camera_ldo_8m_avdd_en: camera_ldo_8m_avdd_en { + mux { + pins = "gpio38"; + function = "gpio"; + }; + + config { + pins = "gpio38"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + /*sc202acs AVDD enable*/ + camera_ldo_2m_avdd_en: camera_ldo_2m_avdd_en { + mux { + pins = "gpio51"; + function = "gpio"; + }; + + config { + pins = "gpio51"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + flash_ldo_torch_en: flash_ldo_torch_en { + mux { + pins = "gpio24"; + function = "gpio"; + }; + + config { + pins = "gpio24"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + flash_ldo_tx_en: flash_ldo_tx_en { + mux { + pins = "gpio97"; + function = "gpio"; + }; + + config { + pins = "gpio97"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; +}; + +&soc { + /*s5kjns s5k4h7 sc202acs iovdd*/ + camera_ldo_iovdd: gpio-regulator@0 { + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "camera_ldo_iovdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 33 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_iovdd_en>; + }; + + /*s5kjns avdd*/ + camera_ldo_50m_avdd: gpio-regulator@1 { + compatible = "regulator-fixed"; + reg = <0x01 0x00>; + regulator-name = "camera_ldo_50m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 36 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_avdd_en>; + }; + + /*s5kjns dvdd*/ + camera_ldo_50m_dvdd: gpio-regulator@2 { + compatible = "regulator-fixed"; + reg = <0x02 0x00>; + regulator-name = "camera_ldo_50m_dvdd"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 49 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_dvdd_en>; + }; + + /*sc202acs avdd*/ + camera_ldo_2m_avdd: gpio-regulator@3 { + compatible = "regulator-fixed"; + reg = <0x03 0x00>; + regulator-name = "camera_ldo_2m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 51 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_2m_avdd_en>; + }; + + /*s5k4h7 avdd*/ + camera_ldo_8m_avdd: gpio-regulator@4 { + compatible = "regulator-fixed"; + reg = <0x04 0x00>; + regulator-name = "camera_ldo_8m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 38 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_avdd_en>; + }; + + flash_ldo_torch: gpio-regulator@5 { + compatible = "regulator-fixed"; + reg = <0x05 0x00>; + regulator-name = "flash_ldo_torch"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 24 0>; + pinctrl-names = "default"; + pinctrl-0 = <&flash_ldo_torch_en>; + }; + + flash_ldo_tx: gpio-regulator@6 { + compatible = "regulator-fixed"; + reg = <0x06 0x00>; + regulator-name = "flash_ldo_tx"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 97 0>; + pinctrl-names = "default"; + pinctrl-0 = <&flash_ldo_tx_en>; + }; + + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; +}; + +&cam_cci0 { + /* Rear 50M AF */ + actuator_rear_main: qcom,actuator@0{ + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vaf-supply = <&L21A>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <103000>; + status = "ok"; + }; + + /* Rear s5kjns eeprom */ + eeprom_rear: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&camera_ldo_iovdd>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + /*Macro sc202acs eeprom*/ + eeprom_macro: qcom,eeprom@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&camera_ldo_iovdd>; + cam_vana-supply = <&camera_ldo_2m_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana","cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET3"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /* Rear s5kjns FLASH */ + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,camera-flash"; + flash-type = ; + cam_vio-supply = <&camera_ldo_iovdd>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + cci-master = <1>; + status = "ok"; + }; + + /* MACRO sc202acs FLASH */ + led_flash_macro: qcom,camera-flash@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,camera-flash"; + flash-type = ; + cam_vio-supply = <&camera_ldo_iovdd>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + cci-master = <1>; + status = "ok"; + }; + + /* Rear s5kjns */ + rear_main: qcom,cam-sensor@0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_rear_main>; + led-flash-src = <&led_flash_rear>; + eeprom-src = <&eeprom_rear>; + cam_vio-supply = <&camera_ldo_iovdd>; + cam_vana-supply = <&camera_ldo_50m_avdd>; + cam_vdig-supply = <&camera_ldo_50m_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names ="cam_vio", "cam_vana", "cam_vdig", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0>; + rgltr-max-voltage = <1800000 2800000 1050000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", "CAM_RESET1"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /*Macro sc202acs*/ + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_macro>; + led-flash-src = <&led_flash_macro>; + cam_vio-supply = <&camera_ldo_iovdd>; + cam_vana-supply = <&camera_ldo_2m_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1 >; + gpio-req-tbl-flags = <1 0 >; + gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET3"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + /*Front s5k4h7 otp*/ + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&camera_ldo_iovdd>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&L3A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 30 0>, <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1 >; + gpio-req-tbl-flags = <1 0 >; + gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET0"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /*Front s5k4h7*/ + front_main: qcom,cam-sensor@1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&camera_ldo_iovdd>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&L3A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 30 0>, <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1 >; + gpio-req-tbl-flags = <1 0 >; + gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET0"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-fogor-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-fogor-overlay.dtsi new file mode 100644 index 000000000000..7d64a8903dbf --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-fogor-overlay.dtsi @@ -0,0 +1,568 @@ +#include +#include + +&pm6125_gpios { + camera_ldo_50m_afvdd_en: camera_ldo_50m_afvdd_en { + pins = "gpio5"; + function = "normal"; + input-disable; + output-enable; + bias-pull-down; /* PULL DOWN */ + power-source = <0>; /* 1.8V */ + qcom,drive-strength = <2>; /* Medium */ + }; +}; + +/*s5kjns s5k4h7 sc202acs iovdd*/ +&L13A{ + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; +}; + +/*s5kjns dvdd*/ +&L3A{ + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + qcom,init-voltage = <1050000>; + status = "okay"; +}; + +&soc { + /*s5kjns avdd*/ + camera_ldo_50m_avdd: gpio-regulator@0 { + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "camera_ldo_50m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 8 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_avdd_en>; + }; + + /*s5k4h7 dvdd*/ + camera_ldo_8m_dvdd: gpio-regulator@1 { + compatible = "regulator-fixed"; + reg = <0x01 0x00>; + regulator-name = "camera_ldo_8m_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 6 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_dvdd_en>; + }; + + camera_ldo_50m_afvdd: gpio-regulator@2 { + compatible = "regulator-fixed"; + reg = <0x02 0x00>; + regulator-name = "camera_ldo_50m_afvdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&pm6125_gpios 5 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_afvdd_en>; + }; + + flash_ldo_dovdd: gpio-regulator@3 { + compatible = "regulator-fixed"; + reg = <0x03 0x00>; + regulator-name = "flash_ldo_dovdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 24 0>; + pinctrl-names = "default"; + pinctrl-0 = <&flash_ldo_dovdd_en>; + }; + + camera_ldo_8m_avdd: gpio-regulator@4 { + compatible = "regulator-fixed"; + reg = <0x04 0x00>; + regulator-name = "camera_ldo_8m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 38 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_avdd_en>; + }; + + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + mot,cam-actuator { + compatible = "mot,actuator"; + status = "ok"; + }; +}; + +&tlmm { + flash_ldo_dovdd_en: flash_ldo_dovdd_en { + mux { + pins = "gpio24"; + function = "gpio"; + }; + + config { + pins = "gpio24"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + +/* s5kjns avdd enable */ + camera_ldo_50m_avdd_en: camera_ldo_50m_avdd_en { + mux { + pins = "gpio8"; + function = "gpio"; + }; + + config { + pins = "gpio8"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_8m_avdd_en: camera_ldo_8m_avdd_en { + mux { + pins = "gpio38"; + function = "gpio"; + }; + + config { + pins = "gpio38"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + +/* s5k4h7 dvdd enable */ + camera_ldo_8m_dvdd_en: camera_ldo_8m_dvdd_en { + mux { + pins = "gpio6"; + function = "gpio"; + }; + + config { + pins = "gpio6"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; +}; + +&cam_cci0 { + /* Rear 50M AF */ + actuator_rear_main: qcom,actuator@0{ + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vaf-supply = <&camera_ldo_50m_afvdd>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <103000>; + status = "ok"; + multi-user-support; + }; + + + /* Rear s5kjns FLASH */ + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,camera-flash"; + flash-type = ; + cam_vio-supply = <&L13A>; + cam_v_custom2-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio","cam_v_custom2"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000>; + rgltr-max-voltage = <1800000 1800000>; + rgltr-load-current = <100000 120000>; + distinguish-flash-supplier = <0xc6 0x0c 0x3a>; + cci-master = <1>; + status = "ok"; + }; + + /* MACRO sc202acs FLASH */ + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,camera-flash"; + flash-type = ; + cam_vio-supply = <&L13A>; + cam_v_custom2-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio","cam_v_custom2"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000>; + rgltr-max-voltage = <1800000 1800000>; + rgltr-load-current = <100000 120000>; + distinguish-flash-supplier = <0xc6 0x0c 0x3a>; + cci-master = <1>; + status = "ok"; + }; + + /* Rear s5kjns eeprom */ + eeprom_rear: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L13A>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + /* Rear sc202acs eeprom */ + eeprom_macro: qcom,eeprom@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L13A>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1 >; + gpio-req-tbl-flags = <1 0 >; + gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET3"; + sensor-mode = <0>; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /* Rear s5kjns */ + rear_main: qcom,cam-sensor@0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_rear_main>; + eeprom-src = <&eeprom_rear>; + led-flash-src = <&led_flash_rear>; + cam_v_custom2-supply = <&flash_ldo_dovdd>; + cam_vio-supply = <&L13A>; + cam_vana-supply = <&camera_ldo_50m_avdd>; + cam_vdig-supply = <&L3A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_vaf-supply = <&camera_ldo_50m_afvdd>; + regulator-names ="cam_v_custom2", "cam_vio", "cam_vana", "cam_vdig", "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000 2800000 1050000 0 2800000>; + rgltr-max-voltage = <1800000 1800000 2800000 1050000 0 2800000>; + rgltr-load-current = <120000 120000 80000 1200000 0 103000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", "CAM_RESET1"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /* Rear sc202acs */ + rear_macro: qcom,cam-sensor@2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_macro>; + led-flash-src = <&led_flash_macro>; + cam_v_custom2-supply = <&flash_ldo_dovdd>; + cam_vio-supply = <&L13A>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_v_custom2", "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000 2800000 0>; + rgltr-max-voltage = <1800000 1800000 2800000 0>; + rgltr-load-current = <120000 120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1 >; + gpio-req-tbl-flags = <1 0 >; + gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET3"; + sensor-mode = <0>; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + /* Front s5k4h7 otp */ + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L13A>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&camera_ldo_8m_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 30 0>, <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1 >; + gpio-req-tbl-flags = <1 0 >; + gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET0"; + sensor-mode = <1>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /*Front s5k4h7*/ + front_main: qcom,cam-sensor@1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&L13A>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&camera_ldo_8m_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 30 0>, <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1 >; + gpio-req-tbl-flags = <1 0 >; + gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET0"; + sensor-mode = <1>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-fogos-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-fogos-overlay.dtsi new file mode 100644 index 000000000000..7d64a8903dbf --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-fogos-overlay.dtsi @@ -0,0 +1,568 @@ +#include +#include + +&pm6125_gpios { + camera_ldo_50m_afvdd_en: camera_ldo_50m_afvdd_en { + pins = "gpio5"; + function = "normal"; + input-disable; + output-enable; + bias-pull-down; /* PULL DOWN */ + power-source = <0>; /* 1.8V */ + qcom,drive-strength = <2>; /* Medium */ + }; +}; + +/*s5kjns s5k4h7 sc202acs iovdd*/ +&L13A{ + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; +}; + +/*s5kjns dvdd*/ +&L3A{ + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + qcom,init-voltage = <1050000>; + status = "okay"; +}; + +&soc { + /*s5kjns avdd*/ + camera_ldo_50m_avdd: gpio-regulator@0 { + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "camera_ldo_50m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 8 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_avdd_en>; + }; + + /*s5k4h7 dvdd*/ + camera_ldo_8m_dvdd: gpio-regulator@1 { + compatible = "regulator-fixed"; + reg = <0x01 0x00>; + regulator-name = "camera_ldo_8m_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 6 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_dvdd_en>; + }; + + camera_ldo_50m_afvdd: gpio-regulator@2 { + compatible = "regulator-fixed"; + reg = <0x02 0x00>; + regulator-name = "camera_ldo_50m_afvdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&pm6125_gpios 5 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_afvdd_en>; + }; + + flash_ldo_dovdd: gpio-regulator@3 { + compatible = "regulator-fixed"; + reg = <0x03 0x00>; + regulator-name = "flash_ldo_dovdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 24 0>; + pinctrl-names = "default"; + pinctrl-0 = <&flash_ldo_dovdd_en>; + }; + + camera_ldo_8m_avdd: gpio-regulator@4 { + compatible = "regulator-fixed"; + reg = <0x04 0x00>; + regulator-name = "camera_ldo_8m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 38 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_avdd_en>; + }; + + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + mot,cam-actuator { + compatible = "mot,actuator"; + status = "ok"; + }; +}; + +&tlmm { + flash_ldo_dovdd_en: flash_ldo_dovdd_en { + mux { + pins = "gpio24"; + function = "gpio"; + }; + + config { + pins = "gpio24"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + +/* s5kjns avdd enable */ + camera_ldo_50m_avdd_en: camera_ldo_50m_avdd_en { + mux { + pins = "gpio8"; + function = "gpio"; + }; + + config { + pins = "gpio8"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_8m_avdd_en: camera_ldo_8m_avdd_en { + mux { + pins = "gpio38"; + function = "gpio"; + }; + + config { + pins = "gpio38"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + +/* s5k4h7 dvdd enable */ + camera_ldo_8m_dvdd_en: camera_ldo_8m_dvdd_en { + mux { + pins = "gpio6"; + function = "gpio"; + }; + + config { + pins = "gpio6"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; +}; + +&cam_cci0 { + /* Rear 50M AF */ + actuator_rear_main: qcom,actuator@0{ + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vaf-supply = <&camera_ldo_50m_afvdd>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <103000>; + status = "ok"; + multi-user-support; + }; + + + /* Rear s5kjns FLASH */ + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,camera-flash"; + flash-type = ; + cam_vio-supply = <&L13A>; + cam_v_custom2-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio","cam_v_custom2"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000>; + rgltr-max-voltage = <1800000 1800000>; + rgltr-load-current = <100000 120000>; + distinguish-flash-supplier = <0xc6 0x0c 0x3a>; + cci-master = <1>; + status = "ok"; + }; + + /* MACRO sc202acs FLASH */ + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,camera-flash"; + flash-type = ; + cam_vio-supply = <&L13A>; + cam_v_custom2-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio","cam_v_custom2"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000>; + rgltr-max-voltage = <1800000 1800000>; + rgltr-load-current = <100000 120000>; + distinguish-flash-supplier = <0xc6 0x0c 0x3a>; + cci-master = <1>; + status = "ok"; + }; + + /* Rear s5kjns eeprom */ + eeprom_rear: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L13A>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + /* Rear sc202acs eeprom */ + eeprom_macro: qcom,eeprom@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L13A>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1 >; + gpio-req-tbl-flags = <1 0 >; + gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET3"; + sensor-mode = <0>; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /* Rear s5kjns */ + rear_main: qcom,cam-sensor@0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_rear_main>; + eeprom-src = <&eeprom_rear>; + led-flash-src = <&led_flash_rear>; + cam_v_custom2-supply = <&flash_ldo_dovdd>; + cam_vio-supply = <&L13A>; + cam_vana-supply = <&camera_ldo_50m_avdd>; + cam_vdig-supply = <&L3A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_vaf-supply = <&camera_ldo_50m_afvdd>; + regulator-names ="cam_v_custom2", "cam_vio", "cam_vana", "cam_vdig", "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000 2800000 1050000 0 2800000>; + rgltr-max-voltage = <1800000 1800000 2800000 1050000 0 2800000>; + rgltr-load-current = <120000 120000 80000 1200000 0 103000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", "CAM_RESET1"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /* Rear sc202acs */ + rear_macro: qcom,cam-sensor@2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_macro>; + led-flash-src = <&led_flash_macro>; + cam_v_custom2-supply = <&flash_ldo_dovdd>; + cam_vio-supply = <&L13A>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_v_custom2", "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000 2800000 0>; + rgltr-max-voltage = <1800000 1800000 2800000 0>; + rgltr-load-current = <120000 120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1 >; + gpio-req-tbl-flags = <1 0 >; + gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET3"; + sensor-mode = <0>; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + /* Front s5k4h7 otp */ + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L13A>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&camera_ldo_8m_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 30 0>, <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1 >; + gpio-req-tbl-flags = <1 0 >; + gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET0"; + sensor-mode = <1>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /*Front s5k4h7*/ + front_main: qcom,cam-sensor@1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&L13A>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&camera_ldo_8m_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 30 0>, <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1 >; + gpio-req-tbl-flags = <1 0 >; + gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET0"; + sensor-mode = <1>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-miami-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-miami-overlay.dtsi new file mode 100644 index 000000000000..19688d6acf0f --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-miami-overlay.dtsi @@ -0,0 +1,453 @@ +#include +#include +#include "blair-camera-flash-pwm.dtsi" + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_ois_vsync_irq_default: cam_ois_vsync_irq_default { + mux { + pins = "gpio51"; + function = "gpio"; + }; + config { + pins = "gpio51"; + drive-strength = <2>; + input-enable; + }; + }; +}; + +&L21A{ + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <3000000>; + qcom,init-voltage = <2500000>; + status = "okay"; +}; + +&pm6125_pwm { + status = "ok"; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; +}; + +&cam_cci0 { + i2c_freq_100Khz_cci0: qcom,i2c_standard_mode { + hw-scl-stretch-en = <1>; + }; + + i2c_freq_400Khz_cci0: qcom,i2c_fast_mode { + hw-scl-stretch-en = <0>; + }; + + i2c_freq_1Mhz_cci0: qcom,i2c_fast_plus_mode { + hw-scl-stretch-en = <1>; + }; + + actuator_main: qcom,actuator@0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vaf-supply = <&cam_pmic_ldo5>; + cam_v_custom1-supply = <&cam_pmic_ldo6>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000>; + rgltr-max-voltage = <1800000 2800000 2800000>; + rgltr-load-current = <500 300000 30000>; + cci-master = <1>; + status = "ok"; + }; + + ois_main: qcom,ois@0 { + cell-index = <0>; + compatible = "qcom,ois"; + interrupt-parent = <&tlmm>; + interrupts = <51 IRQ_TYPE_EDGE_RISING>; + vsync-irq-support; + pinctrl-names = "default"; + pinctrl-0 = <&cam_ois_vsync_irq_default>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vaf-supply = <&cam_pmic_ldo5>; + cam_v_custom1-supply = <&cam_pmic_ldo6>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000>; + rgltr-max-voltage = <1800000 2800000 2800000>; + rgltr-load-current = <500 300000 30000>; + cci-master = <1>; + status = "ok"; + ois-name = "mot_aw86006"; + }; + + eeprom_main: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1805000>; + rgltr-load-current = <120000>; + cci-master = <1>; + status = "ok"; + }; + + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1805000>; + rgltr-load-current = <3000>; + cci-master = <0>; + status = "ok"; + }; + + led_flash_wide: qcom,camera-flash@2 { + cell-index = <2>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_pmic_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = ; + cci-master = <0>; + status = "ok"; + }; + + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_pmic_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = ; + cci-master = <0>; + status = "ok"; + }; + + sensor_main: qcom,cam-sensor@0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + eeprom-src = <&eeprom_main>; + ois-src = <&ois_main>; + led-flash-src = <&led_flash_rear>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo3>; + cam_vdig-supply = <&cam_pmic_ldo1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0>; + rgltr-max-voltage = <1800000 2800000 1050000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RM_RST"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + sensor_front: qcom,cam-sensor@1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo4>; + cam_vdig-supply = <&cam_pmic_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1100000 0>; + rgltr-max-voltage = <1800000 2800000 1100000 0>; + rgltr-load-current = <300 39000 93000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_FW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + + eeprom_wide: qcom,eeprom@2 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1805000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + + }; + + actuator_wide: qcom,actuator@2 { + cell-index = <2>; + compatible = "qcom,actuator"; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vaf-supply = <&cam_pmic_ldo5>; + regulator-names = "cam_vio", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 >; + rgltr-max-voltage = <1800000 2800000 >; + rgltr-load-current = <3000 130000 >; + cci-master = <0>; + status = "ok"; + }; + + sensor_wide: qcom,cam-sensor@2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + eeprom-src = <&eeprom_wide>; + actuator-src = <&actuator_wide>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo4>; + cam_vdig-supply = <&cam_pmic_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1100000 0>; + rgltr-max-voltage = <1800000 2800000 1100000 0>; + rgltr-load-current = <3000 81000 36000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-milanf-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-milanf-overlay.dtsi new file mode 100644 index 000000000000..58c2afe99a66 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-milanf-overlay.dtsi @@ -0,0 +1,576 @@ +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_depth_reset_active: cam_sensor_depth_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_depth_reset_suspend: cam_sensor_depth_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_ois_vsync_irq_default: cam_ois_vsync_irq_default { + mux { + pins = "gpio51"; + function = "gpio"; + }; + config { + pins = "gpio51"; + drive-strength = <2>; + input-enable; + }; + }; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <0>; + status = "ok"; + }; + + led_flash_wide: qcom,camera-flash@3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <0>; + status = "ok"; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator@0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + cam_v_custom1-supply = <&cam_pmic1_ldo6_vddois>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000>; + rgltr-max-voltage = <1800000 2800000 2800000>; + rgltr-load-current = <120000 100000 100000>; + cci-master = <1>; + status = "ok"; + }; + + ois_main: qcom,ois@0 { + cell-index = <0>; + compatible = "qcom,ois"; + interrupt-parent = <&tlmm>; + interrupts = <51 IRQ_TYPE_EDGE_RISING>; + vsync-irq-support; + pinctrl-names = "default"; + pinctrl-0 = <&cam_ois_vsync_irq_default>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + cam_v_custom1-supply = <&cam_pmic1_ldo6_vddois>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000>; + rgltr-max-voltage = <1800000 2800000 2800000>; + rgltr-load-current = <120000 100000 100000>; + cci-master = <1>; + status = "ok"; + ois-name = "mot_dw9781c"; + }; + + eeprom_main: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <1>; + status = "ok"; + }; + + sensor_main: qcom,cam-sensor@0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + led-flash-src = <&led_flash_rear>; + eeprom-src = <&eeprom_main>; + ois-src = <&ois_main>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo3_avdd1>; + cam_vdig-supply = <&cam_pmic1_ldo1_dvdd1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1100000 0 2800000>; + rgltr-max-voltage = <1800000 2800000 1100000 0 2800000>; + rgltr-load-current = <120000 80000 1200000 0 100000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RM_RST"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + sensor_front: qcom,cam-sensor@1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_vdig-supply = <&cam_pmic1_ldo2_dvdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_FW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + +}; + +&cam_cci1 { + eeprom_depth: qcom,eeprom@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_depth_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_depth_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RD_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + sensor_depth: qcom,cam-sensor@2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_depth>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_depth_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_depth_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RD_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_wide: qcom,eeprom@3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_vdig-supply = <&cam_pmic1_ldo2_dvdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + actuator_wide: qcom,actuator@1 { + cell-index = <1>; + compatible = "qcom,actuator"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + regulator-names = "cam_vio", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000>; + rgltr-max-voltage = <1800000 2800000>; + rgltr-load-current = <120000 100000>; + cci-master = <0>; + status = "ok"; + }; + + sensor_wide: qcom,cam-sensor@3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + actuator-src = <&actuator_wide>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_vdig-supply = <&cam_pmic1_ldo2_dvdd2>; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_vaf", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 2800000 0>; + rgltr-load-current = <120000 80000 1200000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-penang-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-penang-overlay.dtsi new file mode 100644 index 000000000000..4c136a006efb --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-penang-overlay.dtsi @@ -0,0 +1,575 @@ +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_depth_reset_active: cam_sensor_depth_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_depth_reset_suspend: cam_sensor_depth_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_ois_vsync_irq_default: cam_ois_vsync_irq_default { + mux { + pins = "gpio51"; + function = "gpio"; + }; + config { + pins = "gpio51"; + drive-strength = <2>; + input-enable; + }; + }; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <0>; + status = "ok"; + }; + + led_flash_wide: qcom,camera-flash@3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <0>; + status = "ok"; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator@0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + cam_v_custom1-supply = <&cam_pmic1_ldo6_vddois>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000>; + rgltr-max-voltage = <1800000 2800000 2800000>; + rgltr-load-current = <120000 100000 100000>; + cci-master = <1>; + status = "ok"; + }; + + ois_main: qcom,ois@0 { + cell-index = <0>; + compatible = "qcom,ois"; + interrupt-parent = <&tlmm>; + interrupts = <51 IRQ_TYPE_EDGE_RISING>; + vsync-irq-support; + pinctrl-names = "default"; + pinctrl-0 = <&cam_ois_vsync_irq_default>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + cam_v_custom1-supply = <&cam_pmic1_ldo6_vddois>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000>; + rgltr-max-voltage = <1800000 2800000 2800000>; + rgltr-load-current = <120000 100000 100000>; + cci-master = <1>; + status = "ok"; + }; + + eeprom_main: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <1>; + status = "ok"; + }; + + sensor_main: qcom,cam-sensor@0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + led-flash-src = <&led_flash_rear>; + eeprom-src = <&eeprom_main>; + ois-src = <&ois_main>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo3_avdd1>; + cam_vdig-supply = <&cam_pmic1_ldo1_dvdd1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1100000 0 2800000>; + rgltr-max-voltage = <1800000 2800000 1100000 0 2800000>; + rgltr-load-current = <120000 80000 1200000 0 100000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RM_RST"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + sensor_front: qcom,cam-sensor@1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_vdig-supply = <&cam_pmic1_ldo2_dvdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_FW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + +}; + +&cam_cci1 { + eeprom_depth: qcom,eeprom@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_depth_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_depth_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RD_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + sensor_depth: qcom,cam-sensor@2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_depth>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_depth_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_depth_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RD_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_wide: qcom,eeprom@3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_vdig-supply = <&cam_pmic1_ldo2_dvdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + actuator_wide: qcom,actuator@1 { + cell-index = <1>; + compatible = "qcom,actuator"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + regulator-names = "cam_vio", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000>; + rgltr-max-voltage = <1800000 2800000>; + rgltr-load-current = <120000 100000>; + cci-master = <0>; + status = "ok"; + }; + + sensor_wide: qcom,cam-sensor@3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + actuator-src = <&actuator_wide>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_vdig-supply = <&cam_pmic1_ldo2_dvdd2>; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_vaf", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 2800000 0>; + rgltr-load-current = <120000 80000 1200000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-rhodec-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-rhodec-overlay.dtsi new file mode 100644 index 000000000000..c9ef1bc3880e --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-rhodec-overlay.dtsi @@ -0,0 +1,575 @@ +#include +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_wide_dvdd_en_default: cam_wide_dvdd_en_default { + mux { + pins = "gpio134"; + function = "gpio"; + }; + + config { + pins = "gpio134"; + bias-disable; /* NO PULL */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + mot,cam-actuator { + compatible = "mot,actuator"; + status = "ok"; + }; + + cam_wide_dvdd: gpio-regulator@0{ + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "cam_wide_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 134 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_wide_dvdd_en_default>; + vin-supply = <&S6A>; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vaf-supply = <&cam_ldo5>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <100000>; + status = "ok"; + multi-user-support; + }; + + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <1>; + status = "ok"; + }; + + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <1>; + status = "ok"; + }; + + led_flash_wide: qcom,camera-flash@3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <1>; + status = "ok"; + }; + + eeprom_main: qcom,eeprom0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vaf-supply = <&cam_ldo5>; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vaf", "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000 1800000>; + rgltr-max-voltage = <2800000 1800000>; + rgltr-load-current = <100000 120000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + led-flash-src = <&led_flash_rear>; + eeprom-src = <&eeprom_main>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_vaf-supply = <&cam_ldo5>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-max-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-load-current = <120000 80000 1200000 0 100000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_wide: qcom,eeprom2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_vdig-supply = <&cam_wide_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_vdig-supply = <&cam_wide_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + eeprom_front: qcom,eeprom1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo3>; + cam_vdig-supply = <&cam_ldo1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0>; + rgltr-max-voltage = <1800000 2800000 1050000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET1"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_macro: qcom,eeprom3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio","cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_macro>; + eeprom-src = <&eeprom_macro>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio","cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-rhodei-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-rhodei-overlay.dtsi new file mode 100644 index 000000000000..e03fc7adc0c0 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-rhodei-overlay.dtsi @@ -0,0 +1,771 @@ +#include +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_rear_avdd_en_default: cam_rear_avdd_en_default { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-up; /* PULL UP */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + cam_rear_dvdd_en_default: cam_rear_dvdd_en_default { + mux { + pins = "gpio33"; + function = "gpio"; + }; + + config { + pins = "gpio33"; + bias-pull-up; /* PULL UP */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + cam_rear_af_en_default: cam_rear_af_en_default { + mux { + pins = "gpio56"; + function = "gpio"; + }; + + config { + pins = "gpio56"; + bias-pull-up; /* PULL UP */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + cam_rear_adj_en_default: cam_rear_adj_en_default { + mux { + pins = "gpio47"; + function = "gpio"; + }; + + config { + pins = "gpio47"; + bias-disable; /* NO PULL */ + drive-strength = <2>; /* 2 MA */ + input-high; + }; + }; + + cam_front_avdd_en_default: cam_front_avdd_en_default { + mux { + pins = "gpio87"; + function = "gpio"; + }; + + config { + pins = "gpio87"; + bias-pull-up; /* PULL UP */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + + cam_wide_dvdd_en_default: cam_wide_dvdd_en_default { + mux { + pins = "gpio46"; + function = "gpio"; + }; + + config { + pins = "gpio46"; + bias-pull-up; /* PULL UP */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + + cam_wide_macro_avdd_en_default: cam_wide_macro_avdd_en_default { + mux { + pins = "gpio45"; + function = "gpio"; + }; + + config { + pins = "gpio45"; + bias-pull-up; /* PULL UP */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + cam_flash_en_active: cam_flash_en_active { + mux { + pins = "gpio102"; + function = "gpio"; + }; + + config { + pins = "gpio102"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + cam_flash_en_suspend: cam_flash_en_suspend { + mux { + pins = "gpio102"; + function = "gpio"; + }; + + config { + pins = "gpio102"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + cam_flash_torch_active: cam_flash_torch_active { + /* AFVDD */ + mux { + pins = "gpio57"; + function = "gpio"; + }; + + config { + pins = "gpio57"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + cam_flash_torch_suspend: cam_flash_torch_suspend { + /* AFVDD */ + mux { + pins = "gpio57"; + function = "gpio"; + }; + + config { + pins = "gpio57"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&L3A{ + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + qcom,init-voltage = <1200000>; + status = "okay"; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + mot,cam-actuator { + compatible = "mot,actuator"; + status = "ok"; + }; + + cam_rear_avdd: gpio-regulator@4{ + compatible = "regulator-fixed"; + reg = <0x04 0x04>; + regulator-name = "cam_rear_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 49 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_rear_avdd_en_default>; + }; + cam_rear_dvdd: gpio-regulator@5{ + compatible = "regulator-fixed"; + reg = <0x05 0x05>; + regulator-name = "cam_rear_dvdd"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 33 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_rear_dvdd_en_default>; + vin-supply = <&S6A>; + }; + cam_rear_af: gpio-regulator@6{ + compatible = "regulator-fixed"; + reg = <0x06 0x06>; + regulator-name = "cam_rear_af"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 56 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_rear_af_en_default>; + }; + cam_front_avdd: gpio-regulator@3{ + compatible = "regulator-fixed"; + reg = <0x02 0x02>; + regulator-name = "cam_front_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 87 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_front_avdd_en_default>; + /*vin-supply = <&BOB>;*/ + }; + + cam_wide_dvdd: gpio-regulator@0{ + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "cam_wide_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 46 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_wide_dvdd_en_default>; + vin-supply = <&S6A>; + }; + + cam_wide_macro_avdd: gpio-regulator@1{ + compatible = "regulator-fixed"; + reg = <0x01 0x01>; + regulator-name = "cam_wide_macro_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 45 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_wide_macro_avdd_en_default>; + /*vin-supply = <&BOB>;*/ + }; + + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + cci-master = <0>; + flash-type = ; + cam_vio-supply = <&L9A>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default","cam_suspend"; + pinctrl-0 = <&cam_flash_en_active &cam_flash_torch_active>; + pinctrl-1 = <&cam_flash_en_suspend &cam_flash_torch_suspend>; + gpios = <&tlmm 102 0>, + <&tlmm 57 0>; + gpio-custom1 = <0>; + gpio-custom2 = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <0 0>; + gpio-req-tbl-label = "SENSOR_CUSTOM_GPIO1", + "SENSOR_CUSTOM_GPIO2"; + status = "ok"; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator@0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cam_vaf-supply = <&cam_rear_af>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <100000>; + cci-master = <1>; + status = "ok"; + multi-user-support; + }; + + eeprom_main: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L9A>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <1>; + status = "ok"; + }; + + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L9A>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <3000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + eeprom-src = <&eeprom_main>; + led-flash-src = <&led_flash_rear>; + cam_vio-supply = <&L9A>; + cam_vana-supply = <&cam_rear_avdd>; + cam_vdig-supply = <&cam_rear_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_vaf-supply = <&cam_rear_af>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-max-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-load-current = <120000 80000 1200000 0 100000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active + &cam_flash_en_active + &cam_rear_adj_en_default>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend + &cam_flash_en_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>, + <&tlmm 102 0>, + <&tlmm 47 0>; + gpio-reset = <1>; + gpio-custom2 = <2>; + gpio-custom1 = <3>; + gpio-req-tbl-num = <0 1 2 3>; + gpio-req-tbl-flags = <1 0 0 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_FLASH_EN", + "CAM_DVDD_SEL0"; + cci-master = <1>; + status = "ok"; + need-change-cci-master; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&L9A>; + cam_vana-supply = <&cam_front_avdd>; + cam_vdig-supply = <&L3A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET0"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + eeprom_macro: qcom,eeprom@2 { + cell-index = <2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L9A>; + cam_vana-supply = <&cam_wide_macro_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_macro>; + led-flash-src = <&led_flash_rear>; + cam_vio-supply = <&L9A>; + cam_vana-supply = <&cam_wide_macro_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio","cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_macro_reset_active + &cam_flash_en_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_macro_reset_suspend + &cam_flash_en_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 37 0>, + <&tlmm 102 0>; + gpio-reset = <1>; + gpio-custom2 = <2>; + gpio-req-tbl-num = <0 1 2>; + gpio-req-tbl-flags = <1 0 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2", + "CAM_FLASH_EN"; + cci-master = <0>; + status = "ok"; + need-change-cci-master; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + eeprom_wide: qcom,eeprom@3 { + cell-index = <3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L9A>; + cam_vana-supply = <&cam_wide_macro_avdd>; + cam_vdig-supply = <&cam_wide_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + qcom,cam-sensor3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&L9A>; + cam_vana-supply = <&cam_wide_macro_avdd>; + cam_vdig-supply = <&cam_wide_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-rhodep-dvt2-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-rhodep-dvt2-overlay.dtsi new file mode 100644 index 000000000000..90d3e668c13e --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-rhodep-dvt2-overlay.dtsi @@ -0,0 +1,680 @@ +#include +#include + +/delete-node/ &cam_sensor_mclk0_active; +/delete-node/ &cam_sensor_mclk1_active; +/delete-node/ &cam_sensor_mclk2_active; +/delete-node/ &cam_sensor_mclk3_active; +/delete-node/ &cam_sensor_main_reset_active; +/delete-node/ &cam_sensor_front_reset_active; +/delete-node/ &cam_sensor_macro_reset_active; +/delete-node/ &cam_sensor_wide_reset_active; +/delete-node/ &flash_active; +/delete-node/ &cam_sensor_mclk0_suspend; +/delete-node/ &cam_sensor_mclk1_suspend; +/delete-node/ &cam_sensor_mclk2_suspend; +/delete-node/ &cam_sensor_mclk3_suspend; +/delete-node/ &cam_sensor_main_reset_suspend; +/delete-node/ &cam_sensor_front_reset_suspend; +/delete-node/ &cam_sensor_macro_reset_suspend; +/delete-node/ &cam_sensor_wide_reset_suspend; +/delete-node/ &flash_suspend; +/delete-node/ &cam_ois_ldo_en_default; +/delete-node/ &cam_ois_ldo; +/delete-node/ &actuator_main; +/delete-node/ &ois_main; +/delete-node/ &eeprom_main; +/delete-node/ &eeprom_front; +/delete-node/ &led_flash_rear; +/delete-node/ &sensor_main; +/delete-node/ &sensor_front; +/delete-node/ &eeprom_macro; +/delete-node/ &led_flash_macro; +/delete-node/ &sensor_macro; +/delete-node/ &eeprom_wide; +/delete-node/ &led_flash_wide; +/delete-node/ &sensor_wide; +/delete-node/ &cam_ois_vsync_irq_default; + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + cam_ois_ldo_en_default: cam_ois_ldo_en_default { + mux { + pins = "gpio86"; + function = "gpio"; + }; + config { + pins = "gpio86"; + bias-pull-up; /* NO PULL */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + + flash_active: flash_active { + /* MCLK 0*/ + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + flash_suspend: flash_suspend { + /* MCLK 0*/ + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_ois_vsync_irq_default: cam_ois_vsync_irq_default { + mux { + pins = "gpio51"; + function = "gpio"; + }; + config { + pins = "gpio51"; + drive-strength = <2>; + input-enable; + }; + }; +}; + +&L21A{ + regulator-min-microvolt = <1500000>; + regulator-max-microvolt = <3000000>; + qcom,init-voltage = <2500000>; + status = "okay"; +}; + +&pm6125_pwm { + status = "ok"; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + gpios-shared = <404>; + pinctrl-names = "flash_active", "flash_suspend"; + pinctrl-0 = <&flash_active>; + pinctrl-1 = <&flash_suspend>; + }; + + cam_ois_ldo: gpio-regulator@0{ + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "cam_ois_ldo"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 86 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_ois_ldo_en_default>; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator@0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vaf-supply = <&cam_pmic_ldo3>; + cam_v_custom1-supply = <&cam_ois_ldo>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000>; + rgltr-max-voltage = <1805000 2805000 2805000>; + rgltr-load-current = <120000 100000 100000>; + cci-master = <1>; + status = "ok"; + }; + + ois_main: qcom,ois@0 { + cell-index = <0>; + compatible = "qcom,ois"; + interrupt-parent = <&tlmm>; + interrupts = <51 IRQ_TYPE_EDGE_RISING>; + vsync-irq-support; + pinctrl-names = "default"; + pinctrl-0 = <&cam_ois_vsync_irq_default>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vaf-supply = <&cam_pmic_ldo3>; + cam_v_custom1-supply = <&cam_ois_ldo>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000>; + rgltr-max-voltage = <1805000 2805000 2800000>; + rgltr-load-current = <120000 100000 100000>; + cci-master = <1>; + status = "ok"; + }; + + eeprom_main: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1805000>; + rgltr-load-current = <120000>; + cci-master = <1>; + status = "ok"; + }; + + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1805000>; + rgltr-load-current = <3000>; + cci-master = <0>; + status = "ok"; + }; + + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + flash-type = ; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&flash_active>; + pinctrl-1 = <&flash_suspend>; + gpios = <&tlmm 49 0>; + gpio-custom1 = <0>; + gpio-req-tbl-num = <0>; + gpio-req-tbl-flags = <0>; + gpio-req-tbl-label = "CUSTOM_GPIO1"; + status = "ok"; + }; + + sensor_main: qcom,cam-sensor@0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + eeprom-src = <&eeprom_main>; + ois-src = <&ois_main>; + led-flash-src = <&led_flash_rear>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo4>; + cam_vdig-supply = <&cam_pmic_ldo1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0>; + rgltr-max-voltage = <1805000 2805000 1100000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RM_RST"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + sensor_front: qcom,cam-sensor@1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo6>; + cam_vdig-supply = <&L21A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2500000 0>; + rgltr-max-voltage = <1805000 2805000 2500000 0>; + rgltr-load-current = <120000 80000 2500000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_FW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + eeprom_macro: qcom,eeprom@2 { + cell-index = <2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo5>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1805000 2805000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + compatible = "qcom,camera-flash"; + flash-type = ; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&flash_active>; + pinctrl-1 = <&flash_suspend>; + gpios = <&tlmm 49 0>; + gpio-custom1 = <0>; + gpio-req-tbl-num = <0>; + gpio-req-tbl-flags = <0>; + gpio-req-tbl-label = "CUSTOM_GPIO1"; + status = "ok"; + }; + sensor_macro: qcom,cam-sensor@2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_macro>; + eeprom-src = <&eeprom_macro>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo5>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1805000 2805000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_wide: qcom,eeprom@3 { + cell-index = <3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo5>; + cam_vdig-supply = <&cam_pmic_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1805000 2805000 1205000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + led_flash_wide: qcom,camera-flash@3 { + cell-index = <3>; + compatible = "qcom,camera-flash"; + flash-type = ; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&flash_active>; + pinctrl-1 = <&flash_suspend>; + gpios = <&tlmm 49 0>; + gpio-custom1 = <0>; + gpio-req-tbl-num = <0>; + gpio-req-tbl-flags = <0>; + gpio-req-tbl-label = "CUSTOM_GPIO1"; + status = "ok"; + }; + sensor_wide: qcom,cam-sensor@3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo5>; + cam_vdig-supply = <&cam_pmic_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1805000 2805000 1205000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-rhodep-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-rhodep-overlay.dtsi new file mode 100644 index 000000000000..d7c966f1c569 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/blair-camera-sensor-mot-rhodep-overlay.dtsi @@ -0,0 +1,646 @@ +#include +#include +#include "blair-camera-flash-pwm.dtsi" + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + cam_ois_ldo_en_default: cam_ois_ldo_en_default { + mux { + pins = "gpio86"; + function = "gpio"; + }; + config { + pins = "gpio86"; + bias-pull-up; /* NO PULL */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + + flash_active: flash_active { + /* MCLK 0*/ + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + flash_suspend: flash_suspend { + /* MCLK 0*/ + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_ois_vsync_irq_default: cam_ois_vsync_irq_default { + mux { + pins = "gpio51"; + function = "gpio"; + }; + config { + pins = "gpio51"; + drive-strength = <2>; + input-enable; + }; + }; +}; + +&L21A{ + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + qcom,init-voltage = <1200000>; + status = "okay"; +}; + +&pm6125_pwm { + status = "ok"; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + gpios-shared = <404>; + pinctrl-names = "flash_active", "flash_suspend"; + pinctrl-0 = <&flash_active>; + pinctrl-1 = <&flash_suspend>; + }; + + cam_ois_ldo: gpio-regulator@0{ + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "cam_ois_ldo"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 86 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_ois_ldo_en_default>; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator@0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vaf-supply = <&cam_pmic_ldo3>; + cam_v_custom1-supply = <&cam_ois_ldo>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000>; + rgltr-max-voltage = <1805000 2805000 2805000>; + rgltr-load-current = <120000 100000 100000>; + cci-master = <1>; + status = "ok"; + }; + + ois_main: qcom,ois@0 { + cell-index = <0>; + compatible = "qcom,ois"; + interrupt-parent = <&tlmm>; + interrupts = <51 IRQ_TYPE_EDGE_RISING>; + vsync-irq-support; + pinctrl-names = "default"; + pinctrl-0 = <&cam_ois_vsync_irq_default>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vaf-supply = <&cam_pmic_ldo3>; + cam_v_custom1-supply = <&cam_ois_ldo>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000>; + rgltr-max-voltage = <1805000 2805000 2800000>; + rgltr-load-current = <120000 100000 100000>; + cci-master = <1>; + status = "ok"; + }; + + eeprom_main: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1805000>; + rgltr-load-current = <120000>; + cci-master = <1>; + status = "ok"; + }; + + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1805000>; + rgltr-load-current = <3000>; + cci-master = <0>; + status = "ok"; + }; + + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + flash-type = ; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&flash_active>; + pinctrl-1 = <&flash_suspend>; + gpios = <&tlmm 49 0>; + gpio-custom1 = <0>; + gpio-req-tbl-num = <0>; + gpio-req-tbl-flags = <0>; + gpio-req-tbl-label = "CUSTOM_GPIO1"; + status = "ok"; + }; + + sensor_main: qcom,cam-sensor@0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + eeprom-src = <&eeprom_main>; + ois-src = <&ois_main>; + led-flash-src = <&led_flash_rear>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo4>; + cam_vdig-supply = <&cam_pmic_ldo1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0>; + rgltr-max-voltage = <1805000 2805000 1100000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RM_RST"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + sensor_front: qcom,cam-sensor@1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo6>; + cam_vdig-supply = <&L21A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1805000 2805000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_FW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + eeprom_macro: qcom,eeprom@2 { + cell-index = <2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo5>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1805000 2805000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + compatible = "qcom,camera-flash"; + flash-type = ; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&flash_active>; + pinctrl-1 = <&flash_suspend>; + gpios = <&tlmm 49 0>; + gpio-custom1 = <0>; + gpio-req-tbl-num = <0>; + gpio-req-tbl-flags = <0>; + gpio-req-tbl-label = "CUSTOM_GPIO1"; + status = "ok"; + }; + sensor_macro: qcom,cam-sensor@2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_macro>; + eeprom-src = <&eeprom_macro>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo5>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1805000 2805000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_wide: qcom,eeprom@3 { + cell-index = <3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo5>; + cam_vdig-supply = <&cam_pmic_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1805000 2805000 1205000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + led_flash_wide: qcom,camera-flash@3 { + cell-index = <3>; + compatible = "qcom,camera-flash"; + flash-type = ; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&flash_active>; + pinctrl-1 = <&flash_suspend>; + gpios = <&tlmm 49 0>; + gpio-custom1 = <0>; + gpio-req-tbl-num = <0>; + gpio-req-tbl-flags = <0>; + gpio-req-tbl-label = "CUSTOM_GPIO1"; + status = "ok"; + }; + sensor_wide: qcom,cam-sensor@3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&cam_pmic_ldo7>; + cam_vana-supply = <&cam_pmic_ldo5>; + cam_vdig-supply = <&cam_pmic_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1805000 2805000 1205000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-corfup-dvt1-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-corfup-dvt1-overlay.dtsi new file mode 100644 index 000000000000..eede79e513d4 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-corfup-dvt1-overlay.dtsi @@ -0,0 +1,19 @@ +/* Copyright (c) 2021, The Linux Foundation. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 and + * only version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +&eeprom_macro{ + cam_vana-supply = <&cam_macro_avdd>; +}; + +&sensor_macro{ + cam_vana-supply = <&cam_macro_avdd>; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-corfup-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-corfup-overlay.dtsi new file mode 100644 index 000000000000..1ba8de072a8b --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-corfup-overlay.dtsi @@ -0,0 +1,590 @@ +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_depth_reset_active: cam_sensor_macro_depth_reset_active { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_depth_reset_suspend: cam_sensor_macro_depth_reset_suspend { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + cam_macro_avdd_en_default: cam_macro_avdd_en_default { + mux { + pins = "gpio38"; + function = "gpio"; + }; + + config { + pins = "gpio38"; + bias-disable; /* NO PULL */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + mot,cam-actuator { + compatible = "mot,actuator"; + status = "ok"; + }; + cam_macro_avdd: gpio-regulator@0{ + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "cam_macro_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 38 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_macro_avdd_en_default>; + }; + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <0>; + status = "ok"; + }; + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <0>; + status = "ok"; + }; + led_flash_wide: qcom,camera-flash@3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <0>; + status = "ok"; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator@0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <100000>; + cci-master = <1>; + status = "ok"; + multi-user-support; + }; + + eeprom_main: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <1>; + status = "ok"; + }; + + sensor_main: qcom,cam-sensor@0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + led-flash-src = <&led_flash_rear>; + eeprom-src = <&eeprom_main>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo6_vddois>; + cam_vdig-supply = <&cam_pmic2_ldo2_dvdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_vaf-supply = <&cam_pmic1_ldo5_vddaf>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk, cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-max-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-load-current = <120000 80000 1200000 0 100000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RM_RST"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + // front camera + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + sensor_front: qcom,cam-sensor@1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo3_avdd1>; + cam_vdig-supply = <&cam_pmic1_ldo1_dvdd1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1100000 0>; + rgltr-max-voltage = <1800000 2800000 1100000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_FW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + // ROW/PRC: macro OV02B10; JP: depth OV02B1B;5G: macro GC02M1 + eeprom_macro: qcom,eeprom@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_macro_depth_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_macro_depth_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RD_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + sensor_macro: qcom,cam-sensor@2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_macro>; + eeprom-src = <&eeprom_macro>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_macro_depth_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_macro_depth_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RD_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + eeprom_wide: qcom,eeprom@3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_vdig-supply = <&cam_pmic1_ldo2_dvdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + sensor_wide: qcom,cam-sensor@3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&cam_pmic1_ldo7_vddio>; + cam_vana-supply = <&cam_pmic1_ldo4_avdd2>; + cam_vdig-supply = <&cam_pmic1_ldo2_dvdd2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RW_RST"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-cypfg-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-cypfg-overlay.dtsi new file mode 100644 index 000000000000..3dc0800a7769 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-cypfg-overlay.dtsi @@ -0,0 +1,556 @@ +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_wide_dvdd_en_default: cam_wide_dvdd_en_default { + mux { + pins = "gpio12"; + function = "gpio"; + }; + + config { + pins = "gpio12"; + bias-disable; /* NO PULL */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + mot,cam-actuator { + compatible = "mot,actuator"; + status = "ok"; + }; + + led_flash_main: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + flash-source = <&pm6150l_flash0>; + torch-source = <&pm6150l_torch0>; + switch-source = <&pm6150l_switch0>; + status = "ok"; + }; + + led_flash_wide: qcom,camera-flash@1 { + cell-index = <1>; + compatible = "qcom,camera-flash"; + flash-source = <&pm6150l_flash0>; + torch-source = <&pm6150l_torch0>; + switch-source = <&pm6150l_switch0>; + status = "ok"; + }; + + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + compatible = "qcom,camera-flash"; + flash-source = <&pm6150l_flash0>; + torch-source = <&pm6150l_torch0>; + switch-source = <&pm6150l_switch0>; + status = "ok"; + }; + + cam_wide_dvdd: gpio-regulator@0{ + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "cam_wide_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 12 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_wide_dvdd_en_default>; + vin-supply = <&S2A>; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vaf-supply = <&cam_ldo5>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <100000>; + status = "ok"; + multi-user-support; + }; + + eeprom_main: qcom,eeprom0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vaf-supply = <&cam_ldo5>; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vaf", "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000 1800000>; + rgltr-max-voltage = <2800000 1800000>; + rgltr-load-current = <100000 120000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + led-flash-src = <&led_flash_main>; + eeprom-src = <&eeprom_main>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_vaf-supply = <&cam_ldo5>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-max-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-load-current = <120000 80000 1200000 0 100000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_wide: qcom,eeprom2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_vdig-supply = <&cam_wide_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_vdig-supply = <&cam_wide_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + eeprom_front: qcom,eeprom1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo3>; + cam_vdig-supply = <&cam_ldo1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0>; + rgltr-max-voltage = <1800000 2800000 1050000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET1"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_macro: qcom,eeprom3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio","cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_macro>; + eeprom-src = <&eeprom_macro>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio","cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-cypfq-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-cypfq-overlay.dtsi new file mode 100644 index 000000000000..e23140a2a46a --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-cypfq-overlay.dtsi @@ -0,0 +1,575 @@ +#include +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_wide_dvdd_en_default: cam_wide_dvdd_en_default { + mux { + pins = "gpio12"; + function = "gpio"; + }; + + config { + pins = "gpio12"; + bias-disable; /* NO PULL */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + mot,cam-actuator { + compatible = "mot,actuator"; + status = "ok"; + }; + + cam_wide_dvdd: gpio-regulator@0{ + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "cam_wide_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 12 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_wide_dvdd_en_default>; + vin-supply = <&S6A>; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vaf-supply = <&cam_ldo5>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <100000>; + status = "ok"; + multi-user-support; + }; + + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <1>; + status = "ok"; + }; + + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <1>; + status = "ok"; + }; + + led_flash_wide: qcom,camera-flash@3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,camera-flash"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <100000>; + flash-type = <1>; + cci-master = <1>; + status = "ok"; + }; + + eeprom_main: qcom,eeprom0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vaf-supply = <&cam_ldo5>; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vaf", "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000 1800000>; + rgltr-max-voltage = <2800000 1800000>; + rgltr-load-current = <100000 120000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + led-flash-src = <&led_flash_rear>; + eeprom-src = <&eeprom_main>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_vaf-supply = <&cam_ldo5>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-max-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-load-current = <120000 80000 1200000 0 100000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_wide: qcom,eeprom2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_vdig-supply = <&cam_wide_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_vdig-supply = <&cam_wide_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + eeprom_front: qcom,eeprom1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo3>; + cam_vdig-supply = <&cam_ldo1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0>; + rgltr-max-voltage = <1800000 2800000 1050000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET1"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_macro: qcom,eeprom3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio","cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_macro>; + eeprom-src = <&eeprom_macro>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio","cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-denver-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-denver-overlay.dtsi new file mode 100644 index 000000000000..b6a511c11d41 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-denver-overlay.dtsi @@ -0,0 +1,630 @@ +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <6>; + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <6>; + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <6>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <6>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <6>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <6>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <6>; + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <6>; + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_depth_reset_active: cam_sensor_depth_reset_active { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_depth_reset_suspend: cam_sensor_depth_reset_suspend { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + gpios-shared = <385>; /* shared MCLK1 30+355 */ + gpios-shared-pinctrl = <385>; + shared-pctrl-gpio-names = "mclk1"; + pinctrl-names = "mclk1_active", "mclk1_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend>; + status = "ok"; + }; + + led_flash_main: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + flash-source = <&pm6150l_flash0>; + torch-source = <&pm6150l_torch0>; + switch-source = <&pm6150l_switch0>; + status = "ok"; + }; + + led_flash_wide: qcom,camera-flash@1 { + cell-index = <1>; + compatible = "qcom,camera-flash"; + flash-source = <&pm6150l_flash0>; + torch-source = <&pm6150l_torch0>; + switch-source = <&pm6150l_switch0>; + status = "ok"; + }; + + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + compatible = "qcom,camera-flash"; + flash-source = <&pm6150l_flash0>; + torch-source = <&pm6150l_torch0>; + switch-source = <&pm6150l_switch0>; + status = "ok"; + }; + + led_flash_front: qcom,camera-flash@3 { + cell-index = <3>; + compatible = "qcom,camera-flash"; + flash-source = <&pm6150l_flash1>; + torch-source = <&pm6150l_torch1>; + switch-source = <&pm6150l_switch1>; + status = "ok"; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <1>; + cam_vaf-supply = <&cam_ldo5>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <100000>; + status = "ok"; + }; + + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + led-flash-src = <&led_flash_main>; + eeprom-src = <&eeprom_main>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo3>; + cam_vdig-supply = <&cam_ldo1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0>; + rgltr-max-voltage = <1800000 2800000 1050000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_main: qcom,eeprom0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vaf-supply = <&cam_ldo5>; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vaf", "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000 1800000>; + rgltr-max-voltage = <2800000 1800000>; + rgltr-load-current = <100000 120000>; + cci-master = <1>; + status = "ok"; + }; + + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor@1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + led-flash-src = <&led_flash_front>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <2500 50000 140000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET1"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_depth>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_depth_reset_active>; + pinctrl-1 = <&cam_sensor_depth_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_depth: qcom,eeprom2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_depth_reset_active>; + pinctrl-1 = <&cam_sensor_depth_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_wide: qcom,eeprom3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_macro: qcom,eeprom4 { + cell-index = <4>; + reg = <0x4>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET4"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor@4 { + cell-index = <4>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_macro>; + eeprom-src = <&eeprom_macro>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET4"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-ibiza-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-ibiza-overlay.dtsi new file mode 100644 index 000000000000..cdd07c073ce2 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-ibiza-overlay.dtsi @@ -0,0 +1,622 @@ +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_depth_reset_active: cam_sensor_depth_reset_active { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_depth_reset_suspend: cam_sensor_depth_reset_suspend { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + led_flash_main: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + flash-source = <&pm6150l_flash0>; + torch-source = <&pm6150l_torch0>; + switch-source = <&pm6150l_switch0>; + status = "ok"; + }; + + led_flash_wide: qcom,camera-flash@1 { + cell-index = <1>; + compatible = "qcom,camera-flash"; + flash-source = <&pm6150l_flash0>; + torch-source = <&pm6150l_torch0>; + switch-source = <&pm6150l_switch0>; + status = "ok"; + }; + + led_flash_macro: qcom,camera-flash@2 { + cell-index = <2>; + compatible = "qcom,camera-flash"; + flash-source = <&pm6150l_flash0>; + torch-source = <&pm6150l_torch0>; + switch-source = <&pm6150l_switch0>; + status = "ok"; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vaf-supply = <&cam_ldo5>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <100000>; + status = "ok"; + }; + + eeprom_main: qcom,eeprom0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vaf-supply = <&cam_ldo5>; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vaf", "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000 1800000>; + rgltr-max-voltage = <2800000 1800000>; + rgltr-load-current = <100000 120000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + led-flash-src = <&led_flash_main>; + eeprom-src = <&eeprom_main>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo3>; + cam_vdig-supply = <&cam_ldo1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0>; + rgltr-max-voltage = <1800000 2800000 1150000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor@1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo3>; + cam_vdig-supply = <&cam_ldo1>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0>; + rgltr-max-voltage = <1800000 2800000 1150000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET1"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_macro: qcom,eeprom3 { + cell-index = <3>; + reg = <0x3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor@3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_macro>; + eeprom-src = <&eeprom_macro>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo6>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_depth>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_depth_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_depth_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_depth: qcom,eeprom2 { + cell-index = <2>; + reg = <0x2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_depth_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_depth_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 49 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor4 { + cell-index = <4>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + led-flash-src = <&led_flash_wide>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET4"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_wide: qcom,eeprom4 { + cell-index = <4>; + reg = <0x4>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&cam_ldo7>; + cam_vana-supply = <&cam_ldo4>; + cam_vdig-supply = <&cam_ldo2>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET4"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-penang-jp-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-penang-jp-overlay.dtsi new file mode 100644 index 000000000000..3a8a2913ba72 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-penang-jp-overlay.dtsi @@ -0,0 +1,687 @@ +#include +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + /* MCLK 0*/ + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + /* MCLK 0*/ + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + /* MCLK 1*/ + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + /* MCLK 1*/ + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + /* MCLK 3*/ + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + /* MCLK 3*/ + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + + + camera_ldo_dovdd_en: camera_ldo_dovdd_en { + mux { + pins = "gpio33"; + function = "gpio"; + }; + + config { + pins = "gpio33"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + camera_ldo_50m_dvdd_en: camera_ldo_50m_dvdd_en { + mux { + pins = "gpio48"; + function = "gpio"; + }; + + config { + pins = "gpio48"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + camera_ldo_50m_avdd_en: camera_ldo_50m_avdd_en { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + camera_ldo_8m_dvdd_en: camera_ldo_8m_dvdd_en { + mux { + pins = "gpio12"; + function = "gpio"; + }; + + config { + pins = "gpio12"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + camera_ldo_8m_avdd_en: camera_ldo_8m_avdd_en { + mux { + pins = "gpio38"; + function = "gpio"; + }; + + config { + pins = "gpio38"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + camera_ldo_2m_avdd_en: camera_ldo_2m_avdd_en { + mux { + pins = "gpio51"; + function = "gpio"; + }; + + config { + pins = "gpio51"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + flash_ldo_dovdd_en: flash_ldo_dovdd_en { + mux { + pins = "gpio89"; + function = "gpio"; + }; + + config { + pins = "gpio89"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_flash_torch_active: cam_flash_torch_active { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_flash_torch_suspend: cam_flash_torch_suspend { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&L21A{ + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + qcom,init-voltage = <2800000>; + status = "okay"; +}; + +&soc { + camera_ldo_dovdd: gpio-regulator@0 { + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "camera_ldo_dovdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 33 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_dovdd_en>; + }; + + camera_ldo_50m_dvdd: gpio-regulator@1 { + compatible = "regulator-fixed"; + reg = <0x01 0x00>; + regulator-name = "camera_ldo_50m_dvdd"; + regulator-min-microvolt = <1056000>; + regulator-max-microvolt = <1056000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 48 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_dvdd_en>; + vin-supply = <&S6A>; + }; + + camera_ldo_50m_avdd: gpio-regulator@2 { + compatible = "regulator-fixed"; + reg = <0x02 0x00>; + regulator-name = "camera_ldo_50m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 36 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_avdd_en>; + }; + + camera_ldo_8m_dvdd: gpio-regulator@3 { + compatible = "regulator-fixed"; + reg = <0x03 0x00>; + regulator-name = "camera_ldo_8m_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 12 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_dvdd_en>; + vin-supply = <&S6A>; + }; + + camera_ldo_8m_avdd: gpio-regulator@4 { + compatible = "regulator-fixed"; + reg = <0x04 0x00>; + regulator-name = "camera_ldo_8m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 38 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_avdd_en>; + }; + + camera_ldo_2m_avdd: gpio-regulator@5 { + compatible = "regulator-fixed"; + reg = <0x05 0x00>; + regulator-name = "camera_ldo_2m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 51 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_2m_avdd_en>; + }; + + flash_ldo_dovdd: gpio-regulator@6 { + compatible = "regulator-fixed"; + reg = <0x06 0x00>; + regulator-name = "flash_ldo_dovdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 89 0>; + pinctrl-names = "default"; + pinctrl-0 = <&flash_ldo_dovdd_en>; + + }; + + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + mot,cam-actuator { + compatible = "mot,actuator"; + status = "ok"; + }; +}; + +&cam_cci0 { + /*MOTO Rear 50M AF*/ + actuator_rear: qcom,actuator0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <1>; + cam_vaf-supply = <&L21A>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <100000>; + status = "ok"; + multi-user-support; + }; + + eeprom_main: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&camera_ldo_dovdd>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <1>; + status = "ok"; + }; + + /*MOTO Rear 50M*/ + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_rear>; + eeprom-src = <&eeprom_main>; + led-flash-src = <&led_flash_rear>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_50m_avdd>; + cam_vaf-supply = <&L21A>; + cam_vdig-supply = <&camera_ldo_50m_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_v_custom1-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig", "cam_v_custom1", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000 1056000 1800000 0>; + rgltr-max-voltage = <1800000 2800000 2800000 1056000 1800000 0>; + rgltr-load-current = <120000 80000 100000 1200000 800000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1"; + sensor-mode = <0>; + cci-master = <1>; + status = "ok"; + need-change-cci-master; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + compatible = "qcom,eeprom"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&L3A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + sensor-mode = <0>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + /*MOTO Front 8M*/ + qcom,cam-sensor1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&L3A>; // PMIC + // cam_vdig-supply = <&camera_ldo_8m_dvdd>; // LDO + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + sensor-mode = <0>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + cci-master = <0>; + flash-type = ; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_v_custom1-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio","cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000>; + rgltr-max-voltage = <1800000 1800000>; + rgltr-load-current = <120000 800000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default","cam_suspend"; + pinctrl-0 = <&cam_flash_torch_active>; + pinctrl-1 = <&cam_flash_torch_suspend>; + gpios = <&tlmm 49 0>; + gpio-custom1 = <0>; + gpio-req-tbl-num = <0>; + gpio-req-tbl-flags = <0>; + gpio-req-tbl-label = "CUSTOM_GPIO1"; + status = "ok"; + }; + + led_flash_rear_aux: qcom,camera-flash@2 { + cell-index = <2>; + compatible = "qcom,camera-flash"; + cci-master = <0>; + flash-type = ; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_v_custom1-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio", "cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000>; + rgltr-max-voltage = <1800000 1800000>; + rgltr-load-current = <120000 800000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default","cam_suspend"; + pinctrl-0 = <&cam_flash_torch_active>; + pinctrl-1 = <&cam_flash_torch_suspend>; + gpios = <&tlmm 49 0>; + gpio-custom1 = <0>; + gpio-req-tbl-num = <0>; + gpio-req-tbl-flags = <0>; + gpio-req-tbl-label = "CUSTOM_GPIO1"; + status = "ok"; + }; + eeprom_macro: qcom,eeprom@2 { + cell-index = <2>; + compatible = "qcom,eeprom"; + csiphy-sd-index = <2>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_2m_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + sensor-mode = <0>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /*MOTO Rear Aux 2M*/ + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_macro>; + led-flash-src = <&led_flash_rear_aux>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_2m_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_v_custom1-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio", "cam_vana", "cam_v_custom1", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1800000 0>; + rgltr-max-voltage = <1800000 2800000 1800000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + sensor-mode = <0>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-penang-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-penang-overlay.dtsi new file mode 100644 index 000000000000..728fc6272857 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-penang-overlay.dtsi @@ -0,0 +1,687 @@ +#include +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + /* MCLK 0*/ + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + /* MCLK 0*/ + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + /* MCLK 1*/ + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + /* MCLK 1*/ + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + /* MCLK 3*/ + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + /* MCLK 3*/ + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + + + camera_ldo_dovdd_en: camera_ldo_dovdd_en { + mux { + pins = "gpio33"; + function = "gpio"; + }; + + config { + pins = "gpio33"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + camera_ldo_50m_dvdd_en: camera_ldo_50m_dvdd_en { + mux { + pins = "gpio6"; + function = "gpio"; + }; + + config { + pins = "gpio6"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + camera_ldo_50m_avdd_en: camera_ldo_50m_avdd_en { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + camera_ldo_8m_dvdd_en: camera_ldo_8m_dvdd_en { + mux { + pins = "gpio12"; + function = "gpio"; + }; + + config { + pins = "gpio12"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + camera_ldo_8m_avdd_en: camera_ldo_8m_avdd_en { + mux { + pins = "gpio38"; + function = "gpio"; + }; + + config { + pins = "gpio38"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + camera_ldo_2m_avdd_en: camera_ldo_2m_avdd_en { + mux { + pins = "gpio51"; + function = "gpio"; + }; + + config { + pins = "gpio51"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + flash_ldo_dovdd_en: flash_ldo_dovdd_en { + mux { + pins = "gpio89"; + function = "gpio"; + }; + + config { + pins = "gpio89"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_flash_torch_active: cam_flash_torch_active { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_flash_torch_suspend: cam_flash_torch_suspend { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&L21A{ + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + qcom,init-voltage = <2800000>; + status = "okay"; +}; + +&soc { + camera_ldo_dovdd: gpio-regulator@0 { + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "camera_ldo_dovdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 33 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_dovdd_en>; + }; + + camera_ldo_50m_dvdd: gpio-regulator@1 { + compatible = "regulator-fixed"; + reg = <0x01 0x00>; + regulator-name = "camera_ldo_50m_dvdd"; + regulator-min-microvolt = <1056000>; + regulator-max-microvolt = <1056000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 6 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_dvdd_en>; + vin-supply = <&S6A>; + }; + + camera_ldo_50m_avdd: gpio-regulator@2 { + compatible = "regulator-fixed"; + reg = <0x02 0x00>; + regulator-name = "camera_ldo_50m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 36 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_50m_avdd_en>; + }; + + camera_ldo_8m_dvdd: gpio-regulator@3 { + compatible = "regulator-fixed"; + reg = <0x03 0x00>; + regulator-name = "camera_ldo_8m_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 6 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_dvdd_en>; + vin-supply = <&S6A>; + }; + + camera_ldo_8m_avdd: gpio-regulator@4 { + compatible = "regulator-fixed"; + reg = <0x04 0x00>; + regulator-name = "camera_ldo_8m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 38 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_avdd_en>; + }; + + camera_ldo_2m_avdd: gpio-regulator@5 { + compatible = "regulator-fixed"; + reg = <0x05 0x00>; + regulator-name = "camera_ldo_2m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 51 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_2m_avdd_en>; + }; + + flash_ldo_dovdd: gpio-regulator@6 { + compatible = "regulator-fixed"; + reg = <0x06 0x00>; + regulator-name = "flash_ldo_dovdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 89 0>; + pinctrl-names = "default"; + pinctrl-0 = <&flash_ldo_dovdd_en>; + + }; + + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + mot,cam-actuator { + compatible = "mot,actuator"; + status = "ok"; + }; +}; + +&cam_cci0 { + /*MOTO Rear 50M AF*/ + actuator_rear: qcom,actuator0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <1>; + cam_vaf-supply = <&L21A>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <100000>; + status = "ok"; + multi-user-support; + }; + + eeprom_main: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&camera_ldo_dovdd>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <1>; + status = "ok"; + }; + + /*MOTO Rear 50M*/ + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_rear>; + eeprom-src = <&eeprom_main>; + led-flash-src = <&led_flash_rear>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_50m_avdd>; + cam_vaf-supply = <&L21A>; + cam_vdig-supply = <&camera_ldo_50m_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_v_custom1-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig", "cam_v_custom1", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000 1056000 1800000 0>; + rgltr-max-voltage = <1800000 2800000 2800000 1056000 1800000 0>; + rgltr-load-current = <120000 80000 100000 1200000 800000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET1"; + sensor-mode = <0>; + cci-master = <1>; + status = "ok"; + need-change-cci-master; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + compatible = "qcom,eeprom"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&L3A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + sensor-mode = <0>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + /*MOTO Front 8M*/ + qcom,cam-sensor1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&L3A>; // PMIC + // cam_vdig-supply = <&camera_ldo_8m_dvdd>; // LDO + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + sensor-mode = <0>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + cci-master = <0>; + flash-type = ; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_v_custom1-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio","cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000>; + rgltr-max-voltage = <1800000 1800000>; + rgltr-load-current = <120000 800000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default","cam_suspend"; + pinctrl-0 = <&cam_flash_torch_active>; + pinctrl-1 = <&cam_flash_torch_suspend>; + gpios = <&tlmm 49 0>; + gpio-custom1 = <0>; + gpio-req-tbl-num = <0>; + gpio-req-tbl-flags = <0>; + gpio-req-tbl-label = "CUSTOM_GPIO1"; + status = "ok"; + }; + + led_flash_rear_aux: qcom,camera-flash@2 { + cell-index = <2>; + compatible = "qcom,camera-flash"; + cci-master = <0>; + flash-type = ; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_v_custom1-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio","cam_v_custom1"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000>; + rgltr-max-voltage = <1800000 1800000>; + rgltr-load-current = <120000 800000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default","cam_suspend"; + pinctrl-0 = <&cam_flash_torch_active>; + pinctrl-1 = <&cam_flash_torch_suspend>; + gpios = <&tlmm 49 0>; + gpio-custom1 = <0>; + gpio-req-tbl-num = <0>; + gpio-req-tbl-flags = <0>; + gpio-req-tbl-label = "CUSTOM_GPIO1"; + status = "ok"; + }; + eeprom_macro: qcom,eeprom@2 { + cell-index = <2>; + compatible = "qcom,eeprom"; + csiphy-sd-index = <2>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_2m_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + sensor-mode = <0>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /*MOTO Rear Aux 2M*/ + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_macro>; + led-flash-src = <&led_flash_rear_aux>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_2m_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_v_custom1-supply = <&flash_ldo_dovdd>; + regulator-names = "cam_vio", "cam_vana", "cam_v_custom1","cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1800000 0>; + rgltr-max-voltage = <1800000 2800000 1800000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + sensor-mode = <0>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-pnangn-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-pnangn-overlay.dtsi new file mode 100644 index 000000000000..7c04a32ca5f1 --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-pnangn-overlay.dtsi @@ -0,0 +1,669 @@ +#include +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + /* MCLK 0*/ + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + /* MCLK 0*/ + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + /* MCLK 1*/ + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + /* MCLK 1*/ + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <4>; /* 4 MA */ + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + /* MCLK 3*/ + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + /* MCLK 3*/ + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + camera_ldo_dovdd_en: camera_ldo_dovdd_en { + mux { + pins = "gpio46"; + function = "gpio"; + }; + + config { + pins = "gpio46"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_48m_dvdd_en: camera_ldo_48m_dvdd_en { + mux { + pins = "gpio47"; + function = "gpio"; + }; + + config { + pins = "gpio47"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_48m_avdd_en: camera_ldo_48m_avdd_en { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_8m_avdd_en: camera_ldo_8m_avdd_en { + mux { + pins = "gpio87"; + function = "gpio"; + }; + + config { + pins = "gpio87"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_8m_dvdd_en: camera_ldo_8m_dvdd_en { + mux { + pins = "gpio33"; + function = "gpio"; + }; + + config { + pins = "gpio33"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_2m_avdd_en: camera_ldo_2m_avdd_en { + mux { + pins = "gpio45"; + function = "gpio"; + }; + + config { + pins = "gpio45"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + flash_ldo_dovdd_en: flash_ldo_dovdd_en { + mux { + pins = "gpio57"; + function = "gpio"; + }; + + config { + pins = "gpio57"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + camera_ldo_48m_afvdd_en: camera_ldo_48m_afvdd_en { + mux { + pins = "gpio56"; + function = "gpio"; + }; + + config { + pins = "gpio56"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; +}; + +//MOTO camera I2C power supply +&L13A{ + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + qcom,init-voltage = <1800000>; + status = "okay"; +}; + +&soc { + camera_ldo_dovdd: gpio-regulator@0 { + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "camera_ldo_dovdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 46 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_dovdd_en>; + }; + + camera_ldo_8m_avdd: gpio-regulator@1 { + compatible = "regulator-fixed"; + reg = <0x01 0x00>; + regulator-name = "camera_ldo_8m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 87 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_avdd_en>; + }; + + camera_ldo_8m_dvdd: gpio-regulator@2 { + compatible = "regulator-fixed"; + reg = <0x02 0x00>; + regulator-name = "camera_ldo_8m_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 33 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_8m_dvdd_en>; + }; + + camera_ldo_2m_avdd: gpio-regulator@3 { + compatible = "regulator-fixed"; + reg = <0x03 0x00>; + regulator-name = "camera_ldo_2m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 45 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_2m_avdd_en>; + }; + + camera_ldo_48m_avdd: gpio-regulator@4 { + compatible = "regulator-fixed"; + reg = <0x04 0x00>; + regulator-name = "camera_ldo_48m_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 49 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_48m_avdd_en>; + }; + + flash_ldo_dovdd: gpio-regulator@5 { + compatible = "regulator-fixed"; + reg = <0x05 0x00>; + regulator-name = "flash_ldo_dovdd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 57 0>; + pinctrl-names = "default"; + pinctrl-0 = <&flash_ldo_dovdd_en>; + }; + + camera_ldo_48m_afvdd: gpio-regulator@6 { + compatible = "regulator-fixed"; + reg = <0x06 0x00>; + regulator-name = "camera_ldo_48m_afvdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 56 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_48m_afvdd_en>; + }; + + camera_ldo_48m_dvdd: gpio-regulator@7 { + compatible = "regulator-fixed"; + reg = <0x07 0x00>; + regulator-name = "camera_ldo_48m_dvdd"; + regulator-min-microvolt = <1056000>; + regulator-max-microvolt = <1056000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 47 0>; + pinctrl-names = "default"; + pinctrl-0 = <&camera_ldo_48m_dvdd_en>; + }; + + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; +}; + +&cam_cci0 { + //MOTO Rear 48M FLASH + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + cci-master = <1>; + flash-type = ; + cam_v_custom1-supply = <&flash_ldo_dovdd>; + cam_v_custom2-supply = <&L13A>; + regulator-names = "cam_v_custom1", "cam_v_custom2"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000>; + rgltr-max-voltage = <1800000 1800000>; + rgltr-load-current = <120000 120000>; + status = "ok"; + }; + + //MOTO Rear 2M FLASH + led_flash_rear_aux: qcom,camera-flash@2 { + cell-index = <2>; + compatible = "qcom,camera-flash"; + cci-master = <1>; + flash-type = ; + cam_v_custom1-supply = <&flash_ldo_dovdd>; + cam_v_custom2-supply = <&L13A>; + regulator-names = "cam_v_custom1", "cam_v_custom2"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 1800000>; + rgltr-max-voltage = <1800000 1800000>; + rgltr-load-current = <120000 120000>; + status = "ok"; + }; + + //MOTO Rear 48M AF + actuator_rear: qcom,actuator0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vaf-supply = <&camera_ldo_48m_afvdd>; + cam_v_custom2-supply = <&L13A>; + regulator-names = "cam_vaf", "cam_v_custom2"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000 1800000>; + rgltr-max-voltage = <2800000 1800000>; + rgltr-load-current = <100000 120000>; + status = "ok"; + }; + + eeprom_rear: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vaf-supply = <&camera_ldo_48m_afvdd>; + cam_v_custom2-supply = <&L13A>; + regulator-names = "cam_vio", "cam_vaf", "cam_v_custom2"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1800000>; + rgltr-max-voltage = <1800000 2800000 1800000>; + rgltr-load-current = <120000 100000 120000>; + cci-master = <0>; + status = "ok"; + }; + + /*MOTO Rear 48M*/ + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_rear>; + eeprom-src = <&eeprom_rear>; + led-flash-src = <&led_flash_rear>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_48m_avdd>; + cam_vaf-supply = <&camera_ldo_48m_afvdd>; + cam_vdig-supply = <&camera_ldo_48m_dvdd>; + cam_v_custom1-supply = <&flash_ldo_dovdd>; + cam_v_custom2-supply = <&L13A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vaf", "cam_vdig", "cam_v_custom1", + "cam_v_custom2", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 2800000 1056000 1800000 1800000 0>; + rgltr-max-voltage = <1800000 2800000 2800000 1056000 1800000 1800000 0>; + rgltr-load-current = <120000 80000 100000 1200000 120000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0"; + sensor-mode = <0>; + cci-master = <0>; + status = "ok"; + need-change-cci-master; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + eeprom_macro: qcom,eeprom@2 { + cell-index = <2>; + compatible = "qcom,eeprom"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_2m_avdd>; + cam_v_custom2-supply = <&L13A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_v_custom2", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1800000 0>; + rgltr-max-voltage = <1800000 2800000 1800000 0>; + rgltr-load-current = <120000 80000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET3"; + sensor-mode = <0>; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /*MOTO Rear Aux 2M*/ + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_macro>; + led-flash-src = <&led_flash_rear_aux>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_2m_avdd>; + cam_v_custom1-supply = <&flash_ldo_dovdd>; + cam_v_custom2-supply = <&L13A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_v_custom1", "cam_v_custom2", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1800000 1800000 0>; + rgltr-max-voltage = <1800000 2800000 1800000 1800000 0>; + rgltr-load-current = <120000 80000 120000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_macro_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_macro_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET3"; + sensor-mode = <0>; + cci-master = <1>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + compatible = "qcom,eeprom"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&camera_ldo_8m_dvdd>; + cam_v_custom2-supply = <&L13A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_v_custom2", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 1800000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 1800000 0>; + rgltr-load-current = <120000 80000 1200000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET1"; + sensor-mode = <0>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + /*MOTO Front 8M*/ + qcom,cam-sensor1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&camera_ldo_dovdd>; + cam_vana-supply = <&camera_ldo_8m_avdd>; + cam_vdig-supply = <&camera_ldo_8m_dvdd>; + cam_v_custom2-supply = <&L13A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_v_custom2", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 1800000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 1800000 0>; + rgltr-load-current = <120000 80000 1200000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET1"; + sensor-mode = <0>; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; diff --git a/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-rhodec-overlay.dtsi b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-rhodec-overlay.dtsi new file mode 100644 index 000000000000..b505c5eb35df --- /dev/null +++ b/arch/arm64/boot/dts/vendor/qcom/camera/holi-camera-sensor-mot-rhodec-overlay.dtsi @@ -0,0 +1,771 @@ +#include +#include + +&tlmm { + cam_sensor_mclk0_active: cam_sensor_mclk0_active { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend { + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam_sensor_mclk1_active { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend { + mux { + pins = "gpio30"; + function = "cam_mclk"; + }; + + config { + pins = "gpio30"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_active: cam_sensor_mclk2_active { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-disable; /* No PULL */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend { + mux { + pins = "gpio31"; + function = "cam_mclk"; + }; + + config { + pins = "gpio31"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; + }; + }; + + cam_sensor_mclk3_active: cam_sensor_mclk3_active { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend { + mux { + pins = "gpio32"; + function = "cam_mclk"; + }; + + config { + pins = "gpio32"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_active: cam_sensor_main_reset_active { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_main_reset_suspend: cam_sensor_main_reset_suspend { + mux { + pins = "gpio35"; + function = "gpio"; + }; + + config { + pins = "gpio35"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_front_reset_active: cam_sensor_front_reset_active { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_front_reset_suspend: cam_sensor_front_reset_suspend { + mux { + pins = "gpio34"; + function = "gpio"; + }; + + config { + pins = "gpio34"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_wide_reset_active: cam_sensor_wide_reset_active { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_wide_reset_suspend: cam_sensor_wide_reset_suspend { + mux { + pins = "gpio36"; + function = "gpio"; + }; + + config { + pins = "gpio36"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_sensor_macro_reset_active: cam_sensor_macro_reset_active { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_macro_reset_suspend: cam_sensor_macro_reset_suspend { + mux { + pins = "gpio37"; + function = "gpio"; + }; + + config { + pins = "gpio37"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + + cam_rear_avdd_en_default: cam_rear_avdd_en_default { + mux { + pins = "gpio49"; + function = "gpio"; + }; + + config { + pins = "gpio49"; + bias-pull-up; /* PULL UP */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + cam_rear_dvdd_en_default: cam_rear_dvdd_en_default { + mux { + pins = "gpio33"; + function = "gpio"; + }; + + config { + pins = "gpio33"; + bias-pull-up; /* PULL UP */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + cam_rear_af_en_default: cam_rear_af_en_default { + mux { + pins = "gpio56"; + function = "gpio"; + }; + + config { + pins = "gpio56"; + bias-pull-up; /* PULL UP */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + cam_rear_adj_en_default: cam_rear_adj_en_default { + mux { + pins = "gpio47"; + function = "gpio"; + }; + + config { + pins = "gpio47"; + bias-disable; /* NO PULL */ + drive-strength = <2>; /* 2 MA */ + input-high; + }; + }; + + cam_front_avdd_en_default: cam_front_avdd_en_default { + mux { + pins = "gpio87"; + function = "gpio"; + }; + + config { + pins = "gpio87"; + bias-pull-up; /* PULL UP */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + + cam_wide_dvdd_en_default: cam_wide_dvdd_en_default { + mux { + pins = "gpio46"; + function = "gpio"; + }; + + config { + pins = "gpio46"; + bias-pull-up; /* PULL UP */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + + cam_wide_macro_avdd_en_default: cam_wide_macro_avdd_en_default { + mux { + pins = "gpio45"; + function = "gpio"; + }; + + config { + pins = "gpio45"; + bias-pull-up; /* PULL UP */ + drive-strength = <2>; /* 2 MA */ + output-high; + }; + }; + cam_flash_en_active: cam_flash_en_active { + mux { + pins = "gpio102"; + function = "gpio"; + }; + + config { + pins = "gpio102"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + cam_flash_en_suspend: cam_flash_en_suspend { + mux { + pins = "gpio102"; + function = "gpio"; + }; + + config { + pins = "gpio102"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; + cam_flash_torch_active: cam_flash_torch_active { + /* AFVDD */ + mux { + pins = "gpio57"; + function = "gpio"; + }; + + config { + pins = "gpio57"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + cam_flash_torch_suspend: cam_flash_torch_suspend { + /* AFVDD */ + mux { + pins = "gpio57"; + function = "gpio"; + }; + + config { + pins = "gpio57"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + output-low; + }; + }; +}; + +&L3A{ + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + qcom,init-voltage = <1200000>; + status = "okay"; +}; + +&soc { + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "ok"; + }; + + mot,cam-actuator { + compatible = "mot,actuator"; + status = "ok"; + }; + + cam_rear_avdd: gpio-regulator@4{ + compatible = "regulator-fixed"; + reg = <0x04 0x04>; + regulator-name = "cam_rear_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 49 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_rear_avdd_en_default>; + }; + cam_rear_dvdd: gpio-regulator@5{ + compatible = "regulator-fixed"; + reg = <0x05 0x05>; + regulator-name = "cam_rear_dvdd"; + regulator-min-microvolt = <1050000>; + regulator-max-microvolt = <1050000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 33 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_rear_dvdd_en_default>; + vin-supply = <&S6A>; + }; + cam_rear_af: gpio-regulator@6{ + compatible = "regulator-fixed"; + reg = <0x06 0x06>; + regulator-name = "cam_rear_af"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 56 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_rear_af_en_default>; + }; + cam_front_avdd: gpio-regulator@3{ + compatible = "regulator-fixed"; + reg = <0x02 0x02>; + regulator-name = "cam_front_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 87 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_front_avdd_en_default>; + /*vin-supply = <&BOB>;*/ + }; + + cam_wide_dvdd: gpio-regulator@0{ + compatible = "regulator-fixed"; + reg = <0x00 0x00>; + regulator-name = "cam_wide_dvdd"; + regulator-min-microvolt = <1200000>; + regulator-max-microvolt = <1200000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 46 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_wide_dvdd_en_default>; + vin-supply = <&S6A>; + }; + + cam_wide_macro_avdd: gpio-regulator@1{ + compatible = "regulator-fixed"; + reg = <0x01 0x01>; + regulator-name = "cam_wide_macro_avdd"; + regulator-min-microvolt = <2800000>; + regulator-max-microvolt = <2800000>; + regulator-enable-ramp-delay = <233>; + enable-active-high; + gpio = <&tlmm 45 0>; + pinctrl-names = "default"; + pinctrl-0 = <&cam_wide_macro_avdd_en_default>; + /*vin-supply = <&BOB>;*/ + }; + + led_flash_rear: qcom,camera-flash@0 { + cell-index = <0>; + compatible = "qcom,camera-flash"; + cci-master = <0>; + flash-type = ; + cam_vio-supply = <&L9A>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default","cam_suspend"; + pinctrl-0 = <&cam_flash_en_active &cam_flash_torch_active>; + pinctrl-1 = <&cam_flash_en_suspend &cam_flash_torch_suspend>; + gpios = <&tlmm 102 0>, + <&tlmm 57 0>; + gpio-custom1 = <0>; + gpio-custom2 = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <0 0>; + gpio-req-tbl-label = "SENSOR_CUSTOM_GPIO1", + "SENSOR_CUSTOM_GPIO2"; + status = "ok"; + }; +}; + +&cam_cci0 { + actuator_main: qcom,actuator@0 { + cell-index = <0>; + compatible = "qcom,actuator"; + cam_vaf-supply = <&cam_rear_af>; + regulator-names = "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <2800000>; + rgltr-max-voltage = <2800000>; + rgltr-load-current = <100000>; + cci-master = <1>; + status = "ok"; + multi-user-support; + }; + + eeprom_main: qcom,eeprom@0 { + cell-index = <0>; + reg = <0x0>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L9A>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + cci-master = <1>; + status = "ok"; + }; + + eeprom_front: qcom,eeprom@1 { + cell-index = <1>; + reg = <0x1>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L9A>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <3000>; + cci-master = <0>; + status = "ok"; + }; + + qcom,cam-sensor0 { + cell-index = <0>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + actuator-src = <&actuator_main>; + eeprom-src = <&eeprom_main>; + led-flash-src = <&led_flash_rear>; + cam_vio-supply = <&L9A>; + cam_vana-supply = <&cam_rear_avdd>; + cam_vdig-supply = <&cam_rear_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + cam_vaf-supply = <&cam_rear_af>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk", "cam_vaf"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-max-voltage = <1800000 2800000 1050000 0 2800000>; + rgltr-load-current = <120000 80000 1200000 0 100000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active + &cam_sensor_main_reset_active + &cam_flash_en_active + &cam_rear_adj_en_default>; + pinctrl-1 = <&cam_sensor_mclk0_suspend + &cam_sensor_main_reset_suspend + &cam_flash_en_suspend>; + gpios = <&tlmm 29 0>, + <&tlmm 35 0>, + <&tlmm 102 0>, + <&tlmm 47 0>; + gpio-reset = <1>; + gpio-custom2 = <2>; + gpio-custom1 = <3>; + gpio-req-tbl-num = <0 1 2 3>; + gpio-req-tbl-flags = <1 0 0 0>; + gpio-req-tbl-label = "CAMIF_MCLK0", + "CAM_RESET0", + "CAM_FLASH_EN", + "CAM_DVDD_SEL0"; + cci-master = <1>; + status = "ok"; + need-change-cci-master; + clocks = <&gcc GCC_CAMSS_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + + qcom,cam-sensor1 { + cell-index = <1>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <3>; + sensor-position-roll = <270>; + sensor-position-pitch = <0>; + sensor-position-yaw = <0>; + eeprom-src = <&eeprom_front>; + cam_vio-supply = <&L9A>; + cam_vana-supply = <&cam_front_avdd>; + cam_vdig-supply = <&L3A>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active + &cam_sensor_front_reset_active>; + pinctrl-1 = <&cam_sensor_mclk2_suspend + &cam_sensor_front_reset_suspend>; + gpios = <&tlmm 31 0>, + <&tlmm 34 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK2", + "CAM_RESET0"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +}; + +&cam_cci1 { + eeprom_macro: qcom,eeprom@2 { + cell-index = <2>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L9A>; + cam_vana-supply = <&cam_wide_macro_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 80000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 37 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + qcom,cam-sensor2 { + cell-index = <2>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_macro>; + led-flash-src = <&led_flash_rear>; + cam_vio-supply = <&L9A>; + cam_vana-supply = <&cam_wide_macro_avdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio","cam_vana", "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 0>; + rgltr-max-voltage = <1800000 2800000 0>; + rgltr-load-current = <120000 120000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk1_active + &cam_sensor_macro_reset_active + &cam_flash_en_active>; + pinctrl-1 = <&cam_sensor_mclk1_suspend + &cam_sensor_macro_reset_suspend + &cam_flash_en_suspend>; + gpios = <&tlmm 30 0>, + <&tlmm 37 0>, + <&tlmm 102 0>; + gpio-reset = <1>; + gpio-custom2 = <2>; + gpio-req-tbl-num = <0 1 2>; + gpio-req-tbl-flags = <1 0 0>; + gpio-req-tbl-label = "CAMIF_MCLK1", + "CAM_RESET2", + "CAM_FLASH_EN"; + cci-master = <0>; + status = "ok"; + need-change-cci-master; + clocks = <&gcc GCC_CAMSS_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + eeprom_wide: qcom,eeprom@3 { + cell-index = <3>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&L9A>; + cam_vana-supply = <&cam_wide_macro_avdd>; + cam_vdig-supply = <&cam_wide_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; + qcom,cam-sensor3 { + cell-index = <3>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <90>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_wide>; + cam_vio-supply = <&L9A>; + cam_vana-supply = <&cam_wide_macro_avdd>; + cam_vdig-supply = <&cam_wide_dvdd>; + cam_clk-supply = <&gcc_camss_top_gdsc>; + regulator-names = "cam_vio", "cam_vana", "cam_vdig", + "cam_clk"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000 2800000 1200000 0>; + rgltr-max-voltage = <1800000 2800000 1200000 0>; + rgltr-load-current = <120000 80000 1200000 0>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk3_active + &cam_sensor_wide_reset_active>; + pinctrl-1 = <&cam_sensor_mclk3_suspend + &cam_sensor_wide_reset_suspend>; + gpios = <&tlmm 32 0>, + <&tlmm 36 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAMIF_MCLK3", + "CAM_RESET3"; + cci-master = <0>; + status = "ok"; + clocks = <&gcc GCC_CAMSS_MCLK3_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "turbo"; + clock-rates = <24000000>; + }; +};