summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCHLin <CHLIN56@nuvoton.com>2018-02-01 13:19:07 +0800
committerchrome-bot <chrome-bot@chromium.org>2018-02-28 15:21:13 -0800
commit5e614b1c98b73579d7f7975299a8be215f6ffd6d (patch)
tree27e8c34980a2d53bb600def03945c6913e40ef63 /include
parent2f1e99bcef7165c051b08bc365ef6e1f689843e0 (diff)
downloadchrome-ec-5e614b1c98b73579d7f7975299a8be215f6ffd6d.tar.gz
npcx7: WoV: Add support for Wake-on-Voice (WoV) module
This CL adds the driver support for the WoV module which inludes the following files: - wov.c - wov_chip.h - apm.c - apm_chip.h It also supports the console commad "wov" which can test different configuration and audio quality by entering different parameters. The detail description of WoV console command is listed below: ------------------------------------------------------------------------ [Note]: Before changing any of settings, please make sure the operation mode is on the "OFF" state. (ie. run the command wov cfgmod off first) . > wov init Initialize WoV interface, including pin mux and interrupt registration etc. > wov mute <enable / disable > mute enable / disable. > wov cfgsrc <mono | stereo | left | right> set audio source, ex: wov cfgsrc left, means audio source from left MIC. > wov cfgbis <16|18|20|24> set audio resolution, ex: wov cfgbit 16 means audio resolution are 16bits. > wov cfgsfs <8000|12000|16000|24000|32000|48000> set audio sampling frequency rate, ex: wov cfgsfs 48000 means audio sampling rate are 48Khz. > wov cfgbck <32fs|48fs|64fs|128fs|256fs> set I2S bit clock rate, ex: wov cfgsfs 48000 and wov cfgbck 32fs means audio sampling rate are 1536Khz (32*48000). > wov cfgfmt <i2s|right|left|pcma|pcmb|tdm> set I2S but format, ex: wov cfgfmt right means audio I2S format are Right-Justify. > wov cfgmod <off|vad|ram|i2s|rami2s> set audio operation mode ,ex: wov cfgmod i2s means audio output via I2S bus. > wov cfgtdm <0~496 0~496 0~3> set TDM time slot, the first values is left channel delay counter, the second is right channel, and the 3rd is startup counting condition. (chosen LRCK raising or falling edge) . [Note: this command is just working on cfgmod equal to tdm] > wov cfgget retrieve above settings. > wov vadsens (currently not support, reserve for next version) > wov gain (0~31) set audio data gain value, ex: wov gain 10 means setting audio digital gain are 10dB. > wov cfgdck <1.0 | 2.4 | 3.0 > set digital MIC PDM clock rate. ex: wov cfgdck 2.4 means PDM clock are 2.4Mhz. ----------------------------------------------------------------------- This CL also adds the chip ID (0x24) for npcx7m7w. So the console command "version" can show the chip is npcx7m7w. BRANCH=none BUG=none TEST=No build errors for make buildall. TEST="BOARD=npcx7_evb make"; Flash the image on EVB; Test WoV function with console commands described above. Change-Id: Ief2b3e89edbd3e6d2a9d82d317a93c9f0b7a20cd Signed-off-by: Dror Goldstein <dror.goldstein@nuvoton.com> Signed-off-by: Simon Liang <CMLiang@nuvoton.com> Signed-off-by: CHLin <CHLIN56@nuvoton.com> Reviewed-on: https://chromium-review.googlesource.com/897314 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: CH Lin <chlin56@nuvoton.com> Reviewed-by: Scott Collyer <scollyer@chromium.org>
Diffstat (limited to 'include')
-rw-r--r--include/common.h2
-rw-r--r--include/console_channel.inc3
-rw-r--r--include/module_id.h1
3 files changed, 6 insertions, 0 deletions
diff --git a/include/common.h b/include/common.h
index fff9415240..334b7a6111 100644
--- a/include/common.h
+++ b/include/common.h
@@ -145,6 +145,8 @@ enum ec_error_list {
EC_ERROR_UNCHANGED = 22,
/* Memory allocation */
EC_ERROR_MEMORY_ALLOCATION = 23,
+ /* Invalid to configure in the current module mode/stage */
+ EC_ERROR_INVALID_CONFIG = 24,
/* Verified boot errors */
EC_ERROR_VBOOT_SIGNATURE = 0x1000, /* 4096 */
diff --git a/include/console_channel.inc b/include/console_channel.inc
index 0d3f7a07f9..b8412cf335 100644
--- a/include/console_channel.inc
+++ b/include/console_channel.inc
@@ -89,4 +89,7 @@ CONSOLE_CHANNEL(CC_USBCHARGE, "usbcharge")
CONSOLE_CHANNEL(CC_USBPD, "usbpd")
#endif
CONSOLE_CHANNEL(CC_VBOOT, "vboot")
+#ifdef CONFIG_WAKE_ON_VOICE
+CONSOLE_CHANNEL(CC_WOV, "wov")
+#endif
CONSOLE_CHANNEL(CC_HOOK, "hook")
diff --git a/include/module_id.h b/include/module_id.h
index 3e73f3c4a2..aac2cb6186 100644
--- a/include/module_id.h
+++ b/include/module_id.h
@@ -51,6 +51,7 @@ enum module_id {
MODULE_VBOOT,
MODULE_MCO,
MODULE_TFDP,
+ MODULE_WOV,
/* Module count; not an actual module */
MODULE_COUNT