camera-devicetree: Add support for thor, zizha, diting, mayfly, unicorn and mondrian from ziyi-s-oss

Change-Id: I7ef8a5cd0b5ad7468ed388c6926538d51c058aee
This commit is contained in:
Arian
2024-01-24 10:36:26 +01:00
parent 8a7b86bc7d
commit 7342bdf10f
13 changed files with 4505 additions and 114 deletions

View File

@@ -14,7 +14,12 @@ dtbo-$(CONFIG_ARCH_CAPE) += cape-camera.dtbo
dtbo-$(CONFIG_ARCH_CAPE) += cape-camera-sensor-mtp.dtbo \
cape-camera-sensor-cdp.dtbo \
cape-camera-sensor-qrd.dtbo \
mondrian-camera-sensor.dtbo
thor-sm8475-camera-sensor.dtbo \
zizhan-sm8475-camera-sensor.dtbo \
diting-sm8475-camera-sensor.dtbo \
mayfly-sm8475-camera-sensor.dtbo \
unicorn-sm8475-camera-sensor.dtbo \
mondrian-sm8475-camera-sensor.dtbo
dtbo-$(CONFIG_ARCH_CAPE) += ukee-camera-sensor-mtp.dtbo \
ukee-camera-sensor-cdp.dtbo \

View File

@@ -0,0 +1,17 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/clock/qcom,gcc-waipio.h>
#include <dt-bindings/clock/qcom,camcc-waipio.h>
#include <dt-bindings/interconnect/qcom,waipio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator-levels.h>
#include "mayfly-sm8475-camera-sensor.dtsi"
/ {
model = "Qualcomm Technologies, Inc. 8475 mayfly";
compatible = "qcom,cape", "qcom,capep";
qcom,msm-id = <530 0x10000>, <531 0x10000>, <540 0x10000>;
qcom,board-id = <0x10008 0>;
xiaomi,miboard-id = <0xC 0>;
};

View File

