>We are using a sama5d3-based machine which is almost entirely dt based, so passing callbacks to the driver using the platform data seems like a bad fit. >Hard coding these calls in the driver won't really work either (even for a single machine) since not all instances of the adapter exist on the same peripheral. >Ie, one adapter is on peripheral A and the others are on peripheral B for this specific soc. I forgot the SAMA5 doesn't keep the TWI peripherals on the same pinmux positions. Even more variance with the other Atmel SoCs using the same driver. Easiest fix would be to pass the i2c_adapter pointer rather than i2c_bus_recovery_info which seems harmless and retains the recovery info pointer internally. That way you can grab the at91 driver struct where you would have saved the pinmux before/after config. Btw, side thing, this may help you since you seem to care about your SAMA5's i2c functioning.... if you are doing smbus block reads with the SAMA5 you may want to pull this patch for yourself: https://patchwork.ozlabs.org/patch/381843/. Fixes a kernel panic and at91 TWI controller timeout. -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html