Skip to content

Commit 32d3fc5

Browse files
flamingradian6by9
authored andcommitted
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>
1 parent 43ebaca commit 32d3fc5

1 file changed

Lines changed: 97 additions & 0 deletions

File tree

arch/arm64/boot/dts/qcom/sdm670-google-sargo.dts

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,34 @@
172172
regulator-min-microvolt = <1050000>;
173173
regulator-max-microvolt = <1050000>;
174174
};
175+
176+
cam_front_ldo: cam-front-ldo-regulator {
177+
compatible = "regulator-fixed";
178+
regulator-name = "cam_front_ldo";
179+
regulator-min-microvolt = <1352000>;
180+
regulator-max-microvolt = <1352000>;
181+
regulator-enable-ramp-delay = <135>;
182+
183+
gpios = <&pm660l_gpios 4 GPIO_ACTIVE_HIGH>;
184+
enable-active-high;
185+
186+
pinctrl-0 = <&cam_front_ldo_pin>;
187+
pinctrl-names = "default";
188+
};
189+
190+
cam_vio_ldo: cam-vio-ldo-regulator {
191+
compatible = "regulator-fixed";
192+
regulator-name = "cam_vio_ldo";
193+
regulator-min-microvolt = <1800000>;
194+
regulator-max-microvolt = <1800000>;
195+
regulator-enable-ramp-delay = <233>;
196+
197+
gpios = <&pm660_gpios 13 GPIO_ACTIVE_HIGH>;
198+
enable-active-high;
199+
200+
pinctrl-0 = <&cam_vio_pin>;
201+
pinctrl-names = "default";
202+
};
175203
};
176204

177205
&apps_rsc {
@@ -392,6 +420,61 @@
392420
};
393421
};
394422

423+
&camss {
424+
vdda-phy-supply = <&vreg_l1a_1p225>;
425+
vdda-pll-supply = <&vreg_s6a_0p87>;
426+
427+
status = "okay";
428+
};
429+
430+
&camss_port1 {
431+
camss_endpoint1: endpoint {
432+
data-lanes = <0 1 2 3>;
433+
remote-endpoint = <&cam_front_endpoint>;
434+
};
435+
};
436+
437+
&cci {
438+
pinctrl-0 = <&cci1_default>;
439+
pinctrl-1 = <&cci1_sleep>;
440+
pinctrl-names = "default", "sleep";
441+
442+
status = "okay";
443+
};
444+
445+
&cci_i2c1 {
446+
camera@1a {
447+
compatible = "sony,imx355";
448+
reg = <0x1a>;
449+
450+
clocks = <&camcc CAM_CC_MCLK2_CLK>;
451+
452+
/* Set 19.2 MHz for compatibility with Linux driver */
453+
assigned-clocks = <&camcc CAM_CC_MCLK2_CLK>;
454+
assigned-clock-rates = <19200000>;
455+
456+
reset-gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
457+
458+
avdd-supply = <&cam_front_ldo>;
459+
dvdd-supply = <&cam_front_ldo>;
460+
dovdd-supply = <&cam_vio_ldo>;
461+
462+
pinctrl-0 = <&cam_mclk2_default>;
463+
pinctrl-names = "default";
464+
465+
rotation = <270>;
466+
orientation = <0>;
467+
468+
port {
469+
cam_front_endpoint: endpoint {
470+
data-lanes = <1 2 3 4>;
471+
link-frequencies = /bits/ 64 <360000000>;
472+
remote-endpoint = <&camss_endpoint1>;
473+
};
474+
};
475+
};
476+
};
477+
395478
&gcc {
396479
protected-clocks = <GCC_QSPI_CORE_CLK>,
397480
<GCC_QSPI_CORE_CLK_SRC>,
@@ -491,6 +574,14 @@
491574
status = "okay";
492575
};
493576

577+
&pm660_gpios {
578+
cam_vio_pin: cam-vio-state {
579+
pins = "gpio13";
580+
function = "normal";
581+
power-source = <0>;
582+
};
583+
};
584+
494585
&pm660_rradc {
495586
status = "okay";
496587
};
@@ -509,6 +600,12 @@
509600
};
510601

511602
&pm660l_gpios {
603+
cam_front_ldo_pin: cam-front-state {
604+
pins = "gpio4";
605+
function = "normal";
606+
power-source = <0>;
607+
};
608+
512609
vol_up_pin: vol-up-state {
513610
pins = "gpio7";
514611
function = "normal";

0 commit comments

Comments
 (0)