I managed to write a more or less complete implementation based on your code 
(although I think it was mostly
rewritten). Can you have a look at the PR here: 
https://github.com/apache/incubator-nuttx/pull/2717 ?
(I couldn't find your github username). 

I haven't tested this yet, as I'm unsure about GPIO handling (don't want to fry 
any pins or the I2C device). 

Best,
Matias

On Mon, Jan 18, 2021, at 20:07, Fotis Panagiotopoulos wrote:
> Feel free to ask if anything is not clear to you, or you need any
> information on the included headers.
> 
> One detail. This driver does support clock-stretching, with the assumption
> that the selected GPIOs can be set to open-collector mode! Which is not
> true for all MCUs, or all pins.
> If your slave devices do not support clock-stretching, I think you can get
> away with normal plain push-pull GPIOs. Of course, in this case,  you will
> have to manually switch the GPIOs between inputs and outputs.
> 
> In any case, this has to be handled somehow from the driver.
> 
> Στις Τρί, 19 Ιαν 2021 στις 12:31 π.μ., ο/η Matias N. <mat...@imap.cc>
> έγραψε:
> 
> > Thanks a lot!
> > I will convert it to a proper NuttX driver, test it and open a PR.
> >
> > Best,
> > Matias
> >
> > On Mon, Jan 18, 2021, at 17:05, Fotis Panagiotopoulos wrote:
> > > Also the Maple lib is C++, while my code is pure C.
> > >
> > > The code is not published anywhere, till now.
> > >
> > > I am attaching it here.
> > > If you have any problems, I can create a new github repo for you.
> > >
> > >
> > >
> > > *Attachments:*
> > >  * i2c.c
> > >  * i2c.h
> >
> 

Reply via email to