Date: Thu, 18 Apr 2019 08:19:33 -0600 From: Ian Lepore <ian@freebsd.org> To: Daniel Braniss <danny@cs.huji.ac.il>, Emmanuel Vadot <manu@bidouilliste.com> Cc: "freebsd-arm@freebsd.org" <arm@freebsd.org> Subject: Re: i2c almost working for me, was Re: i2c still not working for me Message-ID: <64b5598e2c8c7265f89a31b1f191cb1be318788a.camel@freebsd.org> In-Reply-To: <DDDAC739-D68F-4843-BF89-3044ED442F69@cs.huji.ac.il> References: <12F641C3-9FAA-4A3A-BA18-A7302F3A0F5E@cs.huji.ac.il> <20190409095819.c560dbc156c46e5ca0244e3e@bidouilliste.com> <23A47048-642A-481C-B7BE-B61E55F82955@cs.huji.ac.il> <20190409171604.GA4581@bluezbox.com> <FCA4E00E-455A-46BF-AD78-E20E1E997BFC@cs.huji.ac.il> <6119CE3B-6042-4DDC-82BE-B0C0C7ADA838@cs.huji.ac.il> <5D4799BC-08DF-4F3D-81A4-C2D938F4AF93@cs.huji.ac.il> <20190417222601.c037efe0cb48987c81032bac@bidouilliste.com> <DDDAC739-D68F-4843-BF89-3044ED442F69@cs.huji.ac.il>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 2019-04-18 at 10:12 +0300, Daniel Braniss wrote: > > On 17 Apr 2019, at 23:26, Emmanuel Vadot <manu@bidouilliste.com> > > wrote: > > > > On Tue, 16 Apr 2019 09:16:02 +0300 > > Daniel Braniss <danny@cs.huji.ac.il <mailto:danny@cs.huji.ac.il>> > > wrote: > > > > > > > > > > > > On 11 Apr 2019, at 09:56, Daniel Braniss <danny@cs.huji.ac.il> > > > > wrote: > > > > > > > > if no device is connected, I2CRDWR hangs, > > > > it also happens with i2c(8) -s, only reboot helps. > > > > > > > > ichb1: twsi_reset: Using IIC_FASTEST/UNKNOWN mode with speed > > > > param=2a > > > > iichb1: TWSI_WRITE: Writing 0 to 18 > > > > iichb1: TWSI_WRITE: Writing 2a to 14 > > > > iichb1: TWSI_WRITE: Writing 40 to c > > > > iichb1: TWSI_WRITE: Writing c4 to c > > > > iichb1: twsi_transfer: transmitting 2 messages > > > > iichb1: TWSI_READ: read f8 from 10 > > > > iichb1: twsi_transfer: status=f8 > > > > iichb1: twsi_transfer: msg[0] flags: 0 > > > > iichb1: twsi_transfer: msg[0] len: 9 > > > > iichb1: TWSI_WRITE: Writing e4 to c > > > > > > > > and now it?s hung > > > > > > [?] > > > > I don't see that on my OrangePi One or Pine64-LTS. > > well, mine is are Nanopi Neo, maybe it’s a dts issue? > I also have a orangepi-zero but it will take me some time to make > a sdcard > > > > > > > > even with a working device, this happens sometimes: > > > > > > my app gets ENXIO from the ioctl(fd, I2CRDWR, &data) and on the > > > console: > > > ? > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 29 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 29 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 29 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 29 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 38 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 29 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 29 on CPU2 > > > gic0: Spurious interrupt detected: last irq: 29 on CPU2 > > > > > > the good news: my app is killable :-) > > > > I would need more details for this. > > it was caused by i2c issues - the cable was a bit too long. > BTW, does changing the frequency work? ie dev.iicbus.0.frequency It looks like that driver does not honor the frequency sysctl/tunable. You can often compensate for a too-long cable by adding some stronger pullups. It's typical for a SOM to have pullups in the 4.7K range on i2c. You can add your own 1K pullups to see if that helps the rise times on the bus. -- Ian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?64b5598e2c8c7265f89a31b1f191cb1be318788a.camel>