2 * Copyright (C) 2011 Samsung Electronics Co., Ltd. All rights reserved.
5 * Jinhyung Choi <jinhyung2.choi@samsung.com>
6 * JiHye Kim <jihye1128.kim@samsung.com>
7 * YeongKyoon Lee <yeongkyoon.lee@samsung.com>
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
24 #include <sys/types.h>
27 #include <devman_plugin_intf.h>
29 #include "devman_define_node_path.h"
31 #define EXPORT_API __attribute__((visibility("default")))
37 #define GENERATE_ACCESSORS_CHAR_RW(_suffix, _item) \
38 char *OEM_sys_get_##_suffix(char* str) \
40 return sys_get_str(_item, str); \
43 int OEM_sys_set_##_suffix(char *str) \
45 return sys_set_str(_item, value); \
48 #define GENERATE_ACCESSORS_CHAR_R(_suffix, _item) \
49 char *OEM_sys_get_##_suffix(char* str) \
51 return sys_get_str(_item, str); \
54 #define GENERATE_ACCESSORS_CHAR_W(_suffix, _item) \
55 int OEM_sys_set_##_suffix(char *str) \
57 return sys_set_str(_item, str); \
61 /* TODO: Add APIs has (char *) params */
63 #define GENERATE_ACCESSORS_INT_RW(_suffix, _item) \
64 int OEM_sys_get_##_suffix(int *value) \
66 return sys_get_int(_item, value); \
69 int OEM_sys_set_##_suffix(int value) \
71 return sys_set_int(_item, value); \
74 #define GENERATE_ACCESSORS_INT_R(_suffix, _item) \
75 int OEM_sys_get_##_suffix(int *value) \
77 return sys_get_int(_item, value); \
80 #define GENERATE_ACCESSORS_INT_W(_suffix, _item) \
81 int OEM_sys_set_##_suffix(int value) \
83 return sys_set_int(_item, value); \
87 GENERATE_ACCESSORS_INT_R(backlight_max_brightness, BACKLIGHT_MAX_BRIGHTNESS_PATH)
88 GENERATE_ACCESSORS_INT_RW(backlight_brightness, BACKLIGHT_BRIGHTNESS_PATH)
89 GENERATE_ACCESSORS_INT_RW(backlight_acl_control, LCD_ACL_CONTROL_PATH)
90 GENERATE_ACCESSORS_INT_RW(lcd_power, LCD_POWER_PATH)
94 #if defined(DEVMGR_LOG)
95 #define LOG_TAG "DEVICE_PLUGIN"
96 #include <dlog/dlog.h>
97 #define devmgr_log(fmt, args...) SLOGD(fmt, ##args)
99 #define devmgr_log(fmt, args...)
117 enum display_type etype; /* FIXME:!! Main LCD or Sub LCD node */
118 char bl_name[MAX_NAME]; /* backlight name */
119 char lcd_name[MAX_NAME]; /* lcd name */
122 #define MAX_CANDELA_CRITERION 300
123 #define PWR_SAVING_CANDELA_CRITERION 20
125 /* FIXME:!! change to global_ctx */
127 struct display_info disp_info[DISP_MAX];
130 int OEM_sys_get_backlight_brightness_by_lux(unsigned int lux, enum lux_status status)
132 static int brightness = -1;
134 if (status == no_change) {
135 if (brightness == -1)
140 if (status == decrement) {
142 case 10000 ... 0xffffffff:
160 } else if (status == increment) {
162 case 15001 ... 0xffffffff:
186 int OEM_sys_get_brightness(unsigned int lux)
188 const unsigned int Nr_Table[] = {
189 0, 5, 5, 6, 6, 7, 8, 8, 9, 9,
190 10, 11, 12, 13, 13, 14, 15, 16, 18, 19,
191 20, 22, 23, 25, 29, 32, 36, 39, 43, 46,
192 50, 54, 57, 61, 64, 68, 71, 75, 79, 82,
193 86, 89, 93, 96, 100, 119, 138, 157, 176, 195,
194 214, 233, 252, 271, 290, 310, 329, 348, 367, 386,
195 405, 424, 443, 462, 481, 500, 571, 643, 714, 786,
196 857, 929, 1000, 1100, 1200, 1300, 1400, 1500, 1667, 1833,
197 2000, 2250, 2500, 2750, 3000, 3333, 3667, 4000, 4083, 4167,
198 4250, 4333, 4417, 4500, 4583, 4667, 4750, 4833, 4917, 5000,
202 for (brightness=0; (lux > Nr_Table[brightness]) && (brightness < 99); brightness++);
207 int OEM_sys_get_backlight_brightness_by_lux(int lux, int *value)
209 const unsigned int Max_Table[] = {
210 15, 15, 15, 15, 16, 17, 18, 20, 21, 23,
211 26, 28, 31, 33, 35, 38, 40, 44, 48, 51,
212 55, 60, 65, 70, 81, 92, 103, 114, 125, 136,
213 147, 158, 169, 180, 190, 201, 212, 223, 234, 245,
214 256, 267, 278, 289, 300, 357, 414, 471, 529, 586,
215 643, 700, 757, 814, 871, 929, 986, 1043, 1100, 1157,
216 1214, 1271, 1329, 1386, 1443, 1500, 1678, 1855, 2033, 2211,
217 2389, 2566, 2744, 2977, 3209, 3442, 3674, 3907, 4274, 4642,
218 5009, 5215, 5422, 5628, 5834, 6057, 6279, 6502, 6585, 6669,
219 6752, 6835, 6919, 7002, 7085, 7169, 7252, 7335, 7419, 7502,
221 const unsigned int Min_Table[] = {
222 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
223 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
224 1, 1, 1, 1, 1, 1, 1, 2, 2, 3,
225 3, 4, 4, 5, 5, 6, 6, 7, 7, 8,
226 8, 9, 9, 10, 10, 12, 14, 16, 17, 19,
227 21, 23, 25, 27, 29, 30, 32, 34, 36, 38,
228 40, 42, 43, 45, 47, 49, 60, 70, 81, 91,
229 102, 112, 123, 140, 157, 174, 191, 208, 240, 271,
230 303, 356, 409, 461, 514, 592, 670, 748, 769, 790,
231 811, 832, 853, 874, 895, 916, 937, 958, 979, 1000,
233 static int brightness = -1;
235 if (brightness == -1) {
236 brightness = OEM_sys_get_brightness(lux);
237 devmgr_log("lux: %d, brightness: %d.\n", lux, brightness+1);
238 } else if ((lux > Max_Table[brightness]) || (lux < Min_Table[brightness])) {
239 brightness = OEM_sys_get_brightness(lux);
240 devmgr_log("lux: %d, brightness: %d.\n", lux, brightness+1);
242 *value = brightness+1;
246 static int OEM_sys_display_info(struct display_info *disp_info)
251 const char * bl_path = BACKLIGHT_PATH;
252 const char * lcd_path = LCD_PATH;
256 dirp = opendir(bl_path);
258 while ((dent = readdir(dirp)) != NULL) {
259 if (index >= DISP_MAX) {
260 devmgr_log("supports %d display node", DISP_MAX);
264 if (!strncmp(".", dent->d_name, sizeof(".")) || !strncmp("..", dent->d_name, sizeof("..")))
267 memcpy(disp_info[index].bl_name, dent->d_name, sizeof(disp_info[index].bl_name) - 1);
274 for (i = 0; i < index; i++)
275 devmgr_log("bl_name[%s]", disp_info[i].bl_name);
279 dirp = opendir(lcd_path);
281 while ((dent = readdir(dirp)) != NULL) {
282 if (index >= DISP_MAX) {
283 devmgr_log("supports %d display node", DISP_MAX);
287 if (!strncmp(".", dent->d_name, sizeof(".")) || !strncmp("..", dent->d_name, sizeof("..")))
290 memcpy(disp_info[index].lcd_name, dent->d_name, sizeof(disp_info[index].lcd_name) - 1);
297 for (i = 0; i < index; i++)
298 devmgr_log("lcd_name[%s]", disp_info[i].lcd_name);
305 int OEM_sys_get_display_count(int *value)
309 /* TODO: We should implement to find out current number of display */
312 /* ********************* */
314 devmgr_log("value[%d]", *value);
319 int OEM_sys_get_backlight_max_brightness(int index, int *value)
322 char path[MAX_NAME+1] = {0,};
324 if (index >= DISP_MAX) {
325 devmgr_log("supports %d display node", DISP_MAX);
329 snprintf(path, MAX_NAME, BACKLIGHT_MAX_BRIGHTNESS_PATH, disp_info[index].bl_name);
330 ret = sys_get_int(path, value);
331 devmgr_log("path[%s]value[%d]", path, *value);
336 int OEM_sys_get_backlight_min_brightness(int index, int *value)
339 char path[MAX_NAME+1] = {0,};
341 if (index >= DISP_MAX) {
342 devmgr_log("supports %d display node", DISP_MAX);
346 snprintf(path, MAX_NAME, BACKLIGHT_MIN_BRIGHTNESS_PATH, disp_info[index].bl_name);
347 ret = sys_get_int(path, value);
348 devmgr_log("path[%s]value[%d]", path, *value);
353 int OEM_sys_get_backlight_brightness(int index, int *value, int power_saving)
356 char path[MAX_NAME+1] = {0,};
358 int pwr_saving_offset;
360 if (index >= DISP_MAX) {
361 devmgr_log("supports %d display node", DISP_MAX);
365 snprintf(path, MAX_NAME, BACKLIGHT_BRIGHTNESS_PATH, disp_info[index].bl_name);
366 ret = sys_get_int(path, value);
367 devmgr_log("path[%s]value[%d]power_saving[%d]", path, *value, power_saving);
370 snprintf(path, MAX_NAME, BACKLIGHT_MAX_BRIGHTNESS_PATH, disp_info[index].bl_name);
371 ret = sys_get_int(path, &max_brightness);
374 devmgr_log("Can't read max_brightness node[%s]", path);
377 pwr_saving_offset = (int)((PWR_SAVING_CANDELA_CRITERION * (float)max_brightness / MAX_CANDELA_CRITERION) + 0.5);
379 if (*value > max_brightness - pwr_saving_offset)
380 *value = max_brightness;
382 *value = *value + pwr_saving_offset;
384 devmgr_log("power_saving result[%d]", *value);
390 static int OEM_sys_set_backlight_brightness(int index, int value, int power_saving)
393 char path[MAX_NAME+1] = {0,};
395 int pwr_saving_offset;
397 if (index >= DISP_MAX) {
398 devmgr_log("supports %d display node", DISP_MAX);
402 devmgr_log("path[%s]value[%d]power_saving[%d]", path, value, power_saving);
405 snprintf(path, MAX_NAME, BACKLIGHT_MAX_BRIGHTNESS_PATH, disp_info[index].bl_name);
406 ret = sys_get_int(path, &max_brightness);
409 devmgr_log("Can't read max_brightness node[%s]", path);
412 pwr_saving_offset = (int)((PWR_SAVING_CANDELA_CRITERION * (float)max_brightness / MAX_CANDELA_CRITERION) + 0.5);
414 if (value < pwr_saving_offset)
417 value = value - pwr_saving_offset;
419 devmgr_log("power_saving result[%d]", value);
422 snprintf(path, MAX_NAME, BACKLIGHT_BRIGHTNESS_PATH, disp_info[index].bl_name);
423 ret = sys_set_int(path, value);
428 int OEM_sys_set_backlight_dimming(int index, int value)
432 char path[MAX_NAME+1];
434 if (index >= DISP_MAX) {
435 devmgr_log("supports %d display node", DISP_MAX);
439 snprintf(path, MAX_NAME, BACKLIGHT_DIMMING_PATH, disp_info[index].lcd_name);
440 devmgr_log("path[%s]value[%d]", path, value);
441 ret = sys_set_int(path, value);
445 // TODO : value is only 1
446 return OEM_sys_set_backlight_brightness(index, 1, 0/*power_saving*/);
450 int OEM_sys_get_backlight_acl_control(int index, int *value)
453 char path[MAX_NAME+1] = {0,};
455 if (index >= DISP_MAX) {
456 devmgr_log("supports %d display node", DISP_MAX);
460 snprintf(path, MAX_NAME, LCD_ACL_CONTROL_PATH, disp_info[index].lcd_name);
461 ret = sys_get_int(path, value);
462 devmgr_log("path[%s]value[%d]", path, *value);
467 int OEM_sys_set_backlight_acl_control(int index, int value)
470 char path[MAX_NAME+1] = {0,};
472 if (index >= DISP_MAX) {
473 devmgr_log("supports %d display node", DISP_MAX);
477 snprintf(path, MAX_NAME, LCD_ACL_CONTROL_PATH, disp_info[index].lcd_name);
478 devmgr_log("path[%s]value[%d]", path, value);
479 ret = sys_set_int(path, value);
484 int OEM_sys_get_lcd_power(int index, int *value)
487 char path[MAX_NAME+1] = {0,};
489 if (index >= DISP_MAX) {
490 devmgr_log("supports %d display node", DISP_MAX);
494 snprintf(path, MAX_NAME, LCD_POWER_PATH, disp_info[index].lcd_name);
495 ret = sys_get_int(path, value);
496 devmgr_log("path[%s]value[%d]", path, *value);
501 int OEM_sys_set_lcd_power(int index, int value)
504 char path[MAX_NAME+1] = {0,};
506 if (index >= DISP_MAX) {
507 devmgr_log("supports %d display node", DISP_MAX);
511 snprintf(path, MAX_NAME, LCD_POWER_PATH, disp_info[index].lcd_name);
512 devmgr_log("path[%s]value[%d]", path, value);
513 ret = sys_set_int(path, value);
519 int OEM_sys_get_image_enhance_save(void *image_enhance)
525 int OEM_sys_set_image_enhance_restore(void *image_enhance)
531 int OEM_sys_get_image_enhance_mode(int *value)
537 int OEM_sys_set_image_enhance_mode(int value)
543 int OEM_sys_get_image_enhance_scenario(int *value)
549 int OEM_sys_set_image_enhance_scenario(int value)
555 int OEM_sys_get_image_enhance_tone(int *value)
561 int OEM_sys_set_image_enhance_tone(int value)
567 int OEM_sys_get_image_enhance_outdoor(int *value)
573 int OEM_sys_set_image_enhance_outdoor(int value)
579 int OEM_sys_get_image_enhance_tune(int *value)
585 int OEM_sys_set_image_enhance_tune(int value)
591 int OEM_sys_image_enhance_info(int *value)
596 int OEM_sys_set_display_frame_rate(int value)
600 devmgr_log("Display frame rate limited to 40Hz");
601 return sys_set_str(DISPLAY_FRAME_RATE_PATH, "40");
603 devmgr_log("Display frame rate change 40Hz and 60Hz");
604 return sys_set_str(DISPLAY_FRAME_RATE_PATH, "60");
610 GENERATE_ACCESSORS_INT_RW(haptic_vibetones_level, HAPTIC_VIBETONES_LEVEL_PATH)
611 GENERATE_ACCESSORS_INT_R(haptic_vibetones_level_max, HAPTIC_VIBETONES_LEVEL_MAX_PATH)
612 GENERATE_ACCESSORS_INT_W(haptic_vibetones_enable, HAPTIC_VIBETONES_ENABLE_PATH)
613 GENERATE_ACCESSORS_INT_W(haptic_vibetones_oneshot, HAPTIC_VIBETONES_ONESHOT_PATH)
615 GENERATE_ACCESSORS_INT_R(battery_capacity, BATTERY_CAPACITY_PATH)
616 GENERATE_ACCESSORS_INT_R(battery_charge_full, BATTERY_CHARGE_FULL_PATH)
617 GENERATE_ACCESSORS_INT_R(battery_charge_now, BATTERY_CHARGE_NOW_PATH)
618 GENERATE_ACCESSORS_INT_R(battery_present, BATTERY_PRESENT_PATH)
620 int OEM_sys_get_battery_capacity_raw(int *value)
625 static char *health_text[] = {
626 "Unknown", "Good", "Overheat", "Dead", "Over voltage",
627 "Unspecified failure", "Cold",
630 int OEM_sys_get_battery_health(int *value)
632 char buf[BUFF_MAX] = {0};
636 ret = sys_get_str(BATTERY_HEALTH_PATH, buf);
641 for (i = 0; i < BATTERY_HEALTH_MAX; i++) {
642 if (strncmp(buf, health_text[i], strlen(health_text[i])) == 0) {
651 int OEM_sys_get_battery_polling_required(int *value)
658 int OEM_sys_get_battery_support_insuspend_charging(int *value)
665 static char uart_node_path[MAX_NAME];
666 static char usb_node_path[MAX_NAME];
668 /* find uart/usb node path */
669 static int OEM_sys_muic_node_path_info()
673 err = sys_check_node(UART_PATH);
675 sys_get_node(UART_PATH, uart_node_path);
677 err = sys_check_node(UART_PATH_TRATS);
679 devmgr_log("uart path node not found");
682 sys_get_node(UART_PATH_TRATS, uart_node_path);
685 err = sys_check_node(USB_PATH);
687 sys_get_node(USB_PATH, usb_node_path);
689 err = sys_check_node(USB_PATH_TRATS);
691 devmgr_log("usb path node not found");
694 sys_get_node(USB_PATH_TRATS, usb_node_path);
699 int OEM_sys_get_uart_path(int *value)
701 char buf[BUFF_MAX] = {0};
704 ret = sys_get_str(uart_node_path, buf);
709 if (strncmp(buf, "CP", 2) == 0) {
712 } else if (strncmp(buf, "AP", 2) == 0) {
720 int OEM_sys_set_uart_path(int value)
724 return sys_set_str(uart_node_path, "CP");
726 return sys_set_str(uart_node_path, "AP");
733 int OEM_sys_get_usb_path(int *value)
735 char buf[BUFF_MAX] = {0};
738 ret = sys_get_str(usb_node_path, buf);
743 if (strncmp(buf, "PDA", 3) == 0) {
746 } else if (strncmp(buf, "MODEM", 5) == 0) {
754 int OEM_sys_set_usb_path(int value)
758 return sys_set_str(usb_node_path, "MODEM");
760 return sys_set_str(usb_node_path, "PDA");
766 GENERATE_ACCESSORS_INT_R(jack_charger_online, JACK_CHARGER_ONLINE_PATH)
767 GENERATE_ACCESSORS_INT_R(jack_earjack_online, JACK_EARJACK_ONLINE_PATH)
768 GENERATE_ACCESSORS_INT_R(jack_earkey_online, JACK_EARKEY_ONLINE_PATH)
769 GENERATE_ACCESSORS_INT_R(jack_hdmi_online, JACK_HDMI_ONLINE_PATH)
770 GENERATE_ACCESSORS_INT_R(jack_usb_online, JACK_USB_ONLINE_PATH)
771 GENERATE_ACCESSORS_INT_R(jack_cradle_online, JACK_CRADLE_ONLINE_PATH)
772 GENERATE_ACCESSORS_INT_R(jack_tvout_online, JACK_TVOUT_ONLINE_PATH)
774 int OEM_sys_get_jack_keyboard_online(int *value)
776 /* Currently, We don't provide SLP Based platform with keyboard I/F */
778 /*return sys_get_int(JACK_KEYBOARD_ONLINE_PATH, value);*/
782 int OEM_sys_get_hdmi_support(int *value)
789 GENERATE_ACCESSORS_INT_R(leds_torch_max_brightness, LEDS_TORCH_MAX_BRIGHTNESS_PATH)
790 GENERATE_ACCESSORS_INT_RW(leds_torch_brightness, LEDS_TORCH_BRIGHTNESS_PATH)
792 int OEM_sys_set_power_state(int value)
795 case POWER_STATE_SUSPEND:
796 return sys_set_str(POWER_STATE_PATH, "mem");
797 case POWER_STATE_PRE_SUSPEND:
798 return sys_set_str(POWER_STATE_PATH, "pre_suspend");
799 case POWER_STATE_POST_RESUME:
800 return sys_set_str(POWER_STATE_PATH, "post_resume");
806 GENERATE_ACCESSORS_INT_RW(power_wakeup_count, POWER_WAKEUP_COUNT_PATH)
808 GENERATE_ACCESSORS_INT_W(memnotify_threshold_lv1, MEMNOTIFY_THRESHOLD_LV1_PATH)
809 GENERATE_ACCESSORS_INT_W(memnotify_threshold_lv2, MEMNOTIFY_THRESHOLD_LV2_PATH)
811 GENERATE_ACCESSORS_INT_R(cpufreq_cpuinfo_max_freq, CPUFREQ_CPUINFO_MAX_FREQ_PATH)
812 GENERATE_ACCESSORS_INT_R(cpufreq_cpuinfo_min_freq, CPUFREQ_CPUINFO_MIN_FREQ_PATH)
813 GENERATE_ACCESSORS_INT_RW(cpufreq_scaling_max_freq, CPUFREQ_SCALING_MAX_FREQ_PATH)
814 GENERATE_ACCESSORS_INT_RW(cpufreq_scaling_min_freq, CPUFREQ_SCALING_MIN_FREQ_PATH)
816 #define GENERATE_ACCESSORS_INT_R_NO_CONVERT(_suffix, _item) \
817 int OEM_sys_get_##_suffix(int *value) \
819 return sys_get_int_wo_convert(_item, value); \
822 #define GENERATE_ACCESSORS_INT_W_NO_CONVERT(_suffix, _item) \
823 int OEM_sys_set_##_suffix(int value) \
825 return sys_set_int_wo_convert(_item, value); \
828 GENERATE_ACCESSORS_INT_R_NO_CONVERT(memnotify_victim_task, MEMNOTIFY_VICTIM_TASK_PATH)
829 GENERATE_ACCESSORS_INT_W_NO_CONVERT(process_monitor_mp_pnp, PROCESS_MONITOR_MP_PNP_PATH)
830 GENERATE_ACCESSORS_INT_W_NO_CONVERT(process_monitor_mp_vip, PROCESS_MONITOR_MP_VIP_PATH)
832 #define GENERATE_ACCESSORS_GET_NODE_PATH(_suffix, _item) \
833 int OEM_sys_get_##_suffix(char *node) \
835 return sys_get_node(_item, node); \
838 GENERATE_ACCESSORS_GET_NODE_PATH(touch_event, TOUCH_EVENT_NODE)
839 GENERATE_ACCESSORS_GET_NODE_PATH(memnotify_node, MEMNOTIFY_NODE)
840 GENERATE_ACCESSORS_GET_NODE_PATH(process_monitor_node, PROCESS_MONITOR_NODE)
843 int get_uart_path(char *value, int val) {
847 tmp_buff = sys_get_str(UART_PATH);
848 if (tmp_buff == NULL)
851 if (strncmp(tmp_buff, "AP", 2) == 0) {
853 } else if (strncmp(tmp_buff, "CP", 2) == 0) {
854 *val = PATH_TO_MODEM;
864 static int set_uart_path(char *value, int val)
868 if (val < PATH_TO_MODEM || val > PATH_TO_PDA) {
872 sys_set_str(UART_PATH, (val == PATH_TO_MODEM) ? "CP" : "AP");
874 if (val == PATH_TO_MODEM) {
875 system("/usr/bin/save_blenv uartpath CP");
877 system("/usr/bin/save_blenv uartpath AP");
883 int get_usb_path(char *prop, int *val) {
885 char *tmp_buff = NULL;
887 case JACK_PROP_USB_ONLINE:
888 case JACK_PROP_TA_ONLINE:
889 return generic_jack_interface_get(NULL, prop, val);
891 case JACK_PROP_HDMI_ONLINE:
893 sys_get_str("/sys/class/i2c-adapter/i2c-5/5-0072/status");
894 if (tmp_buff && (strstr(tmp_buff, "MHL connected:yes") != 0)) {
903 case JACK_PROP_USB_PATH:
904 tmp_buff = sys_get_str(USB_PATH);
905 if (tmp_buff == NULL)
907 if (strncmp(tmp_buff, usb_path_string[PATH_TO_MODEM], 2) == 0)
908 *val = PATH_TO_MODEM;
920 int set_usb_path(char *prop, int val);
926 case JACK_PROP_USB_PATH:
931 cur_path = sys_get_str(USB_PATH);
932 if (cur_path == NULL)
938 if (strncmp(cur_path, usb_path_string[val], 2) == 0) {
943 if (generic_jack_interface_get
944 (NULL, JACK_USB_ONLINE_PATH, &conn) != 0) {
945 /*failed to get the connection status */
948 if (sys_set_str(USB_PATH, (char *)usb_path_string[val]) !=
951 if (val == PATH_TO_MODEM) {
952 system("/usr/bin/save_blenv usbpath CP");
954 system("/usr/bin/save_blenv usbpath AP");
967 static OEM_sys_devman_plugin_interface devman_plugin_interface_emul;
969 EXPORT_API const OEM_sys_devman_plugin_interface *OEM_sys_get_devman_plugin_interface()
971 devman_plugin_interface_emul.OEM_sys_get_display_count = &OEM_sys_get_display_count;
972 devman_plugin_interface_emul.OEM_sys_get_backlight_min_brightness = &OEM_sys_get_backlight_min_brightness;
973 devman_plugin_interface_emul.OEM_sys_get_backlight_max_brightness = &OEM_sys_get_backlight_max_brightness;
974 devman_plugin_interface_emul.OEM_sys_get_backlight_brightness = &OEM_sys_get_backlight_brightness;
975 devman_plugin_interface_emul.OEM_sys_set_backlight_brightness = &OEM_sys_set_backlight_brightness;
976 devman_plugin_interface_emul.OEM_sys_set_backlight_dimming = &OEM_sys_set_backlight_dimming;
977 devman_plugin_interface_emul.OEM_sys_get_backlight_acl_control = &OEM_sys_get_backlight_acl_control;
978 devman_plugin_interface_emul.OEM_sys_set_backlight_acl_control = &OEM_sys_set_backlight_acl_control;
980 devman_plugin_interface_emul.OEM_sys_get_lcd_power = &OEM_sys_get_lcd_power;
981 devman_plugin_interface_emul.OEM_sys_set_lcd_power = &OEM_sys_set_lcd_power;
983 devman_plugin_interface_emul.OEM_sys_get_image_enhance_mode = &OEM_sys_get_image_enhance_mode;
984 devman_plugin_interface_emul.OEM_sys_set_image_enhance_mode = &OEM_sys_set_image_enhance_mode;
985 devman_plugin_interface_emul.OEM_sys_get_image_enhance_scenario = &OEM_sys_get_image_enhance_scenario;
986 devman_plugin_interface_emul.OEM_sys_set_image_enhance_scenario = &OEM_sys_set_image_enhance_scenario;
987 devman_plugin_interface_emul.OEM_sys_get_image_enhance_tone = &OEM_sys_get_image_enhance_tone;
988 devman_plugin_interface_emul.OEM_sys_set_image_enhance_tone = &OEM_sys_set_image_enhance_tone;
989 devman_plugin_interface_emul.OEM_sys_get_image_enhance_outdoor = &OEM_sys_get_image_enhance_outdoor;
990 devman_plugin_interface_emul.OEM_sys_set_image_enhance_outdoor = &OEM_sys_set_image_enhance_outdoor;
992 devman_plugin_interface_emul.OEM_sys_get_image_enhance_tune = &OEM_sys_get_image_enhance_tune;
993 devman_plugin_interface_emul.OEM_sys_set_image_enhance_tune = &OEM_sys_set_image_enhance_tune;
995 devman_plugin_interface_emul.OEM_sys_image_enhance_info = &OEM_sys_image_enhance_info;
997 devman_plugin_interface_emul.OEM_sys_set_display_frame_rate = &OEM_sys_set_display_frame_rate;
999 devman_plugin_interface_emul.OEM_sys_get_uart_path = &OEM_sys_get_uart_path;
1000 devman_plugin_interface_emul.OEM_sys_set_uart_path = &OEM_sys_set_uart_path;
1002 devman_plugin_interface_emul.OEM_sys_get_usb_path = &OEM_sys_get_usb_path;
1003 devman_plugin_interface_emul.OEM_sys_set_usb_path = &OEM_sys_set_usb_path;
1005 devman_plugin_interface_emul.OEM_sys_get_battery_capacity = &OEM_sys_get_battery_capacity;
1006 devman_plugin_interface_emul.OEM_sys_get_battery_capacity_raw = &OEM_sys_get_battery_capacity_raw;
1007 devman_plugin_interface_emul.OEM_sys_get_battery_charge_full = &OEM_sys_get_battery_charge_full;
1008 devman_plugin_interface_emul.OEM_sys_get_battery_charge_now = &OEM_sys_get_battery_charge_now;
1009 devman_plugin_interface_emul.OEM_sys_get_battery_present = &OEM_sys_get_battery_present;
1010 devman_plugin_interface_emul.OEM_sys_get_battery_health = &OEM_sys_get_battery_health;
1011 devman_plugin_interface_emul.OEM_sys_get_battery_polling_required = &OEM_sys_get_battery_polling_required;
1012 devman_plugin_interface_emul.OEM_sys_get_battery_support_insuspend_charging = &OEM_sys_get_battery_support_insuspend_charging;
1014 devman_plugin_interface_emul.OEM_sys_get_jack_charger_online = &OEM_sys_get_jack_charger_online;
1015 devman_plugin_interface_emul.OEM_sys_get_jack_earjack_online = &OEM_sys_get_jack_earjack_online;
1016 devman_plugin_interface_emul.OEM_sys_get_jack_earkey_online = &OEM_sys_get_jack_earkey_online;
1017 devman_plugin_interface_emul.OEM_sys_get_jack_hdmi_online = &OEM_sys_get_jack_hdmi_online;
1018 devman_plugin_interface_emul.OEM_sys_get_jack_usb_online = &OEM_sys_get_jack_usb_online;
1019 devman_plugin_interface_emul.OEM_sys_get_jack_cradle_online = &OEM_sys_get_jack_cradle_online;
1020 devman_plugin_interface_emul.OEM_sys_get_jack_tvout_online = &OEM_sys_get_jack_tvout_online;
1021 devman_plugin_interface_emul.OEM_sys_get_jack_keyboard_online = &OEM_sys_get_jack_keyboard_online;
1023 devman_plugin_interface_emul.OEM_sys_get_hdmi_support = &OEM_sys_get_hdmi_support;
1025 devman_plugin_interface_emul.OEM_sys_get_leds_torch_max_brightness = &OEM_sys_get_leds_torch_max_brightness;
1026 devman_plugin_interface_emul.OEM_sys_get_leds_torch_brightness = &OEM_sys_get_leds_torch_brightness;
1027 devman_plugin_interface_emul.OEM_sys_set_leds_torch_brightness = &OEM_sys_set_leds_torch_brightness;
1029 devman_plugin_interface_emul.OEM_sys_set_power_state = &OEM_sys_set_power_state;
1031 /* TODO: Should determine enum values of wakeup_count nodes */
1032 devman_plugin_interface_emul.OEM_sys_get_power_wakeup_count = &OEM_sys_get_power_wakeup_count;
1033 devman_plugin_interface_emul.OEM_sys_set_power_wakeup_count = &OEM_sys_set_power_wakeup_count;
1035 devman_plugin_interface_emul.OEM_sys_get_backlight_brightness_by_lux = &OEM_sys_get_backlight_brightness_by_lux;
1036 OEM_sys_display_info(disp_info);
1037 OEM_sys_muic_node_path_info();
1039 return &devman_plugin_interface_emul;