2.0 alpha
[platform/core/system/devman.git] / devices / uart.c
1 /*
2  *  devman
3  *
4  * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact: DongGi Jang <dg0402.jang@samsung.com>
7  * 
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20 */ 
21
22
23 #include "device_engine.h"
24 #include "device_plugin.h"
25
26 static int uart_get(int prop, int *val)
27 {
28         switch (prop) {
29         case UART_PROP_SELECT_PATH:
30                 return plugin_intf->OEM_sys_get_uart_path(val);
31         }
32
33         return -1;
34 }
35
36 static int uart_set(int prop, int val)
37 {
38         int ret = -1 ;
39         switch (prop) {
40         case UART_PROP_SELECT_PATH:
41                 ret = plugin_intf->OEM_sys_set_uart_path(val);
42                 if(ret == 0){
43                         if(val == PATH_CP)
44                                 system("/usr/bin/save_blenv uartpath CP");
45                         else
46                                 system("/usr/bin/save_blenv uartpath AP");
47                 }
48                 return ret;
49         }
50
51         return -1;
52 }
53
54 static struct device uart = {
55         .devname = "uart",
56         .set_int = uart_set,
57         .get_int = uart_get,
58         .devtype = DEVTYPE_UART,
59 };
60
61 static void __attribute__ ((constructor)) module_init()
62 {
63         add_dev(&uart);
64 }