3 * Overview: device mananger(devman) plugin for pinetrail platform
5 * Copyright (c) 2000 - 2011 Intel Co., Ltd. All rights reserved.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
21 #include <devman/devman.h>
22 #include <devman/devman_plugin_intf.h>
26 #include "device_engine.h"
28 #include "device-manager-plugin-ivi.h"
30 #define BATTERY_PRESENT_PATH "/sys/class/power_supply/BAT1/present"
31 #define BATTERY_CHARGE_STATUS_PATH "/sys/class/power_supply/BAT1/status"
32 #define BATTERY_CHARGE_FULL_PATH "/sys/class/power_supply/BAT1/charge_full"
33 #define BATTERY_CHARGE_NOW_PATH "/sys/class/power_supply/BAT1/charge_now"
35 #define BACKLIGHTNESS_MAX_PATH "/sys/class/backlight/intel_backlight/max_brightness"
36 #define BACKLIGHTNESS_PATH "/sys/class/backlight/intel_backlight/brightness"
38 #define WAKEUP_COUNT_PATH "/sys/power/wakeup_count"
39 #define POWER_STATE_PATH "/sys/power/state"
42 #define DEVIDE(_x, _y, _z)\
54 int OEM_sys_get_backlight_max_brightness(int index, int *value)
58 // ret = sys_get_int(BACKLIGHTNESS_MAX_PATH, value);
59 // DBG("path[%s]value[%d]", BACKLIGHTNESS_MAX_PATH, *value);
63 int OEM_sys_get_backlight_brightness(int index, int *value, int power_saving)
67 // ret = sys_get_int(BACKLIGHTNESS_PATH, value);
68 // DBG("path[%s]value[%d]", BACKLIGHTNESS_PATH, *value);
73 int OEM_sys_set_backlight_brightness(int index, int value, int power_saving)
77 // ret = sys_set_int(BACKLIGHTNESS_PATH, value);
78 // DBG("path[%s]value[%d]", BACKLIGHTNESS_PATH, value);
83 int OEM_sys_get_power_wakeup_count(int *value)
87 // ret = sys_get_int(WAKEUP_COUNT_PATH, value);
89 * Fix me: with the below format output, we always run into
90 * SEGFAULT if *value != 0, it may from overflow/out of binds
93 //DBG("path[%s], value[%d], line[%d]", WAKEUP_COUNT_PATH, *value, __LINE__);
98 int OEM_sys_set_power_wakeup_count(int value)
102 // ret = sys_set_int(WAKEUP_COUNT_PATH, value);
103 // DBG("path[%s]value[%d]", WAKEUP_COUNT_PATH, value);
108 int OEM_sys_set_power_state(int value)
112 // if(POWER_STATE_SUSPEND == value)
113 // ret = sys_set_str(POWER_STATE_PATH, "mem");
114 // DBG("path[%s], value[%d]", POWER_STATE_PATH, value);
119 int OEM_sys_get_battery_present(int *value)
125 // ret = sys_get_int(BATTERY_PRESENT_PATH, value);
126 DBG("path[%s], value[%d]", BATTERY_PRESENT_PATH, *value);
132 int OEM_sys_get_battery_capacity(int *value)
135 static int charge_full = 0;
140 /*if(charge_full == 0)
142 ret = sys_get_int(BATTERY_CHARGE_FULL_PATH, &charge_full);
145 ERR("get battery charge full error!");
149 DEVIDE(charge_full, 100, unit);
152 ret = sys_get_int(BATTERY_CHARGE_NOW_PATH, &charge_now);
155 ERR("get battery charge now error!");
159 DEVIDE(charge_now, unit, capacity);
162 DBG("battery capacity value[%d]", *value);
168 int OEM_sys_get_battery_charge_full(int *value)
172 if(OEM_sys_get_battery_capacity(&capacity) < 0){
173 DBG("OEM_sys_get_battery_capacity failed");
183 DBG("func[%s]value[%d]", __func__, *value);
188 int OEM_sys_get_battery_charge_now(int *value)
192 int len = strlen("Charging\n");
194 /* buf = sys_get_str(BATTERY_CHARGE_STATUS_PATH);
197 if(0 == strncmp(buf, "Charging\n", len )){
202 DBG("path[%s]value[%d]", BATTERY_CHARGE_STATUS_PATH, *value);
213 int OEM_sys_get_display_count(int *value)
216 // ERR("get diplay count");
223 int OEM_sys_get_null_1(int *value)
226 ERR("this interface is not implemented");
231 int OEM_sys_set_null_1(int value)
234 ERR("this interface is not implemented");
240 int OEM_sys_get_null_2(int index, int *value)
243 ERR("this interface is not implemented");
249 int OEM_sys_get_null_4(int index, int* value, int bar)
251 ERR("not implemented");
255 int OEM_sys_set_null_3(int index, int value, int bar)
257 ERR("not implemented");
261 int OEM_sys_set_null_2(int index, int value)
264 ERR("this interface is not implemented");
271 int OEM_sys_get_null_3(char *node)
274 ERR("this interface is not implemented");
281 /* devman_plugin_interface_sampledevice is the structure of the type
282 * OEM_sys_devman_plugin_interface in which OEM API’s which are implemented are
285 static const OEM_sys_devman_plugin_interface devman_plugin_interface_pinetrail = {
286 OEM_sys_get_display_count, //int (*OEM_sys_get_display_count) (int *value);
288 OEM_sys_get_null_2, //int (*OEM_sys_get_backlight_min_brightness) (int index, int *value);
289 OEM_sys_get_null_2, //int (*OEM_sys_get_backlight_max_brightness) (int index, int *value);
290 OEM_sys_get_null_4, //int (*OEM_sys_get_backlight_brightness) (int index, int *value, int power_saving);
291 OEM_sys_set_null_3, //int (*OEM_sys_set_backlight_brightness) (int index, int value, int power_saving);
293 OEM_sys_get_null_2, //int (*OEM_sys_set_backlight_dimming) (int index, int *value);
294 OEM_sys_get_null_2, //int (*OEM_sys_get_backlight_acl_control) (int index, int *value);
295 OEM_sys_set_null_2, //int (*OEM_sys_set_backlight_acl_control) (int index, int value);
297 OEM_sys_get_null_2, //int (*OEM_sys_get_lcd_power) (int index, int *value);
298 OEM_sys_set_null_2, //int (*OEM_sys_set_lcd_power) (int index, int value);
300 OEM_sys_get_null_1, //int (*OEM_sys_get_image_enhance_mode) (int *value);
301 OEM_sys_set_null_1, //int (*OEM_sys_set_image_enhance_mode) (int value);
302 OEM_sys_get_null_1, //int (*OEM_sys_get_image_enhance_scenario) (int *value);
303 OEM_sys_set_null_1, //int (*OEM_sys_set_image_enhance_scenario) (int value);
304 OEM_sys_get_null_1, //int (*OEM_sys_get_image_enhance_tone) (int *value);
305 OEM_sys_set_null_1, //int (*OEM_sys_set_image_enhance_tone) (int value);
306 OEM_sys_get_null_1, //int (*OEM_sys_get_image_enhance_outdoor) (int *value);
307 OEM_sys_set_null_1, //int (*OEM_sys_set_image_enhance_outdoor) (int value);
309 OEM_sys_get_null_1, //int (*OEM_sys_get_image_enhance_tune) (int *value);
310 OEM_sys_set_null_1, //int (*OEM_sys_set_image_enhance_tune) (int value);
312 OEM_sys_get_null_1, //int (*OEM_sys_image_enhance_info) (int *value);
314 OEM_sys_set_null_1, //int (*OEM_sys_set_display_frame_rate) (int value);
316 OEM_sys_get_null_1, //int (*OEM_sys_get_uart_path) (int *value);
317 OEM_sys_set_null_1, //int (*OEM_sys_set_uart_path) (int value);
319 OEM_sys_get_null_1, //int (*OEM_sys_get_usb_path) (int *value);
320 OEM_sys_set_null_1, //int (*OEM_sys_set_usb_path) (int value);
322 OEM_sys_get_null_1, //int (*OEM_sys_get_haptic_vibetones_level_max) (int *value);
323 OEM_sys_get_null_1, //int (*OEM_sys_get_haptic_vibetones_level) (int *value);
324 OEM_sys_set_null_1, //int (*OEM_sys_set_haptic_vibetones_level) (int value);
325 OEM_sys_set_null_1, //int (*OEM_sys_set_haptic_vibetones_enable) (int value);
326 OEM_sys_set_null_1, //int (*OEM_sys_set_haptic_vibetones_oneshot) (int value);
328 OEM_sys_get_battery_capacity, //int (*OEM_sys_get_battery_capacity) (int *value);
329 OEM_sys_get_null_1, //int (*OEM_sys_get_battery_capacity_raw) (int *value);
330 OEM_sys_get_battery_charge_full, //int (*OEM_sys_get_battery_charge_full) (int *value);
331 OEM_sys_get_battery_charge_now, //int (*OEM_sys_get_battery_charge_now) (int *value);
332 OEM_sys_get_battery_present, //int (*OEM_sys_get_battery_present) (int *value);
333 OEM_sys_get_null_1, //int (*OEM_sys_get_battery_health) (int *value);
334 OEM_sys_get_null_1, //int (*OEM_sys_get_battery_polling_required) (int *value);
336 OEM_sys_get_null_1, //int (*OEM_sys_get_jack_charger_online) (int *value);
337 OEM_sys_get_null_1, //int (*OEM_sys_get_jack_earjack_online) (int *value);
338 OEM_sys_get_null_1, //int (*OEM_sys_get_jack_earkey_online) (int *value);
339 OEM_sys_get_null_1, //int (*OEM_sys_get_jack_hdmi_online) (int *value);
340 OEM_sys_get_null_1, //int (*OEM_sys_get_jack_usb_online) (int *value);
341 OEM_sys_get_null_1, //int (*OEM_sys_get_jack_cradle_online) (int *value);
342 OEM_sys_get_null_1, //int (*OEM_sys_get_jack_tvout_online) (int *value);
343 OEM_sys_get_null_1, //int (*OEM_sys_get_jack_keyboard_online) (int *value);
345 OEM_sys_get_null_1, //int (*OEM_sys_get_leds_torch_max_brightness) (int *value);
346 OEM_sys_get_null_1, //int (*OEM_sys_get_leds_torch_brightness) (int *value);
347 OEM_sys_set_null_1, //int (*OEM_sys_set_leds_torch_brightness) (int value);
349 OEM_sys_set_power_state, //int (*OEM_sys_set_power_state) (int value);
351 OEM_sys_get_power_wakeup_count, //int (*OEM_sys_get_power_wakeup_count) (int *value);
352 OEM_sys_set_power_wakeup_count, //int (*OEM_sys_set_power_wakeup_count) (int value);
354 OEM_sys_get_null_3, //int (*OEM_sys_get_memnotify_node) (char *node);
355 OEM_sys_get_null_1, //int (*OEM_sys_get_memnotify_victim_task) (int *value);
356 OEM_sys_set_null_1, //int (*OEM_sys_set_memnotify_threshold_lv1) (int value);
357 OEM_sys_set_null_1, //int (*OEM_sys_set_memnotify_threshold_lv2) (int value);
359 OEM_sys_get_null_3, //int (*OEM_sys_get_process_monitor_node) (char *node);
360 OEM_sys_set_null_1, //int (*OEM_sys_set_process_monitor_mp_pnp) (int value);
361 OEM_sys_set_null_1, //int (*OEM_sys_set_process_monitor_mp_vip) (int value);
363 OEM_sys_get_null_1, //int (*OEM_sys_get_cpufreq_cpuinfo_max_freq) (int *value);
364 OEM_sys_get_null_1, //int (*OEM_sys_get_cpufreq_cpuinfo_min_freq) (int *value);
365 OEM_sys_get_null_1, //int (*OEM_sys_get_cpufreq_scaling_max_freq) (int *value);
366 OEM_sys_set_null_1, //int (*OEM_sys_set_cpufreq_scaling_max_freq) (int value);
367 OEM_sys_get_null_1, //int (*OEM_sys_get_cpufreq_scaling_min_freq) (int *value);
368 OEM_sys_set_null_1, //int (*OEM_sys_set_cpufreq_scaling_min_freq) (int value);
371 /* The following code returns the address of the structure
372 * devman_plugin_interface_sampledevice as defined above*/
374 const OEM_sys_devman_plugin_interface *OEM_sys_get_devman_plugin_interface()
377 return &devman_plugin_interface_pinetrail;