UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
9,820 Views
Registered: ‎12-03-2015

I2C interrupt via GIC block

Hi,

 

I have a ZC706 board running Petalinux 2015.2.1. I am trying to interface to an MPU-6050 interial device over the I2C bus.  Due to the lack of PS accessable PMOD connectors on the board my HW eng routed the I2C bus through the PL. Nothing was done to the signals, it is just a route to PMOD 1 - J58..  He tied the I2C interrupt to GIC 0.  I can't get the I2C driver to talk to the MPU.  

 

This is the modified i2c1 entry from system-top.dts:

 

&i2c1 {
	status = "okay";
	clock-frequency = <400000>;
	interrupts = <0 0 4>;
};

 

 

This is the original i2c1 entry from zynq-7000.dtsi:

 

		i2c1: i2c@e0005000 {
			compatible = "cdns,i2c-r1p10";
			status = "disabled";
			clocks = <&clkc 39>;
			interrupt-parent = <&intc>;
			interrupts = <0 48 4>;
			reg = <0xe0005000 0x1000>;
			#address-cells = <1>;
			#size-cells = <0>;
		};

 

 

dmesg output: 

i2c /dev entries driver
cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 141
cdns-i2c e0005000.i2c: 400 kHz mmio e0005000 irq 142

 

When I probe the drivers with i2cdetect -l both i2c driver entries are shown, but when I try to probe the devices i2c-1 never returns. I just get:

# i2cdetect -y -r 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          cdns-i2c e0005000.i2c: timeout waiting on completion
-- cdns-i2c e0005000.i2c: timeout waiting on completion

What should the interrupts entry for i2c1 be? I have tried making it a PPI interrupt, <1 0 4>, but the driver can't even find the device when I do that.

Is what I am trying even possible?

 

Thanks,

Ron 

0 Kudos