1
2
3
4
5
6
7
8
9
10
11
12
13
14#include <drm/drmP.h>
15
16#include <linux/kernel.h>
17#include <linux/i2c.h>
18#include <linux/module.h>
19
20
21#include "exynos_drm_drv.h"
22#include "exynos_hdmi.h"
23
24static int s5p_ddc_probe(struct i2c_client *client,
25 const struct i2c_device_id *dev_id)
26{
27 hdmi_attach_ddc_client(client);
28
29 dev_info(&client->adapter->dev,
30 "attached %s into i2c adapter successfully\n",
31 client->name);
32
33 return 0;
34}
35
36static int s5p_ddc_remove(struct i2c_client *client)
37{
38 dev_info(&client->adapter->dev,
39 "detached %s from i2c adapter successfully\n",
40 client->name);
41
42 return 0;
43}
44
45static struct i2c_device_id ddc_idtable[] = {
46 {"s5p_ddc", 0},
47 {"exynos5-hdmiddc", 0},
48 { },
49};
50
51#ifdef CONFIG_OF
52static struct of_device_id hdmiddc_match_types[] = {
53 {
54 .compatible = "samsung,exynos5-hdmiddc",
55 }, {
56
57 }
58};
59#endif
60
61struct i2c_driver ddc_driver = {
62 .driver = {
63 .name = "exynos-hdmiddc",
64 .owner = THIS_MODULE,
65 .of_match_table = of_match_ptr(hdmiddc_match_types),
66 },
67 .id_table = ddc_idtable,
68 .probe = s5p_ddc_probe,
69 .remove = s5p_ddc_remove,
70 .command = NULL,
71};
72