lkml.org 
[lkml]   [2012]   [Feb]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 1/3] [media] s5p-tv: Add initial DT-support for sii9234
    Make it possible to instantiate sii9234, HDMI's MHL, from regular
    device tree description.

    Signed-off-by: Karol Lewandowski <k.lewandowsk@samsung.com>
    Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
    ---
    Documentation/devicetree/bindings/i2c/sii9234.txt | 14 ++++++++++++++
    drivers/media/video/s5p-tv/sii9234_drv.c | 20 +++++++++++++++++++-
    2 files changed, 33 insertions(+), 1 deletions(-)
    create mode 100644 Documentation/devicetree/bindings/i2c/sii9234.txt

    diff --git a/Documentation/devicetree/bindings/i2c/sii9234.txt b/Documentation/devicetree/bindings/i2c/sii9234.txt
    new file mode 100644
    index 0000000..7bb7636
    --- /dev/null
    +++ b/Documentation/devicetree/bindings/i2c/sii9234.txt
    @@ -0,0 +1,14 @@
    +* SII 9234
    +
    +Required properties :
    + - compatible : "sii,9234"
    + - reg : i2c device address
    + - gpio-reset : gpio line used to reset IC
    +
    +Example:
    +
    + mhl@39 {
    + compatible = "sii,9234";
    + reg = <0x39>;
    + gpio-reset = <&gpf3 4 0 0 0>;
    + };
    diff --git a/drivers/media/video/s5p-tv/sii9234_drv.c b/drivers/media/video/s5p-tv/sii9234_drv.c
    index 0f31ecc..0a1511a 100644
    --- a/drivers/media/video/s5p-tv/sii9234_drv.c
    +++ b/drivers/media/video/s5p-tv/sii9234_drv.c
    @@ -22,6 +22,8 @@
    #include <linux/pm_runtime.h>
    #include <linux/regulator/machine.h>
    #include <linux/slab.h>
    +#include <linux/of.h>
    +#include <linux/of_gpio.h>

    #include <mach/gpio.h>
    #include <plat/gpio-cfg.h>
    @@ -338,7 +340,15 @@ static int __devinit sii9234_probe(struct i2c_client *client,
    goto fail_ctx;
    }

    - ctx->gpio_n_reset = pdata->gpio_n_reset;
    + if (dev->of_node) {
    + ctx->gpio_n_reset = of_get_named_gpio(dev->of_node, "gpio-reset", 0);
    + if (ctx->gpio_n_reset < 0) {
    + ret = -ENODEV;
    + goto fail_power;
    + }
    + } else
    + ctx->gpio_n_reset = pdata->gpio_n_reset;
    +
    ret = gpio_request(ctx->gpio_n_reset, "MHL_RST");
    if (ret) {
    dev_err(dev, "failed to acquire MHL_RST gpio\n");
    @@ -401,6 +411,13 @@ static int __devexit sii9234_remove(struct i2c_client *client)
    return 0;
    }

    +#ifdef CONFIG_OF
    +static const struct of_device_id sii9234_dt_match[] = {
    + { .compatible = "sii,9234" },
    + { },
    +};
    +MODULE_DEVICE_TABLE(of, sii9234_dt_match);
    +#endif

    static const struct i2c_device_id sii9234_id[] = {
    { "SII9234", 0 },
    @@ -413,6 +430,7 @@ static struct i2c_driver sii9234_driver = {
    .name = "sii9234",
    .owner = THIS_MODULE,
    .pm = &sii9234_pm_ops,
    + .of_match_table = of_match_ptr(sii9234_dt_match),
    },
    .probe = sii9234_probe,
    .remove = __devexit_p(sii9234_remove),
    --
    1.7.8.3


    \
     
     \ /
      Last update: 2012-02-29 15:55    [W:0.034 / U:1.368 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site