diff options
Diffstat (limited to 'drivers/video/samsung_duallcd/extension/mdnie.h')
-rw-r--r-- | drivers/video/samsung_duallcd/extension/mdnie.h | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/drivers/video/samsung_duallcd/extension/mdnie.h b/drivers/video/samsung_duallcd/extension/mdnie.h new file mode 100644 index 0000000..145efc1 --- /dev/null +++ b/drivers/video/samsung_duallcd/extension/mdnie.h @@ -0,0 +1,134 @@ +/* linux/arch/arm/plat-s5p/mdnie.h + * + * mDNIe Platform Specific Header Definitions. + * + * Copyright (c) 2011 Samsung Electronics + * InKi Dae <inki.dae@samsung.com> + * Eunchul Kim <chulspro.kim@samsung.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. +*/ + +#ifndef _MDNIE_H_ +#define _MDNIE_H_ + +#define MDNIE_MAX_STR 255 +#define MDNIE_FW_PATH "mdnie/%s/%s.bin" + +/* set - main, optional */ +enum mdnie_set { + SET_MAIN = 0, + SET_OPTIONAL, + SET_MAX +}; + +/* mode - dynamic, standard, natural, movie */ +enum mdnie_mode { + MODE_DYNAMIC = 0, + MODE_STANDARD, + MODE_NATURAL, + MODE_MOVIE, + MODE_MAX +}; + +/* scenario - ui, gallery, video, vtcall, camera, browser, negative, bypass */ +enum mdnie_scenario { + SCENARIO_UI = 0, + SCENARIO_GALLERY, + SCENARIO_VIDEO, + SCENARIO_VTCALL, + SCENARIO_MODE_MAX, + SCENARIO_CAMERA = SCENARIO_MODE_MAX, + SCENARIO_BROWSER, + SCENARIO_NEGATIVE, + SCENARIO_BYPASS, + SCENARIO_MAX +}; + +/* tone - normal, warm, cold */ +enum mdnie_tone { + TONE_NORMAL = 0, + TONE_WARM, + TONE_COLD, + TONE_MAX +}; + +/* tone browser - tone1, tone2, tone3 */ +enum mdnie_tone_br { + TONE_1 = 0, + TONE_2, + TONE_3, + TONE_BR_MAX +}; + +/* outdoor - off, on */ +enum mdnie_outdoor { + OUTDOOR_OFF = 0, + OUTDOOR_ON, + OUTDOOR_MAX +}; + +/* tune - tables, fw */ +enum mdnie_tune { + TUNE_TBL = 0, + TUNE_FW, + TUNE_MAX +}; + +/* + * A main structure for mDNIe. + * + * @dev: pointer to device object for sysfs + * @regs: memory mapped register map + * @mode: mdnie mode value + * @scenario: mdnie scenario value + * @tone: mdnie tone value + * @outdoor: mdnie outdoor value + * @lock: lock for request firmware waiting + * @pdata: platform data of width, height + * @mops: manager ops + */ +struct s5p_mdnie { + struct device *dev; + void __iomem *regs; + + enum mdnie_mode mode; + enum mdnie_scenario scenario; + int tone; + enum mdnie_outdoor outdoor; + enum mdnie_tune tune; + + struct mutex lock; + struct mdnie_platform_data *pdata; + struct mdnie_manager_ops *mops; +}; + +/** + * A structure for data tables. + * + * @name: table name + * @value: table value + * @size: table size + */ +struct mdnie_tables { + const char *name; + const unsigned short *value; + unsigned int size; +}; + +/* + * mDNIe manager ops. + * + * @tune: api of tune settings + * @commit: api of main,optional settings + * @check_tone: api of check tone + */ +struct mdnie_manager_ops { + int (*tune)(struct s5p_mdnie *mdnie, const char *name); + int (*commit)(struct s5p_mdnie *mdnie, enum mdnie_set set); + int (*check_tone)(struct s5p_mdnie *mdnie, int tone); +}; + +#endif /* _MDNIE_H_ */ |