Вот, например, есть модуль i2c-dev, который транслирует файловые операции над /dev/i2c-x в ф-ии модулей i2c из linux/drivers/i2c/buses/*
linux/drivers/i2c/i2c-dev.c:
static const struct file_operations i2cdev_fops = {
.owner = THIS_MODULE,
.llseek = no_llseek,
.read = i2cdev_read,
.write = i2cdev_write,
.unlocked_ioctl = i2cdev_ioctl,
.open = i2cdev_open,
.release = i2cdev_release,
};
Сеть?