Merge tag 'MMI-U1UGS34.23-110-23-2' of https://github.com/MotorolaMobilityLLC/kernel-camera-devicetree into lineage-22.2

Fogos push for Android 14

* tag 'MMI-U1UGS34.23-110-23-2' of https://github.com/MotorolaMobilityLLC/kernel-camera-devicetree: (183 commits)
  fogos: Actuator noise reduction[1/2]
  fogor: Modify mclk for s5k4h7
  fogor: Actuator noise reduction[1/2]
  camera-devicetree: add init file for fogos bringup
  fogo: Bring up eeprom of main camera[1/2]
  fogo: Bring up flash[1/3]
  fogo: Bring up s5k4h7 otp[2/2]
  fogo: Bring up macro sc202acs otp
  fogo: Bring up actuator of main camera[1/2]
  fogo: Bring up front s5k4h7[2/2]
  fogo: Bring up macro sc202acs
  fogo: Bring up main s5kjns
  fogo: Setup camera driver baseline[2/3]
  fogor: Update the power pins of avdd
  fogor: Bring up eeprom of macro sc202acs
  fogor: Bring up flash[2/2]
  fogor: Bring up eeprom of front camera[2/2]
  fogor: Bring up eeprom of main camera[1/2]
  fogor: Bring up actuator of main camera[1/2]
  fogor: Bring up macro sc202acs
  ...

Change-Id: Ie6b083e7d9b99052d897af385cb1c6c48586124f
This commit is contained in:
Michael Bestas 2025-03-21 18:30:55 +02:00
commit 25c1a87ecc
No known key found for this signature in database
24 changed files with 14054 additions and 0 deletions

View file

@ -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>;
};
};

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,590 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
&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>;
};
};

View file

@ -0,0 +1,575 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
#include <dt-bindings/msm/msm-camera.h>
&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>;
};
};

View file

@ -0,0 +1,610 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
#include <dt-bindings/msm/msm-camera.h>
/*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_FLASH_TYPE_I2C>;
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_FLASH_TYPE_I2C>;
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>;
};
};

View file

@ -0,0 +1,568 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
#include <dt-bindings/msm/msm-camera.h>
&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_FLASH_TYPE_I2C>;
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_FLASH_TYPE_I2C>;
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>;
};
};

View file

@ -0,0 +1,568 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
#include <dt-bindings/msm/msm-camera.h>
&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_FLASH_TYPE_I2C>;
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_FLASH_TYPE_I2C>;
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>;
};
};

View file

@ -0,0 +1,453 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
#include <dt-bindings/msm/msm-camera.h>
#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 = <CAM_FLASH_TYPE_I2C>;
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 = <CAM_FLASH_TYPE_I2C>;
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>;
};
};

View file

@ -0,0 +1,576 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
&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>;
};
};

View file

@ -0,0 +1,575 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
&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>;
};
};

View file

@ -0,0 +1,575 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
#include <dt-bindings/msm/msm-camera.h>
&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>;
};
};

View file

@ -0,0 +1,771 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
#include <dt-bindings/msm/msm-camera.h>
&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_FLASH_TYPE_I2C>;
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>;
};
};

View file

@ -0,0 +1,680 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
#include <dt-bindings/msm/msm-camera.h>
/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 = <CAM_FLASH_TYPE_GPIO>;
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 = <CAM_FLASH_TYPE_GPIO>;
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 = <CAM_FLASH_TYPE_GPIO>;
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>;
};
};

View file

@ -0,0 +1,646 @@
#include <dt-bindings/clock/qcom,gcc-blair.h>
#include <dt-bindings/msm/msm-camera.h>
#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 = <CAM_FLASH_TYPE_GPIO>;
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 = <CAM_FLASH_TYPE_GPIO>;
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 = <CAM_FLASH_TYPE_GPIO>;
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>;
};
};

View file

@ -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>;
};

View file

@ -0,0 +1,590 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
&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>;
};
};

View file

@ -0,0 +1,556 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
&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>;
};
};

View file

@ -0,0 +1,575 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
#include <dt-bindings/msm/msm-camera.h>
&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>;
};
};

View file

@ -0,0 +1,630 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
&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>;
};
};

View file

@ -0,0 +1,622 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
&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>;
};
};

View file

@ -0,0 +1,687 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
#include <dt-bindings/msm/msm-camera.h>
&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_FLASH_TYPE_I2C>;
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_FLASH_TYPE_I2C>;
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>;
};
};

View file

@ -0,0 +1,687 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
#include <dt-bindings/msm/msm-camera.h>
&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_FLASH_TYPE_I2C>;
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_FLASH_TYPE_I2C>;
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>;
};
};

View file

@ -0,0 +1,669 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
#include <dt-bindings/msm/msm-camera.h>
&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_FLASH_TYPE_I2C>;
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_FLASH_TYPE_I2C>;
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>;
};
};

View file

@ -0,0 +1,771 @@
#include <dt-bindings/clock/qcom,gcc-holi.h>
#include <dt-bindings/msm/msm-camera.h>
&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_FLASH_TYPE_I2C>;
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>;
};
};