diff options
author | CHLin <CHLIN56@nuvoton.com> | 2018-02-01 13:19:07 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2018-02-28 15:21:13 -0800 |
commit | 5e614b1c98b73579d7f7975299a8be215f6ffd6d (patch) | |
tree | 27e8c34980a2d53bb600def03945c6913e40ef63 /include | |
parent | 2f1e99bcef7165c051b08bc365ef6e1f689843e0 (diff) | |
download | chrome-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.h | 2 | ||||
-rw-r--r-- | include/console_channel.inc | 3 | ||||
-rw-r--r-- | include/module_id.h | 1 |
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 |