I recently bought a nuc i5 model "NUC5i5MYBE". I installed ubuntu 14.04 OS on it. I am mainly interested in using the custom solutions header of the computer for robotics applications. I read the manual provided by intel: "http://downloadmirror.intel.com/24566/eng/NUC5i5MYBE_TechProdSpec04.pdf" . I got the I2C on custom solutions header to work.
Things I could not get to work are:
1. The SMBus driver for Wildcat Point-LP SMBus Controller (rev 03) is not loaded and I do not see i2c smbus in /dev/i2c interface. The i2c devices detected are:
|i2c-0 i2c||Synopsys DesignWare I2C adapter I2C adapter|
|i2c-1 i2c||Synopsys DesignWare I2C adapter I2C adapter|
|i2c-2 i2c||i915 gmbus ssc||I2C adapter|
|i2c-3 i2c||i915 gmbus vga||I2C adapter|
|i2c-4 i2c||i915 gmbus panel||I2C adapter|
|i2c-5 i2c||i915 gmbus dpc||I2C adapter|
|i2c-6 i2c||i915 gmbus dpb||I2C adapter|
|i2c-7 i2c||i915 gmbus dpd||I2C adapter|
|i2c-8 i2c||DPDDC-B||I2C adapter|
|i2c-9 i2c||DPDDC-C||I2C adapter|
The first two are from custom solutions header. I do not thinks smbus i2c is loaded. The lspci -v command shows the following for smbus:
00:1f.3 SMBus: Intel Corporation Wildcat Point-LP SMBus Controller (rev 03)
Subsystem: Intel Corporation Device 2058
Flags: medium devsel, IRQ 18
Memory at f7038000 (64-bit, non-prefetchable) [size=256]
I/O ports at f040 [size=32]
I do not see any kernel driver in use. I tried loading i2c-i801 but did not do anything. Is there any driver that works with SMBus controller for linux?
2. The GPIO pins do not show up. I made sure that GPIO pins lock down is disabled. I disabled NFC header in Bios. I checked that pin 11 , pin 12, pin 10 are GPIO24, GPIO14, GPIO 44 according to Bios/Manual. So I tried to enable the gpio pins using sysfs interface according to:
echo -n "24" > /sys/class/gpio/export
echo: write error: No such device
I tried all the pins I could find in the manual without any success. I also checked the debugfs file located at /sys/kernel/debug/pwm. The file is empty according to the command : "sudo cat /sys/kernel/debug/pwm". So I do not know if the GPIO pins are getting activated or linux is not able to detect the pins. I do not find any errors in my dmesg / syslog. The relevant portion of dmesg which shows io being reserved are here:
|[||0.192962] system 00:00: [io 0x0a00-0x0a0f] has been reserved|
|[||0.193281] system 00:02: [io 0x0680-0x069f] has been reserved|
|[||0.193283] system 00:02: [io 0xffff] has been reserved|
|[||0.193284] system 00:02: [io 0xffff] has been reserved|
|[||0.193285] system 00:02: [io 0xffff] has been reserved|
|[||0.193287] system 00:02: [io 0x1800-0x18fe] could not be reserved|
|[||0.193288] system 00:02: [io 0x164e-0x164f] has been reserved|
|[||0.193354] system 00:04: [io 0x1854-0x1857] has been reserved|
I read online that I need to install specific drivers for gpio to get recognized. Is there any such driver for GPIO that I need to load in linux or am I exporting wrong numbers into export file above?
My main issue is with the GPIO pins. I am not too concerned about smbus as I am already using I2C and am able to successfully communicate with other devices such as IMU's and microcontrollers. Thank you for reading through my post. Any help is appreciated.
Johns Hopkins University.