4 * Copyright (c) 2011 - 2013 Samsung Electronics Co., Ltd. All rights reserved.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
21 * @file device-interface.h
22 * @brief backlight, touch, power devices interface module header
24 #ifndef __DEVICE_INTERFACE_H__
25 #define __DEVICE_INTERFACE_H__
28 #include <hal/device/hal-display.h>
29 #include "shared/devices.h"
31 #define FLAG_X_DPMS 0x2
33 #define DEFAULT_DISPLAY 0
35 #define PM_MAX_BRIGHTNESS 100
36 #define PM_MIN_BRIGHTNESS 1
37 #define PM_DIM_BRIGHTNESS 0
39 #define DISP_INDEX_SHIFT 16
40 #define DISP_CMD(prop, index) ((index << DISP_INDEX_SHIFT) | prop)
42 #define DEFAULT_DISPLAY_COUNT 1
43 #define DEFAULT_DISPLAY_MAX_BRIGHTNESS 100
44 #define DEFAULT_DISPLAY_MAX_DIM_BRIGHTNESS 50
46 #define DPMS_SETTING_DONE -1
49 * Event type enumeration
52 EVENT_TIMEOUT = 0, /*< time out event from timer */
53 EVENT_DEVICE = EVENT_TIMEOUT, /*< wake up by devices except input devices */
54 EVENT_INPUT, /*< input event from noti service */
58 int init_sysfs(unsigned int);
60 int display_service_load(void);
61 int display_service_free(void);
63 struct _backlight_ops {
64 int (*off)(enum device_flags);
66 int (*on)(enum device_flags);
69 int (*set_default_brt)(int level);
70 int (*get_default_brt)(void);
71 int (*get_lcd_power)(void);
72 int (*get_lcd_power_node)(void);
73 int (*set_custom_status)(bool on);
74 bool (*get_custom_status)(void);
75 int (*save_custom_brightness)(void);
76 int (*custom_update)(void);
77 int (*set_force_brightness)(int level);
78 int (*set_brightness)(int val);
79 int (*get_brightness)(int *val);
80 int (*get_brightness_raw)(int *val);
81 void (*restore_brightness_func)(void);
82 int (*get_brightness_by_light_sensor)(float lmax, float lmin, float light, int *brt);
83 int (*get_image_effect)(enum display_image_effect *effect);
84 int (*set_image_effect)(enum display_image_effect effect);
85 int (*get_panel_mode)(enum display_panel_mode *mode);
86 int (*set_panel_mode)(enum display_panel_mode mode);
87 int (*get_frame_rate)(int *rate);
88 int (*set_frame_rate)(int rate);
89 int (*transit_state)(int state);
90 void (*transit_brt)(int start, int end, int step);
91 void (*blink)(int timeout);
92 void (*release_blink)(void);
95 struct _backlight_ops *get_var_backlight_ops(void);
97 struct _display_white_balance_ops {
98 int (*set_white_balance)(enum hal_display_white_balance white_balance_type, int value);
99 int (*get_white_balance)(enum hal_display_white_balance white_balance_type, int* out_val);
102 struct _display_white_balance_ops *get_var_display_white_balance_ops(void);
105 DPMS_ON, /* In use */
106 DPMS_STANDBY, /* Blanked, low power */
107 DPMS_SUSPEND, /* Blanked, lower power */
108 DPMS_OFF, /* Shut off, awaiting activity */
109 DPMS_FORCE_OFF,/* Force Shut off */
110 DPMS_DETACH, /* Display detached */
113 bool display_dev_ready(void);
114 bool display_dimstay_check(void);
115 void dpms_set_running_state(int val);
117 enum lcdon_block_state {
118 LCDON_BLOCK_NONE = 0,
119 LCDON_BLOCK_WHEN_DISPLAY_DETACHED,
120 LCDON_BLOCK_DURING_SILENT_BOOT,
122 int is_lcdon_blocked(void);