db1200.c (762f99f4f3cb41a775b5157dd761217beba65873) db1200.c (d4a5c59a955bba96b273ec1a5885bada24c56979)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * DBAu1200/PBAu1200 board platform device registration
4 *
5 * Copyright (C) 2008-2011 Manuel Lauss
6 */
7
8#include <linux/clk.h>
9#include <linux/dma-mapping.h>
10#include <linux/gpio.h>
11#include <linux/i2c.h>
12#include <linux/init.h>
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * DBAu1200/PBAu1200 board platform device registration
4 *
5 * Copyright (C) 2008-2011 Manuel Lauss
6 */
7
8#include <linux/clk.h>
9#include <linux/dma-mapping.h>
10#include <linux/gpio.h>
11#include <linux/i2c.h>
12#include <linux/init.h>
13#include <linux/module.h>
14#include <linux/interrupt.h>
15#include <linux/io.h>
16#include <linux/leds.h>
17#include <linux/mmc/host.h>
18#include <linux/mtd/mtd.h>
19#include <linux/mtd/platnand.h>
20#include <linux/platform_device.h>
21#include <linux/serial_8250.h>

--- 313 unchanged lines hidden (view full) ---

335static irqreturn_t db1200_mmc_cd(int irq, void *ptr)
336{
337 disable_irq_nosync(irq);
338 return IRQ_WAKE_THREAD;
339}
340
341static irqreturn_t db1200_mmc_cdfn(int irq, void *ptr)
342{
13#include <linux/interrupt.h>
14#include <linux/io.h>
15#include <linux/leds.h>
16#include <linux/mmc/host.h>
17#include <linux/mtd/mtd.h>
18#include <linux/mtd/platnand.h>
19#include <linux/platform_device.h>
20#include <linux/serial_8250.h>

--- 313 unchanged lines hidden (view full) ---

334static irqreturn_t db1200_mmc_cd(int irq, void *ptr)
335{
336 disable_irq_nosync(irq);
337 return IRQ_WAKE_THREAD;
338}
339
340static irqreturn_t db1200_mmc_cdfn(int irq, void *ptr)
341{
343 void (*mmc_cd)(struct mmc_host *, unsigned long);
342 mmc_detect_change(ptr, msecs_to_jiffies(200));
344
343
345 /* link against CONFIG_MMC=m */
346 mmc_cd = symbol_get(mmc_detect_change);
347 if (mmc_cd) {
348 mmc_cd(ptr, msecs_to_jiffies(200));
349 symbol_put(mmc_detect_change);
350 }
351
352 msleep(100); /* debounce */
353 if (irq == DB1200_SD0_INSERT_INT)
354 enable_irq(DB1200_SD0_EJECT_INT);
355 else
356 enable_irq(DB1200_SD0_INSERT_INT);
357
358 return IRQ_HANDLED;
359}

--- 66 unchanged lines hidden (view full) ---

426static irqreturn_t pb1200_mmc1_cd(int irq, void *ptr)
427{
428 disable_irq_nosync(irq);
429 return IRQ_WAKE_THREAD;
430}
431
432static irqreturn_t pb1200_mmc1_cdfn(int irq, void *ptr)
433{
344 msleep(100); /* debounce */
345 if (irq == DB1200_SD0_INSERT_INT)
346 enable_irq(DB1200_SD0_EJECT_INT);
347 else
348 enable_irq(DB1200_SD0_INSERT_INT);
349
350 return IRQ_HANDLED;
351}

--- 66 unchanged lines hidden (view full) ---

418static irqreturn_t pb1200_mmc1_cd(int irq, void *ptr)
419{
420 disable_irq_nosync(irq);
421 return IRQ_WAKE_THREAD;
422}
423
424static irqreturn_t pb1200_mmc1_cdfn(int irq, void *ptr)
425{
434 void (*mmc_cd)(struct mmc_host *, unsigned long);
426 mmc_detect_change(ptr, msecs_to_jiffies(200));
435
427
436 /* link against CONFIG_MMC=m */
437 mmc_cd = symbol_get(mmc_detect_change);
438 if (mmc_cd) {
439 mmc_cd(ptr, msecs_to_jiffies(200));
440 symbol_put(mmc_detect_change);
441 }
442
443 msleep(100); /* debounce */
444 if (irq == PB1200_SD1_INSERT_INT)
445 enable_irq(PB1200_SD1_EJECT_INT);
446 else
447 enable_irq(PB1200_SD1_INSERT_INT);
448
449 return IRQ_HANDLED;
450}

--- 502 unchanged lines hidden ---
428 msleep(100); /* debounce */
429 if (irq == PB1200_SD1_INSERT_INT)
430 enable_irq(PB1200_SD1_EJECT_INT);
431 else
432 enable_irq(PB1200_SD1_INSERT_INT);
433
434 return IRQ_HANDLED;
435}

--- 502 unchanged lines hidden ---