#pragma once #include int lork_probe(struct i2c_client *); void lork_remove(struct i2c_client *); static const struct of_device_id lork_match[] = { { .compatible = "lork-i2c" }, {}, }; static const struct i2c_device_id lork_ids[] = { { "lork", 0 }, {}, }; MODULE_DEVICE_TABLE(i2c, lork_ids); struct i2c_driver lork_driver = { .probe = lork_probe, .remove = lork_remove, .driver = { .name = "lork", .owner = THIS_MODULE, .of_match_table = of_match_ptr(lork_match), }, .id_table = lork_ids, }; ssize_t drv_attr_show(struct device_driver*, char*); static const struct driver_attribute drv_attr = { .attr = { .name = "foo", // -> /sys/bus/i2c/drivers/lork/foo .mode = 0444, }, .show = drv_attr_show, };