arm64: dts: qcom: sdm670-google-sargo: add imx355 front camera

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>
Link: https://lore.kernel.org/r/20260331194437.41041-4-mailingradian@gmail.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
Richard Acayan
2026-03-31 15:44:37 -04:00
committed by Bjorn Andersson
parent 86695909ea
commit 8d3a34d789

View File

@@ -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";