summaryrefslogtreecommitdiffstats
path: root/include/sound
diff options
context:
space:
mode:
authorBard Liao <bardliao@realtek.com>2014-06-20 14:41:13 +0800
committerMark Brown <broonie@linaro.org>2014-07-04 18:50:51 +0100
commit07cf7cbadb4d97a78be61119a406de8fe446467e (patch)
treef237a61b13b5fc250909720a30b3e5eb2ba62b72 /include/sound
parent7171511eaec5bf23fb06078f59784a3a0626b38f (diff)
downloadlinux-stable-07cf7cbadb4d97a78be61119a406de8fe446467e.tar.gz
linux-stable-07cf7cbadb4d97a78be61119a406de8fe446467e.tar.bz2
linux-stable-07cf7cbadb4d97a78be61119a406de8fe446467e.zip
ASoC: add RT286 CODEC driver
This patch adds Realtek ALC286 codec driver. ALC286 is a dual mode codec, which can run as HD-A or I2S mode. It is controlled by HD-A verb commands via I2C protocol. The following is the I/O difference between ALC286 and general I2S codecs. 1. A HD-A verb command contains three parts, NID, VID, and PID. And an I2S command contains only two parts: address and data. 2. Not only the register address is written, but the read command also includes the entire write command. 3. rt286 uses different registers for read and write the same bits. We map verb command to regmap structure. However, we read most registers from cache to prevent the asymmetry read/write issue in rt286. Signed-off-by: Bard Liao <bardliao@realtek.com> Signed-off-by: Gustaw Lewandowski <gustaw.lewandowski@intel.com> Signed-off-by: Mark Brown <broonie@linaro.org>
Diffstat (limited to 'include/sound')
-rw-r--r--include/sound/rt286.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/sound/rt286.h b/include/sound/rt286.h
new file mode 100644
index 000000000000..eb773d1485f2
--- /dev/null
+++ b/include/sound/rt286.h
@@ -0,0 +1,19 @@
+/*
+ * linux/sound/rt286.h -- Platform data for RT286
+ *
+ * Copyright 2013 Realtek Microelectronics
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#ifndef __LINUX_SND_RT286_H
+#define __LINUX_SND_RT286_H
+
+struct rt286_platform_data {
+ bool cbj_en; /*combo jack enable*/
+ bool gpio2_en; /*GPIO2 enable*/
+};
+
+#endif