Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux
[cascardo/linux.git] / drivers / gpu / drm / exynos / exynos_ddc.c
1 /*
2  * Copyright (C) 2011 Samsung Electronics Co.Ltd
3  * Authors:
4  *      Seung-Woo Kim <sw0312.kim@samsung.com>
5  *      Inki Dae <inki.dae@samsung.com>
6  *
7  * This program is free software; you can redistribute  it and/or modify it
8  * under  the terms of  the GNU General  Public License as published by the
9  * Free Software Foundation;  either version 2 of the  License, or (at your
10  * option) any later version.
11  *
12  */
13
14 #include <drm/drmP.h>
15
16 #include <linux/kernel.h>
17 #include <linux/i2c.h>
18 #include <linux/of.h>
19
20 #include "exynos_drm_drv.h"
21 #include "exynos_hdmi.h"
22
23 static int s5p_ddc_probe(struct i2c_client *client,
24                         const struct i2c_device_id *dev_id)
25 {
26         hdmi_attach_ddc_client(client);
27
28         dev_info(&client->adapter->dev,
29                 "attached %s into i2c adapter successfully\n",
30                 client->name);
31
32         return 0;
33 }
34
35 static int s5p_ddc_remove(struct i2c_client *client)
36 {
37         dev_info(&client->adapter->dev,
38                 "detached %s from i2c adapter successfully\n",
39                 client->name);
40
41         return 0;
42 }
43
44 static struct of_device_id hdmiddc_match_types[] = {
45         {
46                 .compatible = "samsung,exynos5-hdmiddc",
47         }, {
48                 .compatible = "samsung,exynos4210-hdmiddc",
49         }, {
50                 /* end node */
51         }
52 };
53
54 struct i2c_driver ddc_driver = {
55         .driver = {
56                 .name = "exynos-hdmiddc",
57                 .owner = THIS_MODULE,
58                 .of_match_table = hdmiddc_match_types,
59         },
60         .probe          = s5p_ddc_probe,
61         .remove         = s5p_ddc_remove,
62         .command                = NULL,
63 };