Hi Paul, same comments as for patch 6. Best regards, Jernej On Wednesday, November 22, 2023 3:14:25 PM CET Paul Kocialkowski wrote: > Add an overlay supporting the OV8865 from the BananaPi Camera v3 > peripheral board. The board has two sensors (OV5640 and OV8865) > which cannot be supported in parallel as they share the same reset > pin and the kernel currently has no support for this case. > > Signed-off-by: Paul Kocialkowski <paul.kocialkowski@xxxxxxxxxxx> > --- > arch/arm/boot/dts/allwinner/Makefile | 1 + > .../sun8i-a83t-bananapi-m3-camera-ov8865.dtso | 109 ++++++++++++++++++ > 2 files changed, 110 insertions(+) > create mode 100644 arch/arm/boot/dts/allwinner/sun8i-a83t-bananapi-m3-camera-ov8865.dtso > > diff --git a/arch/arm/boot/dts/allwinner/Makefile b/arch/arm/boot/dts/allwinner/Makefile > index a0a9aa6595e4..980ac88634e3 100644 > --- a/arch/arm/boot/dts/allwinner/Makefile > +++ b/arch/arm/boot/dts/allwinner/Makefile > @@ -278,6 +278,7 @@ dtb-$(CONFIG_MACH_SUN8I) += \ > sun8i-a83t-allwinner-h8homlet-v2.dtb \ > sun8i-a83t-bananapi-m3.dtb \ > sun8i-a83t-bananapi-m3-camera-ov5640.dtbo \ > + sun8i-a83t-bananapi-m3-camera-ov8865.dtbo \ > sun8i-a83t-cubietruck-plus.dtb \ > sun8i-a83t-tbs-a711.dtb \ > sun8i-h2-plus-bananapi-m2-zero.dtb \ > diff --git a/arch/arm/boot/dts/allwinner/sun8i-a83t-bananapi-m3-camera-ov8865.dtso b/arch/arm/boot/dts/allwinner/sun8i-a83t-bananapi-m3-camera-ov8865.dtso > new file mode 100644 > index 000000000000..0656ee8d4bfe > --- /dev/null > +++ b/arch/arm/boot/dts/allwinner/sun8i-a83t-bananapi-m3-camera-ov8865.dtso > @@ -0,0 +1,109 @@ > +// SPDX-License-Identifier: GPL-2.0 OR X11 > +/* > + * Copyright 2022 Bootlin > + * Author: Kévin L'hôpital <kevin.lhopital@xxxxxxxxxxx> > + * Author: Paul Kocialkowski <paul.kocialkowski@xxxxxxxxxxx> > + */ > + > +/dts-v1/; > +/plugin/; > + > +#include <dt-bindings/clock/sun8i-a83t-ccu.h> > +#include <dt-bindings/gpio/gpio.h> > + > +&{/} { > + /* > + * These regulators actually have DLDO4 tied to their EN pin, which is > + * described as input supply here for lack of a better representation. > + * Their actual supply is PS, which is always-on. > + */ > + > + ov8865_avdd: ov8865-avdd { > + compatible = "regulator-fixed"; > + regulator-name = "ov8865-avdd"; > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <2800000>; > + vin-supply = <®_dldo4>; > + }; > + > + ov8865_dovdd: ov8865-dovdd { > + compatible = "regulator-fixed"; > + regulator-name = "ov8865-dovdd"; > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <2800000>; > + vin-supply = <®_dldo4>; > + }; > + > + ov8865_dvdd: ov8865-dvdd { > + compatible = "regulator-fixed"; > + regulator-name = "ov8865-dvdd"; > + regulator-min-microvolt = <1200000>; > + regulator-max-microvolt = <1200000>; > + vin-supply = <®_dldo4>; > + }; > +}; > + > +&ccu { > + assigned-clocks = <&ccu CLK_CSI_MCLK>; > + assigned-clock-parents = <&osc24M>; > + assigned-clock-rates = <24000000>; > +}; > + > +&csi { > + status = "okay"; > +}; > + > +&i2c2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c2_pe_pins>; > + status = "okay"; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + ov8865: camera@36 { > + compatible = "ovti,ov8865"; > + reg = <0x36>; > + > + clocks = <&ccu CLK_CSI_MCLK>; > + assigned-clocks = <&ccu CLK_CSI_MCLK>; > + assigned-clock-parents = <&osc24M>; > + assigned-clock-rates = <24000000>; > + > + avdd-supply = <&ov8865_avdd>; > + dovdd-supply = <&ov8865_dovdd>; > + dvdd-supply = <&ov8865_dvdd>; > + > + powerdown-gpios = <&pio 4 17 GPIO_ACTIVE_LOW>; /* PE17 */ > + reset-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>; /* PE16 */ > + > + port { > + ov8865_out_mipi_csi2: endpoint { > + remote-endpoint = <&mipi_csi2_in_ov8865>; > + link-frequencies = /bits/ 64 <360000000>; > + data-lanes = <1 2 3 4>; > + }; > + }; > + }; > +}; > + > +&mipi_csi2 { > + status = "okay"; > +}; > + > +&mipi_csi2_in { > + mipi_csi2_in_ov8865: endpoint { > + remote-endpoint = <&ov8865_out_mipi_csi2>; > + data-lanes = <1 2 3 4>; > + }; > +}; > + > +&pio { > + pinctrl-names = "default"; > + pinctrl-0 = <&csi_mclk_pin>; > +}; > + > +®_dldo4 { > + regulator-min-microvolt = <2800000>; > + regulator-max-microvolt = <2800000>; > +}; >