1a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar/*
2a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar * include/linux/pata_arasan_cf_data.h
3a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar *
4a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar * Arasan Compact Flash host controller platform data header file
5a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar *
6a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar * Copyright (C) 2011 ST Microelectronics
7a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar * Viresh Kumar <viresh.kumar@st.com>
8a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar *
9a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar * This file is licensed under the terms of the GNU General Public
10a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar * License version 2. This program is licensed "as is" without any
11a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar * warranty of any kind, whether express or implied.
12a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar */
13a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar
14a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar#ifndef _PATA_ARASAN_CF_DATA_H
15a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar#define _PATA_ARASAN_CF_DATA_H
16a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar
17a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar#include <linux/platform_device.h>
18a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar
19a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumarstruct arasan_cf_pdata {
20a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	u8 cf_if_clk;
21a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_IF_CLK_100M			(0x0)
22a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_IF_CLK_75M			(0x1)
23a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_IF_CLK_66M			(0x2)
24a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_IF_CLK_50M			(0x3)
25a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_IF_CLK_40M			(0x4)
26a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_IF_CLK_33M			(0x5)
27a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_IF_CLK_25M			(0x6)
28a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_IF_CLK_125M			(0x7)
29a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_IF_CLK_150M			(0x8)
30a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_IF_CLK_166M			(0x9)
31a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_IF_CLK_200M			(0xA)
32a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	/*
33a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	 * Platform specific incapabilities of CF controller is handled via
34a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	 * quirks
35a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	 */
36a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	u32 quirk;
37a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_BROKEN_PIO			(1)
38a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_BROKEN_MWDMA			(1 << 1)
39a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	#define CF_BROKEN_UDMA			(1 << 2)
4060a230e4a62be6837335911b09101bd8aeb7c95aViresh Kumar	/* This is platform specific data for the DMA controller */
4160a230e4a62be6837335911b09101bd8aeb7c95aViresh Kumar	void *dma_priv;
42a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar};
43a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar
44a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumarstatic inline void
45a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumarset_arasan_cf_pdata(struct platform_device *pdev, struct arasan_cf_pdata *data)
46a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar{
47a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar	pdev->dev.platform_data = data;
48a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar}
49a480167b23ef9b35ec0299bb3e1b11b4ed6b3508Viresh Kumar#endif /* _PATA_ARASAN_CF_DATA_H */
50