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 > > >