sdhci-pltfm.h revision 85d6509dc8ca24b2b652863ef7a75622ddca17d6
1515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov/*
2515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov * Copyright 2010 MontaVista Software, LLC.
3515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov *
4515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov * Author: Anton Vorontsov <avorontsov@ru.mvista.com>
5515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov *
6515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov * This program is free software; you can redistribute it and/or modify
7515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov * it under the terms of the GNU General Public License version 2 as
8515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov * published by the Free Software Foundation.
9515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov */
10515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov
11515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov#ifndef _DRIVERS_MMC_SDHCI_PLTFM_H
12515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov#define _DRIVERS_MMC_SDHCI_PLTFM_H
13515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov
144b711cb13843f5082e82970dd1e8031383134a65Wolfram Sang#include <linux/clk.h>
154b711cb13843f5082e82970dd1e8031383134a65Wolfram Sang#include <linux/types.h>
1685d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guo#include <linux/platform_device.h>
17d3b993dcc11cd291e6908ed02b9db99970220952Wolfram Sang#include <linux/mmc/sdhci-pltfm.h>
1820b1597bcf4a76ccab232fa032f5f9ad30069167Anton Vorontsov
194b711cb13843f5082e82970dd1e8031383134a65Wolfram Sangstruct sdhci_pltfm_host {
204b711cb13843f5082e82970dd1e8031383134a65Wolfram Sang	struct clk *clk;
21e149860d16d96aef1a8eb7dc1d0b9d4313479e61Richard Zhu	void *priv; /* to handle quirks across io-accessor calls */
224b711cb13843f5082e82970dd1e8031383134a65Wolfram Sang};
234b711cb13843f5082e82970dd1e8031383134a65Wolfram Sang
2485d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guoextern struct sdhci_host *sdhci_pltfm_init(struct platform_device *pdev,
2585d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guo					   struct sdhci_pltfm_data *pdata);
2685d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guoextern void sdhci_pltfm_free(struct platform_device *pdev);
2785d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guo
2885d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guoextern int sdhci_pltfm_register(struct platform_device *pdev,
2985d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guo				struct sdhci_pltfm_data *pdata);
3085d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guoextern int sdhci_pltfm_unregister(struct platform_device *pdev);
3185d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guo
3285d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guo#ifdef CONFIG_PM
3385d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guoextern int sdhci_pltfm_suspend(struct platform_device *dev, pm_message_t state);
3485d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guoextern int sdhci_pltfm_resume(struct platform_device *dev);
3585d6509dc8ca24b2b652863ef7a75622ddca17d6Shawn Guo#endif
3620b1597bcf4a76ccab232fa032f5f9ad30069167Anton Vorontsov
37515033f97c0b5a1bce13fa93e09704d95b44f376Anton Vorontsov#endif /* _DRIVERS_MMC_SDHCI_PLTFM_H */
38