diff options
author | Ruqiang Ju <juruqiang@huawei.com> | 2016-11-15 05:31:32 -0200 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@s-opensource.com> | 2016-11-22 16:20:31 -0200 |
commit | 414e72c729534a89017bc19415edc4957ebcc6fa (patch) | |
tree | fa20141d8f86ce05309a56979621ba1c4a244f88 /drivers/media/rc | |
parent | 69ace6ee3e3d088c6c8bd4aab42001fc6ba9d701 (diff) | |
download | linux-414e72c729534a89017bc19415edc4957ebcc6fa.tar.bz2 |
[media] ir-hix5hd2: make hisilicon,power-syscon property deprecated
The clock of IR can be provided by the clock provider and controlled
by common clock framework APIs.
Signed-off-by: Ruqiang Ju <juruqiang@huawei.com>
Signed-off-by: Jiancheng Xue <xuejiancheng@hisilicon.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Diffstat (limited to 'drivers/media/rc')
-rw-r--r-- | drivers/media/rc/ir-hix5hd2.c | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/drivers/media/rc/ir-hix5hd2.c b/drivers/media/rc/ir-hix5hd2.c index d0549fba711c..d26907e684dc 100644 --- a/drivers/media/rc/ir-hix5hd2.c +++ b/drivers/media/rc/ir-hix5hd2.c @@ -75,15 +75,22 @@ static void hix5hd2_ir_enable(struct hix5hd2_ir_priv *dev, bool on) { u32 val; - regmap_read(dev->regmap, IR_CLK, &val); - if (on) { - val &= ~IR_CLK_RESET; - val |= IR_CLK_ENABLE; + if (dev->regmap) { + regmap_read(dev->regmap, IR_CLK, &val); + if (on) { + val &= ~IR_CLK_RESET; + val |= IR_CLK_ENABLE; + } else { + val &= ~IR_CLK_ENABLE; + val |= IR_CLK_RESET; + } + regmap_write(dev->regmap, IR_CLK, val); } else { - val &= ~IR_CLK_ENABLE; - val |= IR_CLK_RESET; + if (on) + clk_prepare_enable(dev->clock); + else + clk_disable_unprepare(dev->clock); } - regmap_write(dev->regmap, IR_CLK, val); } static int hix5hd2_ir_config(struct hix5hd2_ir_priv *priv) @@ -207,8 +214,8 @@ static int hix5hd2_ir_probe(struct platform_device *pdev) priv->regmap = syscon_regmap_lookup_by_phandle(node, "hisilicon,power-syscon"); if (IS_ERR(priv->regmap)) { - dev_err(dev, "no power-reg\n"); - return -EINVAL; + dev_info(dev, "no power-reg\n"); + priv->regmap = NULL; } res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |