blob: ef04255076c7f30bd293aa97f95fdaa7d6c5fdcd [file] [log] [blame]
Seung-Woo Kimd8408322011-12-21 17:39:39 +09001/*
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
David Howells760285e2012-10-02 18:01:07 +010014#include <drm/drmP.h>
Seung-Woo Kimd8408322011-12-21 17:39:39 +090015
16#include <linux/kernel.h>
17#include <linux/i2c.h>
18#include <linux/module.h>
19
20#include "exynos_drm_drv.h"
21#include "exynos_hdmi.h"
22
23
24static int hdmiphy_probe(struct i2c_client *client,
25 const struct i2c_device_id *id)
26{
27 hdmi_attach_hdmiphy_client(client);
28
29 dev_info(&client->adapter->dev, "attached s5p_hdmiphy "
30 "into i2c adapter successfully\n");
31
32 return 0;
33}
34
35static int hdmiphy_remove(struct i2c_client *client)
36{
37 dev_info(&client->adapter->dev, "detached s5p_hdmiphy "
38 "from i2c adapter successfully\n");
39
40 return 0;
41}
42
43static const struct i2c_device_id hdmiphy_id[] = {
44 { "s5p_hdmiphy", 0 },
Rahul Sharma93c645e2012-10-04 20:48:50 +053045 { "exynos5-hdmiphy", 0 },
Seung-Woo Kimd8408322011-12-21 17:39:39 +090046 { },
47};
48
Sachin Kamat65da0352012-12-12 14:24:07 +053049#ifdef CONFIG_OF
Rahul Sharma93c645e2012-10-04 20:48:50 +053050static struct of_device_id hdmiphy_match_types[] = {
51 {
52 .compatible = "samsung,exynos5-hdmiphy",
53 }, {
Rahul Sharmacc57caf2013-06-19 18:21:07 +053054 .compatible = "samsung,exynos4210-hdmiphy",
55 }, {
56 .compatible = "samsung,exynos4212-hdmiphy",
57 }, {
Rahul Sharma93c645e2012-10-04 20:48:50 +053058 /* end node */
59 }
60};
Sachin Kamat65da0352012-12-12 14:24:07 +053061#endif
Rahul Sharma93c645e2012-10-04 20:48:50 +053062
Seung-Woo Kimd8408322011-12-21 17:39:39 +090063struct i2c_driver hdmiphy_driver = {
64 .driver = {
Rahul Sharma93c645e2012-10-04 20:48:50 +053065 .name = "exynos-hdmiphy",
Seung-Woo Kimd8408322011-12-21 17:39:39 +090066 .owner = THIS_MODULE,
Sachin Kamat65da0352012-12-12 14:24:07 +053067 .of_match_table = of_match_ptr(hdmiphy_match_types),
Seung-Woo Kimd8408322011-12-21 17:39:39 +090068 },
69 .id_table = hdmiphy_id,
70 .probe = hdmiphy_probe,
Greg Kroah-Hartman56550d92012-12-21 15:09:25 -080071 .remove = hdmiphy_remove,
Seung-Woo Kimd8408322011-12-21 17:39:39 +090072 .command = NULL,
73};
74EXPORT_SYMBOL(hdmiphy_driver);