@@ -0,0 +1,863 @@
#include <dt-bindings/clock/qcom,camcc-waipio.h>
#include <dt-bindings/msm-camera.h>
&tlmm {
//macro reset
cam_sensor_active_rst7: cam_sensor_active_rst7 {
/* RESET REARAUX */
mux {
pins = "gpio128";
function = "gpio";
};
config {
pins = "gpio128";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_rst7: cam_sensor_suspend_rst7 {
/* RESET REARAUX */
mux {
pins = "gpio128";
function = "gpio";
};
config {
pins = "gpio128";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
//front reset
cam_sensor_active_rst8: cam_sensor_active_rst8 {
/* RESET FRONT */
mux {
pins = "gpio127";
function = "gpio";
};
config {
pins = "gpio127";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_rst8: cam_sensor_suspend_rst8 {
/* RESET FRONT */
mux {
pins = "gpio127";
function = "gpio";
};
config {
pins = "gpio127";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
//wide reset
cam_sensor_active_rst9: cam_sensor_active_rst9 {
/* RESET FRONT */
mux {
pins = "gpio126";
function = "gpio";
};
config {
pins = "gpio126";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_rst9: cam_sensor_suspend_rst9 {
/* RESET FRONT */
mux {
pins = "gpio126";
function = "gpio";
};
config {
pins = "gpio126";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
//macro
cam_sensor_m_avdd_active: cam_sensor_m_avdd_active {
/* SENSOR MACRO AVDD ENABLE */
mux {
pins = "gpio71";
function = "gpio";
};
config {
pins = "gpio71";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_m_avdd_suspend: cam_sensor_m_avdd_suspend {
/* SENSOR MACRO AVDD DISABLE */
mux {
pins = "gpio71";
function = "gpio";
};
config {
pins = "gpio71";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
//front dvdd
cam_sensor_f_dvdd_active: cam_sensor_f_dvdd_active {
/* SENSOR FRONT DVDD ENABLE */
mux {
pins = "gpio93";
function = "gpio";
};
config {
pins = "gpio93";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_f_dvdd_suspend: cam_sensor_f_dvdd_suspend {
/* SENSOR FRONT DVDD DISABLE */
mux {
pins = "gpio93";
function = "gpio";
};
config {
pins = "gpio93";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
//front avdd
cam_sensor_f_avdd_active: cam_sensor_f_avdd_active {
/* SENSOR FRONT AVDD ENABLE */
mux {
pins = "gpio64";
function = "gpio";
};
config {
pins = "gpio64";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_f_avdd_suspend: cam_sensor_f_avdd_suspend {
/* SENSOR FRONT AVDD DISABLE */
mux {
pins = "gpio68";
function = "gpio";
};
config {
pins = "gpio68";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
//wide dvdd
cam_sensor_w_dvdd_active: cam_sensor_w_dvdd_active {
/* SENSOR WIDE DVDD ENABLE */
mux {
pins = "gpio2";
function = "gpio";
};
config {
pins = "gpio2";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_w_dvdd_suspend: cam_sensor_w_dvdd_suspend {
/* SENSOR WIDE DVDD DISABLE */
mux {
pins = "gpio2";
function = "gpio";
};
config {
pins = "gpio2";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
//wide avdd
cam_sensor_w_avdd1_active: cam_sensor_w_avdd1_active {
/* SENSOR WIDE DVDD ENABLE */
mux {
pins = "gpio70";
function = "gpio";
};
config {
pins = "gpio70";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_w_avdd1_suspend: cam_sensor_w_avdd1_suspend {
/* SENSOR WIDE DVDD DISABLE */
mux {
pins = "gpio70";
function = "gpio";
};
config {
pins = "gpio70";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
//ultra avdd
cam_sensor_u_avdd_active: cam_sensor_u_avdd_active {
/* SENSOR ULTRA DVDD ENABLE */
mux {
pins = "gpio53";
function = "gpio";
};
config {
pins = "gpio53";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_u_avdd_suspend: cam_sensor_u_avdd_suspend {
/* SENSOR ULTRA DVDD DISABLE */
mux {
pins = "gpio53";
function = "gpio";
};
config {
pins = "gpio53";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_active_wide: cam_sensor_active_wide {
mux {
pins = "gpio70", "gpio2";
function = "gpio";
};
config {
pins = "gpio70", "gpio2";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_wide: cam_sensor_suspend_wide {
mux {
pins = "gpio70", "gpio2";
function = "gpio";
};
config {
pins = "gpio70", "gpio2";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
//macro
cam_sensor_mclk3_active: cam_sensor_mclk3_active {
/* MCLK3 */
mux {
pins = "gpio103";
function = "cam_mclk";
};
config {
pins = "gpio103";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_mclk3_suspend: cam_sensor_mclk3_suspend {
/* MCLK3 */
mux {
pins = "gpio103";
function = "cam_mclk";
};
config {
pins = "gpio103";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
//ultra
cam_sensor_mclk1_active: cam_sensor_mclk1_active {
/* MCLK1 */
mux {
pins = "gpio101";
function = "cam_mclk";
};
config {
pins = "gpio101";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend {
/* MCLK1 */
mux {
pins = "gpio101";
function = "cam_mclk";
};
config {
pins = "gpio101";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
//wide
cam_sensor_mclk2_active: cam_sensor_mclk2_active {
/* MCLK2 */
mux {
pins = "gpio102";
function = "cam_mclk";
};
config {
pins = "gpio102";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend {
/* MCLK2 */
mux {
pins = "gpio102";
function = "cam_mclk";
};
config {
pins = "gpio102";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
//front
cam_sensor_mclk5_active: cam_sensor_mclk5_active {
/* MCLK5 */
mux {
pins = "gpio105";
function = "cam_mclk";
};
config {
pins = "gpio105";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_mclk5_suspend: cam_sensor_mclk5_suspend {
/* MCLK5 */
mux {
pins = "gpio105";
function = "cam_mclk";
};
config {
pins = "gpio105";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
};
&cam_csiphy2{
compatible = "qcom,csiphy-v2.1.3-xiaomi-l3s", "qcom,csiphy";
};
&cam_csiphy3{
compatible = "qcom,csiphy-v2.1.3-xiaomi-l3s", "qcom,csiphy";
};
&soc {
led_flash_triple_rear: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux2: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_triple_rear_aux: qcom,camera-flash@3 {
cell-index = <3>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
CAMERA_M_AVDD: gpio-regulator@0 {
compatible = "regulator-fixed";
reg = <0x00 0x00>;
regulator-name = "CAMERA_M_AVDD";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 71 0>;
// pinctrl-names = "default", "sleep";
// pinctrl-0 = <&cam_sensor_m_avdd_active &cam_sensor_m_avdd_suspend>;
// vin-supply = <&BOB>;
};
CAMERA_F_DVDD: gpio-regulator@1 {
compatible = "regulator-fixed";
reg = <0x01 0x00>;
regulator-name = "CAMERA_F_DVDD";
regulator-min-microvolt = <1104000>;
regulator-max-microvolt = <1104000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 93 0>;
// pinctrl-names = "default", "sleep";
// pinctrl-0 = <&cam_sensor_f_dvdd_active &cam_sensor_f_dvdd_suspend>;
// vin-supply = <&S12B>;
};
CAMERA_F_AVDD: gpio-regulator@2 {
compatible = "regulator-fixed";
reg = <0x02 0x00>;
regulator-name = "CAMERA_F_AVDD";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 64 0>;
// pinctrl-names = "default", "sleep";
// pinctrl-0 = <&cam_sensor_f_avdd_active &cam_sensor_f_avdd_suspend>;
// vin-supply = <&BOB>;
};
CAMERA_W_DVDD: gpio-regulator@3 {
compatible = "regulator-fixed";
reg = <0x03 0x00>;
regulator-name = "CAMERA_W_DVDD";
regulator-min-microvolt = <1104000>;
regulator-max-microvolt = <1104000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 2 0>;
// pinctrl-names = "default", "sleep";
// pinctrl-0 = <&cam_sensor_w_dvdd_active &cam_sensor_w_dvdd_suspend>;
// vin-supply = <&S12B>;
};
CAMERA_W_AVDD: gpio-regulator@4 {
compatible = "regulator-fixed";
reg = <0x04 0x00>;
regulator-name = "CAMERA_W_AVDD";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 70 0>;
// pinctrl-names = "default", "sleep";
// pinctrl-0 = <&cam_sensor_w_avdd1_active &cam_sensor_w_avdd1_suspend>;
// vin-supply = <&S1C>;
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
gpios-shared-pinctrl = <427 371 303 403>;
shared-pctrl-gpio-names = "cam_wide", "cam_wide", "cam_wide", "cam_wide";
pinctrl-names = "cam_wide_active", "cam_wide_suspend";
pinctrl-0 = <&cam_sensor_active_rst9
&cam_sensor_active_wide
&cam_sensor_mclk2_active>;
pinctrl-1 = <&cam_sensor_suspend_rst9
&cam_sensor_suspend_wide
&cam_sensor_mclk2_suspend>;
status = "ok";
};
};
&cam_cci0
{
ois0: qcom,ois0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,ois";
cam_vio-supply = <&pm8450_l4>;
cam_vdig-supply = <&CAMERA_W_DVDD>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_W_AVDD>;
cam_v_custom1-supply = <&L6J>;//OISAVDD
cam_vana1-supply = <&L5J>;//需确认
cam_vaf-supply = <&L7J>;//AFVDD
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana",
"cam_v_custom1", "cam_vana1", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2800000 3104000 1800000 3104000>;
rgltr-max-voltage = <1800000 1104000 0 2800000 3104000 1800000 3104000>;
rgltr-load-current = <155000 653600 0 57500 6000 155000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET9";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
eeprom_triple_wide: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&pm8450_l4>;
cam_vdig-supply = <&CAMERA_W_DVDD>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_W_AVDD>;
cam_v_custom1-supply = <&L6J>;//OISAVDD
cam_vana1-supply = <&L5J>;//此路电需确认
cam_vaf-supply = <&L7J>;//AFVDD
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana",
"cam_v_custom1", "cam_vana1", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2800000 3104000 1800000 3104000>;
rgltr-max-voltage = <1800000 1104000 0 2800000 3104000 1800000 3104000>;
rgltr-load-current = <155000 653600 0 57500 6000 155000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET9";
//cci-device = <0>;
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
eeprom_front: qcom,eeprom1 { //front ov32b
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8450_l4>;
cam_vdig-supply = <&CAMERA_F_DVDD>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_F_AVDD>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2800000>;
rgltr-max-voltage = <1800000 1104000 0 2800000>;
rgltr-load-current = <3000 180000 0 43500>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst8>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst8>;
gpios = <&tlmm 105 0>,
<&tlmm 127 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET8";
//cci-device = <0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
eeprom_triple_ultra: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8450_l4>;
cam_vdig-supply = <&L2J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&L3J>;
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 1200000 0 2800000>;
rgltr-load-current = <400 78000 0 35700>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
//cci-device = <0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
actuator_triple_wide: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&L7J>;
cam_vio-supply = <&pm8450_l4>;
regulator-names = "cam_vaf", "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <3104000 1800000>;
rgltr-max-voltage = <3104000 1800000>;
rgltr-load-current = <103000 155000>;
};
qcom,cam-sensor0 { //wide imx707
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
eeprom-src = <&eeprom_triple_wide>;
actuator-src = <&actuator_triple_wide>;
ois-src = <&ois0>;
led-flash-src = <&led_flash_triple_rear>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&pm8450_l4>;
cam_vdig-supply = <&CAMERA_W_DVDD>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_W_AVDD>;
cam_v_custom1-supply = <&L6J>;//OISAVDD
cam_vana1-supply = <&L5J>;//需确认
cam_vaf-supply = <&L7J>;//AFVDD
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana",
"cam_v_custom1", "cam_vana1", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2800000 3104000 1800000 3104000>;
rgltr-max-voltage = <1800000 1104000 0 2800000 3104000 1800000 3104000>;
rgltr-load-current = <155000 653600 0 57500 6000 155000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET9";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
qcom,cam-sensor1 { //front ov32b
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
eeprom-src = <&eeprom_front>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&pm8450_l4>;
cam_vdig-supply = <&CAMERA_F_DVDD>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_F_AVDD>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2800000>;
rgltr-max-voltage = <1800000 1104000 0 2800000>;
rgltr-load-current = <3000 180000 0 43500>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst8>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst8>;
gpios = <&tlmm 105 0>,
<&tlmm 127 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET8";
//cci-device = <0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
qcom,cam-sensor2 { //ultra ov13b10
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
eeprom-src = <&eeprom_triple_ultra>;
led-flash-src = <&led_flash_triple_rear_aux2>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&pm8450_l4>;
cam_vdig-supply = <&L2J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&L3J>;
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 1200000 0 2800000>;
rgltr-load-current = <400 78000 0 35700>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
//cci-device = <0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
};
&cam_cci1 {
eeprom_macro: qcom,eeprom3 { //macro s5k5e9
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&pm8450_l4>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&L4J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 1200000 0 2800000>;
rgltr-load-current = <25 56000 0 21000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst7>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst7>;
gpios = <&tlmm 103 0>,
<&tlmm 128 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET7";
cci-device = <1>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
actuator_triple_macro: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&pm8350c_l9>;
cam_vio-supply = <&pm8450_l4>;
regulator-names = "cam_vaf", "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000 1800000>;
rgltr-max-voltage = <2800000 1800000>;
rgltr-load-current = <100000 5000>;
};
qcom,cam-sensor3 { //macro s5k5e9
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
eeprom-src = <&eeprom_macro>;
actuator-src = <&actuator_triple_macro>;
led-flash-src = <&led_flash_triple_rear_aux>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&pm8450_l4>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&L4J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1200000 0 2800000>;
rgltr-max-voltage = <1800000 1200000 0 2800000>;
rgltr-load-current = <25 56000 0 21000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk3_active
&cam_sensor_active_rst7>;
pinctrl-1 = <&cam_sensor_mclk3_suspend
&cam_sensor_suspend_rst7>;
gpios = <&tlmm 103 0>,
<&tlmm 128 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK3",
"CAM_RESET7";
//cci-device = <1>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK3_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
};

View File

@@ -7,11 +7,11 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator-levels.h>
#include "mondrian-camera-sensor.dtsi"
#include "mondrian-sm8475-camera-sensor.dtsi"
/ {
model = "Qualcomm Technologies, Inc. Cape MTP";
model = "Qualcomm Technologies, Inc. 8475 mondrian";
compatible = "qcom,cape", "qcom,capep";
qcom,msm-id = <530 0x10000>, <531 0x10000>, <540 0x10000>;
qcom,board-id = <8 0>, <0x10008 0>, <0x10008 2>, <0x10008 3>;
qcom,board-id = <0x10008 0>;
xiaomi,miboard-id = <0xE 0>;
};

View File

@@ -1,17 +1,16 @@
#include <dt-bindings/clock/qcom,camcc-waipio.h>
#include <dt-bindings/msm-camera.h>
&cci0_active {
config {
pins = "gpio110", "gpio111";
bias-pull-up; /* PULL UP */
pins = "gpio110","gpio111";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
};
};
&cci0_suspend {
config {
pins = "gpio110", "gpio111";
pins = "gpio110","gpio111";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
@@ -19,31 +18,31 @@
&cci1_active {
config {
pins = "gpio112", "gpio113";
bias-pull-up; /* PULL UP */
drive-strength = <8>; /* 8 MA */
pins = "gpio112","gpio113";
bias-pull-up; /* PULL UP*/
drive-strength = <8>; /* 4 MA */
};
};
&cci1_suspend {
config {
pins = "gpio112", "gpio113";
pins = "gpio112","gpio113";
bias-pull-down; /* PULL DOWN */
drive-strength = <8>; /* 8 MA */
drive-strength = <8>; /* 4 MA */
};
};
&cci2_active {
config {
pins = "gpio114", "gpio115";
bias-pull-up; /* PULL UP */
pins = "gpio114","gpio115";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
};
};
&cci2_suspend {
config {
pins = "gpio114", "gpio115";
pins = "gpio114","gpio115";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
@@ -51,36 +50,43 @@
&cci3_active {
config {
pins = "gpio208", "gpio209";
bias-pull-up; /* PULL UP */
pins = "gpio208","gpio209";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
qcom,apps;
};
};
&tlmm {
cam_sensor_mclk2_active: cam_sensor_mclk2_active {
mux {
pins = "gpio102";
function = "cam_mclk";
};
config {
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
pins = "gpio102";
};
};
cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend {
mux {
pins = "gpio102";
function = "cam_mclk";
};
config {
pins = "gpio102";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_mclk2_active: cam_sensor_mclk2_active {
/* MCLK2 */
mux {
pins = "gpio102";
function = "cam_mclk";
};
config {
pins = "gpio102";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend {
/* MCLK2 */
mux {
pins = "gpio102";
function = "cam_mclk";
};
config {
pins = "gpio102";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_active_rst0: cam_sensor_active_rst0 {
/* RESET REAR */
@@ -92,7 +98,7 @@
config {
pins = "gpio126";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
drive-strength = <4>; /* 2 MA */
};
};
@@ -106,7 +112,7 @@
config {
pins = "gpio126";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
drive-strength = <4>; /* 2 MA */
output-low;
};
};
@@ -143,29 +149,29 @@
cam_sensor_front_avdd_active: cam_sensor_front_avdd_active {
/* FRONT AVDD */
mux {
pins = "gpio64";
function = "gpio";
pins = "gpio64";
function = "gpio";
};
config {
pins = "gpio64";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
pins = "gpio64";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_front_avdd_suspend: cam_sensor_front_avdd_suspend {
/* FRONT AVDD */
mux {
pins = "gpio64";
function = "gpio";
pins = "gpio64";
function = "gpio";
};
config {
pins = "gpio64";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
pins = "gpio64";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
@@ -283,8 +289,8 @@
};
};
cam_sensor_macro_iovdd_active: cam_sensor_macro_iovdd_active {
/* SENSOR MACRO IOVDD ENABLE */
cam_sensor_macro_iovdd_active: cam_sensor_macro_iovdd_active {
/* SENSOR MACRO AVDD ENABLE */
mux {
pins = "gpio7";
function = "gpio";
@@ -296,12 +302,14 @@
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_macro_iovdd_suspend: cam_sensor_macro_iovdd_suspend {
/* SENSOR MACRO IOVDD DISABLE */
/* SENSOR MACRO AVDD DISABLE */
mux {
pins = "gpio7";
function = "gpio";
};
config {
pins = "gpio7";
bias-pull-down; /* PULL DOWN */
@@ -313,14 +321,7 @@
&pm8350c_switch0 {
qcom,led-mask = <1>; /* Channels 1 & 4 */
};
&cam_csiphy2 {
compatible = "qcom,csiphy-v2.1.3-xiaomi-m11a", "qcom,csiphy";
};
&cam_csiphy4 {
compatible = "qcom,csiphy-v2.1.3-xiaomi-m11a", "qcom,csiphy";
qcom,symmetry-en;
};
&soc {
@@ -353,7 +354,7 @@
camera_front_avdd_ldo: gpio-regulator@2 {
compatible = "regulator-fixed";
reg = <0x2 0x00>;
reg = <0x02 0x00>;
regulator-name = "camera_front_avdd_ldo";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
@@ -362,12 +363,12 @@
gpio = <&tlmm 64 0>;
pinctrl-names = "front_avdd_active", "front_avdd_suspend";
pinctrl-0 = <&cam_sensor_front_avdd_active
&cam_sensor_front_avdd_suspend>;
};
&cam_sensor_front_avdd_suspend>;
};
CAMERA_ULTRA_AVDD: gpio-regulator@3 {
compatible = "regulator-fixed";
reg = <0x3 0x00>;
reg = <0x03 0x00>;
regulator-name = "CAMERA_ULTRA_AVDD";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
@@ -382,7 +383,7 @@
CAMERA_MACRO_AVDD: gpio-regulator@4 {
compatible = "regulator-fixed";
reg = <0x4 0x00>;
reg = <0x04 0x00>;
regulator-name = "CAMERA_MACRO_AVDD";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
@@ -397,18 +398,19 @@
camera_wide_avdd_ldo: gpio-regulator@5 {
compatible = "regulator-fixed";
reg = <0x5 0x00>;
reg = <0x05 0x00>;
regulator-name = "camera_wide_avdd_ldo";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 70 0>;
//vin-supply = <&S1C>;
};
camera_wide_dvdd_ldo: gpio-regulator@6 {
compatible = "regulator-fixed";
reg = <0x6 0x00>;
reg = <0x06 0x00>;
regulator-name = "camera_wide_dvdd_ldo";
regulator-min-microvolt = <1100000>;
regulator-max-microvolt = <1100000>;
@@ -420,18 +422,19 @@
camera_wide_avdd2_ldo: gpio-regulator@7 {
compatible = "regulator-fixed";
reg = <0x7 0x00>;
reg = <0x07 0x00>;
regulator-name = "camera_wide_avdd2_ldo";
regulator-min-microvolt = <1860000>;
regulator-max-microvolt = <1860000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 97 0>;
//vin-supply = <&S1C>;
};
CAMERA_MACRO_IOVDD: gpio-regulator@8 {
compatible = "regulator-fixed";
reg = <0x8 0x00>;
reg = <0x08 0x00>;
regulator-name = "CAMERA_MACRO_IOVDD";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
@@ -459,24 +462,20 @@
};
};
&cam_cci0 {
actuator_triple_wide: qcom,actuator0 {
&cam_cci0
{
/*ois_wide: qcom,ois0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <CCI_MASTER_1>;
cam_vdig-supply = <&camera_wide_dvdd_ldo>;
regulator-names = "cam_vdig";
};
eeprom_triple_wide: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
reg = <0x0>;
compatible = "qcom,ois";
//cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_wide_dvdd_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>;
cam_v_custom1-supply = <&camera_wide_avdd2_ldo>;
regulator-names = "cam_vdig", "cam_clk",
"cam_vana", "cam_v_custom1";
//cam_vaf-supply = <&L7J>;
regulator-names = "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1100000 0 2800000 1860000>;
rgltr-max-voltage = <1100000 0 2800000 1860000>;
@@ -490,7 +489,47 @@
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET0";
cci-master = <CCI_MASTER_1>;
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};*/
actuator_triple_wide: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vdig-supply = <&camera_wide_dvdd_ldo>;
regulator-names = "cam_vdig";
};
eeprom_triple_wide: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
//cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_wide_dvdd_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>;
cam_v_custom1-supply = <&camera_wide_avdd2_ldo>;
//cam_vaf-supply = <&L7J>;
regulator-names = "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1100000 0 2800000 1860000>;
rgltr-max-voltage = <1100000 0 2800000 1860000>;
rgltr-load-current = <680000 0 103000 50000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 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 = <1>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
@@ -501,6 +540,8 @@
eeprom_front: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
//cam_vio-supply = <&L5J>;
//cam_vdig-supply = <&camera_front_vdig_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_front_avdd_ldo>;
regulator-names = "cam_clk", "cam_vana";
@@ -511,16 +552,16 @@
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 127 0>;
<&tlmm 127 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
"CAM_RESET5";
cci-device = <1>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
@@ -533,13 +574,17 @@
eeprom_triple_ultra: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
//cam_vio-supply = <&L5J>;
//cam_vdig-supply = <&L2J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_ULTRA_AVDD>;
regulator-names = "cam_vana", "cam_clk";
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vana",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <2800000 0>;
rgltr-max-voltage = <2800000 0>;
rgltr-load-current = <35000 0>;
rgltr-min-voltage = <2800000 0>;
rgltr-max-voltage = <2800000 0>;
rgltr-load-current = <35000 0>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
@@ -569,15 +614,18 @@
eeprom-src = <&eeprom_triple_wide>;
actuator-src = <&actuator_triple_wide>;
led-flash-src = <&led_flash_wide>;
//ois-src = <&ois_wide>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
//cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_wide_dvdd_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>;
cam_v_custom1-supply = <&camera_wide_avdd2_ldo>;
regulator-names = "cam_vdig", "cam_clk",
"cam_vana", "cam_v_custom1";
//cam_vaf-supply = <&L7J>;
regulator-names = "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1100000 0 2800000 1860000>;
rgltr-max-voltage = <1100000 0 2800000 1860000>;
@@ -603,12 +651,14 @@
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
eeprom-src = <&eeprom_front>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
eeprom-src = <&eeprom_front>;
cam_vana-supply = <&camera_front_avdd_ldo>;
//cam_vio-supply = <&L5J>;
//cam_vdig-supply = <&camera_front_vdig_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_front_avdd_ldo>;
regulator-names = "cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <0 2800000>;
@@ -617,18 +667,18 @@
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 127 0>;
<&tlmm 127 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
"CAM_RESET5";
cci-device = <1>;
cci-master = <CCI_MASTER_0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
@@ -636,17 +686,21 @@
status = "ok";
};
//Ultra
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
eeprom-src = <&eeprom_triple_ultra>;
led-flash-src = <&led_flash_ultra>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
eeprom-src = <&eeprom_triple_ultra>;
led-flash-src = <&led_flash_ultra>;
cam_vana-supply = <&CAMERA_ULTRA_AVDD>;
/*cam_vio-supply = <&L5J>; WL2866D_AVDD1 1.8V
cam_vdig-supply = <&L2J>; WL2866D_DVDD2 1.2V*/
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_ULTRA_AVDD>;
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <0 2800000>;
@@ -655,34 +709,39 @@
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-device = <1>;
cci-master = <CCI_MASTER_0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
};
&cam_cci1 {
eeprom_triple_macro: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
//cam_vio-supply = <&CAMERA_MACRO_IOVDD>; //using pm8350c
cam_vio-supply = <&L1C>;
//cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_MACRO_AVDD>;
regulator-names = "cam_vio", "cam_clk";
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vio",
"cam_clk";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0>;
rgltr-max-voltage = <1800000 0>;
@@ -719,11 +778,14 @@
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
//cam_vio-supply = <&CAMERA_MACRO_IOVDD>;
cam_vio-supply = <&L1C>;
//cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_MACRO_AVDD>;
regulator-names = "cam_vio", "cam_clk",
"cam_vana";
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vio",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 0 2800000>;
rgltr-max-voltage = <1800000 0 2800000>;
@@ -749,4 +811,5 @@
clock-rates = <19200000>;
status = "ok";
};
};

View File

@@ -0,0 +1,17 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/clock/qcom,gcc-waipio.h>
#include <dt-bindings/clock/qcom,camcc-waipio.h>
#include <dt-bindings/interconnect/qcom,waipio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator-levels.h>
#include "thor-sm8450-camera-sensor.dtsi"
/ {
model = "Qualcomm Technologies, Inc. 8450 thor";
compatible = "qcom,waipio", "qcom,waipiop";
qcom,msm-id = <457 0x10000>, <482 0x10000>, <457 0x20000>, <482 0x20000>, <552 0x10000>;
qcom,board-id = <8 0>, <0x10008 0>, <0x02010008 0>, <0x03010008 0x03>, <0x04010008 0x04>;
xiaomi,miboard-id = <0x6 0>;
};

View File

@@ -0,0 +1,854 @@
#include <dt-bindings/clock/qcom,camcc-waipio.h>
&cci0_active {
config {
pins = "gpio110","gpio111";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
};
};
&cci0_suspend {
config {
pins = "gpio110","gpio111";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
&cci1_active {
config {
pins = "gpio112","gpio113";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
};
};
&cci1_suspend {
config {
pins = "gpio112","gpio113";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
&cci2_active {
config {
pins = "gpio114","gpio115";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
};
};
&cci2_suspend {
config {
pins = "gpio114","gpio115";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
&cci3_active {
config {
pins = "gpio208","gpio209";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
qcom,apps;
};
};
&cci3_suspend {
config {
pins = "gpio208","gpio209";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
qcom,remote;
};
};
&tlmm {
cam_wide_active_mclk: cam_wide_active_mclk {
mux {
pins = "gpio102";
function = "cam_mclk";
};
config {
pins = "gpio102";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_wide_suspend_mclk: cam_wide_suspend_mclk {
mux {
pins = "gpio102";
function = "cam_mclk";
};
config {
pins = "gpio102";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_active_wide: cam_sensor_active_wide {
mux {
pins = "gpio126", "gpio171", "gpio183";
function = "gpio";
};
config {
pins = "gpio126", "gpio171", "gpio183";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_wide: cam_sensor_suspend_wide {
mux {
pins = "gpio126", "gpio171", "gpio183";
function = "gpio";
};
config {
pins = "gpio126", "gpio171", "gpio183";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_active_mipisel0: cam_sensor_active_mipisel0 {
mux {
pins = "gpio180";
function = "gpio";
};
config {
pins = "gpio180";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_mipisel0: cam_sensor_suspend_mipisel0 {
mux {
pins = "gpio180";
function = "gpio";
};
config {
pins = "gpio180";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_ultra_active_mclk: cam_ultra_active_mclk {
mux {
pins = "gpio101";
function = "cam_mclk";
};
config {
pins = "gpio101";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_ultra_suspend_mclk: cam_ultra_suspend_mclk {
mux {
pins = "gpio101";
function = "cam_mclk";
};
config {
pins = "gpio101";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_active_ultra: cam_sensor_active_ultra {
mux {
pins = "gpio24", "gpio107";
function = "gpio";
};
config {
pins = "gpio24", "gpio107";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_ultra: cam_sensor_suspend_ultra {
mux {
pins = "gpio24", "gpio107";
function = "gpio";
};
config {
pins = "gpio24", "gpio107";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_front_active_mclk: cam_front_active_mclk {
mux {
pins = "gpio104";
function = "cam_mclk";
};
config {
pins = "gpio104";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_front_suspend_mclk: cam_front_suspend_mclk {
mux {
pins = "gpio104";
function = "cam_mclk";
};
config {
pins = "gpio104";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_active_front: cam_sensor_active_front {
mux {
pins = "gpio108";
function = "gpio";
};
config {
pins = "gpio108";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_front: cam_sensor_suspend_front {
mux {
pins = "gpio108";
function = "gpio";
};
config {
pins = "gpio108";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_tele_active_mclk: cam_tele_active_mclk {
mux {
pins = "gpio100";
function = "cam_mclk";
};
config {
pins = "gpio100";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_tele_suspend_mclk: cam_tele_suspend_mclk {
mux {
pins = "gpio100";
function = "cam_mclk";
};
config {
pins = "gpio100";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_active_tele: cam_sensor_active_tele {
mux {
pins = "gpio128", "gpio174";
function = "gpio";
};
config {
pins = "gpio128", "gpio174";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_tele: cam_sensor_suspend_tele {
mux {
pins = "gpio128", "gpio174";
function = "gpio";
};
config {
pins = "gpio128", "gpio174";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
};
&pm8350c_switch0 {
qcom,led-mask = <1>; /* Channels 1 */
qcom,symmetry-en;
};
&pm8350c_switch1 {
qcom,led-mask = <2>; /* Channels 2 */
qcom,symmetry-en;
};
&pm8350c_switch2 {
qcom,led-mask = <3>; /* All Channels */
qcom,symmetry-en;
};
// Enable stretch for tele sem1217.
&i2c_freq_1Mhz_cci1 {
hw-thigh = <16>;
hw-tlow = <22>;
hw-tsu-sto = <17>;
hw-tsu-sta = <18>;
hw-thd-dat = <16>;
hw-thd-sta = <15>;
hw-tbuf = <24>;
hw-scl-stretch-en = <1>;
hw-trdhld = <3>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
&pm8010j_l5 {
regulator-min-microvolt = <2808000>;
regulator-max-microvolt = <2808000>;
qcom,min-dropout-voltage = <192000>;
};
&soc {
led_flash_wide: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_ultra: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_tele: qcom,camera-flash@3 {
cell-index = <3>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
camera_wide_avdd_ldo: gpio-regulator@0 {
compatible = "regulator-fixed";
reg = <0x00 0x00>;
regulator-name = "camera_wide_avdd_ldo";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 171 0>;
};
camera_ultra_avdd_ldo: gpio-regulator@1 {
compatible = "regulator-fixed";
reg = <0x01 0x00>;
regulator-name = "camera_ultra_avdd_ldo";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 107 0>;
};
camera_tele_avdd_ldo: gpio-regulator@2 {
compatible = "regulator-fixed";
reg = <0x02 0x00>;
regulator-name = "camera_tele_avdd_ldo";
regulator-min-microvolt = <2904000>;
regulator-max-microvolt = <2904000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 174 0>;
};
camera_wide_ois_vaf_ldo: gpio-regulator@3 {
compatible = "regulator-fixed";
reg = <0x03 0x00>;
regulator-name = "camera_wide_ois_vaf_ldo";
regulator-min-microvolt = <3104000>;
regulator-max-microvolt = <3104000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 183 0>;
};
//GPIO1 -> 302
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
gpios-shared-pinctrl = <427 403 472 484 481 401 429 475>;
shared-pctrl-gpio-names = "cam_wide", "cam_wide", "cam_wide", "cam_wide", "cam_wide", "cam_tele", "cam_tele", "cam_tele";
pinctrl-names = "cam_wide_active", "cam_wide_suspend","cam_tele_active", "cam_tele_suspend";
pinctrl-0 = <&cam_sensor_active_wide
&cam_wide_active_mclk
&cam_sensor_active_mipisel0>;
pinctrl-1 = <&cam_sensor_suspend_wide
&cam_wide_suspend_mclk
&cam_sensor_suspend_mipisel0>;
pinctrl-2 = <&cam_sensor_active_tele
&cam_tele_active_mclk>;
pinctrl-3 = <&cam_sensor_suspend_tele
&cam_tele_suspend_mclk>;
status = "ok";
};
};
&cam_cci0
{
//WIDE SubDev
eeprom_wide: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>; //AVDD1
cam_v_custom1-supply = <&L4J>; //AVDD2
cam_vaf-supply = <&L6J>;
cam_v_custom2-supply = <&camera_wide_ois_vaf_ldo>; //OIS VAF
regulator-names = "cam_vio", "cam_vdig","cam_clk", "cam_vana",
"cam_v_custom1","cam_vaf", "cam_v_custom2";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
rgltr-max-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
rgltr-load-current = <20000 50000 0 50000 50000 50000 50000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 0>,
<&tlmm 180 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_MIPISEL0";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
ois_wide: qcom,ois0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,ois";
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>; //AVDD1
cam_v_custom1-supply = <&L4J>; //AVDD2
cam_vaf-supply = <&L6J>;
cam_v_custom2-supply = <&camera_wide_ois_vaf_ldo>; //OIS VAF
regulator-names = "cam_vio", "cam_vdig","cam_clk", "cam_vana",
"cam_v_custom1","cam_vaf", "cam_v_custom2";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
rgltr-max-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
rgltr-load-current = <20000 50000 0 50000 50000 103000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 0>,
<&tlmm 180 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_MIPISEL0";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
actuator_wide: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&L6J>;
cam_vio-supply = <&L4I>;
regulator-names = "cam_vaf", "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <3104000 1800000>;
rgltr-max-voltage = <3104000 1800000>;
rgltr-load-current = <103000 20000>;
};
//WIDE Sensor
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
eeprom-src = <&eeprom_wide>;
actuator-src = <&actuator_wide>;
led-flash-src = <&led_flash_wide>;
ois-src = <&ois_wide>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>; //AVDD1
cam_v_custom1-supply = <&L4J>; //AVDD2
cam_vaf-supply = <&L6J>;
cam_v_custom2-supply = <&camera_wide_ois_vaf_ldo>; //OIS VAF
regulator-names = "cam_vio", "cam_vdig","cam_clk", "cam_vana",
"cam_v_custom1","cam_vaf", "cam_v_custom2";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
rgltr-max-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
rgltr-load-current = <20000 50000 0 50000 50000 103000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 0>,
<&tlmm 180 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_MIPISEL0";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
//Ultra SubDev
eeprom_ultra: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L1I>;
cam_vaf-supply = <&L5I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_ultra_avdd_ldo>;
regulator-names = "cam_vio", "cam_vdig", "cam_vaf", "cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 2808000 0 2800000>;
rgltr-max-voltage = <1800000 1104000 2808000 0 2800000>;
rgltr-load-current = <20000 50000 103000 0 50000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_active_ultra
&cam_ultra_active_mclk>;
pinctrl-1 = <&cam_sensor_suspend_ultra
&cam_ultra_suspend_mclk>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
actuator_ultra: qcom,actuator2 {
cell-index = <2>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5I>;
cam_vio-supply = <&L4I>;
regulator-names = "cam_vaf", "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <2808000 1800000>;
rgltr-max-voltage = <2808000 1800000>;
rgltr-load-current = <103000 20000>;
};
//Ultra
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
eeprom-src = <&eeprom_ultra>;
actuator-src = <&actuator_ultra>;
led-flash-src = <&led_flash_ultra>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L1I>;
cam_vaf-supply = <&L5I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_ultra_avdd_ldo>;
regulator-names = "cam_vio", "cam_vdig", "cam_vaf", "cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 2808000 0 2800000>;
rgltr-max-voltage = <1800000 1104000 2808000 0 2800000>;
rgltr-load-current = <20000 50000 103000 0 50000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_active_ultra
&cam_ultra_active_mclk>;
pinctrl-1 = <&cam_sensor_suspend_ultra
&cam_ultra_suspend_mclk>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
};
&cam_cci1 {
//FRONT SubDev
eeprom_front: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vdig-supply = <&L2J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&L5J>;
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2808000>;
rgltr-max-voltage = <1800000 1104000 0 2808000>;
rgltr-load-current = <20000 10000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_active_front
&cam_front_active_mclk>;
pinctrl-1 = <&cam_sensor_suspend_front
&cam_front_suspend_mclk>;
gpios = <&tlmm 104 0>,
<&tlmm 108 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
eeprom-src = <&eeprom_front>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&L3J>;
cam_vdig-supply = <&L2J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&L5J>;
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana";
rgltr-cntrl-support;
aon-user;
rgltr-min-voltage = <1800000 1104000 0 2808000>;
rgltr-max-voltage = <1800000 1104000 0 2808000>;
rgltr-load-current = <20000 10000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_active_front
&cam_front_active_mclk>;
pinctrl-1 = <&cam_sensor_suspend_front
&cam_front_suspend_mclk>;
gpios = <&tlmm 104 0>,
<&tlmm 108 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
//TELE SubDev
eeprom_tele: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_tele_avdd_ldo>;
cam_vaf-supply = <&L6I>;
cam_v_custom1-supply = <&L7I>; //OIS AVDD
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana","cam_vaf","cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2904000 2808000 2808000>;
rgltr-max-voltage = <1800000 1104000 0 2904000 2808000 2808000>;
rgltr-load-current = <10000 50000 0 35000 103000 103000>;
gpio-no-mux = <0>;
gpios = <&tlmm 100 0>,
<&tlmm 128 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>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
ois_tele: qcom,ois3 {
cell-index = <3>;
reg = <0x0>;
compatible = "qcom,ois";
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_tele_avdd_ldo>;
cam_vaf-supply = <&L6I>;
cam_v_custom1-supply = <&L7I>; //OIS AVDD
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana","cam_vaf","cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2904000 2808000 2808000>;
rgltr-max-voltage = <1800000 1104000 0 2904000 2808000 2808000>;
rgltr-load-current = <10000 50000 0 35000 103000 103000>;
gpio-no-mux = <0>;
gpios = <&tlmm 100 0>,
<&tlmm 128 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>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
actuator_tele: qcom,actuator3 {
cell-index = <3>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L6I>;
cam_vio-supply = <&L4I>;
cam_v_custom1-supply = <&L7I>; //OIS AVDD
regulator-names = "cam_vaf", "cam_vio" ,"cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <2808000 1800000 2808000>;
rgltr-max-voltage = <2808000 1800000 2808000>;
rgltr-load-current = <103000 20000 103000>;
};
//TELE
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
eeprom-src = <&eeprom_tele>;
actuator-src = <&actuator_tele>;
led-flash-src = <&led_flash_tele>;
ois-src = <&ois_tele>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_tele_avdd_ldo>;
cam_vaf-supply = <&L6I>;
cam_v_custom1-supply = <&L7I>; //OIS AVDD
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana","cam_vaf","cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2904000 2808000 2808000>;
rgltr-max-voltage = <1800000 1104000 0 2904000 2808000 2808000>;
rgltr-load-current = <10000 50000 0 35000 103000 103000>;
gpio-no-mux = <0>;
gpios = <&tlmm 100 0>,
<&tlmm 128 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>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
};

View File

@@ -0,0 +1,17 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/clock/qcom,gcc-waipio.h>
#include <dt-bindings/clock/qcom,camcc-waipio.h>
#include <dt-bindings/interconnect/qcom,waipio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator-levels.h>
#include "thor-sm8475-camera-sensor.dtsi"
/ {
model = "Qualcomm Technologies, Inc. 8475 thor";
compatible = "qcom,cape", "qcom,capep";
qcom,msm-id = <530 0x10000>, <531 0x10000>, <540 0x10000>;
qcom,board-id = <8 0>, <0x10008 0>;
xiaomi,miboard-id = <0x6 0>;
};

View File

@@ -0,0 +1,860 @@
#include <dt-bindings/clock/qcom,camcc-waipio.h>
#include <dt-bindings/msm-camera.h>
&cci0_active {
config {
pins = "gpio110","gpio111";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
};
};
&cci0_suspend {
config {
pins = "gpio110","gpio111";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
&cci1_active {
config {
pins = "gpio112","gpio113";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
};
};
&cci1_suspend {
config {
pins = "gpio112","gpio113";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
&cci2_active {
config {
pins = "gpio114","gpio115";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
};
};
&cci2_suspend {
config {
pins = "gpio114","gpio115";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
&cci3_active {
config {
pins = "gpio208","gpio209";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
qcom,apps;
};
};
&cci3_suspend {
config {
pins = "gpio208","gpio209";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
qcom,remote;
};
};
&tlmm {
cam_wide_active_mclk: cam_wide_active_mclk {
mux {
pins = "gpio102";
function = "cam_mclk";
};
config {
pins = "gpio102";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_wide_suspend_mclk: cam_wide_suspend_mclk {
mux {
pins = "gpio102";
function = "cam_mclk";
};
config {
pins = "gpio102";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_active_wide: cam_sensor_active_wide {
mux {
pins = "gpio126", "gpio171", "gpio183";
function = "gpio";
};
config {
pins = "gpio126", "gpio171", "gpio183";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_wide: cam_sensor_suspend_wide {
mux {
pins = "gpio126", "gpio171", "gpio183";
function = "gpio";
};
config {
pins = "gpio126", "gpio171", "gpio183";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_active_mipisel0: cam_sensor_active_mipisel0 {
mux {
pins = "gpio180";
function = "gpio";
};
config {
pins = "gpio180";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_mipisel0: cam_sensor_suspend_mipisel0 {
mux {
pins = "gpio180";
function = "gpio";
};
config {
pins = "gpio180";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_ultra_active_mclk: cam_ultra_active_mclk {
mux {
pins = "gpio101";
function = "cam_mclk";
};
config {
pins = "gpio101";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_ultra_suspend_mclk: cam_ultra_suspend_mclk {
mux {
pins = "gpio101";
function = "cam_mclk";
};
config {
pins = "gpio101";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_active_ultra: cam_sensor_active_ultra {
mux {
pins = "gpio60", "gpio107";
function = "gpio";
};
config {
pins = "gpio60", "gpio107";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_ultra: cam_sensor_suspend_ultra {
mux {
pins = "gpio60", "gpio107";
function = "gpio";
};
config {
pins = "gpio60", "gpio107";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_front_active_mclk: cam_front_active_mclk {
mux {
pins = "gpio104";
function = "cam_mclk";
};
config {
pins = "gpio104";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_front_suspend_mclk: cam_front_suspend_mclk {
mux {
pins = "gpio104";
function = "cam_mclk";
};
config {
pins = "gpio104";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_active_front: cam_sensor_active_front {
mux {
pins = "gpio108";
function = "gpio";
};
config {
pins = "gpio108";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_front: cam_sensor_suspend_front {
mux {
pins = "gpio108";
function = "gpio";
};
config {
pins = "gpio108";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_tele_active_mclk: cam_tele_active_mclk {
mux {
pins = "gpio100";
function = "cam_mclk";
};
config {
pins = "gpio100";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_tele_suspend_mclk: cam_tele_suspend_mclk {
mux {
pins = "gpio100";
function = "cam_mclk";
};
config {
pins = "gpio100";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_active_tele: cam_sensor_active_tele {
mux {
pins = "gpio128", "gpio174";
function = "gpio";
};
config {
pins = "gpio128", "gpio174";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_tele: cam_sensor_suspend_tele {
mux {
pins = "gpio128", "gpio174";
function = "gpio";
};
config {
pins = "gpio128", "gpio174";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
};
&cam_csiphy2{
compatible = "qcom,csiphy-v2.1.3-xiaomi-l1", "qcom,csiphy";
};
&pm8350c_switch0 {
qcom,led-mask = <1>; /* Channels 1 */
qcom,symmetry-en;
};
&pm8350c_switch1 {
qcom,led-mask = <2>; /* Channels 2 */
qcom,symmetry-en;
};
&pm8350c_switch2 {
qcom,led-mask = <3>; /* All Channels */
qcom,symmetry-en;
};
// Enable stretch for tele sem1217.
&i2c_freq_1Mhz_cci1 {
hw-thigh = <16>;
hw-tlow = <22>;
hw-tsu-sto = <17>;
hw-tsu-sta = <18>;
hw-thd-dat = <16>;
hw-thd-sta = <15>;
hw-tbuf = <24>;
hw-scl-stretch-en = <1>;
hw-trdhld = <3>;
hw-tsp = <3>;
cci-clk-src = <37500000>;
status = "ok";
};
&pm8010j_l5 {
regulator-min-microvolt = <2808000>;
regulator-max-microvolt = <2808000>;
qcom,min-dropout-voltage = <192000>;
};
&soc {
led_flash_wide: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_ultra: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
led_flash_tele: qcom,camera-flash@3 {
cell-index = <3>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0 &pm8350c_flash1>;
torch-source = <&pm8350c_torch0 &pm8350c_torch1>;
switch-source = <&pm8350c_switch2>;
status = "ok";
};
camera_wide_avdd_ldo: gpio-regulator@0 {
compatible = "regulator-fixed";
reg = <0x00 0x00>;
regulator-name = "camera_wide_avdd_ldo";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 171 0>;
};
camera_ultra_avdd_ldo: gpio-regulator@1 {
compatible = "regulator-fixed";
reg = <0x01 0x00>;
regulator-name = "camera_ultra_avdd_ldo";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 107 0>;
};
camera_tele_avdd_ldo: gpio-regulator@2 {
compatible = "regulator-fixed";
reg = <0x02 0x00>;
regulator-name = "camera_tele_avdd_ldo";
regulator-min-microvolt = <2904000>;
regulator-max-microvolt = <2904000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 174 0>;
};
camera_wide_ois_vaf_ldo: gpio-regulator@3 {
compatible = "regulator-fixed";
reg = <0x03 0x00>;
regulator-name = "camera_wide_ois_vaf_ldo";
regulator-min-microvolt = <3104000>;
regulator-max-microvolt = <3104000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 183 0>;
};
//GPIO1 -> 302
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
gpios-shared-pinctrl = <427 403 472 484 481 401 429 475>;
shared-pctrl-gpio-names = "cam_wide", "cam_wide", "cam_wide", "cam_wide", "cam_wide", "cam_tele", "cam_tele", "cam_tele";
pinctrl-names = "cam_wide_active", "cam_wide_suspend","cam_tele_active", "cam_tele_suspend";
pinctrl-0 = <&cam_sensor_active_wide
&cam_wide_active_mclk
&cam_sensor_active_mipisel0>;
pinctrl-1 = <&cam_sensor_suspend_wide
&cam_wide_suspend_mclk
&cam_sensor_suspend_mipisel0>;
pinctrl-2 = <&cam_sensor_active_tele
&cam_tele_active_mclk>;
pinctrl-3 = <&cam_sensor_suspend_tele
&cam_tele_suspend_mclk>;
status = "ok";
};
};
&cam_cci0
{
//WIDE SubDev
eeprom_wide: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>; //AVDD1
cam_v_custom1-supply = <&L4J>; //AVDD2
cam_vaf-supply = <&L6J>;
cam_v_custom2-supply = <&camera_wide_ois_vaf_ldo>; //OIS VAF
regulator-names = "cam_vio", "cam_vdig","cam_clk", "cam_vana",
"cam_v_custom1","cam_vaf", "cam_v_custom2";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
rgltr-max-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
rgltr-load-current = <20000 50000 0 50000 50000 50000 50000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 0>,
<&tlmm 180 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_MIPISEL0";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
ois_wide: qcom,ois0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,ois";
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>; //AVDD1
cam_v_custom1-supply = <&L4J>; //AVDD2
cam_vaf-supply = <&L6J>;
cam_v_custom2-supply = <&camera_wide_ois_vaf_ldo>; //OIS VAF
regulator-names = "cam_vio", "cam_vdig","cam_clk", "cam_vana",
"cam_v_custom1","cam_vaf", "cam_v_custom2";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
rgltr-max-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
rgltr-load-current = <20000 50000 0 50000 50000 103000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 0>,
<&tlmm 180 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_MIPISEL0";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
actuator_wide: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&L6J>;
cam_vio-supply = <&L4I>;
regulator-names = "cam_vaf", "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <3104000 1800000>;
rgltr-max-voltage = <3104000 1800000>;
rgltr-load-current = <103000 20000>;
};
//WIDE Sensor
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
eeprom-src = <&eeprom_wide>;
actuator-src = <&actuator_wide>;
led-flash-src = <&led_flash_wide>;
ois-src = <&ois_wide>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>; //AVDD1
cam_v_custom1-supply = <&L4J>; //AVDD2
cam_vaf-supply = <&L6J>;
cam_v_custom2-supply = <&camera_wide_ois_vaf_ldo>; //OIS VAF
regulator-names = "cam_vio", "cam_vdig","cam_clk", "cam_vana",
"cam_v_custom1","cam_vaf", "cam_v_custom2";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
rgltr-max-voltage = <1800000 1152000 0 2800000 1800000 3104000 3104000>;
rgltr-load-current = <20000 50000 0 50000 50000 103000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 0>,
<&tlmm 180 0>;
gpio-reset = <1>;
gpio-custom1 = <2>;
gpio-req-tbl-num = <0 1 2>;
gpio-req-tbl-flags = <1 0 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET0",
"CAM_MIPISEL0";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
//Ultra SubDev
eeprom_ultra: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L1I>;
cam_vaf-supply = <&L5I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_ultra_avdd_ldo>;
regulator-names = "cam_vio", "cam_vdig", "cam_vaf", "cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 2808000 0 2800000>;
rgltr-max-voltage = <1800000 1104000 2808000 0 2800000>;
rgltr-load-current = <20000 50000 103000 0 50000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_active_ultra
&cam_ultra_active_mclk>;
pinctrl-1 = <&cam_sensor_suspend_ultra
&cam_ultra_suspend_mclk>;
gpios = <&tlmm 101 0>,
<&tlmm 60 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
actuator_ultra: qcom,actuator2 {
cell-index = <2>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L5I>;
cam_vio-supply = <&L4I>;
regulator-names = "cam_vaf", "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <2808000 1800000>;
rgltr-max-voltage = <2808000 1800000>;
rgltr-load-current = <103000 20000>;
};
//Ultra
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
eeprom-src = <&eeprom_ultra>;
actuator-src = <&actuator_ultra>;
led-flash-src = <&led_flash_ultra>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L1I>;
cam_vaf-supply = <&L5I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_ultra_avdd_ldo>;
regulator-names = "cam_vio", "cam_vdig", "cam_vaf", "cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 2808000 0 2800000>;
rgltr-max-voltage = <1800000 1104000 2808000 0 2800000>;
rgltr-load-current = <20000 50000 103000 0 50000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_active_ultra
&cam_ultra_active_mclk>;
pinctrl-1 = <&cam_sensor_suspend_ultra
&cam_ultra_suspend_mclk>;
gpios = <&tlmm 101 0>,
<&tlmm 60 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK2",
"CAM_RESET2";
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
};
&cam_cci1 {
//FRONT SubDev
eeprom_front: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L3J>;
cam_vdig-supply = <&L2J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&L5J>;
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2808000>;
rgltr-max-voltage = <1800000 1104000 0 2808000>;
rgltr-load-current = <20000 10000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_active_front
&cam_front_active_mclk>;
pinctrl-1 = <&cam_sensor_suspend_front
&cam_front_suspend_mclk>;
gpios = <&tlmm 104 0>,
<&tlmm 108 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <4>;
eeprom-src = <&eeprom_front>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&L3J>;
cam_vdig-supply = <&L2J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&L5J>;
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana";
rgltr-cntrl-support;
aon-user;
rgltr-min-voltage = <1800000 1104000 0 2808000>;
rgltr-max-voltage = <1800000 1104000 0 2808000>;
rgltr-load-current = <20000 10000 0 103000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_active_front
&cam_front_active_mclk>;
pinctrl-1 = <&cam_sensor_suspend_front
&cam_front_suspend_mclk>;
gpios = <&tlmm 104 0>,
<&tlmm 108 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
cci-master = <1>;
clocks = <&clock_camcc CAM_CC_MCLK4_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
//TELE SubDev
eeprom_tele: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_tele_avdd_ldo>;
cam_vaf-supply = <&L6I>;
cam_v_custom1-supply = <&L7I>; //OIS AVDD
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana","cam_vaf","cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1152000 0 2904000 2808000 2808000>;
rgltr-max-voltage = <1800000 1152000 0 2904000 2808000 2808000>;
rgltr-load-current = <10000 50000 0 35000 103000 103000>;
gpio-no-mux = <0>;
gpios = <&tlmm 100 0>,
<&tlmm 128 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>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
ois_tele: qcom,ois3 {
cell-index = <3>;
reg = <0x0>;
compatible = "qcom,ois";
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_tele_avdd_ldo>;
cam_vaf-supply = <&L6I>;
cam_v_custom1-supply = <&L7I>; //OIS AVDD
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana","cam_vaf","cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1152000 0 2904000 2808000 2808000>;
rgltr-max-voltage = <1800000 1152000 0 2904000 2808000 2808000>;
rgltr-load-current = <10000 50000 0 35000 103000 103000>;
gpio-no-mux = <0>;
gpios = <&tlmm 100 0>,
<&tlmm 128 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>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
actuator_tele: qcom,actuator3 {
cell-index = <3>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L6I>;
cam_vio-supply = <&L4I>;
cam_v_custom1-supply = <&L7I>; //OIS AVDD
regulator-names = "cam_vaf", "cam_vio" ,"cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <2808000 1800000 2808000>;
rgltr-max-voltage = <2808000 1800000 2808000>;
rgltr-load-current = <103000 20000 103000>;
};
//TELE
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
eeprom-src = <&eeprom_tele>;
actuator-src = <&actuator_tele>;
led-flash-src = <&led_flash_tele>;
ois-src = <&ois_tele>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L4I>;
cam_vdig-supply = <&L2I>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_tele_avdd_ldo>;
cam_vaf-supply = <&L6I>;
cam_v_custom1-supply = <&L7I>; //OIS AVDD
regulator-names = "cam_vio", "cam_vdig", "cam_clk", "cam_vana","cam_vaf","cam_v_custom1";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1152000 0 2904000 2808000 2808000>;
rgltr-max-voltage = <1800000 1152000 0 2904000 2808000 2808000>;
rgltr-load-current = <10000 50000 0 35000 103000 103000>;
gpio-no-mux = <0>;
gpios = <&tlmm 100 0>,
<&tlmm 128 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>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
};

View File

@@ -0,0 +1,17 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/clock/qcom,gcc-waipio.h>
#include <dt-bindings/clock/qcom,camcc-waipio.h>
#include <dt-bindings/interconnect/qcom,waipio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator-levels.h>
#include "unicorn-sm8450-camera-sensor.dtsi"
/ {
model = "Qualcomm Technologies, Inc. 8450 unicorn";
compatible = "qcom,waipio", "qcom,waipiop";
qcom,msm-id = <457 0x10000>, <482 0x10000>, <457 0x20000>, <482 0x20000>;
qcom,board-id = <0x10008 0>;
xiaomi,miboard-id = <0x8 0>;
};

View File

@@ -0,0 +1,736 @@
#include <dt-bindings/clock/qcom,camcc-waipio.h>
&tlmm {
cam_sensor_active_rst0: cam_sensor_active_rst0 {
/* RESET REAR */
mux {
pins = "gpio126";
function = "gpio";
};
config {
pins = "gpio126";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_rst0: cam_sensor_suspend_rst0 {
/* RESET REAR */
mux {
pins = "gpio126";
function = "gpio";
};
config {
pins = "gpio126";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_active_rst5: cam_sensor_active_rst5 {
/* RESET 5 */
mux {
pins = "gpio127";
function = "gpio";
};
config {
pins = "gpio127";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_rst5: cam_sensor_suspend_rst5 {
/* RESET 5 */
mux {
pins = "gpio127";
function = "gpio";
};
config {
pins = "gpio127";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_front_vdig_active: cam_sensor_front_vdig_active {
/* FRONT DVDD */
mux {
pins = "gpio44";
function = "gpio";
};
config {
pins = "gpio44";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_front_vdig_suspend: cam_sensor_front_vdig_suspend {
/* FRONT DVDD */
mux {
pins = "gpio44";
function = "gpio";
};
config {
pins = "gpio44";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_front_avdd_active: cam_sensor_front_avdd_active {
/* FRONT AVDD */
mux {
pins = "gpio68";
function = "gpio";
};
config {
pins = "gpio68";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_front_avdd_suspend: cam_sensor_front_avdd_suspend {
/* FRONT AVDD */
mux {
pins = "gpio68";
function = "gpio";
};
config {
pins = "gpio68";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_active_rst7: cam_sensor_active_rst7 {
/* RESET REARAUX */
mux {
pins = "gpio128";
function = "gpio";
};
config {
pins = "gpio128";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_rst7: cam_sensor_suspend_rst7 {
/* RESET REARAUX */
mux {
pins = "gpio128";
function = "gpio";
};
config {
pins = "gpio128";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_ultra_avdd_active: cam_sensor_ultra_avdd_active {
/* SENSOR MACRO AVDD ENABLE */
mux {
pins = "gpio6";
function = "gpio";
};
config {
pins = "gpio6";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_ultra_avdd_suspend: cam_sensor_ultra_avdd_suspend {
/* SENSOR MACRO AVDD DISABLE */
mux {
pins = "gpio6";
function = "gpio";
};
config {
pins = "gpio6";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_tele_avdd_active: cam_sensor_tele_avdd_active {
/* SENSOR MACRO AVDD ENABLE */
mux {
pins = "gpio71";
function = "gpio";
};
config {
pins = "gpio71";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_tele_avdd_suspend: cam_sensor_tele_avdd_suspend {
/* SENSOR MACRO AVDD DISABLE */
mux {
pins = "gpio71";
function = "gpio";
};
config {
pins = "gpio71";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_active_wide: cam_sensor_active_wide {
mux {
pins = "gpio70", "gpio2";
function = "gpio";
};
config {
pins = "gpio70", "gpio2";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_wide: cam_sensor_suspend_wide {
mux {
pins = "gpio70", "gpio2";
function = "gpio";
};
config {
pins = "gpio70", "gpio2";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
};
&pm8350c_switch0 {
qcom,led-mask = <1>; /* Channels 1 & 4 */
qcom,symmetry-en;
};
&soc {
led_flash_wide: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0>;
torch-source = <&pm8350c_torch0>;
switch-source = <&pm8350c_switch0>;
status = "ok";
};
led_flash_ultra: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0>;
torch-source = <&pm8350c_torch0>;
switch-source = <&pm8350c_switch0>;
status = "ok";
};
led_flash_tele: qcom,camera-flash@3 {
cell-index = <3>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0>;
torch-source = <&pm8350c_torch0>;
switch-source = <&pm8350c_switch0>;
status = "ok";
};
camera_front_vdig_ldo: gpio-regulator@1 {
compatible = "regulator-fixed";
reg = <0x01 0x00>;
regulator-name = "camera_front_vdig_ldo";
regulator-min-microvolt = <1104000>;
regulator-max-microvolt = <1104000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 44 0>;
pinctrl-names = "front_vdig_active", "front_vdig_suspend";
pinctrl-0 = <&cam_sensor_front_vdig_active
&cam_sensor_front_vdig_suspend>;
vin-supply = <&S12B>;
};
camera_front_avdd_ldo: gpio-regulator@2 {
compatible = "regulator-fixed";
reg = <0x02 0x00>;
regulator-name = "camera_front_avdd_ldo";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 68 0>;
pinctrl-names = "front_avdd_active", "front_avdd_suspend";
pinctrl-0 = <&cam_sensor_front_avdd_active
&cam_sensor_front_avdd_suspend>;
};
CAMERA_ULTRA_AVDD: gpio-regulator@3 {
compatible = "regulator-fixed";
reg = <0x03 0x00>;
regulator-name = "CAMERA_ULTRA_AVDD";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 6 0>;
pinctrl-names = "ultra_avdd_active", "ultra_avdd_suspend";
pinctrl-0 = <&cam_sensor_ultra_avdd_active
&cam_sensor_ultra_avdd_suspend>;
vin-supply = <&BOB>;
};
CAMERA_TELE_AVDD: gpio-regulator@4 {
compatible = "regulator-fixed";
reg = <0x04 0x00>;
regulator-name = "CAMERA_TELE_AVDD";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 71 0>;
pinctrl-names = "tele_avdd_active", "tele_avdd_suspend";
pinctrl-0 = <&cam_sensor_tele_avdd_active
&cam_sensor_tele_avdd_suspend>;
vin-supply = <&BOB>;
};
camera_wide_avdd_ldo: gpio-regulator@5 {
compatible = "regulator-fixed";
reg = <0x05 0x00>;
regulator-name = "camera_wide_avdd_ldo";
regulator-min-microvolt = <1860000>;
regulator-max-microvolt = <1860000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 70 0>;
//vin-supply = <&S1C>;
};
camera_wide_dvdd_ldo: gpio-regulator@6 {
compatible = "regulator-fixed";
reg = <0x06 0x00>;
regulator-name = "camera_wide_dvdd_ldo";
regulator-min-microvolt = <1250000>;
regulator-max-microvolt = <1250000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 2 0>;
vin-supply = <&S12B>;
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
gpios-shared-pinctrl = <427 371 303 403>;
shared-pctrl-gpio-names = "cam_wide", "cam_wide", "cam_wide", "cam_wide";
pinctrl-names = "cam_wide_active", "cam_wide_suspend";
pinctrl-0 = <&cam_sensor_active_rst0
&cam_sensor_active_wide
&cam_sensor_mclk2_active>;
pinctrl-1 = <&cam_sensor_suspend_rst0
&cam_sensor_suspend_wide
&cam_sensor_mclk2_suspend>;
status = "ok";
};
};
&cam_cci0
{
ois_wide: qcom,ois0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,ois";
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_wide_dvdd_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>;
cam_v_custom1-supply = <&L6J>;
cam_vaf-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1250000 0 1860000 3104000 3104000>;
rgltr-max-voltage = <1800000 1250000 0 1860000 3104000 3104000>;
rgltr-load-current = <155000 680000 0 50000 103000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 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>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
actuator_triple_wide: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&L7J>;
cam_vio-supply = <&L5J>;
regulator-names = "cam_vaf", "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <3104000 1800000>;
rgltr-max-voltage = <3104000 1800000>;
rgltr-load-current = <103000 155000>;
};
eeprom_triple_wide: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_wide_dvdd_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>;
cam_v_custom1-supply = <&L6J>;
cam_vaf-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1250000 0 1860000 3104000 3104000>;
rgltr-max-voltage = <1800000 1250000 0 1860000 3104000 3104000>;
rgltr-load-current = <155000 680000 0 50000 103000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 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>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
eeprom_front: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_front_vdig_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_front_avdd_ldo>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2800000>;
rgltr-max-voltage = <1800000 1104000 0 2800000>;
rgltr-load-current = <5000 680000 0 35000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 127 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-device = <1>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
eeprom_triple_ultra: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&L2J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_ULTRA_AVDD>;
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 1056000 0 2800000>;
rgltr-load-current = <5000 680000 0 35000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
//cci-device = <0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
eeprom-src = <&eeprom_triple_wide>;
actuator-src = <&actuator_triple_wide>;
led-flash-src = <&led_flash_wide>;
ois-src = <&ois_wide>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_wide_dvdd_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>;
cam_v_custom1-supply = <&L6J>;
cam_vaf-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1250000 0 1860000 3104000 3104000>;
rgltr-max-voltage = <1800000 1250000 0 1860000 3104000 3104000>;
rgltr-load-current = <155000 680000 0 50000 103000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 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>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
eeprom-src = <&eeprom_front>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_front_vdig_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_front_avdd_ldo>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2800000>;
rgltr-max-voltage = <1800000 1104000 0 2800000>;
rgltr-load-current = <5000 680000 0 35000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 127 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-device = <1>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
//Ultra
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
eeprom-src = <&eeprom_triple_ultra>;
led-flash-src = <&led_flash_ultra>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&L2J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_ULTRA_AVDD>;
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 1056000 0 2800000>;
rgltr-load-current = <5000 680000 0 35000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
//cci-device = <0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
};
&cam_cci1 {
actuator_triple_tele: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L4J>;
cam_vio-supply = <&L5J>;
regulator-names = "cam_vaf", "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <2808000 1800000>;
rgltr-max-voltage = <2808000 1800000>;
rgltr-load-current = <100000 5000>;
};
eeprom_triple_tele: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_TELE_AVDD>;
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 1056000 0 2800000>;
rgltr-load-current = <5000 680000 0 35000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst7>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst7>;
gpios = <&tlmm 100 0>,
<&tlmm 128 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET7";
//cci-device = <0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
//tele
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_tele>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_TELE_AVDD>;
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 1056000 0 2800000>;
rgltr-load-current = <5000 680000 0 35000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst7>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst7>;
gpios = <&tlmm 100 0>,
<&tlmm 128 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET7";
//cci-device = <0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
};

View File

@@ -0,0 +1,17 @@
/dts-v1/;
/plugin/;
#include <dt-bindings/clock/qcom,gcc-waipio.h>
#include <dt-bindings/clock/qcom,camcc-waipio.h>
#include <dt-bindings/interconnect/qcom,waipio.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator-levels.h>
#include "unicorn-sm8475-camera-sensor.dtsi"
/ {
model = "Qualcomm Technologies, Inc. 8475 unicorn";
compatible = "qcom,cape", "qcom,capep";
qcom,msm-id = <530 0x10000>, <531 0x10000>, <540 0x10000>;
qcom,board-id = <0x10008 0>;
xiaomi,miboard-id = <0x8 0>;
};

View File

@@ -0,0 +1,925 @@
#include <dt-bindings/clock/qcom,camcc-waipio.h>
#include <dt-bindings/msm-camera.h>
&cci0_active {
config {
pins = "gpio110","gpio111";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
};
};
&cci0_suspend {
config {
pins = "gpio110","gpio111";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
&cci1_active {
config {
pins = "gpio112","gpio113";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
};
};
&cci1_suspend {
config {
pins = "gpio112","gpio113";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
&cci2_active {
config {
pins = "gpio114","gpio115";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
};
};
&cci2_suspend {
config {
pins = "gpio114","gpio115";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
&cci3_active {
config {
pins = "gpio208","gpio209";
bias-pull-up; /* PULL UP*/
drive-strength = <4>; /* 4 MA */
qcom,apps;
};
};
&cci3_suspend {
config {
pins = "gpio208","gpio209";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
qcom,remote;
};
};
&tlmm {
cam_sensor_active_rst0: cam_sensor_active_rst0 {
/* RESET REAR */
mux {
pins = "gpio126";
function = "gpio";
};
config {
pins = "gpio126";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_rst0: cam_sensor_suspend_rst0 {
/* RESET REAR */
mux {
pins = "gpio126";
function = "gpio";
};
config {
pins = "gpio126";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_active_rst5: cam_sensor_active_rst5 {
/* RESET 5 */
mux {
pins = "gpio127";
function = "gpio";
};
config {
pins = "gpio127";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_rst5: cam_sensor_suspend_rst5 {
/* RESET 5 */
mux {
pins = "gpio127";
function = "gpio";
};
config {
pins = "gpio127";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_front_vdig_active: cam_sensor_front_vdig_active {
/* FRONT DVDD */
mux {
pins = "gpio44";
function = "gpio";
};
config {
pins = "gpio44";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_front_vdig_suspend: cam_sensor_front_vdig_suspend {
/* FRONT DVDD */
mux {
pins = "gpio44";
function = "gpio";
};
config {
pins = "gpio44";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_front_avdd_active: cam_sensor_front_avdd_active {
/* FRONT AVDD */
mux {
pins = "gpio64";
function = "gpio";
};
config {
pins = "gpio64";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_front_avdd_suspend: cam_sensor_front_avdd_suspend {
/* FRONT AVDD */
mux {
pins = "gpio64";
function = "gpio";
};
config {
pins = "gpio64";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_active_rst7: cam_sensor_active_rst7 {
/* RESET REARAUX */
mux {
pins = "gpio128";
function = "gpio";
};
config {
pins = "gpio128";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_rst7: cam_sensor_suspend_rst7 {
/* RESET REARAUX */
mux {
pins = "gpio128";
function = "gpio";
};
config {
pins = "gpio128";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_ultra_avdd_active: cam_sensor_ultra_avdd_active {
/* SENSOR MACRO AVDD ENABLE */
mux {
pins = "gpio6";
function = "gpio";
};
config {
pins = "gpio6";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_ultra_avdd_suspend: cam_sensor_ultra_avdd_suspend {
/* SENSOR MACRO AVDD DISABLE */
mux {
pins = "gpio6";
function = "gpio";
};
config {
pins = "gpio6";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_tele_avdd_active: cam_sensor_tele_avdd_active {
/* SENSOR MACRO AVDD ENABLE */
mux {
pins = "gpio71";
function = "gpio";
};
config {
pins = "gpio71";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_tele_avdd_suspend: cam_sensor_tele_avdd_suspend {
/* SENSOR MACRO AVDD DISABLE */
mux {
pins = "gpio71";
function = "gpio";
};
config {
pins = "gpio71";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
cam_sensor_active_wide: cam_sensor_active_wide {
mux {
pins = "gpio70", "gpio2";
function = "gpio";
};
config {
pins = "gpio70", "gpio2";
bias-disable; /* No PULL */
drive-strength = <2>; /* 2 MA */
};
};
cam_sensor_suspend_wide: cam_sensor_suspend_wide {
mux {
pins = "gpio70", "gpio2";
function = "gpio";
};
config {
pins = "gpio70", "gpio2";
bias-pull-down; /* PULL DOWN */
drive-strength = <2>; /* 2 MA */
output-low;
};
};
//tele
cam_sensor_mclk0_active: cam_sensor_mclk0_active {
/* MCLK0 */
mux {
pins = "gpio100";
function = "cam_mclk";
};
config {
pins = "gpio100";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_mclk0_suspend: cam_sensor_mclk0_suspend {
/* MCLK0 */
mux {
pins = "gpio100";
function = "cam_mclk";
};
config {
pins = "gpio100";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
//ultra
cam_sensor_mclk1_active: cam_sensor_mclk1_active {
/* MCLK1 */
mux {
pins = "gpio101";
function = "cam_mclk";
};
config {
pins = "gpio101";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_mclk1_suspend: cam_sensor_mclk1_suspend {
/* MCLK1 */
mux {
pins = "gpio101";
function = "cam_mclk";
};
config {
pins = "gpio101";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
//wide
cam_sensor_mclk2_active: cam_sensor_mclk2_active {
/* MCLK2 */
mux {
pins = "gpio102";
function = "cam_mclk";
};
config {
pins = "gpio102";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_mclk2_suspend: cam_sensor_mclk2_suspend {
/* MCLK2 */
mux {
pins = "gpio102";
function = "cam_mclk";
};
config {
pins = "gpio102";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
//front
cam_sensor_mclk5_active: cam_sensor_mclk5_active {
/* MCLK5 */
mux {
pins = "gpio105";
function = "cam_mclk";
};
config {
pins = "gpio105";
bias-disable; /* No PULL */
drive-strength = <4>; /* 4 MA */
};
};
cam_sensor_mclk5_suspend: cam_sensor_mclk5_suspend {
/* MCLK5 */
mux {
pins = "gpio105";
function = "cam_mclk";
};
config {
pins = "gpio105";
bias-pull-down; /* PULL DOWN */
drive-strength = <4>; /* 4 MA */
};
};
};
&pm8350c_switch0 {
qcom,led-mask = <1>; /* Channels 1 & 4 */
qcom,symmetry-en;
};
&cam_csiphy2{
compatible = "qcom,csiphy-v2.1.3-xiaomi-l2s", "qcom,csiphy";
};
&soc {
led_flash_wide: qcom,camera-flash@1 {
cell-index = <1>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0>;
torch-source = <&pm8350c_torch0>;
switch-source = <&pm8350c_switch0>;
status = "ok";
};
led_flash_ultra: qcom,camera-flash@2 {
cell-index = <2>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0>;
torch-source = <&pm8350c_torch0>;
switch-source = <&pm8350c_switch0>;
status = "ok";
};
led_flash_tele: qcom,camera-flash@3 {
cell-index = <3>;
compatible = "qcom,camera-flash";
flash-source = <&pm8350c_flash0>;
torch-source = <&pm8350c_torch0>;
switch-source = <&pm8350c_switch0>;
status = "ok";
};
camera_front_vdig_ldo: gpio-regulator@1 {
compatible = "regulator-fixed";
reg = <0x01 0x00>;
regulator-name = "camera_front_vdig_ldo";
regulator-min-microvolt = <1104000>;
regulator-max-microvolt = <1104000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 44 0>;
pinctrl-names = "front_vdig_active", "front_vdig_suspend";
pinctrl-0 = <&cam_sensor_front_vdig_active
&cam_sensor_front_vdig_suspend>;
vin-supply = <&S12B>;
};
camera_front_avdd_ldo: gpio-regulator@2 {
compatible = "regulator-fixed";
reg = <0x02 0x00>;
regulator-name = "camera_front_avdd_ldo";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 64 0>;
pinctrl-names = "front_avdd_active", "front_avdd_suspend";
pinctrl-0 = <&cam_sensor_front_avdd_active
&cam_sensor_front_avdd_suspend>;
};
CAMERA_ULTRA_AVDD: gpio-regulator@3 {
compatible = "regulator-fixed";
reg = <0x03 0x00>;
regulator-name = "CAMERA_ULTRA_AVDD";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 6 0>;
pinctrl-names = "ultra_avdd_active", "ultra_avdd_suspend";
pinctrl-0 = <&cam_sensor_ultra_avdd_active
&cam_sensor_ultra_avdd_suspend>;
vin-supply = <&BOB>;
};
CAMERA_TELE_AVDD: gpio-regulator@4 {
compatible = "regulator-fixed";
reg = <0x04 0x00>;
regulator-name = "CAMERA_TELE_AVDD";
regulator-min-microvolt = <2800000>;
regulator-max-microvolt = <2800000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 71 0>;
pinctrl-names = "tele_avdd_active", "tele_avdd_suspend";
pinctrl-0 = <&cam_sensor_tele_avdd_active
&cam_sensor_tele_avdd_suspend>;
vin-supply = <&BOB>;
};
camera_wide_avdd_ldo: gpio-regulator@5 {
compatible = "regulator-fixed";
reg = <0x05 0x00>;
regulator-name = "camera_wide_avdd_ldo";
regulator-min-microvolt = <1860000>;
regulator-max-microvolt = <1860000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 70 0>;
//vin-supply = <&S1C>;
};
camera_wide_dvdd_ldo: gpio-regulator@6 {
compatible = "regulator-fixed";
reg = <0x06 0x00>;
regulator-name = "camera_wide_dvdd_ldo";
regulator-min-microvolt = <1250000>;
regulator-max-microvolt = <1250000>;
regulator-enable-ramp-delay = <100>;
enable-active-high;
gpio = <&tlmm 2 0>;
vin-supply = <&S12B>;
};
qcom,cam-res-mgr {
compatible = "qcom,cam-res-mgr";
gpios-shared-pinctrl = <427 371 303 403>;
shared-pctrl-gpio-names = "cam_wide", "cam_wide", "cam_wide", "cam_wide";
pinctrl-names = "cam_wide_active", "cam_wide_suspend";
pinctrl-0 = <&cam_sensor_active_rst0
&cam_sensor_active_wide
&cam_sensor_mclk2_active>;
pinctrl-1 = <&cam_sensor_suspend_rst0
&cam_sensor_suspend_wide
&cam_sensor_mclk2_suspend>;
status = "ok";
};
};
&cam_cci0
{
ois_wide: qcom,ois0 {
cell-index = <0>;
reg = <0x0>;
compatible = "qcom,ois";
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_wide_dvdd_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>;
cam_v_custom1-supply = <&L6J>;
cam_vaf-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1250000 0 1860000 3104000 3104000>;
rgltr-max-voltage = <1800000 1250000 0 1860000 3104000 3104000>;
rgltr-load-current = <155000 680000 0 50000 103000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 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>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
actuator_triple_wide: qcom,actuator0 {
cell-index = <0>;
compatible = "qcom,actuator";
cci-master = <1>;
cam_vaf-supply = <&L7J>;
cam_vio-supply = <&L5J>;
regulator-names = "cam_vaf", "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <3104000 1800000>;
rgltr-max-voltage = <3104000 1800000>;
rgltr-load-current = <103000 155000>;
};
eeprom_triple_wide: qcom,eeprom0 {
cell-index = <0>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_wide_dvdd_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>;
cam_v_custom1-supply = <&L6J>;
cam_vaf-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1250000 0 1860000 3104000 3104000>;
rgltr-max-voltage = <1800000 1250000 0 1860000 3104000 3104000>;
rgltr-load-current = <155000 680000 0 50000 103000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 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>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
eeprom_front: qcom,eeprom1 {
cell-index = <1>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_front_vdig_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_front_avdd_ldo>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2800000>;
rgltr-max-voltage = <1800000 1104000 0 2800000>;
rgltr-load-current = <5000 680000 0 35000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 127 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-device = <1>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
eeprom_triple_ultra: qcom,eeprom2 {
cell-index = <2>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&L2J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_ULTRA_AVDD>;
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 1056000 0 2800000>;
rgltr-load-current = <5000 680000 0 35000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
//cci-device = <0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
qcom,cam-sensor0 {
cell-index = <0>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <2>;
eeprom-src = <&eeprom_triple_wide>;
actuator-src = <&actuator_triple_wide>;
led-flash-src = <&led_flash_wide>;
ois-src = <&ois_wide>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_wide_dvdd_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_wide_avdd_ldo>;
cam_v_custom1-supply = <&L6J>;
cam_vaf-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana", "cam_v_custom1", "cam_vaf";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1250000 0 1860000 3104000 3104000>;
rgltr-max-voltage = <1800000 1250000 0 1860000 3104000 3104000>;
rgltr-load-current = <155000 680000 0 50000 103000 103000>;
use-shared-clk;
gpio-no-mux = <0>;
gpios = <&tlmm 102 0>,
<&tlmm 126 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>;
clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
qcom,cam-sensor1 {
cell-index = <1>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <3>;
eeprom-src = <&eeprom_front>;
sensor-position-roll = <270>;
sensor-position-pitch = <0>;
sensor-position-yaw = <0>;
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&camera_front_vdig_ldo>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&camera_front_avdd_ldo>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1104000 0 2800000>;
rgltr-max-voltage = <1800000 1104000 0 2800000>;
rgltr-load-current = <5000 680000 0 35000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk5_active
&cam_sensor_active_rst5>;
pinctrl-1 = <&cam_sensor_mclk5_suspend
&cam_sensor_suspend_rst5>;
gpios = <&tlmm 105 0>,
<&tlmm 127 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK5",
"CAM_RESET5";
cci-device = <1>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK5_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
//Ultra
qcom,cam-sensor2 {
cell-index = <2>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <0>;
eeprom-src = <&eeprom_triple_ultra>;
led-flash-src = <&led_flash_ultra>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&L2J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_ULTRA_AVDD>;
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 1056000 0 2800000>;
rgltr-load-current = <5000 680000 0 35000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk1_active
&cam_sensor_active_rst1>;
pinctrl-1 = <&cam_sensor_mclk1_suspend
&cam_sensor_suspend_rst1>;
gpios = <&tlmm 101 0>,
<&tlmm 24 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK1",
"CAM_RESET1";
//cci-device = <0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK1_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
};
&cam_cci1 {
actuator_triple_tele: qcom,actuator1 {
cell-index = <1>;
compatible = "qcom,actuator";
cci-master = <0>;
cam_vaf-supply = <&L4J>;
cam_vio-supply = <&L5J>;
regulator-names = "cam_vaf", "cam_vio";
rgltr-cntrl-support;
rgltr-min-voltage = <2808000 1800000>;
rgltr-max-voltage = <2808000 1800000>;
rgltr-load-current = <100000 5000>;
};
eeprom_triple_tele: qcom,eeprom3 {
cell-index = <3>;
compatible = "qcom,eeprom";
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_TELE_AVDD>;
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 1056000 0 2800000>;
rgltr-load-current = <5000 680000 0 35000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst7>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst7>;
gpios = <&tlmm 100 0>,
<&tlmm 128 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET7";
//cci-device = <0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
//tele
qcom,cam-sensor3 {
cell-index = <3>;
compatible = "qcom,cam-sensor";
csiphy-sd-index = <1>;
eeprom-src = <&eeprom_triple_tele>;
actuator-src = <&actuator_triple_tele>;
led-flash-src = <&led_flash_tele>;
sensor-position-roll = <90>;
sensor-position-pitch = <0>;
sensor-position-yaw = <180>;
cam_vio-supply = <&L5J>;
cam_vdig-supply = <&L1J>;
cam_clk-supply = <&cam_cc_titan_top_gdsc>;
cam_vana-supply = <&CAMERA_TELE_AVDD>;
//cam_v_custom1-supply = <&L7J>;
regulator-names = "cam_vio", "cam_vdig",
"cam_clk", "cam_vana";
rgltr-cntrl-support;
rgltr-min-voltage = <1800000 1056000 0 2800000>;
rgltr-max-voltage = <1800000 1056000 0 2800000>;
rgltr-load-current = <5000 680000 0 35000>;
gpio-no-mux = <0>;
pinctrl-names = "cam_default", "cam_suspend";
pinctrl-0 = <&cam_sensor_mclk0_active
&cam_sensor_active_rst7>;
pinctrl-1 = <&cam_sensor_mclk0_suspend
&cam_sensor_suspend_rst7>;
gpios = <&tlmm 100 0>,
<&tlmm 128 0>;
gpio-reset = <1>;
gpio-req-tbl-num = <0 1>;
gpio-req-tbl-flags = <1 0>;
gpio-req-tbl-label = "CAMIF_MCLK0",
"CAM_RESET7";
//cci-device = <0>;
cci-master = <0>;
clocks = <&clock_camcc CAM_CC_MCLK0_CLK>;
clock-names = "cam_clk";
clock-cntl-level = "nominal";
clock-rates = <19200000>;
status = "ok";
};
};