public inbox for devicetree@vger.kernel.org
 help / color / mirror / Atom feed
From: Pengyu Luo <mitltlatltl@gmail.com>
To: Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Martin Kepplinger-Novakovic <martink@posteo.de>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil@kernel.org>,
	Martin Kepplinger <martin.kepplinger@puri.sm>
Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-media@vger.kernel.org,
	Pengyu Luo <mitltlatltl@gmail.com>
Subject: [PATCH 4/4] arm64: dts: qcom: sc8280xp: gaokun3: describe rear camera module information as musch as possible
Date: Sat, 25 Apr 2026 18:53:00 +0800	[thread overview]
Message-ID: <20260425105300.745044-5-mitltlatltl@gmail.com> (raw)
In-Reply-To: <20260425105300.745044-1-mitltlatltl@gmail.com>

The rear sensor is S5K3L6, describing it but dropping compatible
string, since there is no upstream driver. A funcitonal downstream
driver is in comment.

The VCM is dw9714, describe it.

Signed-off-by: Pengyu Luo <mitltlatltl@gmail.com>
---
Please take this patch as a RFC, I am not sure, how much I am allowed
to add without a sensor driver.
---
 .../boot/dts/qcom/sc8280xp-huawei-gaokun3.dts | 129 +++++++++++++++++-
 1 file changed, 123 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts
index 39e559e91289..76b1ecb3819d 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-huawei-gaokun3.dts
@@ -22,12 +22,18 @@
 #include "sc8280xp.dtsi"
 #include "sc8280xp-pmics.dtsi"
 
