aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorrajat verma <rajat.verma@stericsson.com>2011-03-31 10:31:45 +0530
committerSrinidhi KASAGAR <srinidhi.kasagar@stericsson.com>2011-04-01 10:24:33 +0200
commit434b87f67d6e8a7efbd241ae0e9e596c39488cd7 (patch)
tree3bce57cf35fdef6bb2e651b81a65f90a5a7a6282 /include
parent03667b7414114651fa1ce03fad184e62c85e76d6 (diff)
ARM: ux500: mmio: Add sensor specific config
Adds sensor clock configuration to board specific file. Adds support for impplementing differernt power cycling schemes for primary and secondary camera sensors. ST-Ericsson Linux next: Tested and reviewed with 2011-03-30 ST-Ericsson ID: 333037 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: Ic0b5496e63734acf7459aaf61bad327cf5d8e45b Signed-off-by: rajat verma <rajat.verma@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/19550 Reviewed-by: Vishal JAIN STE <v.jain@stericsson.com> Tested-by: Vishal JAIN STE <v.jain@stericsson.com> Reviewed-by: Rabin VINCENT <rabin.vincent@stericsson.com> Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mmio.h66
1 files changed, 31 insertions, 35 deletions
diff --git a/include/linux/mmio.h b/include/linux/mmio.h
index a8773db19ea..37f23d3343d 100644
--- a/include/linux/mmio.h
+++ b/include/linux/mmio.h
@@ -2,7 +2,7 @@
* Copyright (C) ST-Ericsson SA 2011
*
* Author: Joakim Axelsson <joakim.axelsson@stericsson.com> for ST-Ericsson
- *
+ * Author: Rajat Verma <rajat.verma@stericsson.com> for ST-Ericsson
* License Terms: GNU General Public License v2
*/
@@ -11,51 +11,47 @@
#define MMIO_NAME "mmio_camera"
-enum XSHUTDOWN_SENSOR
-{
- PRIMARY_SENSOR,
- SECONDARY_SENSOR
+/* Which camera is currently active */
+enum camera_slot_t {
+ PRIMARY_CAMERA = 0,
+ SECONDARY_CAMERA,
+ CAMERA_SLOT_END
};
-
-enum mmio_select {
- MMIO_DEACTIVATE_I2C = 0,
+struct mmio_gpio {
+ int gpio; /* Set to zero if not in use */
+ int active_high;/* Set if pin is active high */
+ int udelay; /* Time to wait when activating the pin, in usec */
+};
+enum mmio_select_i2c_t {
+ MMIO_ACTIVATE_IPI2C2 = 0,
MMIO_ACTIVATE_I2C_HOST,
- MMIO_ACTIVATE_IPI2C2
+ MMIO_DEACTIVATE_I2C
};
-enum mmio_select_xshutdown {
+enum mmio_select_xshutdown_t {
+ MMIO_ENABLE_XSHUTDOWN_FW = 0,
MMIO_ENABLE_XSHUTDOWN_HOST,
- MMIO_ENABLE_XSHUTDOWN_FW,
MMIO_DISABLE_XSHUTDOWN
};
-
-struct mmio_regulator {
- const char *name;
- int min_uV;
- int max_uV;
- int configurable;
- int isEnabled;
-};
-
-struct mmio_gpio {
- int gpio; /* Set to zero if not in use */
- int active_high; /* Set if pin is active high */
- int udelay; /* Time to wait when activating the pin, in usec */
-};
-
struct mmio_platform_data {
- struct mmio_gpio xshutdown_primary;
- struct mmio_gpio xshutdown_secondary;
- int (*config_i2c_pins)(enum mmio_select);
struct device *dev;
- void *extra;
- int (*config_xshutdown_pins)(enum mmio_select_xshutdown select, int is_active_high);
+ enum camera_slot_t camera_slot; /* Which camera is currently used,
+ * Primary/Secondary */
+ void *extra; /* Board's private data structure
+ * placeholder */
+ int reset_ipgpio[CAMERA_SLOT_END]; /* Contains logical IP GPIO for
+ * reset pin */
int (*platform_init)(struct mmio_platform_data *pdata);
- int (*platform_deinit)(struct mmio_platform_data *pdata);
+ void (*platform_exit)(struct mmio_platform_data *pdata);
int (*power_enable)(struct mmio_platform_data *pdata);
- int (*power_disable)(struct mmio_platform_data *pdata);
+ void (*power_disable)(struct mmio_platform_data *pdata);
+ int (*config_xshutdown_pins)(struct mmio_platform_data *pdata,
+ enum mmio_select_xshutdown_t select, int is_active_high);
+ int (*config_i2c_pins)(struct mmio_platform_data *pdata,
+ enum mmio_select_i2c_t select);
+ int (*clock_enable)(struct mmio_platform_data *pdata);
+ void (*clock_disable)(struct mmio_platform_data *pdata);
+ void (*set_xshutdown)(struct mmio_platform_data *pdata);
};
-
#endif
-
/* MMIO_H */