diff options
author | Alan Tull <r80115@freescale.com> | 2010-10-06 15:04:28 -0500 |
---|---|---|
committer | Alan Tull <alan.tull@freescale.com> | 2010-10-15 11:23:51 -0500 |
commit | 814f3c198b051e140613a1b4a02266bd4a411d97 (patch) | |
tree | 0e7423881f5c066a1153ac038c3aff44812e7a7a /arch | |
parent | de51265112ce748d35d38d85acd9be6078a8fb83 (diff) |
ENGR00132525-1 sgtl5000: audio clock gating
Turn off audio clock when possible. Empirical data says that we
need to leave the clocks on for 300 mSec after all codec writes
are done so schedule work to do that.
This feature supported for i.Mx51 Babbage and i.Mx50 EVK (rdp) boards.
Signed-off-by: Alan Tull <alan.tull@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-mx5/mx50_rdp.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-mx5/mx51_babbage.c | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/arch/arm/mach-mx5/mx50_rdp.c b/arch/arm/mach-mx5/mx50_rdp.c index a4ca2374935e..45274b21d157 100644 --- a/arch/arm/mach-mx5/mx50_rdp.c +++ b/arch/arm/mach-mx5/mx50_rdp.c @@ -919,6 +919,12 @@ static int mxc_sgtl5000_amp_enable(int enable) return 0; } +static int mxc_sgtl5000_clock_enable(int enable) +{ + gpio_set_value(SGTL_OSCEN, enable); + return 0; +} + static int headphone_det_status(void) { return (gpio_get_value(HP_DETECT) == 0); @@ -931,6 +937,7 @@ static struct mxc_audio_platform_data sgtl5000_data = { .hp_irq = IOMUX_TO_IRQ_V3(HP_DETECT), .hp_status = headphone_det_status, .amp_enable = mxc_sgtl5000_amp_enable, + .clock_enable = mxc_sgtl5000_clock_enable, .sysclk = 12288000, }; diff --git a/arch/arm/mach-mx5/mx51_babbage.c b/arch/arm/mach-mx5/mx51_babbage.c index f7eae32a4988..e2199c029759 100644 --- a/arch/arm/mach-mx5/mx51_babbage.c +++ b/arch/arm/mach-mx5/mx51_babbage.c @@ -900,6 +900,12 @@ static int mxc_sgtl5000_amp_enable(int enable) return 0; } +static int mxc_sgtl5000_clock_enable(int enable) +{ + gpio_set_value(BABBAGE_AUDIO_CLK_EN, !enable); + return 0; +} + static int headphone_det_status(void) { return (gpio_get_value(BABBAGE_HEADPHONE_DET) == 0); @@ -912,6 +918,7 @@ static struct mxc_audio_platform_data sgtl5000_data = { .hp_irq = IOMUX_TO_IRQ_V3(BABBAGE_HEADPHONE_DET), .hp_status = headphone_det_status, .amp_enable = mxc_sgtl5000_amp_enable, + .clock_enable = mxc_sgtl5000_clock_enable, .sysclk = 12288000, }; |