From nobody Mon Jun 15 15:11:21 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 69F90334C05; Sat, 11 Apr 2026 10:09:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775902186; cv=none; b=LkkrYGEAMzHobI0B7pQlaRgK6vL9nQf1ZGmEtECOeyT8VNCnpBG2HsHdJIQk4a5jXvdhrpUwlcGzQzE+QQpFyEI7pjoOp1ZSYuxCPOCzRGsIot5rGfVqBRCPYZnHpF8vc0msqCmtHwuOifRS1rSZiFX46wwbz4TIKy/1bKWSyjk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775902186; c=relaxed/simple; bh=NdMtaSdTLfpsTfZlgnZf+vYaAvPEIw9oE+oKHLTdsIs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aYgTuvdFPnvRYolgg20At8BHTebd/ugPsWuw+I01ww4efuS48KiuGaRlr9EZDaCy4+hRiE/GwEDVE3pMfY+XSlxExKHMuYWD4SVFb8aItPQEuwa52lT4NRGcKQM2fYgBc8NVEqiHzdESexQ1LpmKnHbDm71fdOG0Ah//pRvZhhg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Bu3x0UOt; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Bu3x0UOt" Received: by smtp.kernel.org (Postfix) with ESMTPS id 1019FC116C6; Sat, 11 Apr 2026 10:09:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1775902186; bh=NdMtaSdTLfpsTfZlgnZf+vYaAvPEIw9oE+oKHLTdsIs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=Bu3x0UOtfmnNIMeGXPEJjI0RqrJdKOIdjYAHb31u9xUvx0+Cir2Wrh7zafxNyP3b6 ilZ6kkAzOg41QoXn2w7LQdTPtqp3HX+uLlMELAsr0Hmrt+mBlUyUNwKVz9ipR5Mm66 cHqYSbGIaPQuFYl1qo0AWXMLVWTP4vnY8XlY8D78WmRIQ/7BsOx1zdAS1RMJiBy0Yj AclgA+VcWZrD8zViBuHGAUYh/uryZ8QQtIxQlw6XDzHSCktOK34IeBD9NRU5hWZ4nB jUarnO9H8EsA1Ci5NgzAMzHifkFCHfyozjUfevukBFI5d5JFeOajdL5Mz5cuAsRcGi 4o25GRAJhMmyw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 007BAF45A19; Sat, 11 Apr 2026 10:09:46 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sat, 11 Apr 2026 12:09:41 +0200 Subject: [PATCH 1/2] arm64: dts: qcom: sdm845-google: Add dual front IMX355 cameras Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260411-pixel3-camera-v1-1-2757606515b6@ixit.cz> References: <20260411-pixel3-camera-v1-0-2757606515b6@ixit.cz> In-Reply-To: <20260411-pixel3-camera-v1-0-2757606515b6@ixit.cz> To: Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Petr Hodina , Richard Acayan , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=6705; i=david@ixit.cz; h=from:subject:message-id; bh=re7F5Z+Enf8P/iTLhHv2AWhHynUi8vNdPeOLUyk9VAw=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBp2h3oQT6SwCp/AL33cmrmsFpUuPl4hEHD3XhL5 dDxO4GMEzWJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCadod6AAKCRBgAj/E00kg cgQTEACy0m8jRqeklR/v+N19MUp4dntCyDkcm81Qr1V6f6NiXfbO/Ojgjv/bYPlY2aGgmem3vcF BX+aMyJCuBvO3b/RNt0VIPmAGQsgxIirBxwUC6Vv/C+SqmyzyVr3RCVHNshF68BlTMftq8S1HPK jeadH6JszJGPJLuub6UHRqL9beIsH7TeThd6EQL2GClIjyBX6wzqU59Llj3473MvtLtGl8Q7aIR aVqknDoNQKt89w2Mx35F4UUYNXBv6sIHRgopqDtUOEzKu985v/raVla/HRIAEr3RSdTOn3DIHiJ 4rC88h5CYZaG80IjyhRNUk+Fxik5qXPKshuzUadhrgHBVsZeF6QA6b/2ePWzbntThtttouz4gFf mCbIPqcmplMJSlWBDjC2tpmndLgaK4CFTtrdw2H9E7I7rpuWjZog4Mn6EBeBHyb+K67qIN8jiE2 Bur54hwUaNhnkIoJPmq9/En/tNqtSlvmELVJK3wJkM8vtEux4aV+ESt+TMy0n7b0IODur+CWxzb 8/FCm5r/ijlFzRCjj0PyAirlIQTwJDMUjQ3QpkRvkTXmE3ygd9lL9aRrpg9Bw4okcHeGNBQKP9s cw7kD1/L4cczMlbMMURgmBxFo7/BnishquzEGduBHtEJzFkKto/t21BtpCPo1yoduZ2ONpdLHFc Guxlp8vURDjPDAA== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg The Pixel 3 features two front-facing Sony IMX355 sensors with different focal lengths (standard and wide-angle). Both sensors are connected via CSIPHY1 and controlled over CCI I2C1, using MCLK2 as the clock source. Describe the camera nodes and associated resources in the device tree. This enables support for the dual front camera configuration. Signed-off-by: David Heidelberg --- arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi | 187 +++++++++++++++++= +++- 1 file changed, 186 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi b/arch/arm6= 4/boot/dts/qcom/sdm845-google-common.dtsi index 6930066857768..084058a597c10 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi @@ -6,6 +6,7 @@ #include #include #include +#include #include =20 #include "sdm845.dtsi" @@ -132,6 +133,38 @@ vreg_s4a_1p8: regulator-vreg-s4a-1p8 { vin-supply =3D <&vph_pwr>; }; =20 + camera_front_avdd: front-cam-avdd-regulator { + compatible =3D "regulator-fixed"; + regulator-name =3D "front_cam_avdd"; + + regulator-min-microvolt =3D <2800000>; + regulator-max-microvolt =3D <2800000>; + + gpios =3D <&tlmm 8 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-0 =3D <&cam_front_avdd_default_pin>; + pinctrl-names =3D "default"; + + vin-supply =3D <&vreg_bob>; + }; + + camera_front_aux_avdd: front-cam-aux-avdd-regulator { + compatible =3D "regulator-fixed"; + regulator-name =3D "front_cam_aux_avdd"; + + regulator-min-microvolt =3D <2800000>; + regulator-max-microvolt =3D <2800000>; + + gpios =3D <&tlmm 14 GPIO_ACTIVE_HIGH>; + enable-active-high; + + pinctrl-0 =3D <&cam_front_aux_avdd_default_pin>; + pinctrl-names =3D "default"; + + vin-supply =3D <&vreg_bob>; + }; + wcn3990-pmu { compatible =3D "qcom,wcn3990-pmu"; =20 @@ -214,6 +247,9 @@ vreg_s7a_1p025: smps7 { regulator-max-microvolt =3D <1028000>; }; =20 + vdda_mipi_csi0_0p9: + vdda_mipi_csi1_0p9: + vdda_mipi_csi2_0p9: vdda_mipi_dsi0_pll: vreg_l1a_0p875: ldo1 { regulator-min-microvolt =3D <880000>; @@ -288,6 +324,13 @@ vreg_l21a_2p95: ldo21 { regulator-initial-mode =3D ; }; =20 + vreg_l22a_3p3: ldo22 { + regulator-min-microvolt =3D <2864000>; + regulator-max-microvolt =3D <2864000>; + + regulator-boot-on; + }; + vreg_l24a_3p075: ldo24 { regulator-min-microvolt =3D <3088000>; regulator-max-microvolt =3D <3088000>; @@ -319,6 +362,12 @@ vreg_l28a_3p0: ldo28 { */ regulator-always-on; }; + + cam_vio_1p8: + vreg_lvs1_1p8: lvs1 { + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + }; }; =20 regulators-1 { @@ -351,6 +400,45 @@ vreg_s3c_0p6: smps3 { }; }; =20 +&camss { + vdda-phy-supply =3D <&vreg_l1a_0p875>; + vdda-pll-supply =3D <&vreg_l26a_1p2>; + + vdda-csi0-supply =3D <&vdda_mipi_csi0_0p9>; + vdda-csi1-supply =3D <&vdda_mipi_csi1_0p9>; + vdda-csi2-supply =3D <&vdda_mipi_csi2_0p9>; + + status =3D "okay"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@1 { + reg =3D <1>; + camss_endpoint1: endpoint { + bus-type =3D ; + data-lanes =3D <0 1 2 3>; + remote-endpoint =3D <&cam_aux_front_endpoint>; + }; + }; + + port@2 { + reg =3D <2>; + camss_endpoint2: endpoint { + bus-type =3D ; + data-lanes =3D <0 1 2 3>; + remote-endpoint =3D <&cam_front_endpoint>; + }; + }; + }; +}; + +&cci0_sleep { + /* bus has external pull-up, don't pull down */ + bias-disable; +}; + &cci { status =3D "okay"; }; @@ -358,7 +446,72 @@ &cci { &cci_i2c1 { /* actuator @0c */ =20 - /* front camera, imx355 @1a */ + front_cam: camera@10 { + compatible =3D "sony,imx355"; + reg =3D <0x10>; + + clocks =3D <&clock_camcc CAM_CC_MCLK2_CLK>; + assigned-clocks =3D <&clock_camcc CAM_CC_MCLK2_CLK>; + /* + * The sensor can accept a 24 MHz clock, but 19.2 MHz has + * better driver compatibility. + */ + assigned-clock-rates =3D <19200000>; + + reset-gpios =3D <&tlmm 21 GPIO_ACTIVE_LOW>; + + avdd-supply =3D <&camera_front_avdd>; + dvdd-supply =3D <&vreg_s3a_1p35>; + dovdd-supply =3D <&cam_vio_1p8>; + + /* MCLK2 pin (gpio15) is claimed by the aux sensor */ + pinctrl-0 =3D <&cam_front_reset_default_pin>; + pinctrl-names =3D "default"; + + rotation =3D <270>; + orientation =3D <0>; + + port { + cam_front_endpoint: endpoint { + data-lanes =3D <1 2 3 4>; + link-frequencies =3D /bits/ 64 <360000000>; + remote-endpoint =3D <&camss_endpoint2>; + }; + }; + }; + + front_aux_cam: camera@1a { + compatible =3D "sony,imx355"; + reg =3D <0x1a>; + + clocks =3D <&clock_camcc CAM_CC_MCLK2_CLK>; + assigned-clocks =3D <&clock_camcc CAM_CC_MCLK2_CLK>; + /* + * The sensor can accept a 24 MHz clock, but 19.2 MHz has + * better driver compatibility. + */ + assigned-clock-rates =3D <19200000>; + + reset-gpios =3D <&tlmm 9 GPIO_ACTIVE_LOW>; + + avdd-supply =3D <&camera_front_aux_avdd>; + dvdd-supply =3D <&vreg_s3a_1p35>; + dovdd-supply =3D <&cam_vio_1p8>; + + pinctrl-0 =3D <&cam_mclk2_default &cam_front_aux_reset_default_pin>; + pinctrl-names =3D "default"; + + rotation =3D <270>; + orientation =3D <0>; + + port { + cam_aux_front_endpoint: endpoint { + data-lanes =3D <1 2 3 4>; + link-frequencies =3D /bits/ 64 <360000000>; + remote-endpoint =3D <&camss_endpoint1>; + }; + }; + }; =20 /* eeprom @50, at24 driver says 8K */ }; @@ -459,6 +612,38 @@ &tlmm { gpio-reserved-ranges =3D < 0 4>, /* SPI (Intel MNH Pixel Visual Core) */ <81 4>; /* SPI (most likely Fingerprint Cards FPC1075) */ =20 + cam_front_avdd_default_pin: cam-avdd-default-pins { + pins =3D "gpio8"; + function =3D "gpio"; + + bias-disable; + drive-strength =3D <2>; + }; + + cam_front_aux_reset_default_pin: cam-front-aux-reset-default-pins { + pins =3D "gpio9"; + function =3D "gpio"; + + bias-disable; + drive-strength =3D <2>; + }; + + cam_front_aux_avdd_default_pin: cam-avdd-aux-default-pins { + pins =3D "gpio14"; + function =3D "gpio"; + + bias-disable; + drive-strength =3D <2>; + }; + + cam_front_reset_default_pin: cam-front-reset-default-pins { + pins =3D "gpio21"; + function =3D "gpio"; + + bias-disable; + drive-strength =3D <2>; + }; + touchscreen_reset: ts-reset-state { pins =3D "gpio99"; function =3D "gpio"; --=20 2.53.0 From nobody Mon Jun 15 15:11:21 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 69E792DEA89; Sat, 11 Apr 2026 10:09:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775902186; cv=none; b=bGpJxpt0JxVEU0uaGPkGvE4FG70g9+kt2eWUferjo6jfgSLGMbGbHjxFc1jyJobea6QoRiy2FkP3oBVuR8hlasKEEZ0wDY7zQ3634tYkIvRoGMzxEdvbmoZjQrqvOLlJMjnYglHEuKxzamo9FoaFITJ/uR5EEJkXQN+opZvEMoI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775902186; c=relaxed/simple; bh=aHkag2bgGWJuetbIYmA97ncXylKETCgO8fdrXNb+DrI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=j+4XodStejH8r1FbUQU81gjx/MpdGkE64ROx5mUp4ca9YF2ZAToOPdrm/ahoTaW2ConrylRiv22wzaUjMaQ56Om1TDjkpPmJP9euxvO37+FICBQiWXtAvNTyF/T7U8ziu0u6KR7k/Hr4E1vZJPKNd7TZIWBowN+Oxc23ogElZ0Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=DdBtLj1j; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="DdBtLj1j" Received: by smtp.kernel.org (Postfix) with ESMTPS id 1F4C6C2BC9E; Sat, 11 Apr 2026 10:09:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1775902186; bh=aHkag2bgGWJuetbIYmA97ncXylKETCgO8fdrXNb+DrI=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=DdBtLj1j0iUHnMRzBQBDqhfYUB43gnkVzkijWt9JjvF/GLx8iiQU52WI1rcyp+Bzp czfasXqhqspHz2xL/8FmN8boODeiE/J8K5pxRP5VvLvqsbZyt74XT9fpPNZcge+3Kv zvqCELISp4/l8S/UncN0sU1FRXM0Sb/fPCgXSBo5/BRUijJ0cPCD8xpCBqD+L9Zxc4 Y9UfewtgNfJJjucNwOrkGaGVEqCuU6IOBEjU2QE7sIKbkXxKFPsyOwBPljup/3muLZ at8IqGpzr4TVtiYS+c/EJWTse3H5xRIKTkuBZrJwpjoLjqC242jAWAUH33iQRwaio3 coWVFKC3z7vGQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 11225F44879; Sat, 11 Apr 2026 10:09:46 +0000 (UTC) From: David Heidelberg via B4 Relay Date: Sat, 11 Apr 2026 12:09:42 +0200 Subject: [PATCH 2/2] arm64: dts: qcom: sdm845-google: Enable PMI8998 camera flash LED Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260411-pixel3-camera-v1-2-2757606515b6@ixit.cz> References: <20260411-pixel3-camera-v1-0-2757606515b6@ixit.cz> In-Reply-To: <20260411-pixel3-camera-v1-0-2757606515b6@ixit.cz> To: Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Petr Hodina , Richard Acayan , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, phone-devel@vger.kernel.org, David Heidelberg X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1068; i=david@ixit.cz; h=from:subject:message-id; bh=oHm5gtJSD89tJ1iKZHr8Xq3et+1+samike+C1B2jGmY=; b=owEBbQKS/ZANAwAIAWACP8TTSSByAcsmYgBp2h3oq4IMTLAc/PJcUwxGj3JyjDtnXbhTJHmGQ iR0OqwcdPOJAjMEAAEIAB0WIQTXegnP7twrvVOnBHRgAj/E00kgcgUCadod6AAKCRBgAj/E00kg cnI+D/0emBL5iXqIrTA1BWpgqCf2aZ38y4Goa5MEEibIwJAk48Iz09pfK1lpxOlIY/OHT0Nr5mL sLMCP40ZPb+HBk+IY81w78LSTJoYzKYiKiTF4gONsHVl1AZr18pj5i2qA9UhRG27Zchja6j9zOF uvhoak2wLVm6dHDGIBVnKi/IYa7i2MiQrbc8dtE+1hZqyObED6bccjF3Zzig/iIpt9eyVc0QyHY Uvye+Btk71UfIEim+JsbOVEd2dFuljRNa7jUR9rWb6qy8vNoAbzPPTy6Ow1Fds0AxCZJy8SLWlb 39+c91uLyoG3y7J4ICQy/AgvOE1FwzokoZTvR1AU2OWBEDhOKwqSqyrhBEKwKRIdBf7XepCgMD7 ZS1wSQ8PXW+7fb3p1/b1kYY+kYV/PYd8KDP0cE7X5DIpOwp35p8mWuYiclJKQJSh9MCuRawEY/E cwb+gYNEyp6FmhIIAFDKwfJ/a9ezPYVuxQkfFGbEXwD2ka6VGt+SYgTs4Q3GAASvyYh7RB86rMJ E46tdsnaeAZXCLF3hGjIGcZigVwjuS7WSY4Si3lfY+T3a1AMB0hUzdxPYreCSXZcRuGHZRoRzkp kFrGeDp1Bnh6+pEcqyTOvSL5A+PqPZeUdNtgUa2nJAm+FtiAqfgnM6+O/v5MYC2w2WTI4SDkSXt Olc9ItiTrrhTKBg== X-Developer-Key: i=david@ixit.cz; a=openpgp; fpr=D77A09CFEEDC2BBD53A7047460023FC4D3492072 X-Endpoint-Received: by B4 Relay for david@ixit.cz/default with auth_id=355 X-Original-From: David Heidelberg Reply-To: david@ixit.cz From: David Heidelberg Enable the PMI8998 flash LED block and describe the white flash LED used for the rear camera. Configure the LED in flash mode with hardware limits matching the original device configuration, including maximum current and timeout. Signed-off-by: David Heidelberg --- arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi b/arch/arm6= 4/boot/dts/qcom/sdm845-google-common.dtsi index 084058a597c10..3aa164c34f43f 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi @@ -590,6 +590,19 @@ &pmi8998_charger { status =3D "okay"; }; =20 +&pmi8998_flash { + status =3D "okay"; + + led-1 { + function =3D LED_FUNCTION_FLASH; + color =3D ; + led-sources =3D <2>; + led-max-microamp =3D <500000>; + flash-max-microamp =3D <750000>; + flash-max-timeout-us =3D <1280000>; + }; +}; + &qupv3_id_0 { status =3D "okay"; }; --=20 2.53.0