Lines Matching +full:fimc +full:- +full:is
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Samsung EXYNOS4x12 FIMC-IS (Imaging Subsystem) driver
16 #include "fimc-is-i2c.h"
24 * An empty algorithm is used as the actual I2C bus controller driver
25 * is implemented in the FIMC-IS subsystem firmware and the host CPU
39 struct device_node *node = pdev->dev.of_node; in fimc_is_i2c_probe()
44 isp_i2c = devm_kzalloc(&pdev->dev, sizeof(*isp_i2c), GFP_KERNEL); in fimc_is_i2c_probe()
46 return -ENOMEM; in fimc_is_i2c_probe()
48 isp_i2c->clock = devm_clk_get(&pdev->dev, "i2c_isp"); in fimc_is_i2c_probe()
49 if (IS_ERR(isp_i2c->clock)) { in fimc_is_i2c_probe()
50 dev_err(&pdev->dev, "failed to get the clock\n"); in fimc_is_i2c_probe()
51 return PTR_ERR(isp_i2c->clock); in fimc_is_i2c_probe()
54 i2c_adap = &isp_i2c->adapter; in fimc_is_i2c_probe()
55 i2c_adap->dev.of_node = node; in fimc_is_i2c_probe()
56 i2c_adap->dev.parent = &pdev->dev; in fimc_is_i2c_probe()
57 strscpy(i2c_adap->name, "exynos4x12-isp-i2c", sizeof(i2c_adap->name)); in fimc_is_i2c_probe()
58 i2c_adap->owner = THIS_MODULE; in fimc_is_i2c_probe()
59 i2c_adap->algo = &fimc_is_i2c_algorithm; in fimc_is_i2c_probe()
62 pm_runtime_enable(&pdev->dev); in fimc_is_i2c_probe()
69 * is handled by the ISP firmware. But we rely on the runtime PM in fimc_is_i2c_probe()
72 * used in probe() handler of clients of this adapter so there is in fimc_is_i2c_probe()
76 pm_suspend_ignore_children(&i2c_adap->dev, false); in fimc_is_i2c_probe()
80 pm_runtime_disable(&pdev->dev); in fimc_is_i2c_probe()
88 pm_runtime_disable(&pdev->dev); in fimc_is_i2c_remove()
89 i2c_del_adapter(&isp_i2c->adapter); in fimc_is_i2c_remove()
97 clk_disable_unprepare(isp_i2c->clock); in fimc_is_i2c_runtime_suspend()
105 return clk_prepare_enable(isp_i2c->clock); in fimc_is_i2c_runtime_resume()
143 .name = "fimc-isp-i2c",