summaryrefslogtreecommitdiff
path: root/driver/led
diff options
context:
space:
mode:
authorRandall Spangler <rspangler@chromium.org>2013-10-17 15:05:04 -0700
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2013-10-23 21:27:40 +0000
commit2ad076f8a02c8a3165a76dfb093cefd79fdbfc67 (patch)
tree13f9d0505f564f07c9867aabf11b7083613666d4 /driver/led
parent8cf03ac0563294fbdeca2dc133d06f0b51c9a546 (diff)
downloadchrome-ec-2ad076f8a02c8a3165a76dfb093cefd79fdbfc67.tar.gz
cleanup: Rename and move header files
Device-specific headers belong in driver/ or chip/. The include/ directory should be for common interfaces. Code should not normally need to include driver-specific headers. If it does, it should use the full relative path from the EC project root (for example, drivers/charger/bq24715.h). Change-Id: Id23db37a431e2d802a74ec601db6f69b613352ba Signed-off-by: Randall Spangler <rspangler@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/173746 Reviewed-by: Bill Richardson <wfrichar@chromium.org>
Diffstat (limited to 'driver/led')
-rw-r--r--driver/led/lp5562.h76
1 files changed, 76 insertions, 0 deletions
diff --git a/driver/led/lp5562.h b/driver/led/lp5562.h
new file mode 100644
index 0000000000..aaa32e5fb0
--- /dev/null
+++ b/driver/led/lp5562.h
@@ -0,0 +1,76 @@
+/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ *
+ * TI LP5562 LED driver.
+ */
+
+#ifndef LP5562_H
+#define LP5562_H
+
+#define LP5562_REG_ENABLE 0x00
+#define LP5562_REG_OP_MODE 0x01
+#define LP5562_REG_B_PWM 0x02
+#define LP5562_REG_G_PWM 0x03
+#define LP5562_REG_R_PWM 0x04
+#define LP5562_REG_B_CURRENT 0x05
+#define LP5562_REG_G_CURRENT 0x06
+#define LP5562_REG_R_CURRENT 0x07
+#define LP5562_REG_CONFIG 0x08
+#define LP5562_REG_ENG1_PC 0x09
+#define LP5562_REG_ENG2_PC 0x0a
+#define LP5562_REG_ENG3_PC 0x0b
+#define LP5562_REG_STATUS 0x0c
+#define LP5562_REG_RESET 0x0d
+#define LP5562_REG_W_PWM 0x0e
+#define LP5562_REG_W_CURRENT 0x0f
+#define LP5562_REG_LED_MAP 0x70
+
+#define LP5562_REG_ENG_PROG(n) (0x10 + ((n)-1) * 0x20)
+
+/* Brightness range: 0x00 - 0xff */
+#define LP5562_COLOR_NONE 0x000000
+#define LP5562_COLOR_RED(b) (0x010000 * (b))
+#define LP5562_COLOR_GREEN(b) (0x000100 * (b))
+#define LP5562_COLOR_BLUE(b) (0x000001 * (b))
+
+#define LP5562_ENG_SEL_NONE 0x0
+#define LP5562_ENG_SEL_1 0x1
+#define LP5562_ENG_SEL_2 0x2
+#define LP5562_ENG_SEL_3 0x3
+
+#define LP5562_ENG_HOLD 0x0
+#define LP5562_ENG_STEP 0x1
+#define LP5562_ENG_RUN 0x2
+
+/* Power on and initialize LP5562. */
+int lp5562_poweron(void);
+
+/* Power off LP5562. */
+int lp5562_poweroff(void);
+
+/*
+ * Set LED color.
+ * The parameter 'rgb' is in the format 0x00RRGGBB.
+ */
+int lp5562_set_color(uint32_t rgb);
+
+/* Set lighting engine used by each color */
+int lp5562_set_engine(uint8_t r, uint8_t g, uint8_t b);
+
+/* Load lighting engine program */
+int lp5562_engine_load(int engine, const uint8_t *program, int size);
+
+/* Control lighting engine execution state */
+int lp5562_engine_control(int eng1, int eng2, int eng3);
+
+/* Get engine execution state. Return 0xee on error. */
+int lp5562_get_engine_state(int engine);
+
+/* Get current program counter. Return 0xee on error. */
+int lp5562_get_pc(int engine);
+
+/* Set program counter */
+int lp5562_set_pc(int engine, int val);
+
+#endif /* LP5562_H */