Hi Everyone, I was wondering if it's possible to use the SDA/SDL pins for I2C-2 that are attached to the top 2 inner pins of J6 with Linux instead of the M4/Arduino? I know that the Device Tree Editor can't create a DTS file that will do this, but can it be done manually, or are those pins just M4 only?
I am just following the documentation that it should be possible: The internal pinout is assigned to the M4 core (blue pins), the external one to the A9 core. Heads up! Disable the M4 core to give A9 control over the inner row (refer to this guide on how to do that). But don't ask me how to do that.... But search for pinmuxing and you can learn a lot! Edit: @Andrea Rovai There is an error in the documentation. The original this guide link goes to a 404
Hey Walter, Thanks, I tried disabling the M4 but that didn't seem to help. I agree that is probably a pinmuxing issue, I'm just not sure where to find docs on how to mux those internal pins to enable I2C mode. The dtweb package only seems to work on the outer pins so it's a matter of finding the right include file and hacking it so that the DTS/DTD file enables the pins.
This is the section in the documentation about enabling I2C bus through pins: http://www.udoo.org/docs-neo/Hardware_&_Accessories/I2C_bus.html This one is about pinmuxing: http://www.udoo.org/docs-neo/Hardware_&_Accessories/GPIO.html
Hi Andrea, Yup, I've read both of them. The problem is the pinmuxing docs only cover the outer pins. I need to enable 2 of the inner pins (14 & 15) in I2C SDA/SDL mode, which I believe requires updating the boot DTD file. My question is how do I do that? IE, "Edit /opt/dtweb/dtbkernel/arch/arm/boot/dts/imx6sx.dtsi change this block, run dtweb and save the config to recompile the dts-overlay files on /boot and reboot" I think I have to change the i2c2 block in that file (or one like it) from status = disabled to status=enabled, which I'll try in a bit and post back if it works. I'm just looking for clarification as to which file I need to edit.
I understand your problem. The documentation as you say only covers the outer pins, as we've never thought about implementing the inner ones for other than the M4. But I think you are on the right path, and I'm curious to know what you will discover. It would be a nice addition to the documentation.
It doesn't look like it worked, although I was able to break the I2C-4 bus so I'm obviously swinging the sledgehammer in the right area.
You need to set i2c2 to "okay" ie: Code: &i2c2 { status = "okay"; }; After reviewing the dts files, if i2c2 is enabled on the A9 side, then the pins should be mux'd for i2c2 and (theoretically) should appear on J6. The same pins are also available on the J10 connector.
Yup, I tried that but still no luck. I'm not sure if the problem is with the shield we've built or the pins on J6, so we're going to try using I2C-4. Speaking of the J10 connector, is there a pinout explanation of that block connector? It might be easier for us to just plug our I2C device (a 6-pin NFC antenna from NTag) into that.
J10 pinout is on the Neo Schematics file that can be downloaded here: http://www.udoo.org/other-resources/