summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiyoung Yun <jy910.yun@samsung.com>2015-01-30 19:19:33 +0900
committerJiyoung Yun <jy910.yun@samsung.com>2015-02-12 14:00:30 +0900
commit9854fb4624b6f419fc149698a9783d351249be89 (patch)
tree3988607697e5796534e5ea20ae1c86e7af999ded
parent9298d6349a42a62be2b48d108bf8ea7bed1ac4bb (diff)
downloadlibdevice-node-9854fb4624b6f419fc149698a9783d351249be89.tar.gz
libdevice-node-9854fb4624b6f419fc149698a9783d351249be89.tar.bz2
libdevice-node-9854fb4624b6f419fc149698a9783d351249be89.zip
Led device support to control the brightness level, color and duty. There is an detail information in Tizen Wiki: https://wiki.tizen.org/wiki/HAL_upgrade_for_Tizen_3.0#Device Signed-off-by: Jiyoung Yun <jy910.yun@samsung.com> Change-Id: I70b0402fb528ba057ec782c4ba1718eb3dbd4225
-rw-r--r--CMakeLists.txt3
-rw-r--r--hw/led.h73
2 files changed, 75 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a156cd9..8accafd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -28,7 +28,8 @@ SET(HEADERS
SET(HW_HEADERS
hw/common.h
- hw/backlight.h)
+ hw/backlight.h
+ hw/led.h)
INCLUDE(devices/CMakeLists.txt)
diff --git a/hw/led.h b/hw/led.h
new file mode 100644
index 0000000..69c6c10
--- /dev/null
+++ b/hw/led.h
@@ -0,0 +1,73 @@
+/*
+ * libdevice-node
+ *
+ * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef __HW_LED_H__
+#define __HW_LED_H__
+
+#include <hw/common.h>
+
+/**
+ * The id of this device
+ */
+#define LED_HARDWARE_DEVICE_ID "led"
+
+/**
+ * The version of this device
+ */
+#define LED_HARDWARE_DEVICE_VERSION MAKE_VERSION(1,0)
+
+/**
+ * The id of led devices
+ */
+#define LED_ID_CAMERA_BACK "camera_back"
+#define LED_ID_CAMERA_FRONT "camera_front"
+#define LED_ID_NOTIFICATION "notification"
+#define LED_ID_TOUCH_KEY "touch_key"
+
+enum led_type {
+ LED_TYPE_MANUAL,
+ LED_TYPE_BLINK,
+};
+
+struct led_state {
+ /* Led type */
+ enum led_type type;
+ /**
+ * The first byte means opaque and the other 3 bytes are RGB values.
+ * You can use opaque byte as a led brightness value.
+ * If the first byte is 0x00, led will be turned off.
+ * Anything else will be worked as on. The max value is 0xFF.
+ */
+ unsigned int color;
+ /* Turn on time in milliseconds */
+ int duty_on;
+ /* Turn off time in milliseconds */
+ int duty_off;
+};
+
+struct led_device {
+ struct hw_common common;
+
+ /**
+ * Set led state
+ */
+ int (*set_state)(struct led_state *state);
+};
+
+#endif