On Wed, 2013-08-21 at 12:53 +0100, Jacek Anaszewski wrote: > From what I've figured out in order to obtain the interrupt id > by name the function > > platform_get_irq_by_name(struct platform_device *dev, const char *name) > > has to be exploited. Unfortunately required platform_device structure > is not available in the struct i2c_client Well, platform devices belong to platform bus, nothing to do with I2C. Platform devices are associated with an array of named resources and the code creating such devices from the DT nodes (of_device_alloc()) do the necessary magic. > that is passed to the > probe function of an i2c driver. Is there some different way to parse > the interrupt-names property from the I2C driver? Interesting. Very interesting indeed. It seems (at least at the first sight) that I2C framework assumes that only one interrupt can be generated by a I2C device: struct i2c_client { [...] int irq; /* irq issued by device */ [...] }; So let me ask such question... If Device Tree didn't exist, how would you make drive such device? I guess it would require some custom code, as struct i2c_board_info has single int irq as well... If this is the case, you could parse the irq properties in a similar way as done in of_irq_to_resource() in drivers/of/irq.c. Doesn't like the optimal solution, though... I've copied Wolfram and the I2C mailing list in hope of them shedding some light at the matter. Pawel -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html