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
prev 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