diff options
author | Laurent Pinchart <laurent.pinchart@linaro.org> | 2015-04-22 18:43:56 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@linaro.org> | 2015-04-28 21:02:57 +0300 |
commit | 667ef587421af4f803275eb17e22a7aa308e2b95 (patch) | |
tree | d3b8e1292407b37a7e96d163a712fa09a8c3add8 | |
parent | 36c70bb819977e72bd4cf2fc4eda65e8ccf6f830 (diff) |
arm64: mmp: Remove SP0A20 camera sensor support
We don't use the SP0A20 camera sensor, remove the related board code.
Signed-off-by: Laurent Pinchart <laurent.pinchart@linaro.org>
Acked-By: Vaibhav Hiremath <vaibhav.hiremath@linaro.org>
-rw-r--r-- | arch/arm64/mach/mmpx-dt.c | 192 |
1 files changed, 0 insertions, 192 deletions
diff --git a/arch/arm64/mach/mmpx-dt.c b/arch/arm64/mach/mmpx-dt.c index 3658e8424a38..caec80a1c449 100644 --- a/arch/arm64/mach/mmpx-dt.c +++ b/arch/arm64/mach/mmpx-dt.c @@ -45,195 +45,6 @@ static struct regulator *avdd_2v8; static struct regulator *dovdd_1v8; static struct regulator *af_2v8; static struct regulator *dvdd_1v2; -#ifdef CONFIG_SOC_CAMERA_SP0A20_ECS -static int sp0a20_sensor_power(struct device *dev, int on) -{ - int cam_enable, cam_reset; - int ret; - - /* Get the regulators and never put it */ - /* - * The regulators is for sensor and should be in sensor driver - * As SoC camera does not support device tree, leave it here - */ - - if (!avdd_2v8) { - avdd_2v8 = regulator_get(dev, "avdd_2v8"); - if (IS_ERR(avdd_2v8)) { - dev_warn(dev, "Failed to get regulator avdd_2v8\n"); - avdd_2v8 = NULL; - } - } - - if (!dovdd_1v8) { - dovdd_1v8 = regulator_get(dev, "dovdd_1v8"); - if (IS_ERR(dovdd_1v8)) { - dev_warn(dev, "Failed to get regulator dovdd_1v8\n"); - dovdd_1v8 = NULL; - } - } - - if (!af_2v8) { - af_2v8 = regulator_get(dev, "af_2v8"); - if (IS_ERR(af_2v8)) { - dev_warn(dev, "Failed to get regulator af_2v8\n"); - af_2v8 = NULL; - } - } - - if (!dvdd_1v2) { - dvdd_1v2 = regulator_get(dev, "dvdd_1v2"); - if (IS_ERR(dvdd_1v2)) { - dev_warn(dev, "Failed to get regulator dvdd_1v2\n"); - dvdd_1v2 = NULL; - } - } - - cam_enable = of_get_named_gpio(dev->of_node, "pwdn-gpios", 0); - if (gpio_is_valid(cam_enable)) { - if (gpio_request(cam_enable, "CAM2_POWER")) { - dev_err(dev, "Request GPIO %d failed\n", cam_enable); - goto cam_enable_failed; - } - } else { - dev_err(dev, "invalid pwdn gpio %d\n", cam_enable); - goto cam_enable_failed; - } - - - cam_reset = of_get_named_gpio(dev->of_node, "reset-gpios", 0); - if (gpio_is_valid(cam_reset)) { - if (gpio_request(cam_reset, "CAM2_RESET")) { - dev_err(dev, "Request GPIO %d failed\n", cam_reset); - goto cam_reset_failed; - } - } else { - dev_err(dev, "invalid pwdn gpio %d\n", cam_reset); - goto cam_reset_failed; - } - - if (on) { - if (avdd_2v8) { - regulator_set_voltage(avdd_2v8, 2800000, 2800000); - ret = regulator_enable(avdd_2v8); - if (ret) - goto cam_regulator_enable_failed; - } - - if (af_2v8) { - regulator_set_voltage(af_2v8, 2800000, 2800000); - ret = regulator_enable(af_2v8); - if (ret) - goto cam_regulator_enable_failed; - } - - if (dovdd_1v8) { - regulator_set_voltage(dovdd_1v8, - 1800000, 1800000); - ret = regulator_enable(dovdd_1v8); - if (ret) - goto cam_regulator_enable_failed; - } - - if (dvdd_1v2) { - regulator_set_voltage(dvdd_1v2, - 1200000, 1200000); - ret = regulator_enable(dvdd_1v2); - if (ret) - goto cam_regulator_enable_failed; - } - - gpio_direction_output(cam_enable, 0); - usleep_range(5000, 20000); - gpio_direction_output(cam_reset, 1); - usleep_range(5000, 20000); - gpio_direction_output(cam_reset, 0); - usleep_range(5000, 20000); - gpio_direction_output(cam_enable, 1); - usleep_range(5000, 20000); - gpio_direction_output(cam_enable, 0); - usleep_range(5000, 20000); - gpio_direction_output(cam_reset, 1); - usleep_range(5000, 20000); - } else { - /* - * Keep RESET always on as defined in spec - * gpio_direction_output(cam_reset, 0); - * usleep_range(5000, 20000); - */ - gpio_direction_output(cam_enable, 0); - usleep_range(5000, 20000); - gpio_direction_output(cam_enable, 1); - usleep_range(5000, 20000); - - if (dovdd_1v8) - regulator_disable(dovdd_1v8); - usleep_range(5000, 20000); - if (dvdd_1v2) - regulator_disable(dvdd_1v2); - if (avdd_2v8) - regulator_disable(avdd_2v8); - usleep_range(5000, 20000); - if (af_2v8) - regulator_disable(af_2v8); - - } - - gpio_free(cam_enable); - gpio_free(cam_reset); - - return 0; - -cam_reset_failed: - gpio_free(cam_enable); -cam_enable_failed: - ret = -EIO; -cam_regulator_enable_failed: - if (dvdd_1v2) - regulator_put(dvdd_1v2); - dvdd_1v2 = NULL; - - if (af_2v8) - regulator_put(af_2v8); - af_2v8 = NULL; - - if (dovdd_1v8) - regulator_put(dovdd_1v8); - dovdd_1v8 = NULL; - - if (avdd_2v8) - regulator_put(avdd_2v8); - avdd_2v8 = NULL; - - return ret; -} - -static struct sensor_board_data sp0a20_data = { - .mount_pos = SENSOR_USED | SENSOR_POS_FRONT | SENSOR_RES_LOW, - .bus_type = V4L2_MBUS_CSI2, - .bus_flag = V4L2_MBUS_CSI2_1_LANE, - .flags = V4L2_MBUS_CSI2_1_LANE, - .dphy = {0x0D06, 0x0011, 0x0900}, -}; - -static struct i2c_board_info dkb_i2c_sp0a20 = { - I2C_BOARD_INFO("sp0a20", 0x21), -}; - -struct soc_camera_desc sp0a20_desc = { - .subdev_desc = { - .power = sp0a20_sensor_power, - .drv_priv = &sp0a20_data, - .flags = 0, - }, - .host_desc = { - .bus_id = 1, /* Default as ccic2 */ - .i2c_adapter_id = 2, - .board_info = &dkb_i2c_sp0a20, - .module_name = "sp0a20", - }, -}; -#endif #ifdef CONFIG_SOC_CAMERA_S5K8AA #define CCIC2_PWDN_GPIO 13 @@ -479,9 +290,6 @@ static const struct of_dev_auxdata mmpx_auxdata_lookup[] __initconst = { #ifdef CONFIG_SOC_CAMERA_S5K8AA OF_DEV_AUXDATA("soc-camera-pdrv", 0, "soc-camera-pdrv.0", &s5k8aa_desc), #endif -#ifdef CONFIG_SOC_CAMERA_SP0A20_ECS - OF_DEV_AUXDATA("soc-camera-pdrv", 1, "soc-camera-pdrv.1", &sp0a20_desc), -#endif #ifdef CONFIG_VIDEO_MV_SC2_CCIC OF_DEV_AUXDATA("marvell,mmp-sc2ccic", 0xd420a000, "mv_sc2_ccic.0", NULL), |