У меня есть небольшое сомнение в коде, который я вижу. Я не могу понять, почему один используется, а не другой.
Написание собственного драйвера класса и зависимость записи внутри kconfig, например,
config SAMPLE_CLASS_DEVICE
tristate "Lowlevel foo controls"
default n
if SAMPLE_CLASS_DEVICE
config SAMPLE_FUNC
tristate "Generic XYZ based SAMPLE_FUNC Driver"
depends on XYZ
endif # SAMPLE_CLASS_DEVICE
или, написав так, убрав условие «если»
config SAMPLE_CLASS_DEVICE
tristate "Lowlevel foo controls"
default n
config SAMPLE_FUNC
tristate "Generic XYZ based SAMPLE_FUNC Driver"
depends on (XYZ && SAMPLE_CLASS_DEVICE)
Оба одинаковы или есть некоторая разница в более широком смысле.