/* 1. Объявляем DSI-драйвер для сопоставления с хостом samsung-dsim */
static struct mipi_dsi_driver lt9611_dsi_driver = {
.driver = {
.name = "lt9611-dsi",
/* Совместимость по имени устройства на DSI шине */
},
};
/* 2. Наш существующий I2C-драйвер остается без изменений */
static struct i2c_driver lt9611_i2c_driver = {
.driver = {
.name = "lt9611",
.of_match_table = lt9611_match_table,
},
.probe = lt9611_probe,
.remove = lt9611_remove,
.id_table = lt9611_id,
};
/* 3. Кастомная инициализация модуля (как в adv7511_init) */
static int __init lt9611_module_init(void)
{
int ret;
/* Сначала регистрируем DSI-половинку драйвера */
if (IS_ENABLED(CONFIG_DRM_MIPI_DSI)) {
ret = mipi_dsi_driver_register(<9611_dsi_driver);
if (ret)
return ret;
}
/* Затем регистрируем I2C-половинку драйвера */
ret = i2c_add_driver(<9611_i2c_driver);
if (ret) {
if (IS_ENABLED(CONFIG_DRM_MIPI_DSI))
mipi_dsi_driver_unregister(<9611_dsi_driver);
}
return ret;
}
module_init(lt9611_module_init);
static void __exit lt9611_module_exit(void)
{
i2c_del_driver(<9611_i2c_driver);
if (IS_ENABLED(CONFIG_DRM_MIPI_DSI))
mipi_dsi_driver_unregister(<9611_dsi_driver);
}
module_exit(lt9611_module_exit);
MODULE_LICENSE("GPL v2");