+/* remove due to gpio pins collision, skip 2nd instance won't break things */
+/delete-node/ &cci1_i2c1;
+/delete-node/ &cci1_i2c1_default;
+/delete-node/ &cci1_i2c1_sleep;
+
 / {
 	chassis-type = "tablet";
 	model = "Matebook E Go";
 	compatible = "huawei,gaokun3", "qcom,sc8280xp";
 
 	aliases {
+		i2c1 = &cci1_i2c0;
 		i2c2 = &cci2_i2c1;
 		i2c4 = &i2c4;
 		i2c15 = &i2c15;
@@ -52,9 +58,17 @@ framebuffer0: framebuffer@c6200000 {
 	leds {
 		compatible = "gpio-leds";
 
-		pinctrl-0 = <&cam_indicator_en>;
+		pinctrl-0 = <&cam_indicator_en>, <&camera_flash_en>;
 		pinctrl-names = "default";
 
+		camera_flash: led {
+			function = LED_FUNCTION_FLASH;
+			color = <LED_COLOR_ID_WHITE>;
+			gpios = <&tlmm 93 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "none";
+			default-state = "off";
+		};
+
 		privacy_led: privacy-led {
 			function = LED_FUNCTION_INDICATOR;
 			color = <LED_COLOR_ID_WHITE>;
@@ -129,6 +143,18 @@ vreg_camf_1p2: regulator-camf-1p2 {
 		pinctrl-names = "default";
 	};
 
+	vreg_camr: regulator-camr {
+		compatible = "regulator-fixed";
+
+		regulator-name = "vreg_camr";
+
+		gpio = <&tlmm 92 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-0 = <&camr_reg_en>;
+		pinctrl-names = "default";
+	};
+
 	vreg_misc_3p3: regulator-misc-3p3 {
 		compatible = "regulator-fixed";
 
@@ -387,8 +413,8 @@ vreg_l1b: ldo1 {
 
 		vreg_l2b: ldo2 {
 			regulator-name = "vreg_l2b";
-			regulator-min-microvolt = <1904000>;
-			regulator-max-microvolt = <1904000>;
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <2800000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
@@ -433,10 +459,9 @@ vreg_l6b: ldo6 {
 
 		vreg_l7b: ldo7 {
 			regulator-name = "vreg_l7b";
-			regulator-min-microvolt = <1800000>;
-			regulator-max-microvolt = <1800000>;
+			regulator-min-microvolt = <2800000>;
+			regulator-max-microvolt = <2800000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
-			regulator-boot-on;
 		};
 
 		vreg_l9b: ldo9 {
@@ -622,6 +647,16 @@ &camss {
 	status = "okay";
 
 	ports {
+		port@0 {
+			csiphy0_ep: endpoint@0 {
+				reg = <0>;
+
+				clock-lanes = <7>;
+				data-lanes = <0 1 2 3>;
+				remote-endpoint = <&s5k3l6_ep>;
+			};
+		};
+
 		port@3 {
 			csiphy3_ep: endpoint@0 {
 				reg = <0>;
@@ -634,6 +669,58 @@ csiphy3_ep: endpoint@0 {
 	};
 };
 
+&cci1 {
+	status = "okay";
+};
+
+&cci1_i2c0 {
+	voice_coil_motor: vcm@c {
+		compatible = "dongwoon,dw9714";
+		reg = <0xc>;
+		vcc-supply = <&vreg_l7b>; /* FIXME: require l2c on first */
+	};
+
+	/*
+	 * https://source.puri.sm/Librem5/linux/-/blob/pureos/latest/drivers/media/i2c/s5k3l6xx.c
+	 *
+	 * This sensor has never been detected on Goakun3(2.69GHz)
+	 */
+	camera_rear: camera@10 {
+		reg = <0x10>;
+
+		pinctrl-0 = <&camr_rgb_default>;
+		pinctrl-names = "default";
+
+		clocks = <&camcc CAMCC_MCLK4_CLK>;
+		clock-names = "mclk";
+		clock-frequency = <24000000>;
+
+		rstn-gpios = <&tlmm 7 GPIO_ACTIVE_LOW>;
+
+		vddio-supply = <&vreg_camr>;
+		vdda-supply = <&vreg_l2b>;
+		vddd-supply = <&vreg_l2c>;
+
+		/* &camera_flash can't be enabled directly for now */
+		leds = <&privacy_led>;
+		led-names = "privacy";
+
+		lens-focus = <&voice_coil_motor>;
+
+		orientation = <1>;
+		rotation = <180>;
+
+		port {
+			s5k3l6_ep: endpoint {
+				data-lanes = <1 2 3 4>;
+				remote-endpoint = <&csiphy0_ep>;
+			};
+		};
+	};
+
+	/* eeprom@50/51 */
+};
+
 &cci2 {
 	status = "okay";
 };
@@ -1423,6 +1510,13 @@ cam_indicator_en: cam-indicator-en-state {
 		bias-disable;
 	};
 
+	camera_flash_en: camera-flash-en-state {
+		pins = "gpio93";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
 	camf_1p2_reg_en: camf-1p2-reg-en-state {
 		pins = "gpio44";
 		function = "gpio";
@@ -1446,6 +1540,29 @@ sc-rgb-xshut-n-pins {
 		};
 	};
 
+	camr_reg_en: camr-reg-en-state {
+		pins = "gpio92";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	camr_rgb_default: camr-rgb-default-state {
+		mclk-pins {
+			pins = "gpio6";
+			function = "cam_mclk";
+			drive-strength = <6>;
+			bias-disable;
+		};
+
+		sc-rgb-xshut-n-pins {
+			pins = "gpio7";
+			function = "gpio";
+			drive-strength = <2>;
+			bias-disable;
+		};
+	};
+
 	i2c4_default: i2c4-default-state {
 		pins = "gpio171", "gpio172";
 		function = "qup4";
-- 
2.54.0


      parent reply	other threads:[~2026-04-25 10:56 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-25 10:52 [PATCH 0/4] support camera found on Gaokun3 Pengyu Luo
2026-04-25 10:52 ` [PATCH 1/4] media: hi846: fix hi846_write_reg_16 handling Pengyu Luo
2026-04-25 10:52 ` [PATCH 2/4] media: hi846: Add 6MP and 8MP mode support Pengyu Luo
2026-04-25 10:52 ` [PATCH 3/4] arm64: dts: qcom: sc8280xp: gaokun3: add front camera sensor node Pengyu Luo
2026-04-27 13:00   ` Konrad Dybcio
2026-04-29  6:36     ` Pengyu Luo
2026-04-25 10:53 ` Pengyu Luo [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260425105300.745044-5-mitltlatltl@gmail.com \
    --to=mitltlatltl@gmail.com \
    --cc=andersson@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=hverkuil@kernel.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=martin.kepplinger@puri.sm \
    --cc=martink@posteo.de \
    --cc=mchehab@kernel.org \
    --cc=robh@kernel.org \
    --cc=sakari.ailus@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox