Loading arch/arm64/boot/dts/qcom/sdm845-camera-sensor-qvr.dtsi +209 −2 Original line number Diff line number Diff line /* * Copyright (c) 2017, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -71,6 +71,30 @@ pinctrl-0 = <&camera_dvdd_en_default>; vin-supply = <&pm8998_s3>; }; camera_eyetracking_force: gpio-regulator@3 { compatible = "regulator-fixed"; reg = <0x03 0x00>; regulator-name = "camera_eyetracking_force"; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1050000>; regulator-enable-ramp-delay = <100>; enable-active-high; gpio = <&tlmm 77 0>; vin-supply = <&pm8998_s3>; }; camera_eyetracking_force_front: gpio-regulator@4 { compatible = "regulator-fixed"; reg = <0x04 0x00>; regulator-name = "camera_eyetracking_force_front"; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1050000>; regulator-enable-ramp-delay = <100>; enable-active-high; gpio = <&tlmm 77 0>; vin-supply = <&pm8998_lvs1>; }; }; &cam_cci { Loading Loading @@ -343,7 +367,7 @@ sensor-position-yaw = <0>; eeprom-src = <&eeprom_front>; cam_vdig-supply = <&camera_ldo>; cam_vio-supply = <&pm8998_lvs1>; cam_vio-supply = <&camera_eyetracking_force_front>; cam_vana-supply = <&pmi8998_bob>; cam_clk-supply = <&titan_top_gdsc>; regulator-names = "cam_vdig", "cam_vio", "cam_vana", Loading Loading @@ -376,4 +400,187 @@ clock-cntl-level = "turbo"; clock-rates = <24000000>; }; qcom,camera@3 { cell-index = <3>; compatible = "qcom,cam-sensor"; reg = <0x3>; csiphy-sd-index = <2>; sensor-position-roll = <270>; sensor-position-pitch = <0>; sensor-position-yaw = <0>; cam_vio-supply = <&pm8998_lvs1>; cam_vana-supply = <&pmi8998_bob>; cam_vdig-supply = <&pm8998_s3>; cam_clk-supply = <&titan_top_gdsc>; regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; rgltr-cntrl-support; rgltr-min-voltage = <0 3312000 1050000 0>; rgltr-max-voltage = <0 3600000 1050000 0>; rgltr-load-current = <0 80000 105000 0>; gpio-no-mux = <0>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_sensor_mclk2_active &max_rst_active>; pinctrl-1 = <&cam_sensor_mclk2_suspend &max_rst_suspend>; gpios = <&tlmm 15 0>, <&tlmm 31 0>, <&tlmm 77 0>, <&tlmm 78 0>, <&tlmm 32 0>; gpio-reset = <1>; gpio-vana = <2>; gpio-custom1 = <3>; gpio-custom2 = <4>; gpio-req-tbl-num = <0 1 2 3 4>; gpio-req-tbl-flags = <1 0 0 0 0>; gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET2", "CAM_VANA2", "CAM_CUSTOM1", "CAM_CUSTOM2"; sensor-mode = <0>; cci-master = <1>; status = "ok"; clocks = <&clock_camcc CAM_CC_MCLK2_CLK>; clock-names = "cam_clk"; clock-cntl-level = "turbo"; clock-rates = <24000000>; }; qcom,cam-sensor@5 { cell-index = <5>; compatible = "qcom,cam-sensor"; reg = <0x05>; csiphy-sd-index = <1>; sensor-position-roll = <270>; sensor-position-pitch = <0>; sensor-position-yaw = <0>; cam_vio-supply = <&pm8998_lvs1>; cam_vana-supply = <&pmi8998_bob>; cam_vdig-supply = <&camera_eyetracking_force>; cam_clk-supply = <&titan_top_gdsc>; regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; rgltr-cntrl-support; rgltr-min-voltage = <0 3312000 1050000 0>; rgltr-max-voltage = <0 3600000 1050000 0>; rgltr-load-current = <0 80000 105000 0>; gpio-no-mux = <0>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_fisheye_active>; pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_fisheye_suspend>; gpios = <&tlmm 14 0>, <&tlmm 76 0>, <&tlmm 75 0>; gpio-reset = <1>; gpio-vana = <2>; gpio-req-tbl-num = <0 1 2>; gpio-req-tbl-flags = <1 0 0>; gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET1", "CAM_VANA1"; sensor-mode = <0>; cci-master = <1>; status = "ok"; clocks = <&clock_camcc CAM_CC_MCLK1_CLK>; clock-names = "cam_clk"; clock-cntl-level = "turbo"; clock-rates = <24000000>; }; qcom,cam-sensor@4 { cell-index = <4>; compatible = "qcom,cam-sensor"; reg = <0x4>; csiphy-sd-index = <1>; sensor-position-roll = <270>; /* checked, MTP845 */ sensor-position-pitch = <0>; /* checked, MTP845 */ sensor-position-yaw = <180>; /* checked, MTP845 */ cam_vio-supply = <&pm8998_lvs1>; /* checked, MTP845 */ cam_vana-supply = <&pmi8998_bob>; cam_vdig-supply = <&camera_eyetracking_force>; cam_clk-supply = <&titan_top_gdsc>; regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; rgltr-cntrl-support; rgltr-min-voltage = <0 3312000 1050000 0>; rgltr-max-voltage = <0 3600000 1050000 0>; rgltr-load-current = <0 80000 105000 0>; gpio-no-mux = <0>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_depth_active>; pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_depth_suspend>; gpios = <&tlmm 14 0>, //MCLK1 <&tlmm 28 0>, //RESET <&tlmm 23 0>, //vana <&tlmm 24 0>; gpio-reset = <1>; //RESET gpio-vana = <2>; gpio-vdig = <3>; gpio-req-tbl-num = <0 1 2 3> ; gpio-req-tbl-flags = <1 0 0 0>; gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET1", "CAM_VANA1", "CAM_VDIG1"; sensor-mode = <0>; // 0 -> back camera 2D cci-master = <1>; /* checked, MTP845 we are on I2C 0 */ status = "ok"; clocks = <&clock_camcc CAM_CC_MCLK1_CLK>; clock-names = "cam_clk"; clock-cntl-level = "turbo"; clock-rates = <24000000>; }; qcom,camera@6 { cell-index = <6>; compatible = "qcom,cam-sensor"; reg = <0x6>; csiphy-sd-index = <3>; sensor-position-roll = <270>; sensor-position-pitch = <0>; sensor-position-yaw = <0>; cam_vio-supply = <&pm8998_lvs1>; cam_vana-supply = <&pmi8998_bob>; cam_vdig-supply = <&pm8998_s3>; cam_clk-supply = <&titan_top_gdsc>; regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; rgltr-cntrl-support; rgltr-min-voltage = <0 3312000 1050000 0>; rgltr-max-voltage = <0 3600000 1050000 0>; rgltr-load-current = <0 80000 105000 0>; gpio-no-mux = <0>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_sensor_mclk3_active &max_6dof_active>; pinctrl-1 = <&cam_sensor_mclk3_suspend &max_6dof_suspend>; gpios = <&tlmm 16 0>, <&tlmm 30 0>, <&tlmm 95 0>, <&tlmm 94 0>; gpio-reset = <1>; gpio-vana = <2>; gpio-vdig = <3>; gpio-req-tbl-num = <0 1 2 3 >; gpio-req-tbl-flags = <1 0 0 0>; gpio-req-tbl-label = "CAMIF_MCLK3", "CAM_RESET3", "CAM_VANA3", "CAM_VDIG3" ; sensor-mode = <0>; cci-master = <0>; status = "ok"; clocks = <&clock_camcc CAM_CC_MCLK3_CLK>; clock-names = "cam_clk"; clock-cntl-level = "turbo"; clock-rates = <24000000>; }; }; arch/arm64/boot/dts/qcom/sdm845-pinctrl.dtsi +114 −1 Original line number Diff line number Diff line Loading @@ -2993,6 +2993,119 @@ }; }; cam_sensor_fisheye_active: cam_sensor_fisheye_active { /* RESET, AVDD LO */ mux { pins = "gpio76","gpio75"; function = "gpio"; }; config { pins = "gpio76","gpio75"; bias-disable; /* No PULL */ drive-strength = <2>; /* 2 MA */ }; }; cam_sensor_fisheye_suspend: cam_sensor_fisheye_suspend { /* RESET, AVDD LO*/ mux { pins = "gpio76","gpio75"; function = "gpio"; }; config { pins = "gpio76","gpio75"; bias-pull-down; /* PULL DOWN */ drive-strength = <2>; /* 2 MA */ output-low; }; }; cam_sensor_depth_active: cam_sensor_depth_active { /* RESET,AVDD LO ,IMG_START, ILLU_EN */ mux { pins = "gpio28","gpio23","gpio24"; function = "gpio"; }; config { pins = "gpio28","gpio23","gpio24"; bias-disable; /* No PULL */ drive-strength = <2>; /* 2 MA */ }; }; cam_sensor_depth_suspend: cam_sensor_depth_suspend { /* RESET, AVDD LO ,IMG_START, ILLU_EN */ mux { pins = "gpio28","gpio23","gpio24"; function = "gpio"; }; config { pins = "gpio28","gpio23","gpio24"; bias-pull-down; /* PULL DOWN */ drive-strength = <2>; /* 2 MA */ }; }; max_rst_active: max_rst_active { /* RESET */ mux { pins = "gpio31","gpio77","gpio78","gpio32"; function = "gpio"; }; config { pins = "gpio31","gpio77","gpio78","gpio32"; bias-disable; /* No PULL */ drive-strength = <8>; /* 2 MA */ }; }; max_rst_suspend: max_rst_suspend { /* RESET */ mux { pins = "gpio31","gpio77","gpio78","gpio32"; function = "gpio"; }; config { pins = "gpio31","gpio77","gpio78","gpio32"; bias-pull-down; /* PULL DOWN */ drive-strength = <8>; /* 2 MA */ }; }; max_6dof_active: max_6dof_active { /* RESET */ mux { pins = "gpio30","gpio95","gpio94"; function = "gpio"; }; config { pins = "gpio30","gpio95","gpio94"; bias-disable; /* No PULL */ drive-strength = <8>; /* 2 MA */ }; }; max_6dof_suspend: max_6dof_suspend { /* RESET */ mux { pins = "gpio30","gpio95","gpio94"; function = "gpio"; }; config { pins = "gpio30","gpio95","gpio94"; bias-pull-down; /* PULL DOWN */ drive-strength = <8>; /* 2 MA */ }; }; cam_sensor_mclk0_active: cam_sensor_mclk0_active { /* MCLK0 */ mux { Loading Loading @@ -3159,7 +3272,7 @@ config { pins = "gpio9"; bias-disable; /* No PULL */ bias-pull-down; /* PULL DOWN */ drive-strength = <2>; /* 2 MA */ output-low; }; Loading Loading
arch/arm64/boot/dts/qcom/sdm845-camera-sensor-qvr.dtsi +209 −2 Original line number Diff line number Diff line /* * Copyright (c) 2017, The Linux Foundation. All rights reserved. * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -71,6 +71,30 @@ pinctrl-0 = <&camera_dvdd_en_default>; vin-supply = <&pm8998_s3>; }; camera_eyetracking_force: gpio-regulator@3 { compatible = "regulator-fixed"; reg = <0x03 0x00>; regulator-name = "camera_eyetracking_force"; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1050000>; regulator-enable-ramp-delay = <100>; enable-active-high; gpio = <&tlmm 77 0>; vin-supply = <&pm8998_s3>; }; camera_eyetracking_force_front: gpio-regulator@4 { compatible = "regulator-fixed"; reg = <0x04 0x00>; regulator-name = "camera_eyetracking_force_front"; regulator-min-microvolt = <1050000>; regulator-max-microvolt = <1050000>; regulator-enable-ramp-delay = <100>; enable-active-high; gpio = <&tlmm 77 0>; vin-supply = <&pm8998_lvs1>; }; }; &cam_cci { Loading Loading @@ -343,7 +367,7 @@ sensor-position-yaw = <0>; eeprom-src = <&eeprom_front>; cam_vdig-supply = <&camera_ldo>; cam_vio-supply = <&pm8998_lvs1>; cam_vio-supply = <&camera_eyetracking_force_front>; cam_vana-supply = <&pmi8998_bob>; cam_clk-supply = <&titan_top_gdsc>; regulator-names = "cam_vdig", "cam_vio", "cam_vana", Loading Loading @@ -376,4 +400,187 @@ clock-cntl-level = "turbo"; clock-rates = <24000000>; }; qcom,camera@3 { cell-index = <3>; compatible = "qcom,cam-sensor"; reg = <0x3>; csiphy-sd-index = <2>; sensor-position-roll = <270>; sensor-position-pitch = <0>; sensor-position-yaw = <0>; cam_vio-supply = <&pm8998_lvs1>; cam_vana-supply = <&pmi8998_bob>; cam_vdig-supply = <&pm8998_s3>; cam_clk-supply = <&titan_top_gdsc>; regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; rgltr-cntrl-support; rgltr-min-voltage = <0 3312000 1050000 0>; rgltr-max-voltage = <0 3600000 1050000 0>; rgltr-load-current = <0 80000 105000 0>; gpio-no-mux = <0>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_sensor_mclk2_active &max_rst_active>; pinctrl-1 = <&cam_sensor_mclk2_suspend &max_rst_suspend>; gpios = <&tlmm 15 0>, <&tlmm 31 0>, <&tlmm 77 0>, <&tlmm 78 0>, <&tlmm 32 0>; gpio-reset = <1>; gpio-vana = <2>; gpio-custom1 = <3>; gpio-custom2 = <4>; gpio-req-tbl-num = <0 1 2 3 4>; gpio-req-tbl-flags = <1 0 0 0 0>; gpio-req-tbl-label = "CAMIF_MCLK2", "CAM_RESET2", "CAM_VANA2", "CAM_CUSTOM1", "CAM_CUSTOM2"; sensor-mode = <0>; cci-master = <1>; status = "ok"; clocks = <&clock_camcc CAM_CC_MCLK2_CLK>; clock-names = "cam_clk"; clock-cntl-level = "turbo"; clock-rates = <24000000>; }; qcom,cam-sensor@5 { cell-index = <5>; compatible = "qcom,cam-sensor"; reg = <0x05>; csiphy-sd-index = <1>; sensor-position-roll = <270>; sensor-position-pitch = <0>; sensor-position-yaw = <0>; cam_vio-supply = <&pm8998_lvs1>; cam_vana-supply = <&pmi8998_bob>; cam_vdig-supply = <&camera_eyetracking_force>; cam_clk-supply = <&titan_top_gdsc>; regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; rgltr-cntrl-support; rgltr-min-voltage = <0 3312000 1050000 0>; rgltr-max-voltage = <0 3600000 1050000 0>; rgltr-load-current = <0 80000 105000 0>; gpio-no-mux = <0>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_fisheye_active>; pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_fisheye_suspend>; gpios = <&tlmm 14 0>, <&tlmm 76 0>, <&tlmm 75 0>; gpio-reset = <1>; gpio-vana = <2>; gpio-req-tbl-num = <0 1 2>; gpio-req-tbl-flags = <1 0 0>; gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET1", "CAM_VANA1"; sensor-mode = <0>; cci-master = <1>; status = "ok"; clocks = <&clock_camcc CAM_CC_MCLK1_CLK>; clock-names = "cam_clk"; clock-cntl-level = "turbo"; clock-rates = <24000000>; }; qcom,cam-sensor@4 { cell-index = <4>; compatible = "qcom,cam-sensor"; reg = <0x4>; csiphy-sd-index = <1>; sensor-position-roll = <270>; /* checked, MTP845 */ sensor-position-pitch = <0>; /* checked, MTP845 */ sensor-position-yaw = <180>; /* checked, MTP845 */ cam_vio-supply = <&pm8998_lvs1>; /* checked, MTP845 */ cam_vana-supply = <&pmi8998_bob>; cam_vdig-supply = <&camera_eyetracking_force>; cam_clk-supply = <&titan_top_gdsc>; regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; rgltr-cntrl-support; rgltr-min-voltage = <0 3312000 1050000 0>; rgltr-max-voltage = <0 3600000 1050000 0>; rgltr-load-current = <0 80000 105000 0>; gpio-no-mux = <0>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_depth_active>; pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_depth_suspend>; gpios = <&tlmm 14 0>, //MCLK1 <&tlmm 28 0>, //RESET <&tlmm 23 0>, //vana <&tlmm 24 0>; gpio-reset = <1>; //RESET gpio-vana = <2>; gpio-vdig = <3>; gpio-req-tbl-num = <0 1 2 3> ; gpio-req-tbl-flags = <1 0 0 0>; gpio-req-tbl-label = "CAMIF_MCLK1", "CAM_RESET1", "CAM_VANA1", "CAM_VDIG1"; sensor-mode = <0>; // 0 -> back camera 2D cci-master = <1>; /* checked, MTP845 we are on I2C 0 */ status = "ok"; clocks = <&clock_camcc CAM_CC_MCLK1_CLK>; clock-names = "cam_clk"; clock-cntl-level = "turbo"; clock-rates = <24000000>; }; qcom,camera@6 { cell-index = <6>; compatible = "qcom,cam-sensor"; reg = <0x6>; csiphy-sd-index = <3>; sensor-position-roll = <270>; sensor-position-pitch = <0>; sensor-position-yaw = <0>; cam_vio-supply = <&pm8998_lvs1>; cam_vana-supply = <&pmi8998_bob>; cam_vdig-supply = <&pm8998_s3>; cam_clk-supply = <&titan_top_gdsc>; regulator-names = "cam_vio", "cam_vana", "cam_vdig", "cam_clk"; rgltr-cntrl-support; rgltr-min-voltage = <0 3312000 1050000 0>; rgltr-max-voltage = <0 3600000 1050000 0>; rgltr-load-current = <0 80000 105000 0>; gpio-no-mux = <0>; pinctrl-names = "cam_default", "cam_suspend"; pinctrl-0 = <&cam_sensor_mclk3_active &max_6dof_active>; pinctrl-1 = <&cam_sensor_mclk3_suspend &max_6dof_suspend>; gpios = <&tlmm 16 0>, <&tlmm 30 0>, <&tlmm 95 0>, <&tlmm 94 0>; gpio-reset = <1>; gpio-vana = <2>; gpio-vdig = <3>; gpio-req-tbl-num = <0 1 2 3 >; gpio-req-tbl-flags = <1 0 0 0>; gpio-req-tbl-label = "CAMIF_MCLK3", "CAM_RESET3", "CAM_VANA3", "CAM_VDIG3" ; sensor-mode = <0>; cci-master = <0>; status = "ok"; clocks = <&clock_camcc CAM_CC_MCLK3_CLK>; clock-names = "cam_clk"; clock-cntl-level = "turbo"; clock-rates = <24000000>; }; };
arch/arm64/boot/dts/qcom/sdm845-pinctrl.dtsi +114 −1 Original line number Diff line number Diff line Loading @@ -2993,6 +2993,119 @@ }; }; cam_sensor_fisheye_active: cam_sensor_fisheye_active { /* RESET, AVDD LO */ mux { pins = "gpio76","gpio75"; function = "gpio"; }; config { pins = "gpio76","gpio75"; bias-disable; /* No PULL */ drive-strength = <2>; /* 2 MA */ }; }; cam_sensor_fisheye_suspend: cam_sensor_fisheye_suspend { /* RESET, AVDD LO*/ mux { pins = "gpio76","gpio75"; function = "gpio"; }; config { pins = "gpio76","gpio75"; bias-pull-down; /* PULL DOWN */ drive-strength = <2>; /* 2 MA */ output-low; }; }; cam_sensor_depth_active: cam_sensor_depth_active { /* RESET,AVDD LO ,IMG_START, ILLU_EN */ mux { pins = "gpio28","gpio23","gpio24"; function = "gpio"; }; config { pins = "gpio28","gpio23","gpio24"; bias-disable; /* No PULL */ drive-strength = <2>; /* 2 MA */ }; }; cam_sensor_depth_suspend: cam_sensor_depth_suspend { /* RESET, AVDD LO ,IMG_START, ILLU_EN */ mux { pins = "gpio28","gpio23","gpio24"; function = "gpio"; }; config { pins = "gpio28","gpio23","gpio24"; bias-pull-down; /* PULL DOWN */ drive-strength = <2>; /* 2 MA */ }; }; max_rst_active: max_rst_active { /* RESET */ mux { pins = "gpio31","gpio77","gpio78","gpio32"; function = "gpio"; }; config { pins = "gpio31","gpio77","gpio78","gpio32"; bias-disable; /* No PULL */ drive-strength = <8>; /* 2 MA */ }; }; max_rst_suspend: max_rst_suspend { /* RESET */ mux { pins = "gpio31","gpio77","gpio78","gpio32"; function = "gpio"; }; config { pins = "gpio31","gpio77","gpio78","gpio32"; bias-pull-down; /* PULL DOWN */ drive-strength = <8>; /* 2 MA */ }; }; max_6dof_active: max_6dof_active { /* RESET */ mux { pins = "gpio30","gpio95","gpio94"; function = "gpio"; }; config { pins = "gpio30","gpio95","gpio94"; bias-disable; /* No PULL */ drive-strength = <8>; /* 2 MA */ }; }; max_6dof_suspend: max_6dof_suspend { /* RESET */ mux { pins = "gpio30","gpio95","gpio94"; function = "gpio"; }; config { pins = "gpio30","gpio95","gpio94"; bias-pull-down; /* PULL DOWN */ drive-strength = <8>; /* 2 MA */ }; }; cam_sensor_mclk0_active: cam_sensor_mclk0_active { /* MCLK0 */ mux { Loading Loading @@ -3159,7 +3272,7 @@ config { pins = "gpio9"; bias-disable; /* No PULL */ bias-pull-down; /* PULL DOWN */ drive-strength = <2>; /* 2 MA */ output-low; }; Loading