summaryrefslogtreecommitdiff
path: root/firmware/target/mips/ingenic_x1000/msc-x1000.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/mips/ingenic_x1000/msc-x1000.c')
-rw-r--r--firmware/target/mips/ingenic_x1000/msc-x1000.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/firmware/target/mips/ingenic_x1000/msc-x1000.c b/firmware/target/mips/ingenic_x1000/msc-x1000.c
index 92b3d4206a..27929cced5 100644
--- a/firmware/target/mips/ingenic_x1000/msc-x1000.c
+++ b/firmware/target/mips/ingenic_x1000/msc-x1000.c
@@ -42,7 +42,6 @@
42static const msc_config msc_configs[] = { 42static const msc_config msc_configs[] = {
43#ifdef FIIO_M3K 43#ifdef FIIO_M3K
44#define MSC_CLOCK_SOURCE X1000_CLK_SCLK_A 44#define MSC_CLOCK_SOURCE X1000_CLK_SCLK_A
45#define msc0_cd_interrupt GPIOB06
46 { 45 {
47 .msc_nr = 0, 46 .msc_nr = 0,
48 .msc_type = MSC_TYPE_SD, 47 .msc_type = MSC_TYPE_SD,
@@ -67,6 +66,9 @@ static const msc_config* msc_lookup_config(int msc)
67 66
68static msc_drv msc_drivers[MSC_COUNT]; 67static msc_drv msc_drivers[MSC_COUNT];
69 68
69static void msc0_cd_interrupt(void);
70static void msc1_cd_interrupt(void);
71
70/* --------------------------------------------------------------------------- 72/* ---------------------------------------------------------------------------
71 * Initialization 73 * Initialization
72 */ 74 */
@@ -123,6 +125,8 @@ static void msc_init_one(msc_drv* d, int msc)
123 if(gpio_get_level(d->config->cd_gpio) != d->config->cd_active_level) 125 if(gpio_get_level(d->config->cd_gpio) != d->config->cd_active_level)
124 d->card_present = 0; 126 d->card_present = 0;
125 127
128 system_set_irq_handler(GPIO_TO_IRQ(d->config->cd_gpio),
129 msc == 0 ? msc0_cd_interrupt : msc1_cd_interrupt);
126 gpio_set_function(d->config->cd_gpio, GPIOF_IRQ_EDGE(1)); 130 gpio_set_function(d->config->cd_gpio, GPIOF_IRQ_EDGE(1));
127 gpio_flip_edge_irq(d->config->cd_gpio); 131 gpio_flip_edge_irq(d->config->cd_gpio);
128 gpio_enable_irq(d->config->cd_gpio); 132 gpio_enable_irq(d->config->cd_gpio);
@@ -647,19 +651,15 @@ void MSC1(void)
647 msc_interrupt(&msc_drivers[1]); 651 msc_interrupt(&msc_drivers[1]);
648} 652}
649 653
650#ifdef msc0_cd_interrupt 654static void msc0_cd_interrupt(void)
651void msc0_cd_interrupt(void)
652{ 655{
653 msc_cd_interrupt(&msc_drivers[0]); 656 msc_cd_interrupt(&msc_drivers[0]);
654} 657}
655#endif
656 658
657#ifdef msc1_cd_interrupt 659static void msc1_cd_interrupt(void)
658void msc1_cd_interrupt(void)
659{ 660{
660 msc_cd_interrupt(&msc_drivers[1]); 661 msc_cd_interrupt(&msc_drivers[1]);
661} 662}
662#endif
663 663
664/* --------------------------------------------------------------------------- 664/* ---------------------------------------------------------------------------
665 * SD command helpers 665 * SD command helpers