From 3dc373cc006789f704a7d8a54de2ced700b116e0 Mon Sep 17 00:00:00 2001 From: Tharik Anwar Date: Fri, 24 Jul 2026 15:23:07 +0530 Subject: [PATCH 1/2] arm64: dts: qcom: Add Camera DT changes for Talos Lyra EVK Add Camera DT changes for Talos Lyra EVK. Signed-off-by: Tharik Anwar --- arch/arm64/boot/dts/qcom/Makefile | 2 + .../boot/dts/qcom/talos-camera-lyra-evk.dtsi | 123 +++++ .../qcom/talos-camera-sensor-lyra-evk.dtsi | 502 ++++++++++++++++++ .../boot/dts/qcom/talos-lyra-evk-camx.dtso | 17 + 4 files changed, 644 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/talos-camera-lyra-evk.dtsi create mode 100644 arch/arm64/boot/dts/qcom/talos-camera-sensor-lyra-evk.dtsi create mode 100644 arch/arm64/boot/dts/qcom/talos-lyra-evk-camx.dtso diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile index ce79a08bfd60e..40c5653c09117 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -441,6 +441,8 @@ talos-evk-lvds-auo,g133han01-dtbs := \ dtb-$(CONFIG_ARCH_QCOM) += talos-evk-camera-imx577.dtb dtb-$(CONFIG_ARCH_QCOM) += talos-evk-lvds-auo,g133han01.dtb dtb-$(CONFIG_ARCH_QCOM) += talos-evk-lvds-auo,g133han01.dtbo +talos-lyra-evk-camx-dtbs := talos-lyra-evk.dtb talos-lyra-evk-camx.dtbo +dtb-$(CONFIG_ARCH_QCOM) += talos-lyra-evk-camx.dtb x1e001de-devkit-el2-dtbs := x1e001de-devkit.dtb x1-el2.dtbo dtb-$(CONFIG_ARCH_QCOM) += x1e001de-devkit.dtb x1e001de-devkit-el2.dtb x1e78100-lenovo-thinkpad-t14s-el2-dtbs := x1e78100-lenovo-thinkpad-t14s.dtb x1-el2.dtbo diff --git a/arch/arm64/boot/dts/qcom/talos-camera-lyra-evk.dtsi b/arch/arm64/boot/dts/qcom/talos-camera-lyra-evk.dtsi new file mode 100644 index 0000000000000..d8c8ed9c46a25 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/talos-camera-lyra-evk.dtsi @@ -0,0 +1,123 @@ +&tlmm { + cam-sensor-active-rst0 { + /* RESET */ + mux { + pins = "gpio40"; + }; + + config { + pins = "gpio40"; + }; + }; + + cam-sensor-active-rst1 { + /* RESET */ + mux { + pins = "gpio54"; + }; + + config { + pins = "gpio54"; + }; + }; + + cam-sensor-active-rst2 { + /* RESET */ + mux { + pins = "gpio42"; + }; + + config { + pins = "gpio42"; + }; + }; + + cam-sensor-suspend-rst0 { + /* RESET */ + mux { + pins = "gpio40"; + }; + + config { + pins = "gpio40"; + }; + }; + + cam-sensor-suspend-rst1 { + /* RESET */ + mux { + pins = "gpio54"; + }; + + config { + pins = "gpio54"; + }; + }; + + cam-sensor-suspend-rst2 { + /* RESET */ + mux { + pins = "gpio42"; + }; + + config { + pins = "gpio42"; + }; + }; + + cam_sensor_mclk0_active: cam-sensor-mclk0-active { + /* MCLK */ + mux { + pins = "gpio28"; + function = "cam_mclk"; + }; + + config { + pins = "gpio28"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_active: cam-sensor-mclk1-active { + /* MCLK */ + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-disable; /* No PULL */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk0_suspend: cam-sensor-mclk0-suspend { + /* MCLK */ + mux { + pins = "gpio28"; + function = "cam_mclk"; + }; + + config { + pins = "gpio28"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; + + cam_sensor_mclk1_suspend: cam-sensor-mclk1-suspend { + /* MCLK */ + mux { + pins = "gpio29"; + function = "cam_mclk"; + }; + + config { + pins = "gpio29"; + bias-pull-down; /* PULL DOWN */ + drive-strength = <2>; /* 2 MA */ + }; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/talos-camera-sensor-lyra-evk.dtsi b/arch/arm64/boot/dts/qcom/talos-camera-sensor-lyra-evk.dtsi new file mode 100644 index 0000000000000..848f263fb1d8d --- /dev/null +++ b/arch/arm64/boot/dts/qcom/talos-camera-sensor-lyra-evk.dtsi @@ -0,0 +1,502 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#include + +&cam_cci { + /*ACTUATOR0: OV13B10*/ + actuator_cam4: qcom,actuator4 { + cell-index = <4>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + status = "okay"; + }; + + /*EEPROM0: OV13B10*/ + eeprom_cam4: qcom,eeprom4 { + cell-index = <4>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_active_rst0>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_suspend_rst0>; + gpios = <&tlmm 28 0>, <&tlmm 40 0>, <&expander1 0 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 = "CAM_MCLK4", "CAMIF_RESET4", "CAM_CUSTOM4"; + cci-master = <0>; + clocks = <&camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "okay"; + }; + + /*CAM0: OV13B10*/ + tl_slot4: qcom,cam-sensor4 { + cell-index = <4>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <0>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_cam4>; + actuator-src = <&actuator_cam4>; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_active_rst0>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_suspend_rst0>; + gpios = <&tlmm 28 0>, <&tlmm 40 0>, <&expander1 0 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 = "CAM_MCLK4", "CAMIF_RESET4", "CAM_CUSTOM4"; + cci-master = <0>; + clocks = <&camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "okay"; + }; + + /*ACTUATOR1: OV13B10*/ + actuator_cam5: qcom,actuator5 { + cell-index = <5>; + compatible = "qcom,actuator"; + cci-master = <1>; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + status = "okay"; + }; + + /*EEPROM1: OV13B10*/ + eeprom_cam5: qcom,eeprom5 { + cell-index = <5>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + 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 29 0>, <&tlmm 54 0>, <&expander1 1 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 = "CAM_MCLK5", "CAMIF_RESET5", "CAM_CUSTOM5"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "okay"; + }; + + /*CAM1: OV13B10*/ + tl_slot5: qcom,cam-sensor5 { + cell-index = <5>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <0>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_cam5>; + actuator-src = <&actuator_cam5>; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + 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 29 0>, <&tlmm 54 0>, <&expander1 1 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 = "CAM_MCLK5", "CAMIF_RESET5", "CAM_CUSTOM5"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "okay"; + }; + + /*ACTUATOR2: OV13B10*/ + actuator_cam6: qcom,actuator6 { + cell-index = <6>; + compatible = "qcom,actuator"; + cci-master = <1>; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + status = "okay"; + }; + + /*EEPROM2: OV13B10*/ + eeprom_cam6: qcom,eeprom6 { + cell-index = <6>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_active_rst2>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_suspend_rst2>; + gpios = <&tlmm 30 0>, <&tlmm 42 0>, <&expander1 2 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 = "CAM_MCLK6", "CAMIF_RESET6", "CAM_CUSTOM6"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "okay"; + }; + + /*CAM2: OV13B10*/ + tl_slot6: qcom,cam-sensor6 { + cell-index = <6>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <0>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_cam6>; + actuator-src = <&actuator_cam6>; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_active_rst2>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_suspend_rst2>; + gpios = <&tlmm 30 0>, <&tlmm 42 0>, <&expander1 2 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 = "CAM_MCLK6", "CAMIF_RESET6", "CAM_CUSTOM6"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "okay"; + }; + + /*ACTUATOR3: IMX858*/ + actuator_cam7: qcom,actuator7 { + cell-index = <7>; + compatible = "qcom,actuator"; + cci-master = <0>; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + status = "okay"; + }; + + /*EEPROM3: IMX858*/ + eeprom_cam7: qcom,eeprom7 { + cell-index = <7>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_activ &cam_sensor_active_rst0>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_suspend_rst0>; + gpios = <&tlmm 28 0>, <&tlmm 40 0>, <&expander1 0 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 = "CAM_MCLK7", "CAMIF_RESET7", "CAM_CUSTOM7"; + cci-master = <0>; + clocks = <&camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "okay"; + }; + + /*CAM3: IMX858*/ + tl_slot7: qcom,cam-sensor7 { + cell-index = <7>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <0>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_cam7>; + actuator-src = <&actuator_cam7>; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_active_rst0>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_suspend_rst0>; + gpios = <&tlmm 28 0>, <&tlmm 40 0>, <&expander1 0 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 = "CAM_MCLK7", "CAMIF_RESET7", "CAM_CUSTOM7"; + cci-master = <0>; + clocks = <&camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "okay"; + }; + + /*ACTUATOR4: IMX858*/ + actuator_cam8: qcom,actuator8 { + cell-index = <8>; + compatible = "qcom,actuator"; + cci-master = <1>; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + status = "okay"; + }; + + /*EEPROM4: IMX858*/ + eeprom_cam8: qcom,eeprom8 { + cell-index = <8>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + 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 29 0>, <&tlmm 54 0>, <&expander1 1 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 = "CAM_MCLK8", "CAMIF_RESET8", "CAM_CUSTOM8"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "okay"; + }; + + /*CAM4: IMX858*/ + tl_slot8: qcom,cam-sensor8 { + cell-index = <8>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <0>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_cam8>; + actuator-src = <&actuator_cam8>; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + 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 29 0>, <&tlmm 54 0>, <&expander1 1 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 = "CAM_MCLK8", "CAMIF_RESET8", "CAM_CUSTOM8"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "okay"; + }; + + /*ACTUATOR5: IMX858*/ + actuator_cam9: qcom,actuator9 { + cell-index = <9>; + compatible = "qcom,actuator"; + cci-master = <1>; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + rgltr-cntrl-support; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + status = "okay"; + }; + + /*EEPROM5: IMX858*/ + eeprom_cam9: qcom,eeprom9 { + cell-index = <9>; + compatible = "qcom,eeprom"; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_active_rst2>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_suspend_rst2>; + gpios = <&tlmm 30 0>, <&tlmm 42 0>, <&expander1 2 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 = "CAM_MCLK9", "CAMIF_RESET9", "CAM_CUSTOM9"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "okay"; + }; + + /*CAM5: IMX858*/ + tl_slot9: qcom,cam-sensor9 { + cell-index = <9>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <0>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + eeprom-src = <&eeprom_cam9>; + actuator-src = <&actuator_cam9>; + cam_vio-supply = <&vreg_campin>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <4000>; + gpio-no-mux = <0>; + pinctrl-names = "cam_default", "cam_suspend"; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_active_rst2>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_suspend_rst2>; + gpios = <&tlmm 30 0>, <&tlmm 42 0>, <&expander1 2 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 = "CAM_MCLK9", "CAMIF_RESET9", "CAM_CUSTOM9"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <19200000>; + status = "okay"; + }; +}; + +&soc { + vreg_campin: regulator-dbb1 { + compatible = "regulator-fixed"; + regulator-name = "vreg_campin"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + }; + + qcom,cam-res-mgr { + compatible = "qcom,cam-res-mgr"; + status = "okay"; + }; +}; diff --git a/arch/arm64/boot/dts/qcom/talos-lyra-evk-camx.dtso b/arch/arm64/boot/dts/qcom/talos-lyra-evk-camx.dtso new file mode 100644 index 0000000000000..98cd84ee831e7 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/talos-lyra-evk-camx.dtso @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +/dts-v1/; +/plugin/; + +#include +#include +#include +#include +#include + +#include "talos-camera.dtsi" +#include "talos-camera-lyra-evk.dtsi" +#include "talos-camera-sensor-lyra-evk.dtsi" From 2340aa53246f77f61f9a5f2b5e81d81e0b9b4fec Mon Sep 17 00:00:00 2001 From: Tharik Anwar Date: Wed, 12 Aug 2026 18:37:32 +0530 Subject: [PATCH 2/2] arm64: dts: qcom: Add IMX577 Camera DT changes for Talos Lyra EVK Add IMX577 Camera DT changes for Talos Lyra EVK. Signed-off-by: Tharik Anwar --- .../qcom/talos-camera-sensor-lyra-evk.dtsi | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/talos-camera-sensor-lyra-evk.dtsi b/arch/arm64/boot/dts/qcom/talos-camera-sensor-lyra-evk.dtsi index 848f263fb1d8d..545dbe0fc7c8d 100644 --- a/arch/arm64/boot/dts/qcom/talos-camera-sensor-lyra-evk.dtsi +++ b/arch/arm64/boot/dts/qcom/talos-camera-sensor-lyra-evk.dtsi @@ -485,6 +485,102 @@ clock-rates = <19200000>; status = "okay"; }; + + /*CAM6: IMX577*/ + tl_slot10: qcom,cam-sensor10 { + cell-index = <10>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <0>; + sensor-position-roll = <0>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&vreg_s4a>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + gpio-no-mux = <0>; + pinctrl-0 = <&cam_sensor_mclk0_active &cam_sensor_active_rst0>; + pinctrl-1 = <&cam_sensor_mclk0_suspend &cam_sensor_suspend_rst0>; + gpios = <&tlmm 28 0>, <&tlmm 40 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAM_MCLK10", "CAMIF_RESET10"; + cci-master = <0>; + clocks = <&camcc CAM_CC_MCLK0_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "okay"; + }; + + /*CAM7: IMX577*/ + tl_slot11: qcom,cam-sensor11 { + cell-index = <11>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <1>; + sensor-position-roll = <0>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&vreg_s4a>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + gpio-no-mux = <0>; + pinctrl-0 = <&cam_sensor_mclk1_active &cam_sensor_active_rst1>; + pinctrl-1 = <&cam_sensor_mclk1_suspend &cam_sensor_suspend_rst1>; + gpios = <&tlmm 29 0>, <&tlmm 54 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAM_MCLK11", "CAMIF_RESET11"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK1_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "okay"; + }; + + /*CAM8: IMX577*/ + tl_slot12: qcom,cam-sensor12 { + cell-index = <12>; + compatible = "qcom,cam-sensor"; + csiphy-sd-index = <2>; + sensor-position-roll = <0>; + sensor-position-pitch = <0>; + sensor-position-yaw = <180>; + cam_vio-supply = <&vreg_s4a>; + regulator-names = "cam_vio"; + power-domains = <&camcc TITAN_TOP_GDSC>; + rgltr-cntrl-support; + pwm-switch; + rgltr-min-voltage = <1800000>; + rgltr-max-voltage = <1800000>; + rgltr-load-current = <120000>; + gpio-no-mux = <0>; + pinctrl-0 = <&cam_sensor_mclk2_active &cam_sensor_active_rst2>; + pinctrl-1 = <&cam_sensor_mclk2_suspend &cam_sensor_suspend_rst2>; + gpios = <&tlmm 30 0>, <&tlmm 42 0>; + gpio-reset = <1>; + gpio-req-tbl-num = <0 1>; + gpio-req-tbl-flags = <1 0>; + gpio-req-tbl-label = "CAM_MCLK12", "CAMIF_RESET12"; + cci-master = <1>; + clocks = <&camcc CAM_CC_MCLK2_CLK>; + clock-names = "cam_clk"; + clock-cntl-level = "nominal"; + clock-rates = <24000000>; + status = "okay"; + }; }; &soc {