上电时序
不同sensor对上电时序要求不同,例如Sony
Camera。在sensor厂家提供的数据手册中,一般会有上电时序图,只需要按顺序配置即可。以IMX219为例,其中
imx219_power_on()
即是用来给sensor上电的,如下。static int imx219_power_on(struct device *dev) { struct v4l2_subdev *sd = dev_get_drvdata(dev); struct imx219 *imx219 = to_imx219(sd); int ret; ret = regulator_bulk_enable(IMX219_NUM_SUPPLIES, imx219->supplies); if (ret) { dev_err(dev, "%s: failed to enable regulators\n", __func__); return ret; } ret = clk_prepare_enable(imx219->xclk); if (ret) { dev_err(dev, "%s: failed to enable clock\n", __func__); goto reg_off; } gpiod_set_value_cansleep(imx219->reset_gpio, 1); usleep_range(IMX219_XCLR_MIN_DELAY_US, IMX219_XCLR_MIN_DELAY_US + IMX219_XCLR_DELAY_RANGE_US); return 0; reg_off: regulator_bulk_disable(IMX219_NUM_SUPPLIES, imx219->supplies); return ret; }
IMX219的上电时序简要说明如下:
- 各路的vdd上电。
- 首先提供xclk。
- 紧接着reset pin使能。