diff options
author | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2012-03-08 04:01:37 -0500 |
---|---|---|
committer | Liam Girdwood <lrg@ti.com> | 2012-03-12 09:34:23 -0400 |
commit | cd1f08c7f64ce2093877ecafd21ee784c8ca2389 (patch) | |
tree | b8d71627371435c1b5539311ddf0e1bef6b25dfe | |
parent | 33cec399048545c64d9b9a1368b968acee8acb35 (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.c | 48 | ||||
-rw-r--r-- | sound/soc/omap/mcbsp.h | 15 | ||||
-rw-r--r-- | sound/soc/omap/omap-mcbsp.c | 8 |
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 | ||
690 | void omap2_mcbsp1_mux_clkr_src(struct omap_mcbsp *mcbsp, u8 mux) | 690 | int 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 | |||
708 | void 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); | |||
333 | int omap2_mcbsp_set_clks_src(struct omap_mcbsp *mcbsp, u8 fck_src_id); | 331 | int 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 */ |
336 | void omap2_mcbsp1_mux_clkr_src(struct omap_mcbsp *mcbsp, u8 mux); | 334 | int omap_mcbsp_6pin_src_mux(struct omap_mcbsp *mcbsp, u8 mux); |
337 | void omap2_mcbsp1_mux_fsr_src(struct omap_mcbsp *mcbsp, u8 mux); | ||
338 | 335 | ||
339 | /* Sidetone specific API */ | 336 | /* Sidetone specific API */ |
340 | int omap_st_set_chgain(struct omap_mcbsp *mcbsp, int channel, s16 chgain); | 337 | int 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; |