mirror of
https://github.com/torvalds/linux.git
synced 2024-12-27 05:11:48 +00:00
39f80bcb0e
The driver registered for CPU frequency transitions to recalculate its clock when ARM clock frequency changes (ratio between frequencies of ARM's parent clock (fclk) and clock for peripherals remains fixed). This is needed only on S3C24xx platform when cpufreq driver is enabled so limit the ifdef to respective cpufreq Kconfig. Suggested-by: Marek Szyprowski <m.szyprowski@samsung.com> Signed-off-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
81 lines
1.5 KiB
C
81 lines
1.5 KiB
C
/*
|
|
* linux/drivers/mmc/s3cmci.h - Samsung S3C MCI driver
|
|
*
|
|
* Copyright (C) 2004-2006 Thomas Kleffel, All Rights Reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
enum s3cmci_waitfor {
|
|
COMPLETION_NONE,
|
|
COMPLETION_FINALIZE,
|
|
COMPLETION_CMDSENT,
|
|
COMPLETION_RSPFIN,
|
|
COMPLETION_XFERFINISH,
|
|
COMPLETION_XFERFINISH_RSPFIN,
|
|
};
|
|
|
|
struct s3cmci_host {
|
|
struct platform_device *pdev;
|
|
struct s3c24xx_mci_pdata *pdata;
|
|
struct mmc_host *mmc;
|
|
struct resource *mem;
|
|
struct clk *clk;
|
|
void __iomem *base;
|
|
int irq;
|
|
int irq_cd;
|
|
struct dma_chan *dma;
|
|
|
|
unsigned long clk_rate;
|
|
unsigned long clk_div;
|
|
unsigned long real_rate;
|
|
u8 prescaler;
|
|
|
|
int is2440;
|
|
unsigned sdiimsk;
|
|
unsigned sdidata;
|
|
|
|
bool irq_disabled;
|
|
bool irq_enabled;
|
|
bool irq_state;
|
|
int sdio_irqen;
|
|
|
|
struct mmc_request *mrq;
|
|
int cmd_is_stop;
|
|
|
|
spinlock_t complete_lock;
|
|
enum s3cmci_waitfor complete_what;
|
|
|
|
int dma_complete;
|
|
|
|
u32 pio_sgptr;
|
|
u32 pio_bytes;
|
|
u32 pio_count;
|
|
u32 *pio_ptr;
|
|
#define XFER_NONE 0
|
|
#define XFER_READ 1
|
|
#define XFER_WRITE 2
|
|
u32 pio_active;
|
|
|
|
int bus_width;
|
|
|
|
char dbgmsg_cmd[301];
|
|
char dbgmsg_dat[301];
|
|
char *status;
|
|
|
|
unsigned int ccnt, dcnt;
|
|
struct tasklet_struct pio_tasklet;
|
|
|
|
#ifdef CONFIG_DEBUG_FS
|
|
struct dentry *debug_root;
|
|
struct dentry *debug_state;
|
|
struct dentry *debug_regs;
|
|
#endif
|
|
|
|
#ifdef CONFIG_ARM_S3C24XX_CPUFREQ
|
|
struct notifier_block freq_transition;
|
|
#endif
|
|
};
|