* [PATCH v12 1/3] arm64: dts: qcom: sdm670: label the camss ports instead of endpoints
2026-03-31 19:44 [PATCH v12 0/3] arm64: dts: qcom: sdm670-google-sargo: front camera support Richard Acayan
@ 2026-03-31 19:44 ` Richard Acayan
2026-03-31 19:44 ` [PATCH v12 2/3] arm64: dts: qcom: sdm670: add camera mclk pins Richard Acayan
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Richard Acayan @ 2026-03-31 19:44 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, devicetree
Cc: Mauro Carvalho Chehab, Bryan O'Donoghue, Robert Foss,
Todor Tomov, Vladimir Zapolskiy, Tianshu Qiu, Sakari Ailus,
linux-media, Robert Mader, David Heidelberg, phone-devel,
Richard Acayan
Endpoints cannot be pre-defined since commit dcf6fb89e6f7 ("media: qcom:
camss: remove a check for unavailable CAMSS endpoint") was applied,
probing all endpoint nodes and requiring them to have a remote. There is
no sensible remote in the SoC devicetree because camera sensors are
board-specific.
The ports are meant to be extended by a board devicetree in order to
define fully configured endpoints and connect the ports to camera
sensors. For nodes that are only meaningful if extended, labels are
usually assigned. Label these ports so they can be extended directly.
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
arch/arm64/boot/dts/qcom/sdm670.dtsi | 18 +++---------------
1 file changed, 3 insertions(+), 15 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/sdm670.dtsi b/arch/arm64/boot/dts/qcom/sdm670.dtsi
index 746e9deba526..fbd16b1f3455 100644
--- a/arch/arm64/boot/dts/qcom/sdm670.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm670.dtsi
@@ -1776,28 +1776,16 @@ ports {
#address-cells = <1>;
#size-cells = <0>;
- port@0 {
+ camss_port0: port@0 {
reg = <0>;
-
- camss_endpoint0: endpoint {
- status = "disabled";
- };
};
- port@1 {
+ camss_port1: port@1 {
reg = <1>;
-
- camss_endpoint1: endpoint {
- status = "disabled";
- };
};
- port@2 {
+ camss_port2: port@2 {
reg = <2>;
-
- camss_endpoint2: endpoint {
- status = "disabled";
- };
};
};
};
--
2.53.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH v12 2/3] arm64: dts: qcom: sdm670: add camera mclk pins
2026-03-31 19:44 [PATCH v12 0/3] arm64: dts: qcom: sdm670-google-sargo: front camera support Richard Acayan
2026-03-31 19:44 ` [PATCH v12 1/3] arm64: dts: qcom: sdm670: label the camss ports instead of endpoints Richard Acayan
@ 2026-03-31 19:44 ` Richard Acayan
2026-03-31 19:44 ` [PATCH v12 3/3] arm64: dts: qcom: sdm670-google-sargo: add imx355 front camera Richard Acayan
2026-05-07 20:34 ` [PATCH v12 0/3] arm64: dts: qcom: sdm670-google-sargo: front camera support Bjorn Andersson
3 siblings, 0 replies; 5+ messages in thread
From: Richard Acayan @ 2026-03-31 19:44 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, devicetree
Cc: Mauro Carvalho Chehab, Bryan O'Donoghue, Robert Foss,
Todor Tomov, Vladimir Zapolskiy, Tianshu Qiu, Sakari Ailus,
linux-media, Robert Mader, David Heidelberg, phone-devel,
Richard Acayan
The camera subsystem is added for the SoC common devicetree, but the
mclk pins should also be common across the SoC. Add the mclk pins for
the cameras.
Suggested-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://lore.kernel.org/r/5135823c-f2e4-4873-9e3a-9d190cac0113@oss.qualcomm.com
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Reviewed-by: Bryan O'Donoghue <bod@kernel.org>
Reviewed-by: David Heidelberg <david@ixit.cz>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
arch/arm64/boot/dts/qcom/sdm670.dtsi | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm670.dtsi b/arch/arm64/boot/dts/qcom/sdm670.dtsi
index fbd16b1f3455..f115bc6e64f3 100644
--- a/arch/arm64/boot/dts/qcom/sdm670.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm670.dtsi
@@ -1196,6 +1196,34 @@ tlmm: pinctrl@3400000 {
gpio-ranges = <&tlmm 0 0 151>;
wakeup-parent = <&pdc>;
+ cam_mclk0_default: cam-mclk0-default-state {
+ pins = "gpio13";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam_mclk1_default: cam-mclk1-default-state {
+ pins = "gpio14";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam_mclk2_default: cam-mclk2-default-state {
+ pins = "gpio15";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam_mclk3_default: cam-mclk3-default-state {
+ pins = "gpio16";
+ function = "cam_mclk";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
cci0_default: cci0-default-state {
pins = "gpio17", "gpio18";
function = "cci_i2c";
--
2.53.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* [PATCH v12 3/3] arm64: dts: qcom: sdm670-google-sargo: add imx355 front camera
2026-03-31 19:44 [PATCH v12 0/3] arm64: dts: qcom: sdm670-google-sargo: front camera support Richard Acayan
2026-03-31 19:44 ` [PATCH v12 1/3] arm64: dts: qcom: sdm670: label the camss ports instead of endpoints Richard Acayan
2026-03-31 19:44 ` [PATCH v12 2/3] arm64: dts: qcom: sdm670: add camera mclk pins Richard Acayan
@ 2026-03-31 19:44 ` Richard Acayan
2026-05-07 20:34 ` [PATCH v12 0/3] arm64: dts: qcom: sdm670-google-sargo: front camera support Bjorn Andersson
3 siblings, 0 replies; 5+ messages in thread
From: Richard Acayan @ 2026-03-31 19:44 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, devicetree
Cc: Mauro Carvalho Chehab, Bryan O'Donoghue, Robert Foss,
Todor Tomov, Vladimir Zapolskiy, Tianshu Qiu, Sakari Ailus,
linux-media, Robert Mader, David Heidelberg, phone-devel,
Richard Acayan
The Sony IMX355 is the front camera on the Pixel 3a, mounted in portrait
mode. It is connected to CSIPHY1 and CCI I2C1, and uses MCLK2. Add
support for it.
Co-developed-by: Robert Mader <robert.mader@collabora.com>
Signed-off-by: Robert Mader <robert.mader@collabora.com>
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Vladimir Zapolskiy <vladimir.zapolskiy@linaro.org>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
.../boot/dts/qcom/sdm670-google-sargo.dts | 100 ++++++++++++++++++
1 file changed, 100 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts b/arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts
index ed55646ca419..eba2f3792dd0 100644
--- a/arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts
+++ b/arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts
@@ -172,6 +172,34 @@ vreg_s2b_1p05: vreg-s2b-regulator {
regulator-min-microvolt = <1050000>;
regulator-max-microvolt = <1050000>;
};
+
+ cam_front_ldo: cam-front-ldo-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "cam_front_ldo";
+ regulator-min-microvolt = <1352000>;
+ regulator-max-microvolt = <1352000>;
+ regulator-enable-ramp-delay = <135>;
+
+ gpios = <&pm660l_gpios 4 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&cam_front_ldo_pin>;
+ pinctrl-names = "default";
+ };
+
+ cam_vio_ldo: cam-vio-ldo-regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "cam_vio_ldo";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-enable-ramp-delay = <233>;
+
+ gpios = <&pm660_gpios 13 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&cam_vio_pin>;
+ pinctrl-names = "default";
+ };
};
&apps_rsc {
@@ -392,6 +420,64 @@ vreg_bob: bob {
};
};
+&camss {
+ vdda-phy-supply = <&vreg_l1a_1p225>;
+ vdda-pll-supply = <&vreg_s6a_0p87>;
+
+ status = "okay";
+};
+
+&camss_port1 {
+ camss_endpoint1: endpoint {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&cam_front_endpoint>;
+ };
+};
+
+&cci {
+ pinctrl-0 = <&cci1_default>;
+ pinctrl-1 = <&cci1_sleep>;
+ pinctrl-names = "default", "sleep";
+
+ status = "okay";
+};
+
+&cci_i2c1 {
+ camera@1a {
+ compatible = "sony,imx355";
+ reg = <0x1a>;
+
+ clocks = <&camcc CAM_CC_MCLK2_CLK>;
+
+ /*
+ * The sensor can accept a 24 MHz clock, but 19.2 MHz has
+ * better driver compatibility.
+ */
+ assigned-clocks = <&camcc CAM_CC_MCLK2_CLK>;
+ assigned-clock-rates = <19200000>;
+
+ reset-gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
+
+ avdd-supply = <&cam_front_ldo>;
+ dvdd-supply = <&cam_front_ldo>;
+ dovdd-supply = <&cam_vio_ldo>;
+
+ pinctrl-0 = <&cam_mclk2_default>;
+ pinctrl-names = "default";
+
+ rotation = <270>;
+ orientation = <0>;
+
+ port {
+ cam_front_endpoint: endpoint {
+ data-lanes = <1 2 3 4>;
+ link-frequencies = /bits/ 64 <360000000>;
+ remote-endpoint = <&camss_endpoint1>;
+ };
+ };
+ };
+};
+
&gcc {
protected-clocks = <GCC_QSPI_CORE_CLK>,
<GCC_QSPI_CORE_CLK_SRC>,
@@ -490,6 +576,14 @@ &pm660_charger {
status = "okay";
};
+&pm660_gpios {
+ cam_vio_pin: cam-vio-state {
+ pins = "gpio13";
+ function = "normal";
+ power-source = <0>;
+ };
+};
+
&pm660_rradc {
status = "okay";
};
@@ -508,6 +602,12 @@ led-0 {
};
&pm660l_gpios {
+ cam_front_ldo_pin: cam-front-state {
+ pins = "gpio4";
+ function = "normal";
+ power-source = <0>;
+ };
+
vol_up_pin: vol-up-state {
pins = "gpio7";
function = "normal";
--
2.53.0
^ permalink raw reply related [flat|nested] 5+ messages in thread* Re: [PATCH v12 0/3] arm64: dts: qcom: sdm670-google-sargo: front camera support
2026-03-31 19:44 [PATCH v12 0/3] arm64: dts: qcom: sdm670-google-sargo: front camera support Richard Acayan
` (2 preceding siblings ...)
2026-03-31 19:44 ` [PATCH v12 3/3] arm64: dts: qcom: sdm670-google-sargo: add imx355 front camera Richard Acayan
@ 2026-05-07 20:34 ` Bjorn Andersson
3 siblings, 0 replies; 5+ messages in thread
From: Bjorn Andersson @ 2026-05-07 20:34 UTC (permalink / raw)
To: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, devicetree, Richard Acayan
Cc: Mauro Carvalho Chehab, Bryan O'Donoghue, Robert Foss,
Todor Tomov, Vladimir Zapolskiy, Tianshu Qiu, Sakari Ailus,
linux-media, Robert Mader, David Heidelberg, phone-devel
On Tue, 31 Mar 2026 15:44:34 -0400, Richard Acayan wrote:
> This adds support for the IMX355 in devicetree and adds support for the
> Pixel 3a front camera.
>
> Changes since v11 (https://lore.kernel.org/r/20260324020132.8683-1-mailingradian@gmail.com):
> - mention 24 MHz in mclk2 comment (3/3)
> - drop applied patches (previously 1-4/7)
>
> [...]
Applied, thanks!
[1/3] arm64: dts: qcom: sdm670: label the camss ports instead of endpoints
commit: cbdf1a61dde22c226a776d60ea5bff260b94f653
[2/3] arm64: dts: qcom: sdm670: add camera mclk pins
commit: 86695909eab6bfa577bf68c615dbe852ba9c8197
[3/3] arm64: dts: qcom: sdm670-google-sargo: add imx355 front camera
commit: 8d3a34d7890faa4d968b16e29c5c80e559291fd2
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 5+ messages in thread