aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Ujfalusi <peter.ujfalusi@ti.com>2012-03-08 04:01:37 -0500
committerLiam Girdwood <lrg@ti.com>2012-03-12 09:34:23 -0400
commitcd1f08c7f64ce2093877ecafd21ee784c8ca2389 (patch)
treeb8d71627371435c1b5539311ddf0e1bef6b25dfe
parent33cec399048545c64d9b9a1368b968acee8acb35 (diff)
ASoC: omap-mcbsp: Single function CLKR/FSR source mux configuration
Use single function for the CLKR/FSR mux configuration. OMAP2/3 has 6 pin configuration on McBSP1 instance, while on OMAP4 McBSP4 instance have the 6 pin configuration so the omap2_mcbsp1_mux_* is not correct name for all support OMAP versions Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Jarkko Nikula <jarkko.nikula@bitmer.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@ti.com>
-rw-r--r--sound/soc/omap/mcbsp.c48
-rw-r--r--sound/soc/omap/mcbsp.h15
-rw-r--r--sound/soc/omap/omap-mcbsp.c8
3 files changed, 32 insertions, 39 deletions
diff --git a/sound/soc/omap/mcbsp.c b/sound/soc/omap/mcbsp.c
index c3e31deafa07..95413a168087 100644
--- a/sound/soc/omap/mcbsp.c
+++ b/sound/soc/omap/mcbsp.c
@@ -687,40 +687,36 @@ int omap2_mcbsp_set_clks_src(struct omap_mcbsp *mcbsp, u8 fck_src_id)
687 return -EINVAL; 687 return -EINVAL;
688} 688}
689 689
690void omap2_mcbsp1_mux_clkr_src(struct omap_mcbsp *mcbsp, u8 mux) 690int omap_mcbsp_6pin_src_mux(struct omap_mcbsp *mcbsp, u8 mux)
691{ 691{
692 const char *src; 692 const char *signal, *src;
693 693 int ret = 0;
694 if (mcbsp->id != 1)
695 return;
696 694
697 if (mux == CLKR_SRC_CLKR) 695 switch (mux) {
696 case CLKR_SRC_CLKR:
697 signal = "clkr";
698 src = "clkr"; 698 src = "clkr";
699 else if (mux == CLKR_SRC_CLKX) 699 break;
700 case CLKR_SRC_CLKX:
701 signal = "clkr";
700 src = "clkx"; 702 src = "clkx";
701 else 703 break;
702 return; 704 case FSR_SRC_FSR:
703 705 signal = "fsr";
704 if (mcbsp->pdata->mux_signal)
705 mcbsp->pdata->mux_signal(mcbsp->dev, "clkr", src);
706}
707
708void omap2_mcbsp1_mux_fsr_src(struct omap_mcbsp *mcbsp, u8 mux)
709{
710 const char *src;
711
712 if (mcbsp->id != 1)
713 return;
714
715 if (mux == FSR_SRC_FSR)
716 src = "fsr"; 706 src = "fsr";
717 else if (mux == FSR_SRC_FSX) 707 break;
708 case FSR_SRC_FSX:
709 signal = "fsr";
718 src = "fsx"; 710 src = "fsx";
719 else 711 break;
720 return; 712 default:
713 return -EINVAL;
714 }
721 715
722 if (mcbsp->pdata->mux_signal) 716 if (mcbsp->pdata->mux_signal)
723 mcbsp->pdata->mux_signal(mcbsp->dev, "fsr", src); 717 ret = mcbsp->pdata->mux_signal(mcbsp->dev, signal, src);
718
719 return ret;
724} 720}
725 721
726#define max_thres(m) (mcbsp->pdata->buffer_size) 722#define max_thres(m) (mcbsp->pdata->buffer_size)
diff --git a/sound/soc/omap/mcbsp.h b/sound/soc/omap/mcbsp.h
index acc94700f5b7..a944fcc9073c 100644
--- a/sound/soc/omap/mcbsp.h
+++ b/sound/soc/omap/mcbsp.h
@@ -230,13 +230,11 @@ enum {
230#define XRDYEN BIT(10) 230#define XRDYEN BIT(10)
231#define XEMPTYEOFEN BIT(14) 231#define XEMPTYEOFEN BIT(14)
232 232
233/* CLKR signal muxing options */ 233/* Clock signal muxing options */
234#define CLKR_SRC_CLKR 0 234#define CLKR_SRC_CLKR 0 /* CLKR signal is from the CLKR pin */
235#define CLKR_SRC_CLKX 1 235#define CLKR_SRC_CLKX 1 /* CLKR signal is from the CLKX pin */
236 236#define FSR_SRC_FSR 2 /* FSR signal is from the FSR pin */
237/* FSR signal muxing options */ 237#define FSR_SRC_FSX 3 /* FSR signal is from the FSX pin */
238#define FSR_SRC_FSR 0
239#define FSR_SRC_FSX 1
240 238
241/* McBSP functional clock sources */ 239/* McBSP functional clock sources */
242#define MCBSP_CLKS_PRCM_SRC 0 240#define MCBSP_CLKS_PRCM_SRC 0
@@ -333,8 +331,7 @@ void omap_mcbsp_stop(struct omap_mcbsp *mcbsp, int tx, int rx);
333int omap2_mcbsp_set_clks_src(struct omap_mcbsp *mcbsp, u8 fck_src_id); 331int omap2_mcbsp_set_clks_src(struct omap_mcbsp *mcbsp, u8 fck_src_id);
334 332
335/* McBSP signal muxing API */ 333/* McBSP signal muxing API */
336void omap2_mcbsp1_mux_clkr_src(struct omap_mcbsp *mcbsp, u8 mux); 334int omap_mcbsp_6pin_src_mux(struct omap_mcbsp *mcbsp, u8 mux);
337void omap2_mcbsp1_mux_fsr_src(struct omap_mcbsp *mcbsp, u8 mux);
338 335
339/* Sidetone specific API */ 336/* Sidetone specific API */
340int omap_st_set_chgain(struct omap_mcbsp *mcbsp, int channel, s16 chgain); 337int omap_st_set_chgain(struct omap_mcbsp *mcbsp, int channel, s16 chgain);
diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
index 10eb645ceeef..d8409b008431 100644
--- a/sound/soc/omap/omap-mcbsp.c
+++ b/sound/soc/omap/omap-mcbsp.c
@@ -554,22 +554,22 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
554 case OMAP_MCBSP_CLKR_SRC_CLKR: 554 case OMAP_MCBSP_CLKR_SRC_CLKR:
555 if (cpu_class_is_omap1()) 555 if (cpu_class_is_omap1())
556 break; 556 break;
557 omap2_mcbsp1_mux_clkr_src(mcbsp, CLKR_SRC_CLKR); 557 err = omap_mcbsp_6pin_src_mux(mcbsp, CLKR_SRC_CLKR);
558 break; 558 break;
559 case OMAP_MCBSP_CLKR_SRC_CLKX: 559 case OMAP_MCBSP_CLKR_SRC_CLKX:
560 if (cpu_class_is_omap1()) 560 if (cpu_class_is_omap1())
561 break; 561 break;
562 omap2_mcbsp1_mux_clkr_src(mcbsp, CLKR_SRC_CLKX); 562 err = omap_mcbsp_6pin_src_mux(mcbsp, CLKR_SRC_CLKX);
563 break; 563 break;
564 case OMAP_MCBSP_FSR_SRC_FSR: 564 case OMAP_MCBSP_FSR_SRC_FSR:
565 if (cpu_class_is_omap1()) 565 if (cpu_class_is_omap1())
566 break; 566 break;
567 omap2_mcbsp1_mux_fsr_src(mcbsp, FSR_SRC_FSR); 567 err = omap_mcbsp_6pin_src_mux(mcbsp, FSR_SRC_FSR);
568 break; 568 break;
569 case OMAP_MCBSP_FSR_SRC_FSX: 569 case OMAP_MCBSP_FSR_SRC_FSX:
570 if (cpu_class_is_omap1()) 570 if (cpu_class_is_omap1())
571 break; 571 break;
572 omap2_mcbsp1_mux_fsr_src(mcbsp, FSR_SRC_FSX); 572 err = omap_mcbsp_6pin_src_mux(mcbsp, FSR_SRC_FSX);
573 break; 573 break;
574 default: 574 default:
575 err = -ENODEV; 575 err = -ENODEV;