summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@linaro.org>2015-04-22 18:43:56 +0300
committerLaurent Pinchart <laurent.pinchart@linaro.org>2015-04-28 21:02:57 +0300
commit667ef587421af4f803275eb17e22a7aa308e2b95 (patch)
treed3b8e1292407b37a7e96d163a712fa09a8c3add8
parent36c70bb819977e72bd4cf2fc4eda65e8ccf6f830 (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.c192
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),