]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: qcom: sm8550-hdk: Add SM8550-HDK Rear Camera Card overlay
authorVladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Mon, 13 Oct 2025 23:55:00 +0000 (02:55 +0300)
committerBjorn Andersson <andersson@kernel.org>
Mon, 27 Oct 2025 17:06:35 +0000 (12:06 -0500)
Lantronix SM8550-HDK board may be equipped with a Rear Camera Card PCB
which contains:
* Samsung S3K33D time-of-fligt image sensor connected to CSIPHY0 (TOF),
* Omnivision OV64B40 image sensor connected to CSIPHY1 (uWide),
* Sony IMX766 image sensor connected to CSIPHY2 (Wide),
* Samsung S5K3M5 image sensor connected to CSIPHY3 (Tele),
* two flash leds.

The change adds support of a Samsung S5K3M5 camera image sensor and
two flash leds on the external camera card module.

Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Link: https://lore.kernel.org/r/20251013235500.1883847-4-vladimir.zapolskiy@linaro.org
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
arch/arm64/boot/dts/qcom/Makefile
arch/arm64/boot/dts/qcom/sm8550-hdk-rear-camera-card.dtso [new file with mode: 0644]

index 4fe7e1843b1af554ae212bbd87e9da1c2d82aba4..fc1db74f65b02821c7e6f23385a2feac39d64705 100644 (file)
@@ -303,6 +303,10 @@ dtb-$(CONFIG_ARCH_QCOM)    += sm8450-qrd.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8450-samsung-r0q.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8450-sony-xperia-nagara-pdx223.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8450-sony-xperia-nagara-pdx224.dtb
+
+sm8550-hdk-rear-camera-card-dtbs       := sm8550-hdk.dtb sm8550-hdk-rear-camera-card.dtbo
+
+dtb-$(CONFIG_ARCH_QCOM)        += sm8550-hdk-rear-camera-card.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8550-hdk.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8550-mtp.dtb
 dtb-$(CONFIG_ARCH_QCOM)        += sm8550-qrd.dtb
diff --git a/arch/arm64/boot/dts/qcom/sm8550-hdk-rear-camera-card.dtso b/arch/arm64/boot/dts/qcom/sm8550-hdk-rear-camera-card.dtso
new file mode 100644 (file)
index 0000000..66bec0f
--- /dev/null
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * SM8550-HDK Rear Camera Card overlay
+ *
+ * Copyright (c) 2025, Linaro Limited
+ */
+
+#include <dt-bindings/clock/qcom,sm8550-camcc.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+
+/dts-v1/;
+/plugin/;
+
+&camss {
+       status = "okay";
+
+       vdda-phy-supply = <&vreg_l1e_0p88>;
+       vdda-pll-supply = <&vreg_l3e_1p2>;
+
+       ports {
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               port@3 {
+                       reg = <3>;
+
+                       csiphy3_ep: endpoint {
+                               clock-lanes = <4>;
+                               data-lanes = <0 1 2 3>;
+                               remote-endpoint = <&cam_tele>;
+                       };
+               };
+       };
+};
+
+&cci1 {
+       status = "okay";
+};
+
+&cci1_i2c0 {
+       #address-cells = <1>;
+       #size-cells = <0>;
+
+       sensor@10 {
+               compatible = "samsung,s5k3m5";
+               reg = <0x10>;
+               clocks = <&camcc CAM_CC_MCLK3_CLK>;
+               assigned-clocks = <&camcc CAM_CC_MCLK3_CLK>;
+               assigned-clock-rates = <24000000>;
+               reset-gpios = <&tlmm 119 GPIO_ACTIVE_LOW>;
+               pinctrl-0 = <&cam3_default>;
+               pinctrl-names = "default";
+               afvdd-supply = <&vreg_l7n_2p96>;
+               avdd-supply = <&vreg_l4m_2p8>;
+               dovdd-supply = <&vreg_l5n_1p8>;
+               dvdd-supply = <&vreg_l2m_1p056>;
+
+               port {
+                       cam_tele: endpoint {
+                               link-frequencies = /bits/ 64 <602500000>;
+                               data-lanes = <0 1 2 3>;
+                               remote-endpoint = <&csiphy3_ep>;
+                       };
+               };
+       };
+};
+
+&pm8550_flash {
+       status = "okay";
+
+       led-0 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_YELLOW>;
+               led-sources = <1>, <4>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <2000000>;
+               flash-max-timeout-us = <1280000>;
+               function-enumerator = <0>;
+       };
+
+       led-1 {
+               function = LED_FUNCTION_FLASH;
+               color = <LED_COLOR_ID_WHITE>;
+               led-sources = <2>, <3>;
+               led-max-microamp = <500000>;
+               flash-max-microamp = <2000000>;
+               flash-max-timeout-us = <1280000>;
+               function-enumerator = <1>;
+       };
+};