Based on the Zynq UltraScale+ MPSoC version, I have a problem in device tree node of axi i2c.
My design in PL side is as follows (schematic diagram, not complete)
axi i2c's iic2intc_irpt connect to gpio_axi_1_gpio_concat ln0[0:0], and dout[13:0] connect to axi gpio gpio_io_i[13:0].
axi gpio's ip2intc_irpt connect to xlconcat_0 ln4[0:0], and finally, dout[4:0] connect to zynq_ultra_ps_e_0's pls_ps_irq[4:0].
After export hdf, i use xsdk to generate device tree, my device tree about axi i2c is:
#address-cells = <0x1>;
#size-cells = <0x0>;
clocks = <0x34>;
compatible = "xlnx,xps-iic-2.00.a";
reg = <0x0 0x80010000 0x0 0x1000>;
This device tree will cause the Linux kernel to fail to execute the xiic_i2c_probe (i2c-xiic.c) correctly, as it will try to get the interrupt in the device tree.
static int xiic_i2c_probe(struct platform_device *pdev)
irq = platform_get_irq(pdev, 0);
if (irq < 0)
I look at the information on the wiki (https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841974/Linux+I2C+Driver), it seems that the device tree node of axi i2c needs to fill in the interrupt-related information.
My question is: