Commit dc4a1626 authored by David Brownell's avatar David Brownell Committed by Tony Lindgren

tsc2102-alsa build fixes

Various fixes needed to build the tsc2102 audio.  Several fixes
relate specifically to building it as a module.

Note that this doesn't address the need for omap-alsa-dma.c
to go into a separate module so that e.g. tsc2101 and tsc2102
modules can both be built, or the assumption that the audio
is going out over McBSP not EAC.
Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
parent 24c5d1ff
...@@ -583,7 +583,8 @@ static void tsc2102_pressure(unsigned long data) ...@@ -583,7 +583,8 @@ static void tsc2102_pressure(unsigned long data)
&dev->adc_status, tsc2102_pressure_report); &dev->adc_status, tsc2102_pressure_report);
} }
#ifdef CONFIG_SOUND #if defined(CONFIG_SND_OMAP_TSC2102) || defined(CONFIG_SND_OMAP_TSC2102_MODULE)
/* /*
* Volume level values should be in the range [0, 127]. * Volume level values should be in the range [0, 127].
* Higher values mean lower volume. * Higher values mean lower volume.
...@@ -607,6 +608,7 @@ void tsc2102_set_volume(uint8_t left_ch, uint8_t right_ch) ...@@ -607,6 +608,7 @@ void tsc2102_set_volume(uint8_t left_ch, uint8_t right_ch)
spin_unlock(&tsc.lock_sync); spin_unlock(&tsc.lock_sync);
} }
EXPORT_SYMBOL_GPL(tsc2102_set_volume);
void tsc2102_set_mute(int left_ch, int right_ch) void tsc2102_set_mute(int left_ch, int right_ch)
{ {
...@@ -622,6 +624,7 @@ void tsc2102_set_mute(int left_ch, int right_ch) ...@@ -622,6 +624,7 @@ void tsc2102_set_mute(int left_ch, int right_ch)
spin_unlock(&tsc.lock_sync); spin_unlock(&tsc.lock_sync);
} }
EXPORT_SYMBOL_GPL(tsc2102_set_mute);
void tsc2102_get_mute(int *left_ch, int *right_ch) void tsc2102_get_mute(int *left_ch, int *right_ch)
{ {
...@@ -650,6 +653,7 @@ void tsc2102_set_deemphasis(int enable) ...@@ -650,6 +653,7 @@ void tsc2102_set_deemphasis(int enable)
tsc2102_write_sync(TSC2102_DAC_POWER_CTRL, val); tsc2102_write_sync(TSC2102_DAC_POWER_CTRL, val);
spin_unlock(&tsc.lock_sync); spin_unlock(&tsc.lock_sync);
} }
EXPORT_SYMBOL_GPL(tsc2102_set_deemphasis);
void tsc2102_set_bassboost(int enable) void tsc2102_set_bassboost(int enable)
{ {
...@@ -665,6 +669,7 @@ void tsc2102_set_bassboost(int enable) ...@@ -665,6 +669,7 @@ void tsc2102_set_bassboost(int enable)
tsc2102_write_sync(TSC2102_DAC_POWER_CTRL, val); tsc2102_write_sync(TSC2102_DAC_POWER_CTRL, val);
spin_unlock(&tsc.lock_sync); spin_unlock(&tsc.lock_sync);
} }
EXPORT_SYMBOL_GPL(tsc2102_set_bassboost);
/* {rate, dsor, fsref} */ /* {rate, dsor, fsref} */
static const struct tsc2102_rate_info_s tsc2102_rates[] = { static const struct tsc2102_rate_info_s tsc2102_rates[] = {
...@@ -730,6 +735,7 @@ int tsc2102_set_rate(int rate) ...@@ -730,6 +735,7 @@ int tsc2102_set_rate(int rate)
spin_unlock(&tsc.lock_sync); spin_unlock(&tsc.lock_sync);
return 0; return 0;
} }
EXPORT_SYMBOL(tsc2102_set_rate);
/* /*
* Perform basic set-up with default values and power the DAC on. * Perform basic set-up with default values and power the DAC on.
...@@ -762,6 +768,7 @@ void tsc2102_dac_power(int state) ...@@ -762,6 +768,7 @@ void tsc2102_dac_power(int state)
spin_unlock(&tsc.lock_sync); spin_unlock(&tsc.lock_sync);
} }
EXPORT_SYMBOL_GPL(tsc2102_dac_power);
void tsc2102_set_i2s_master(int state) void tsc2102_set_i2s_master(int state)
{ {
...@@ -777,7 +784,9 @@ void tsc2102_set_i2s_master(int state) ...@@ -777,7 +784,9 @@ void tsc2102_set_i2s_master(int state)
spin_unlock(&tsc.lock_sync); spin_unlock(&tsc.lock_sync);
} }
#endif /* CONFIG_SOUND */ EXPORT_SYMBOL_GPL(tsc2102_set_i2s_master);
#endif /* CONFIG_SND_OMAP_TSC2101 */
static int tsc2102_configure(struct tsc2102_dev *dev) static int tsc2102_configure(struct tsc2102_dev *dev)
{ {
......
...@@ -53,7 +53,7 @@ extern int tsc2102_ports_cb(tsc2102_ports_t handler); ...@@ -53,7 +53,7 @@ extern int tsc2102_ports_cb(tsc2102_ports_t handler);
extern int tsc2102_temp1_cb(tsc2102_temp_t handler); extern int tsc2102_temp1_cb(tsc2102_temp_t handler);
extern int tsc2102_temp2_cb(tsc2102_temp_t handler); extern int tsc2102_temp2_cb(tsc2102_temp_t handler);
#ifdef CONFIG_SOUND #if defined(CONFIG_SND_OMAP_TSC2102) || defined(CONFIG_SND_OMAP_TSC2102_MODULE)
extern void tsc2102_set_volume(uint8_t left_ch, uint8_t right_ch); extern void tsc2102_set_volume(uint8_t left_ch, uint8_t right_ch);
extern void tsc2102_set_mute(int left_ch, int right_ch); extern void tsc2102_set_mute(int left_ch, int right_ch);
extern void tsc2102_get_mute(int *left_ch, int *right_ch); extern void tsc2102_get_mute(int *left_ch, int *right_ch);
......
...@@ -19,7 +19,8 @@ ...@@ -19,7 +19,8 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/spi/tsc2102.h> #include <linux/spi/tsc2102.h>
#include <asm/arch/mcbsp.h> #include <asm/io.h>
#include <asm/arch/dma.h> #include <asm/arch/dma.h>
#include <asm/arch/clock.h> #include <asm/arch/clock.h>
#include <asm/arch/omap-alsa.h> #include <asm/arch/omap-alsa.h>
......
...@@ -26,8 +26,9 @@ ...@@ -26,8 +26,9 @@
#endif #endif
#define DEFAULT_SAMPLE_RATE 44100 #define DEFAULT_SAMPLE_RATE 44100
/* FIXME codec clock rate is board-specific */
#define CODEC_CLOCK 12000000 #define CODEC_CLOCK 12000000
#define AUDIO_MCBSP OMAP_MCBSP1
/* /*
* ALSA mixer related macros * ALSA mixer related macros
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment