Re: [PATCH v9 7/7] arm64: dts: qcom: sdm670-google-sargo: add imx355 front camera

David Heidelberg
2026-03-11T19:59:11Z

On 17/02/2026 01:27, Richard Acayan wrote:
> 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 | 95 +++++++++++++++++++
> 1 file changed, 95 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..e925cba0381f 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";
> + };
> +

[...]

> +
> +&cci_i2c1 {
> + camera@1a {
> + compatible = "sony,imx355";
> + reg = <0x1a>;
> +
> + clocks = <&camcc CAM_CC_MCLK2_CLK>;
> +
> + 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>;

It's unlikely that one supply is used both for digital and analog supply?

I see downstream does it, but I don't think it's correct.

> + dovdd-supply = <&cam_vio_ldo>;
> +
> + pinctrl-0 = <&cam_mclk2_default>;
> + pinctrl-names = "default";
> +
> + rotation = <270>;
> + orientation = <0>;
> +
> + port {
> + cam_front_endpoint: endpoint {
> + link-frequencies = /bits/ 64 <360000000>;
> + remote-endpoint = <&camss_endpoint1>;
> + };
> + };
> + };
> +};
> +
> &gcc {
> protected-clocks = <GCC_QSPI_CORE_CLK>,
> <GCC_QSPI_CORE_CLK_SRC>,
> @@ -490,6 +571,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 +597,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";

--
David Heidelberg