aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/blackfin/mach-bf533/boards/stamp.c168
1 files changed, 160 insertions, 8 deletions
diff --git a/arch/blackfin/mach-bf533/boards/stamp.c b/arch/blackfin/mach-bf533/boards/stamp.c
index d12d4de73e6d..2ba4d0b4e252 100644
--- a/arch/blackfin/mach-bf533/boards/stamp.c
+++ b/arch/blackfin/mach-bf533/boards/stamp.c
@@ -541,27 +541,150 @@ static struct platform_device bfin_dpmc = {
541 }, 541 },
542}; 542};
543 543
544#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE) || \
545 defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE) \
546 || defined(CONFIG_SND_BF5XX_AC97) || \
547 defined(CONFIG_SND_BF5XX_AC97_MODULE)
548
549#include <asm/bfin_sport.h>
550
551#define SPORT_REQ(x) \
552 [x] = {P_SPORT##x##_TFS, P_SPORT##x##_DTPRI, P_SPORT##x##_TSCLK, \
553 P_SPORT##x##_RFS, P_SPORT##x##_DRPRI, P_SPORT##x##_RSCLK, 0}
554
555static const u16 bfin_snd_pin[][7] = {
556 SPORT_REQ(0),
557 SPORT_REQ(1),
558};
559
560static struct bfin_snd_platform_data bfin_snd_data[] = {
561 {
562 .pin_req = &bfin_snd_pin[0][0],
563 },
564 {
565 .pin_req = &bfin_snd_pin[1][0],
566 },
567};
568
569#define BFIN_SND_RES(x) \
570 [x] = { \
571 { \
572 .start = SPORT##x##_TCR1, \
573 .end = SPORT##x##_TCR1, \
574 .flags = IORESOURCE_MEM \
575 }, \
576 { \
577 .start = CH_SPORT##x##_RX, \
578 .end = CH_SPORT##x##_RX, \
579 .flags = IORESOURCE_DMA, \
580 }, \
581 { \
582 .start = CH_SPORT##x##_TX, \
583 .end = CH_SPORT##x##_TX, \
584 .flags = IORESOURCE_DMA, \
585 }, \
586 { \
587 .start = IRQ_SPORT##x##_ERROR, \
588 .end = IRQ_SPORT##x##_ERROR, \
589 .flags = IORESOURCE_IRQ, \
590 } \
591 }
592
593static struct resource bfin_snd_resources[][4] = {
594 BFIN_SND_RES(0),
595 BFIN_SND_RES(1),
596};
597#endif
598
544#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE) 599#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
600static struct platform_device bfin_i2s_pcm = {
601 .name = "bfin-i2s-pcm-audio",
602 .id = -1,
603};
604#endif
605
606#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
607static struct platform_device bfin_tdm_pcm = {
608 .name = "bfin-tdm-pcm-audio",
609 .id = -1,
610};
611#endif
612
613#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
614static struct platform_device bfin_ac97_pcm = {
615 .name = "bfin-ac97-pcm-audio",
616 .id = -1,
617};
618#endif
619
620#if defined(CONFIG_SND_BF5XX_SOC_AD73311) || \
621 defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE)
622static const unsigned ad73311_gpio[] = {
623 GPIO_PF4,
624};
625
626static struct platform_device bfin_ad73311_machine = {
627 .name = "bfin-snd-ad73311",
628 .id = 1,
629 .dev = {
630 .platform_data = (void *)ad73311_gpio,
631 },
632};
633#endif
634
635#if defined(CONFIG_SND_SOC_AD73311) || defined(CONFIG_SND_SOC_AD73311_MODULE)
636static struct platform_device bfin_ad73311_codec_device = {
637 .name = "ad73311",
638 .id = -1,
639};
640#endif
641
642#if defined(CONFIG_SND_SOC_AD74111) || defined(CONFIG_SND_SOC_AD74111_MODULE)
643static struct platform_device bfin_ad74111_codec_device = {
644 .name = "ad74111",
645 .id = -1,
646};
647#endif
648
649#if defined(CONFIG_SND_BF5XX_SOC_I2S) || \
650 defined(CONFIG_SND_BF5XX_SOC_I2S_MODULE)
545static struct platform_device bfin_i2s = { 651static struct platform_device bfin_i2s = {
546 .name = "bfin-i2s", 652 .name = "bfin-i2s",
547 .id = CONFIG_SND_BF5XX_SPORT_NUM, 653 .id = CONFIG_SND_BF5XX_SPORT_NUM,
548 /* TODO: add platform data here */ 654 .num_resources =
655 ARRAY_SIZE(bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM]),
656 .resource = bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM],
657 .dev = {
658 .platform_data = &bfin_snd_data[CONFIG_SND_BF5XX_SPORT_NUM],
659 },
549}; 660};
550#endif 661#endif
551 662
552#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE) 663#if defined(CONFIG_SND_BF5XX_SOC_TDM) || \
664 defined(CONFIG_SND_BF5XX_SOC_TDM_MODULE)
553static struct platform_device bfin_tdm = { 665static struct platform_device bfin_tdm = {
554 .name = "bfin-tdm", 666 .name = "bfin-tdm",
555 .id = CONFIG_SND_BF5XX_SPORT_NUM, 667 .id = CONFIG_SND_BF5XX_SPORT_NUM,
556 /* TODO: add platform data here */ 668 .num_resources =
669 ARRAY_SIZE(bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM]),
670 .resource = bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM],
671 .dev = {
672 .platform_data = &bfin_snd_data[CONFIG_SND_BF5XX_SPORT_NUM],
673 },
557}; 674};
558#endif 675#endif
559 676
560#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE) 677#if defined(CONFIG_SND_BF5XX_SOC_AC97) || \
678 defined(CONFIG_SND_BF5XX_SOC_AC97_MODULE)
561static struct platform_device bfin_ac97 = { 679static struct platform_device bfin_ac97 = {
562 .name = "bfin-ac97", 680 .name = "bfin-ac97",
563 .id = CONFIG_SND_BF5XX_SPORT_NUM, 681 .id = CONFIG_SND_BF5XX_SPORT_NUM,
564 /* TODO: add platform data here */ 682 .num_resources =
683 ARRAY_SIZE(bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM]),
684 .resource = bfin_snd_resources[CONFIG_SND_BF5XX_SPORT_NUM],
685 .dev = {
686 .platform_data = &bfin_snd_data[CONFIG_SND_BF5XX_SPORT_NUM],
687 },
565}; 688};
566#endif 689#endif
567 690
@@ -597,7 +720,8 @@ static struct platform_device *stamp_devices[] __initdata = {
597#endif 720#endif
598#endif 721#endif
599 722
600#if defined(CONFIG_SERIAL_BFIN_SPORT) || defined(CONFIG_SERIAL_BFIN_SPORT_MODULE) 723#if defined(CONFIG_SERIAL_BFIN_SPORT) || \
724 defined(CONFIG_SERIAL_BFIN_SPORT_MODULE)
601#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART 725#ifdef CONFIG_SERIAL_BFIN_SPORT0_UART
602 &bfin_sport0_uart_device, 726 &bfin_sport0_uart_device,
603#endif 727#endif
@@ -619,14 +743,42 @@ static struct platform_device *stamp_devices[] __initdata = {
619#endif 743#endif
620 744
621#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE) 745#if defined(CONFIG_SND_BF5XX_I2S) || defined(CONFIG_SND_BF5XX_I2S_MODULE)
622 &bfin_i2s, 746 &bfin_i2s_pcm,
623#endif 747#endif
624 748
625#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE) 749#if defined(CONFIG_SND_BF5XX_TDM) || defined(CONFIG_SND_BF5XX_TDM_MODULE)
626 &bfin_tdm, 750 &bfin_tdm_pcm,
627#endif 751#endif
628 752
629#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE) 753#if defined(CONFIG_SND_BF5XX_AC97) || defined(CONFIG_SND_BF5XX_AC97_MODULE)
754 &bfin_ac97_pcm,
755#endif
756
757#if defined(CONFIG_SND_BF5XX_SOC_AD73311) || \
758 defined(CONFIG_SND_BF5XX_SOC_AD73311_MODULE)
759 &bfin_ad73311_machine,
760#endif
761
762#if defined(CONFIG_SND_SOC_AD73311) || defined(CONFIG_SND_SOC_AD73311_MODULE)
763 &bfin_ad73311_codec_device,
764#endif
765
766#if defined(CONFIG_SND_SOC_AD74111) || defined(CONFIG_SND_SOC_AD74111_MODULE)
767 &bfin_ad74111_codec_device,
768#endif
769
770#if defined(CONFIG_SND_BF5XX_SOC_I2S) || \
771 defined(CONFIG_SND_BF5XX_SOC_I2S_MODULE)
772 &bfin_i2s,
773#endif
774
775#if defined(CONFIG_SND_BF5XX_SOC_TDM) || \
776 defined(CONFIG_SND_BF5XX_SOC_TDM_MODULE)
777 &bfin_tdm,
778#endif
779
780#if defined(CONFIG_SND_BF5XX_SOC_AC97) || \
781 defined(CONFIG_SND_BF5XX_SOC_AC97_MODULE)
630 &bfin_ac97, 782 &bfin_ac97,
631#endif 783#endif
632}; 784};