Thank you, that looks much nicer indeed. I have also tested it on my Amiga just to be sure - it works. However, no signature yet because the call stack is giving me a headache: icy_probe() -> i2c_new_scanned_device() -> i2c_new_client_device() -> device_add_properties() And here we are in drivers/base/property.c looking at device_add_properties(): * WARNING: The callers should not use this function if it is known that there * is no real firmware node associated with @dev! In that case the callers * should create a software node and assign it to @dev directly. Why is this warning there? It flies right in the face of what we're trying to achieve here. It was introduced in 2018 with commit caf35cd52242 . So either the warning is superfluous, or i2c_new_client_device() should be creating a software fwnode, I guess? Thanks Max