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