diff options
author | rajat verma <rajat.verma@stericsson.com> | 2011-03-31 10:31:45 +0530 |
---|---|---|
committer | Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com> | 2011-04-01 10:24:33 +0200 |
commit | 434b87f67d6e8a7efbd241ae0e9e596c39488cd7 (patch) | |
tree | 3bce57cf35fdef6bb2e651b81a65f90a5a7a6282 /include | |
parent | 03667b7414114651fa1ce03fad184e62c85e76d6 (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.h | 66 |
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 */ |