I am trying the pci based discovery of the i2c controller. For this, in the BIOS, in Chipset Configuration > LPSS Configuration, I set LPSS DMA and LPSS I2C to PCI Mode. This ends up with the USB keyboard not working but anyway, after boot, in dmesg, I can see :
root@intel-aero:~# dmesg | grep 0c
[ 0.369169] pci_bus 0000:00: root bus resource [io 0x0078-0x0cf7 window]
[ 0.369183] pci_bus 0000:00: root bus resource [mem 0x000c0000-0x000dffff window]
[ 0.370465] pci 0000:00:14.0: [8086:22b5] type 00 class 0x0c0330
[ 0.370863] pci 0000:00:16.0: [8086:22b7] type 00 class 0x0c03fe
[ 0.371518] pci 0000:00:18.1: [8086:22c1] type 00 class 0x0c8000
[ 0.371843] pci 0000:00:18.2: [8086:22c2] type 00 class 0x0c8000
[ 0.372154] pci 0000:00:18.3: [8086:22c3] type 00 class 0x0c8000
[ 0.372470] pci 0000:00:18.4: [8086:22c4] type 00 class 0x0c8000
[ 0.372782] pci 0000:00:18.5: [8086:22c5] type 00 class 0x0c8000
[ 0.373106] pci 0000:00:18.6: [8086:22c6] type 00 class 0x0c8000
[ 0.373416] pci 0000:00:18.7: [8086:22c7] type 00 class 0x0c8000
[ 0.463829] system 00:00: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.467702] system 00:02: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.468161] system 00:03: Plug and Play ACPI device, IDs PNP0c02 (active)
[ 0.480980] pci_bus 0000:00: resource 6 [io 0x0078-0x0cf7 window]
[ 0.480994] pci_bus 0000:00: resource 9 [mem 0x000c0000-0x000dffff window]
[ 7.219353] 0000000000000000 ffff880177d70300 0000000000000000 00000000c0405602
and running i2cdetect, I get:
root@intel-aero:~# i2cdetect -l
i2c-0 i2c i915 gmbus ssc I2C adapter
i2c-1 i2c i915 gmbus vga I2C adapter
i2c-2 i2c i915 gmbus panel I2C adapter
i2c-3 i2c i915 gmbus dpc I2C adapter
i2c-4 i2c i915 gmbus dpb I2C adapter
i2c-5 i2c i915 gmbus dpd I2C adapter
i2c-6 i2c DPDDC-C I2C adapter
i2c-7 i2c DPDDC-D I2C adapter
i2c-8 i2c Synopsys DesignWare I2C adapter I2C adapter
i2c-9 i2c Synopsys DesignWare I2C adapter I2C adapter
i2c-10 i2c Synopsys DesignWare I2C adapter I2C adapter
i2c-11 i2c Synopsys DesignWare I2C adapter I2C adapter
i2c-12 i2c Synopsys DesignWare I2C adapter I2C adapter
i2c-13 i2c Synopsys DesignWare I2C adapter I2C adapter
i2c-14 i2c Synopsys DesignWare I2C adapter I2C adapter
These also show up in /sys/bus/pci/drivers/i2c-designware-pci and I am assuming the bus number I want is i2c-9 ? However, i2cdetect doesn't return anything on either 9 or any of the bus numbers. Ofcourse, if I change back to ACPI mode, i2cdetect -y -r 2 detects the BMM150. Is something wrong in my setup or is PCI mode not supposed to work ?
Thank you for your interest in the Intel Aero Compute Board.
We have received your query and are currently investigating.
I will get back to you as soon as possible.
Thank you in advance,
Thank you very much for your patience.
Could you please provide additional details as to why you would like to enable these settings in the BIOS? What is your goal?
Can you also confirm that CONFIG_I2C_DESIGNWARE_PCI is included in the kernel?
Looking forward to your reply.
I am attempting to bringup the i2c controller on a miniature research OS that I am booting on the Aero. It's easier to utilize the PCI mechanism to probe for the controller as compared to ACPI. Although, it appeared that I was able to successfully probe the i2c controller, writing/reading to slaves (BMM150) seemed to not work. So, I decided to verify if the PCI mechanism worked from Linux which didn't seem to work either...
I have verified that CONFIG_I2C_DESIGNWARE_PCI is built into the Aero kernel. Actually, the device does seem to be successfully bound to the driver from the sysfs entries.
This was only tested with BIOS presenting the device in ACPI, we have not tested it in PCI so we are not sure if it works or not.
If you manage to achieve this, please update the community on your progress.
I wish you good luck!