On Tue, Nov 27, 2018 at 4:01 PM Maxime Ripard <maxime.ripard@xxxxxxxxxxx> wrote: > > On Tue, Nov 27, 2018 at 12:26:09PM +0530, Jagan Teki wrote: > > On Tue, Nov 13, 2018 at 1:54 PM Maxime Ripard <maxime.ripard@xxxxxxxxxxx> wrote: > > > > > > Signed-off-by: Maxime Ripard <maxime.ripard@xxxxxxxxxxx> > > > --- > > > arch/arm/boot/dts/sun7i-a20-bananapi.dts | 98 +++++++++++++++++++++++++- > > > 1 file changed, 98 insertions(+) > > > > > > diff --git a/arch/arm/boot/dts/sun7i-a20-bananapi.dts b/arch/arm/boot/dts/sun7i-a20-bananapi.dts > > > index 70dfc4ac0bb5..18dbff9f1ce9 100644 > > > --- a/arch/arm/boot/dts/sun7i-a20-bananapi.dts > > > +++ b/arch/arm/boot/dts/sun7i-a20-bananapi.dts > > > @@ -54,6 +54,9 @@ > > > compatible = "lemaker,bananapi", "allwinner,sun7i-a20"; > > > > > > aliases { > > > + i2c0 = &i2c0; > > > + i2c1 = &i2c1; > > > + i2c2 = &i2c2; > > > serial0 = &uart0; > > > serial1 = &uart3; > > > serial2 = &uart7; > > > @@ -63,6 +66,41 @@ > > > stdout-path = "serial0:115200n8"; > > > }; > > > > > > + reg_cam: cam { > > > + compatible = "regulator-fixed"; > > > + regulator-name = "cam"; > > > + regulator-min-microvolt = <5000000>; > > > + regulator-max-microvolt = <5000000>; > > > + vin-supply = <®_vcc5v0>; > > > + gpio = <&pio 7 16 GPIO_ACTIVE_HIGH>; > > > + enable-active-high; > > > + regulator-always-on; > > > + }; > > > + > > > + reg_cam_avdd: cam-avdd { > > > + compatible = "regulator-fixed"; > > > + regulator-name = "cam500b-avdd"; > > > + regulator-min-microvolt = <2800000>; > > > + regulator-max-microvolt = <2800000>; > > > + vin-supply = <®_cam>; > > > + }; > > > + > > > + reg_cam_dovdd: cam-dovdd { > > > + compatible = "regulator-fixed"; > > > + regulator-name = "cam500b-dovdd"; > > > + regulator-min-microvolt = <1800000>; > > > + regulator-max-microvolt = <1800000>; > > > + vin-supply = <®_cam>; > > > + }; > > > + > > > + reg_cam_dvdd: cam-dvdd { > > > + compatible = "regulator-fixed"; > > > + regulator-name = "cam500b-dvdd"; > > > + regulator-min-microvolt = <1500000>; > > > + regulator-max-microvolt = <1500000>; > > > + vin-supply = <®_cam>; > > > + }; > > > + > > > hdmi-connector { > > > compatible = "hdmi-connector"; > > > type = "a"; > > > @@ -120,6 +158,27 @@ > > > >; > > > }; > > > > > > +&csi0 { > > > + pinctrl-names = "default"; > > > + pinctrl-0 = <&csi0_pins_a>; > > > + status = "okay"; > > > + > > > + port { > > > + #address-cells = <1>; > > > + #size-cells = <0>; > > > + > > > + csi_from_ov5640: endpoint { > > > + remote-endpoint = <&ov5640_to_csi>; > > > + bus-width = <8>; > > > + data-shift = <2>; > > > + hsync-active = <1>; /* Active high */ > > > + vsync-active = <0>; /* Active low */ > > > + data-active = <1>; /* Active high */ > > > + pclk-sample = <1>; /* Rising */ > > > + }; > > > + }; > > > +}; > > > + > > > &de { > > > status = "okay"; > > > }; > > > @@ -167,6 +226,39 @@ > > > }; > > > }; > > > > > > +&i2c1 { > > > + pinctrl-names = "default"; > > > + pinctrl-0 = <&i2c1_pins_a>; > > > + status = "okay"; > > > + > > > + camera: camera@21 { > > > + compatible = "ovti,ov5640"; > > > + reg = <0x21>; > > > + clocks = <&ccu CLK_CSI0>; > > > + clock-names = "xclk"; > > > + assigned-clocks = <&ccu CLK_CSI0>; > > > + assigned-clock-rates = <24000000>; > > > + > > > + reset-gpios = <&pio 7 14 GPIO_ACTIVE_LOW>; > > > + powerdown-gpios = <&pio 7 19 GPIO_ACTIVE_HIGH>; > > > + AVDD-supply = <®_cam_avdd>; > > > + DOVDD-supply = <®_cam_dovdd>; > > > + DVDD-supply = <®_cam_dvdd>; > > > + > > > + port { > > > + ov5640_to_csi: endpoint { > > > + remote-endpoint = <&csi_from_ov5640>; > > > + bus-width = <8>; > > > + data-shift = <2>; > > > + hsync-active = <1>; /* Active high */ > > > + vsync-active = <0>; /* Active low */ > > > + data-active = <1>; /* Active high */ > > > + pclk-sample = <1>; /* Rising */ > > > + }; > > > + }; > > > + }; > > > > Does ov5640 need any further patches, wrt linux-next? I'm trying to > > test this on top of linux-next but the slave id seems not detecting. > > > > [ 2.304711] ov5640 1-0021: Linked as a consumer to regulator.5 > > [ 2.310639] ov5640 1-0021: Linked as a consumer to regulator.6 > > [ 2.316592] ov5640 1-0021: Linked as a consumer to regulator.4 > > [ 2.351540] ov5640 1-0021: ov5640_init_slave_id: failed with -6 > > [ 2.357543] ov5640 1-0021: Dropping the link to regulator.5 > > [ 2.363224] ov5640 1-0021: Dropping the link to regulator.6 > > [ 2.368829] ov5640 1-0021: Dropping the link to regulator.4 > > > > Here is the full log [1], please let me know if I miss anything, I > > even tried to remove MCLK pin > > You seem to have made local modifications to your tree, what are they? > This indicates that the communication over i2c doesn't work, what is > your setup? I just used your commits on linux-next [2], with the setup similar in Page 5 on datasheet[3]. The only difference is csi build issue, I have updated similar fix you mentioned on sun6i_csi [4] [2] https://github.com/amarula/linux-amarula/commits/CSI-A20 [3] https://www.tme.eu/gb/Document/187887186b98a8f78b47da2774a34f4c/BPI-CAMERA.pdf [4] https://github.com/amarula/linux-amarula/commit/a6762ecd38f000e2bd02dd255f6fd0c1ae755429#diff-0809a7f97ca58771c1cda186e73ec657