I2C not working in Raspbian
<p>I have a RaspberryPi3 connected to an <a href="https://cdn-shop.adafruit.com/datasheets/1893_datasheet.pdf" rel="nofollow">Adafruit MPL3115A2</a> over the I2C bus. I have the latest version of <a href="https://www.raspberrypi.org/downloads/raspbian/" rel="nofollow">Raspbian Jessie</a> downloaded today. The only thing I have done is run </p>

<p><code>sudo rasp-config</code> </p>

<p>to enable the i2c bus then reboot and install the i2ctools using </p>

<p><code>sudo apt-get install -y i2c-tools</code> </p>

<p>When I run </p>

<p><code>i2cdetect -y 1</code> </p>

<p>I see the device on address 0x60 where I expect it to be.</p>

<p><code>
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
</code></p>

<p>However, when I try to read the WHO_AM_I register using </p>

<p><code>i2cget -y 1 0x60 0x0C b</code> </p>

<p>or </p>

<p><code>i2cget -y 1 0x60 0x0C c</code> </p>

<p>I get 0x00 when I am expecting 0xC4. running the above with ```sudo`` makes no difference.</p>

<p>If I shutdown Raspbian, pull the sdcard, insert an sdcard with Windows IoT Core and boot. I have no problem reading 0xC4 from the WHO_AM_I register as expected. Consequently, I am reasonably certain this is not bad hardware.</p>

<p>I've scoured the web looking for help <em>(trust me I'm not allowed to post any more links to prove it)</em>. I've tried several suggested edits to /boot/config.sys including disabling the device tree and setting the baud rate to match what we are seeing from Windows IoT Core (400kHz, Raspbian appeared to have a default around 64kHz)using a Saleae Logic Analyzer <em>(can't give you a link, google it)</em>. The only difference we can see is that Raspbian appears to have a discrete change from writing to reading that the logic analyzer can detect whereas we are not seeing that on IoT Core. We are stuck, any help or ideas would be great. </p>

<p><em>Edit:I'd add a tag for raspbian-jessie but alas I am not reputable enough</em></p>

<p>Just verified on a RaspberryPi2 with the same version of jessie (a new img on a fresh sdcard) and the failure is the same so it seems like Raspbian Jessie is the smoking gun here.</p>