mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
media: i2c: ov5695: set clk when power on
Prevention clk is changed by other sensor Change-Id: I4249cfdc32f7250b8656b9d5787735370e63690d Signed-off-by: Cai YiWei <cyw@rock-chips.com>
This commit is contained in:
@@ -1003,6 +1003,13 @@ static int __ov5695_power_on(struct ov5695 *ov5695)
|
||||
u32 delay_us;
|
||||
struct device *dev = &ov5695->client->dev;
|
||||
|
||||
ret = clk_set_rate(ov5695->xvclk, OV5695_XVCLK_FREQ);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "Failed to set xvclk rate (24MHz)\n");
|
||||
return ret;
|
||||
}
|
||||
if (clk_get_rate(ov5695->xvclk) != OV5695_XVCLK_FREQ)
|
||||
dev_warn(dev, "xvclk mismatched, modes are based on 24MHz\n");
|
||||
ret = clk_prepare_enable(ov5695->xvclk);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "Failed to enable xvclk\n");
|
||||
@@ -1306,13 +1313,6 @@ static int ov5695_probe(struct i2c_client *client,
|
||||
dev_err(dev, "Failed to get xvclk\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
ret = clk_set_rate(ov5695->xvclk, OV5695_XVCLK_FREQ);
|
||||
if (ret < 0) {
|
||||
dev_err(dev, "Failed to set xvclk rate (24MHz)\n");
|
||||
return ret;
|
||||
}
|
||||
if (clk_get_rate(ov5695->xvclk) != OV5695_XVCLK_FREQ)
|
||||
dev_warn(dev, "xvclk mismatched, modes are based on 24MHz\n");
|
||||
|
||||
ov5695->reset_gpio = devm_gpiod_get(dev, "reset", GPIOD_OUT_LOW);
|
||||
if (IS_ERR(ov5695->reset_gpio)) {
|
||||
|
||||
Reference in New Issue
Block a user