dw_mmc.h (e5451c8f8330e03ad3cfa16048b4daf961af434f) dw_mmc.h (aaaaeb7a933471f6413ca44dd36efd57f2fa9429)
1/*
2 * Synopsys DesignWare Multimedia Card Interface driver
3 * (Based on NXP driver for lpc 31xx)
4 *
5 * Copyright (C) 2009 NXP Semiconductors
6 * Copyright (C) 2009, 2010 Imagination Technologies Ltd.
7 *
8 * This program is free software; you can redistribute it and/or modify

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

260
261 unsigned int clock;
262 unsigned int __clk_old;
263
264 unsigned long flags;
265#define DW_MMC_CARD_PRESENT 0
266#define DW_MMC_CARD_NEED_INIT 1
267#define DW_MMC_CARD_NO_LOW_PWR 2
1/*
2 * Synopsys DesignWare Multimedia Card Interface driver
3 * (Based on NXP driver for lpc 31xx)
4 *
5 * Copyright (C) 2009 NXP Semiconductors
6 * Copyright (C) 2009, 2010 Imagination Technologies Ltd.
7 *
8 * This program is free software; you can redistribute it and/or modify

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

260
261 unsigned int clock;
262 unsigned int __clk_old;
263
264 unsigned long flags;
265#define DW_MMC_CARD_PRESENT 0
266#define DW_MMC_CARD_NEED_INIT 1
267#define DW_MMC_CARD_NO_LOW_PWR 2
268#define DW_MMC_CARD_NO_USE_HOLD 3
268 int id;
269 int sdio_id;
270};
271
272/**
273 * dw_mci driver data - dw-mshc implementation specific driver data.
274 * @caps: mmc subsystem specified capabilities of the controller(s).
275 * @init: early implementation specific initialization.
276 * @setup_clock: implementation specific clock configuration.
269 int id;
270 int sdio_id;
271};
272
273/**
274 * dw_mci driver data - dw-mshc implementation specific driver data.
275 * @caps: mmc subsystem specified capabilities of the controller(s).
276 * @init: early implementation specific initialization.
277 * @setup_clock: implementation specific clock configuration.
277 * @prepare_command: handle CMD register extensions.
278 * @set_ios: handle bus specific extensions.
279 * @parse_dt: parse implementation specific device tree properties.
280 * @execute_tuning: implementation specific tuning procedure.
281 *
282 * Provide controller implementation specific extensions. The usage of this
283 * data structure is fully optional and usage of each member in this structure
284 * is optional as well.
285 */
286struct dw_mci_drv_data {
287 unsigned long *caps;
288 int (*init)(struct dw_mci *host);
289 int (*setup_clock)(struct dw_mci *host);
278 * @set_ios: handle bus specific extensions.
279 * @parse_dt: parse implementation specific device tree properties.
280 * @execute_tuning: implementation specific tuning procedure.
281 *
282 * Provide controller implementation specific extensions. The usage of this
283 * data structure is fully optional and usage of each member in this structure
284 * is optional as well.
285 */
286struct dw_mci_drv_data {
287 unsigned long *caps;
288 int (*init)(struct dw_mci *host);
289 int (*setup_clock)(struct dw_mci *host);
290 void (*prepare_command)(struct dw_mci *host, u32 *cmdr);
291 void (*set_ios)(struct dw_mci *host, struct mmc_ios *ios);
292 int (*parse_dt)(struct dw_mci *host);
293 int (*execute_tuning)(struct dw_mci_slot *slot, u32 opcode);
294 int (*prepare_hs400_tuning)(struct dw_mci *host,
295 struct mmc_ios *ios);
296 int (*switch_voltage)(struct mmc_host *mmc,
297 struct mmc_ios *ios);
298};
299#endif /* _DW_MMC_H_ */
290 void (*set_ios)(struct dw_mci *host, struct mmc_ios *ios);
291 int (*parse_dt)(struct dw_mci *host);
292 int (*execute_tuning)(struct dw_mci_slot *slot, u32 opcode);
293 int (*prepare_hs400_tuning)(struct dw_mci *host,
294 struct mmc_ios *ios);
295 int (*switch_voltage)(struct mmc_host *mmc,
296 struct mmc_ios *ios);
297};
298#endif /* _DW_MMC_H_ */