On Sat, Apr 11, 2026 at 12:12:02PM +0200, David Heidelberg via B4 Relay wrote:
> From: David Heidelberg <[email protected]>
> 
> 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 <[email protected]>
> ---
>  arch/arm64/boot/dts/qcom/sdm845-google-common.dtsi | 187 
> ++++++++++++++++++++-
>  1 file changed, 186 insertions(+), 1 deletion(-)
> 
> @@ -319,6 +362,12 @@ vreg_l28a_3p0: ldo28 {
>                        */
>                       regulator-always-on;
>               };
> +
> +             cam_vio_1p8:

No need for extra labels.

> +             vreg_lvs1_1p8: lvs1 {
> +                     regulator-min-microvolt = <1800000>;
> +                     regulator-max-microvolt = <1800000>;
> +             };
>       };
>  
>       regulators-1 {
> @@ -351,6 +400,45 @@ vreg_s3c_0p6: smps3 {
>       };
>  };
>  
> +&camss {
> +     vdda-phy-supply = <&vreg_l1a_0p875>;
> +     vdda-pll-supply = <&vreg_l26a_1p2>;
> +
> +     vdda-csi0-supply = <&vdda_mipi_csi0_0p9>;
> +     vdda-csi1-supply = <&vdda_mipi_csi1_0p9>;
> +     vdda-csi2-supply = <&vdda_mipi_csi2_0p9>;
> +
> +     status = "okay";
> +
> +     ports {
> +             #address-cells = <1>;
> +             #size-cells = <0>;
> +
> +             port@1 {
> +                     reg = <1>;
> +                     camss_endpoint1: endpoint {
> +                             bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
> +                             data-lanes = <0 1 2 3>;
> +                             remote-endpoint = <&cam_aux_front_endpoint>;
> +                     };
> +             };
> +
> +             port@2 {
> +                     reg = <2>;
> +                     camss_endpoint2: endpoint {
> +                             bus-type = <MEDIA_BUS_TYPE_CSI2_DPHY>;
> +                             data-lanes = <0 1 2 3>;
> +                             remote-endpoint = <&cam_front_endpoint>;
> +                     };
> +             };
> +     };
> +};
> +
> +&cci0_sleep {
> +     /* bus has external pull-up, don't pull down */
> +     bias-disable;
> +};
> +
>  &cci {
>       status = "okay";
>  };
> @@ -358,7 +446,72 @@ &cci {
>  &cci_i2c1 {
>       /* actuator @0c */
>  
> -     /* front camera, imx355 @1a */
> +     front_cam: camera@10 {
> +             compatible = "sony,imx355";
> +             reg = <0x10>;
> +
> +             clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
> +             assigned-clocks = <&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 = <19200000>;
> +
> +             reset-gpios = <&tlmm 21 GPIO_ACTIVE_LOW>;
> +
> +             avdd-supply = <&camera_front_avdd>;
> +             dvdd-supply = <&vreg_s3a_1p35>;
> +             dovdd-supply = <&cam_vio_1p8>;
> +
> +             /* MCLK2 pin (gpio15) is claimed by the aux sensor */

Can we require it from the camss node then?

> +             pinctrl-0 = <&cam_front_reset_default_pin>;
> +             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_endpoint2>;
> +                     };
> +             };
> +     };
> +
> +     front_aux_cam: camera@1a {
> +             compatible = "sony,imx355";
> +             reg = <0x1a>;
> +
> +             clocks = <&clock_camcc CAM_CC_MCLK2_CLK>;
> +             assigned-clocks = <&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 = <19200000>;
> +
> +             reset-gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
> +
> +             avdd-supply = <&camera_front_aux_avdd>;
> +             dvdd-supply = <&vreg_s3a_1p35>;
> +             dovdd-supply = <&cam_vio_1p8>;
> +
> +             pinctrl-0 = <&cam_mclk2_default 
> &cam_front_aux_reset_default_pin>;
> +             pinctrl-names = "default";
> +
> +             rotation = <270>;
> +             orientation = <0>;
> +
> +             port {
> +                     cam_aux_front_endpoint: endpoint {
> +                             data-lanes = <1 2 3 4>;
> +                             link-frequencies = /bits/ 64 <360000000>;
> +                             remote-endpoint = <&camss_endpoint1>;
> +                     };
> +             };
> +     };
>  
>       /* eeprom @50, at24 driver says 8K */
>  };
-- 
With best wishes
Dmitry

Reply via email to