Загрузка данных


/* 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(&lt9611_dsi_driver);
		if (ret)
			return ret;
	}

	/* Затем регистрируем I2C-половинку драйвера */
	ret = i2c_add_driver(&lt9611_i2c_driver);
	if (ret) {
		if (IS_ENABLED(CONFIG_DRM_MIPI_DSI))
			mipi_dsi_driver_unregister(&lt9611_dsi_driver);
	}

	return ret;
}
module_init(lt9611_module_init);

static void __exit lt9611_module_exit(void)
{
	i2c_del_driver(&lt9611_i2c_driver);
	if (IS_ENABLED(CONFIG_DRM_MIPI_DSI))
		mipi_dsi_driver_unregister(&lt9611_dsi_driver);
}
module_exit(lt9611_module_exit);

MODULE_LICENSE("GPL v2");