Re: [PATCH 10/11] arm64: dts: qcom: x1e80100-lenovo-yoga-slim7x: Add ov02c10 RGB sensor on CSIPHY4
From: Aleksandrs Vinarskis
Date: Sat Feb 28 2026 - 08:06:09 EST
On 2/26/26 15:51, Bryan O'Donoghue wrote:
> Add in the RGB sensor on CSIPHY4.
>
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
Hi Bryan,
Thanks for re-spin of this series,
> ---
> .../boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts | 77 ++++++++++++++++++++++
> 1 file changed, 77 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts b/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts
> index f10dff1da7f8e..f3f4841ad2c83 100644
> --- a/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts
> +++ b/arch/arm64/boot/dts/qcom/x1e80100-lenovo-yoga-slim7x.dts
> @@ -7,6 +7,7 @@
>
> #include <dt-bindings/gpio/gpio.h>
> #include <dt-bindings/input/gpio-keys.h>
> +#include <dt-bindings/phy/phy.h>
> #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
>
> #include "hamoa.dtsi"
> @@ -856,6 +857,66 @@ &gpu_zap_shader {
> firmware-name = "qcom/x1e80100/LENOVO/83ED/qcdxkmsuc8380.mbn";
> };
>
> +&camss {
> + status = "okay";
> +
> + ports {
> + /*
> + * port0 => csiphy0
> + * port1 => csiphy1
> + * port2 => csiphy2
> + * port3 => csiphy4
> + */
> + port@3 {
> + camss_csiphy4_inep0: endpoint@0 {
> + clock-lanes = <7>;
> + data-lanes = <0 1>;
> + remote-endpoint = <&ov02c10_ep>;
> + };
> + };
> + };
> +};
> +
> +&cci1 {
> + status = "okay";
> +};
> +
> +&cci1_i2c1 {
> + camera@36 {
> + compatible = "ovti,ov02c10";
> + reg = <0x36>;
> +
> + reset-gpios = <&tlmm 237 GPIO_ACTIVE_LOW>;
> + pinctrl-names = "default";
> + pinctrl-0 = <&cam_rgb_default>;
> +
> + clocks = <&camcc CAM_CC_MCLK4_CLK>;
> + assigned-clocks = <&camcc CAM_CC_MCLK4_CLK>;
> + assigned-clock-rates = <19200000>;
> +
> + orientation = <0>; /* front facing */
> +
> + avdd-supply = <&vreg_l7m_2p8>;
> + dvdd-supply = <&vreg_l2m_1p2>;
> + dovdd-supply = <&vreg_l4m_1p8>;
It probably got lost around as its been a while since last re-spin: as
discussed in private and reported to 'issue' in Linaro's tree on gitlab,
these are wrong. l7m/l2m/l4m are regulators used by Lenovo t14s, confirmed
by device working and via AeoB dumps [1]. As per respective AeoB dump for
Slim7x [2], these should be l7b/l1m/l3m instead. This arrangement was also
confirmed working by community members (see discussion in gitlab issue [3]).
I have previously submitted a patch to Linaro tree to have this fixed [4],
feel free to squash it with your changes.
[1]
https://github.com/alexVinarskis/qcom-aeob-dumps/blob/master/lenovo-thinkpad-t14s-g6/CAMF_RES_QRD.json#L117-L155
[2]
https://github.com/alexVinarskis/qcom-aeob-dumps/blob/master/lenovo-yoga-slim7x/CAMF_RES_QRD.json#L116-L154
[3] https://gitlab.com/Linaro/arm64-laptops/linux/-/issues/9
[4] https://gitlab.com/Linaro/arm64-laptops/linux/-/work_items/26
> +
> + port {
> + ov02c10_ep: endpoint {
> + data-lanes = <1 2>;
> + link-frequencies = /bits/ 64 <400000000>;
> + remote-endpoint = <&camss_csiphy4_inep0>;
> + };
> + };
> + };
> +};
> +
> +&csiphy4 {
> + vdda-0p8-supply = <&vreg_l2c_0p8>;
> + vdda-1p2-supply = <&vreg_l1c_1p2>;
> +
> + status = "okay";
> +};
> +
> &i2c0 {
> clock-frequency = <400000>;
>
> @@ -1403,6 +1464,22 @@ &tlmm {
> <44 4>, /* SPI (TPM) */
> <238 1>; /* UFS Reset */
>
> + cam_rgb_default: cam-rgb-default-state {
> + mclk-pins {
> + pins = "gpio100";
> + function = "cam_aon";
> + drive-strength = <16>;
> + bias-disable;
> + };
> +
> + reset-n-pins {
> + pins = "gpio237";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> + };
> +
While at it, could you please add privacy LEDs gpios for the camera? In
the same Linaro gitlab issue [4] I have added fixup patches to enable LED
on t14s/slim7x/thena and confirmed them working. Feel free to add those
changes directly to your patch.
I could of course send them separately once this series lands, but given
that its a rather small change, and this initial camera support will be
used as ground-truth example by community to enable cameras on their
platforms, it would be nice to have privacy indicator included from the
very beginning. v4l side that would use this LED was merged a while ago.
Thanks,
Alex
> edp_reg_en: edp-reg-en-state {
> pins = "gpio70";
> function = "gpio";
>