From c5eb43c9e7593ecdad53981b5db3c3cfe3e4f2bb Mon Sep 17 00:00:00 2001 From: Vincent Abriou Date: Wed, 11 Jan 2012 10:18:22 +0100 Subject: Update mmio interfaces Align mmio interfaces with l9540 project. It remains compatible with current mmio implementation. ST-Ericsson ID: 357839 Depends-On: I707d8227513cb1115d17afba60ae1559bb9b199b ST-Ericsson FOSS-OUT ID: Trivial ST-Ericsson Linux next: NA Change-Id: Iac0bfbe9be4c80a26033b9c082b6fbe63b2c71ff Signed-off-by: Vincent Abriou Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/45010 Reviewed-by: QATOOLS Reviewed-by: QABUILD Reviewed-by: Rajat VERMA Reviewed-by: Linus WALLEIJ --- drivers/staging/mmio/mmio.h | 55 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 48 insertions(+), 7 deletions(-) diff --git a/drivers/staging/mmio/mmio.h b/drivers/staging/mmio/mmio.h index 1c6f68e3556..1b201021982 100644 --- a/drivers/staging/mmio/mmio.h +++ b/drivers/staging/mmio/mmio.h @@ -3,6 +3,7 @@ * * Author: Joakim Axelsson for ST-Ericsson * Author: Rajat Verma for ST-Ericsson + * Author: Vincent Abriou for ST-Ericsson. * License Terms: GNU General Public License v2 */ @@ -11,7 +12,10 @@ #include -#define MMIO_NAME "mmio_camera" +#define MMIO_NAME "mmio_camera" /* kept for backward compatibility */ +#define MMIO_RAW_NAME "mmio_camera_raw" +#define MMIO_YUV_NAME "mmio_camera_yuv" + #define SRA_SUPPORT 1 #ifdef SRA_SUPPORT @@ -25,14 +29,44 @@ enum camera_slot_t { SECONDARY_CAMERA, CAMERA_SLOT_END }; + +enum camera_type_t { + RAW_CAMERA = 0, + YUV_CAMERA, + CAMERA_TYPE_END +}; + 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 */ + /* Name of the gpio */ + const char *name; + /* Gpio number */ + int gpio; + /* pin configuration when feature is enabled */ + unsigned long cfg_ena; + /* pin configuration when feature is disabled */ + unsigned long cfg_disa; + /* Set if pin is active high */ + /* kept for backward compatibility */ + int active_high; + /* Time to wait when activating the pin, in usec */ + /* kept for backward compatibility */ + int udelay; +}; + +struct mmio_clk { + const char *name; /* Name of the clock */ + struct clk *clk_ptr; /* Pointer on the allocated clock */ +}; + +struct mmio_regulator { + const char *name; /* Name of the clock */ + struct regulator *reg_ptr; /* Pointer on the allocated regulator */ }; + enum mmio_select_i2c_t { - MMIO_ACTIVATE_IPI2C2 = 0, - MMIO_ACTIVATE_I2C_HOST, + MMIO_ACTIVATE_IPI2C2 = 0, /* kept for backward compatibility */ + MMIO_ACTIVATE_I2C_HOST, /* kept for backward compatibility */ + MMIO_ACTIVATE_I2C, MMIO_DEACTIVATE_I2C }; @@ -55,12 +89,14 @@ struct mmio_platform_data { void (*platform_exit)(struct mmio_platform_data *pdata); int (*power_enable)(struct mmio_platform_data *pdata); void (*power_disable)(struct mmio_platform_data *pdata); + /* kept for backward compatibility */ 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); + /* kept for backward compatibility */ void (*set_xshutdown)(struct mmio_platform_data *pdata); }; @@ -133,9 +169,10 @@ struct mmio_input_output_t { #define MMIO_INVALID (~0) /*Xshutdown from host takes two arguments*/ +/* kept for backward compatibility */ #define MMIO_XSHUTDOWN_ENABLE (0x1) +/* kept for backward compatibility */ #define MMIO_XSHUTDOWN_ACTIVE_HIGH (0x2) - #define MMIO_MAGIC_NUMBER 0x15 #define MMIO_CAM_INITBOARD _IOW(MMIO_MAGIC_NUMBER, 1,\ @@ -144,14 +181,18 @@ struct mmio_input_output_t*) struct mmio_input_output_t*) #define MMIO_CAM_SET_EXT_CLK _IOW(MMIO_MAGIC_NUMBER, 3,\ struct mmio_input_output_t*) +/* kept for backward compatibility */ #define MMIO_CAM_SET_PRI_HWIF _IO(MMIO_MAGIC_NUMBER, 4) +/* kept for backward compatibility */ #define MMIO_CAM_SET_SEC_HWIF _IO(MMIO_MAGIC_NUMBER, 5) #define MMIO_CAM_INITMMDSPTIMER _IO(MMIO_MAGIC_NUMBER, 6) #define MMIO_CAM_LOAD_XP70_FW _IOW(MMIO_MAGIC_NUMBER, 7,\ struct mmio_input_output_t*) #define MMIO_CAM_MAP_STATS_AREA _IOWR(MMIO_MAGIC_NUMBER, 8,\ struct mmio_input_output_t*) +/* kept for backward compatibility */ #define MMIO_ACTIVATE_I2C2 _IOW(MMIO_MAGIC_NUMBER, 9, int*) +/* kept for backward compatibility */ #define MMIO_ENABLE_XSHUTDOWN_FROM_HOST _IOW(MMIO_MAGIC_NUMBER, 10, int*) #define MMIO_CAM_ISP_WRITE _IOW(MMIO_MAGIC_NUMBER, 11,\ struct mmio_input_output_t*) -- cgit v1.2.3