Date: Thu, 29 Apr 2021 11:17:03 -0700 From: Mark Millard <marklmi@yahoo.com> To: Mark Murray <markm@freebsd.org> Cc: freebsd-arm <freebsd-arm@freebsd.org> Subject: Re: I2C/IIC working on RPI4 8GB? Message-ID: <A10EA46D-6FE5-4FCD-895C-5A08A974D6DB@yahoo.com> In-Reply-To: <486E3EA3-EBAE-492E-B12E-E72E3E3E7B6A@FreeBSD.org> References: <1C2DD11C-B1F6-4C2A-9AB0-5F1553520FF5@FreeBSD.org> <20210426161138.a8f44b6e1134f73a411be57d@bidouilliste.com> <CF4C4332-BB2F-47E9-B879-8EEA0E53E848@FreeBSD.org> <C4828BF2-E8B7-45D1-B0F8-5E72AF84D565@yahoo.com> <47A634E3-4938-4AFC-9341-E480CEBF67FB@FreeBSD.org> <20210428101945.67417ef8eba251dcbcb38078@bidouilliste.com> <ED9ABBBE-9B5A-4B51-806C-F91AABE39731@FreeBSD.org> <486E3EA3-EBAE-492E-B12E-E72E3E3E7B6A@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2021-Apr-29, at 09:57, Mark Murray <markm at freebsd.org> wrote: > On 28 Apr 2021, at 22:07, Mark Murray <markm at FreeBSD.org> wrote: >>=20 >> On 28 Apr 2021, at 09:19, Emmanuel Vadot <manu@bidouilliste.com> = wrote: >>=20 >>> According to this document is this just to detect that the slave = hold >>> the scl line too long so I don't think that this is the problem = here. >>> If you have a scope or a logic analyzer I suggest you start by using >>> it to confirm that when you scan with i2c -s you see something. >>=20 >> As it turns out, my logic analyser arrived today. >=20 > I got an oscilloscope onto pins 3 and 5 (GPIO2 and GPIO3), and "i2c = -s" does not a jot on them. >=20 > I don't know if this helps, but the gpioctl utility thinks the pins = are both inputs: Looking around, I see: https://github.com/raspberrypi/hats/blob/master/designguide.md says: QUOTE The default state for all Bank 0 pins will be inputs with either a pull = up or pull down. The default pull state can be found in the BCM2835 = peripherals specificaion section 6.2 table 6-31 (see the "Pull" column). = It will require positive software configuration to change the state of = these pins. The one exception to this rule is ID_SC and ID_SD. GPIO0 (ID_SD) and = GPIO1 (ID_SC) will be switched to ALT0 (I2C-0) mode and probed for an = EEPROM at boot time. These pins will revert to inputs once the probe = sequence has completed. END QUOTE https://github.com/raspberrypi/hats has some other documents as well. If this note is redundant for you, sorry. > [root@grasshopper ~]# gpioctl -f /dev/gpioc0 -l -v > pin 00: 1 pin 0<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 01: 1 pin 1<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 02: 1 pin 2<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 03: 1 pin 3<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 04: 1 pin 4<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 05: 1 pin 5<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 06: 1 pin 6<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 07: 0 pin 7<OUT>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 08: 0 pin 8<OUT>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 09: 0 pin 9<>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 10: 0 pin 10<>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 11: 0 pin 11<>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 12: 0 pin 12<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 13: 0 pin 13<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 14: 1 pin 14<>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 15: 1 pin 15<>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 16: 0 pin 16<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 17: 0 pin 17<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 18: 0 pin 18<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 19: 0 pin 19<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 20: 0 pin 20<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 21: 0 pin 21<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 22: 0 pin 22<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 23: 0 pin 23<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 24: 0 pin 24<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 25: 0 pin 25<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 26: 0 pin 26<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 27: 0 pin 27<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 28: 1 pin 28<>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 29: 0 pin 29<>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 30: 1 pin 30<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 31: 1 pin 31<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 32: 0 pin 32<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 33: 0 pin 33<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 34: 1 pin 34<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 35: 1 pin 35<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 36: 1 pin 36<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 37: 1 pin 37<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 38: 1 pin 38<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 39: 1 pin 39<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 40: 0 pin 40<>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 41: 0 pin 41<>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 42: 0 pin 42<OUT>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 43: 1 pin 43<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 44: 1 pin 44<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 45: 1 pin 45<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 46: 0 pin 46<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 47: 0 pin 47<IN>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 48: 0 pin 48<>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 49: 0 pin 49<PU>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 50: 0 pin 50<PU>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 51: 0 pin 51<PU>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 52: 0 pin 52<PU>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> > pin 53: 0 pin 53<PU>, = caps:<IN,OUT,PU,PD,INTRLL,INTRLH,INTRER,INTREF,INTREB> =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?A10EA46D-6FE5-4FCD-895C-5A08A974D6DB>