Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 May 2019 23:04:20 +0400
From:      Gleb Popov <arrowd@freebsd.org>
To:        freebsd-hackers <freebsd-hackers@freebsd.org>
Subject:   FreeBSD sees only one I2C device, while Linux sees two.
Message-ID:  <CALH631=nWt46FRb7RRZgXFfPioOWbA9LSGWykOs5Viyp7BNhkQ@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
I'm running Linux and FreeBSD on ASUS ROG GL553VE notebook.

On Linux I have following entries in lspci output:

00:15.0 Signal processing controller: Intel Corporation 100 Series/C230
Series Chipset Family Serial IO I2C Controller #0 (rev 31)
    Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family
Serial IO I2C Controller
    Flags: bus master, fast devsel, latency 0, IRQ 16
    Memory at df42e000 (64-bit, non-prefetchable) [size=4K]
    Capabilities: <access denied>
    Kernel driver in use: intel-lpss
    Kernel modules: intel_lpss_pci

00:1f.4 SMBus: Intel Corporation 100 Series/C230 Series Chipset Family
SMBus (rev 31)
    Subsystem: ASUSTeK Computer Inc. 100 Series/C230 Series Chipset Family
SMBus
    Flags: medium devsel, IRQ 16
    Memory at df42a000 (64-bit, non-prefetchable) [size=256]
    I/O ports at f040 [size=32]
    Kernel driver in use: i801_smbus
    Kernel modules: i2c_i801

Running i2c-detect utility from i2c-tools package returns

i2c-1    i2c           Synopsys DesignWare I2C adapter     I2C adapter
i2c-0    smbus         SMBus I801 adapter at f040          SMBus adapter

However, on FreeBSD I get different picture. pciconf lists both devices:

ig4iic_pci0@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@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?

Thanks in advance.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALH631=nWt46FRb7RRZgXFfPioOWbA9LSGWykOs5Viyp7BNhkQ>