FreeBSD sees only one I2C device, while Linux sees two.
Gleb Popov
arrowd at freebsd.org
Wed May 8 10:43:55 UTC 2019
On Wed, May 8, 2019 at 10:38 AM Andriy Gapon <avg at freebsd.org> wrote:
> On 07/05/2019 22:04, Gleb Popov wrote:
> > However, on FreeBSD I get different picture. pciconf lists both devices:
> >
> > ig4iic_pci0 at pci0:0:21:0: class=0x118000 card=0x15e01043
> > chip=0xa1608086 rev=0x31 hdr=0x00
> > vendor = 'Intel Corporation'
> > device = '100 Series/C230 Series Chipset Family Serial IO I2C
> > Controller'
> > class = dasp
> >
> > ichsmb0 at pci0:0:31:4: class=0x0c0500 card=0x15e01043 chip=0xa1238086
> > rev=0x31 hdr=0x00
> > vendor = 'Intel Corporation'
> > device = '100 Series/C230 Series Chipset Family SMBus'
> > class = serial bus
> > subclass = SMBus
> >
> > But there is only one /dev/iic0 device. Relevant devinfo parts:
> >
> > ig4iic_pci0
> > iicbus0
> > iic0
> > iicsmb0
> > smbus1
> >
> > ichsmb0
> > smbus0
> >
> > Is there something missing in the kernel, or I'm just doing something
> wrong?
>
> One is an I2C controller, the other is an SMBus controller (SMBus being a
> sort
> of a subset of I2C). That's why you have iicbus0 and smbus0. All
> hardware is
> visible. It seems that you do not have smb(4) driver and, thus, there is
> no
> /dev/smbX.
>
Right, kldloading smb created /dev/smb0 on smbus0.
But on Linux i2c-detect can send commands to both devices. I need to get
iic1 from smb0 somehow, I guess?
> --
> Andriy Gapon
>
More information about the freebsd-hackers
mailing list