On Thu, Dec 06, 2018 at 04:43:33PM +0530, Jagan Teki wrote: > On Mon, Dec 3, 2018 at 3:55 PM Chen-Yu Tsai <wens@xxxxxxxx> wrote: > > > > On Mon, Dec 3, 2018 at 6:08 PM Jagan Teki <jagan@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > > > Amarula A64-Relic board by default bound with OV5640 camera, > > > so add support for it with below pin information. > > > > > > - PE13, PE12 via i2c-gpio bitbanging > > > - CLK_CSI_MCLK as external clock > > > - PE1 as external clock pin muxing > > > - DLDO3 as vcc-csi supply > > > - DLDO3 as AVDD supply > > > - ALDO1 as DOVDD supply > > > - ELDO3 as DVDD supply > > > - PE14 gpio for reset pin > > > - PE15 gpio for powerdown pin > > > > > > Signed-off-by: Jagan Teki <jagan@xxxxxxxxxxxxxxxxxxxx> > > > --- > > > .../allwinner/sun50i-a64-amarula-relic.dts | 54 +++++++++++++++++++ > > > arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi | 5 ++ > > > 2 files changed, 59 insertions(+) > > > > > > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts > > > index 6cb2b7f0c817..9ac6d773188b 100644 > > > --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts > > > +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-amarula-relic.dts > > > @@ -22,6 +22,41 @@ > > > stdout-path = "serial0:115200n8"; > > > }; > > > > > > + i2c-csi { > > > + compatible = "i2c-gpio"; > > > + sda-gpios = <&pio 4 13 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; > > > + scl-gpios = <&pio 4 12 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>; > > > > FYI our hardware doesn't do open drain. > > True, but the kernel is enforcing it seems, from the change from [1]. > does that mean Linux use open drain even though hardware doens't have? > or did I miss anything? It's forced because you can't do I2C without open drain. Things like the slave doing clock stretching won't work. Rob