]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: qcom: lemans-evk: Add IMX577-based camera overlay
authorWenmeng Liu <quic_wenmliu@qualcomm.com>
Fri, 12 Sep 2025 15:19:27 +0000 (23:19 +0800)
committerBjorn Andersson <andersson@kernel.org>
Tue, 16 Sep 2025 16:56:56 +0000 (11:56 -0500)
Enable IMX577 via CCI1 on LeMans EVK Core Kit.

The LeMans EVK board does not include a camera sensor
by default, this overlay reflects the possibility of
attaching an optional camera sensor.
For this reason, the camera sensor configuration is
placed in lemans-evk-camera.dtso, rather than
modifying the base lemans-evk.dts.

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Wenmeng Liu <quic_wenmliu@qualcomm.com>
Link: https://lore.kernel.org/r/20250912-camss_rb8-v6-3-c9a6c3d67392@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/Makefile
arch/arm64/boot/dts/qcom/lemans-evk-camera-csi1-imx577.dtso [new file with mode: 0644]

index 85af93331ba47d30fad1b95fee46cadce403bf79..d7f22476d510ee037fa978c7a8366b8d546d8dc8 100644 (file)
@@ -30,6 +30,10 @@ dtb-$(CONFIG_ARCH_QCOM)      += ipq9574-rdp449.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += ipq9574-rdp453.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += ipq9574-rdp454.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += lemans-evk.dtb
+
+lemans-evk-camera-csi1-imx577-dtbs     := lemans-evk.dtb lemans-evk-camera-csi1-imx577.dtbo
+
+dtb-$(CONFIG_ARCH_QCOM)        += lemans-evk-camera-csi1-imx577.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += monaco-evk.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8216-samsung-fortuna3g.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += msm8916-acer-a1-724.dtb
diff --git a/arch/arm64/boot/dts/qcom/lemans-evk-camera-csi1-imx577.dtso b/arch/arm64/boot/dts/qcom/lemans-evk-camera-csi1-imx577.dtso
new file mode 100644 (file)
index 0000000..769befa
--- /dev/null
@@ -0,0 +1,97 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
+ */
+
+/dts-v1/;
+/plugin/;
+
+#include <dt-bindings/clock/qcom,sa8775p-camcc.h>
+#include <dt-bindings/gpio/gpio.h>
+
+&{/} {
+       vreg_cam1_1p8: regulator-cam1 {
+               compatible = "regulator-fixed";
+               regulator-name = "vreg_cam1";
+               startup-delay-us = <10000>;
+               enable-active-high;
+               gpio = <&pmm8654au_0_gpios 8 GPIO_ACTIVE_HIGH>;
+       };
+};
+
+&camss {
+       vdda-pll-supply = <&vreg_l1c>;
+       vdda-phy-supply = <&vreg_l4a>;
+
+       status = "okay";
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@1 {
+                       reg = <1>;
+
+                       csiphy1_ep: endpoint {
+                               clock-lanes = <7>;
+                               data-lanes = <0 1 2 3>;
+                               remote-endpoint = <&imx577_ep1>;
+                       };
+               };
+       };
+};
+
+&cci1 {
+       pinctrl-0 = <&cci1_0_default>;
+       pinctrl-1 = <&cci1_0_sleep>;
+
+       status = "okay";
+};
+
+&cci1_i2c0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       camera@1a {
+               compatible = "sony,imx577";
+               reg = <0x1a>;
+
+               reset-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
+               pinctrl-0 = <&cam1_default>;
+               pinctrl-names = "default";
+
+               clocks = <&camcc CAM_CC_MCLK1_CLK>;
+               assigned-clocks = <&camcc CAM_CC_MCLK1_CLK>;
+               assigned-clock-rates = <24000000>;
+
+               dovdd-supply = <&vreg_s4a>;
+               avdd-supply = <&vreg_cam1_1p8>;
+
+               port {
+                       imx577_ep1: endpoint {
+                               clock-lanes = <7>;
+                               link-frequencies = /bits/ 64 <600000000>;
+                               data-lanes = <0 1 2 3>;
+                               remote-endpoint = <&csiphy1_ep>;
+                       };
+               };
+       };
+};
+
+&tlmm {
+       cam1_default: cam1-default-state {
+               mclk-pins {
+                       pins = "gpio73";
+                       function = "cam_mclk";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+
+               rst-pins {
+                       pins = "gpio133";
+                       function = "gpio";
+                       drive-strength = <2>;
+                       bias-disable;
+               };
+       };
+};