Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a480167b authored by Viresh Kumar's avatar Viresh Kumar Committed by Jeff Garzik
Browse files

pata_arasan_cf: Adding support for arasan compact flash host controller



The Arasan CompactFlash Device Controller has three basic modes of
operation: PC card ATA using I/O mode, PC card ATA using memory mode, PC card
ATA using true IDE modes.

Currently driver supports only True IDE mode.

Signed-off-by: default avatarViresh Kumar <viresh.kumar@st.com>
Signed-off-by: default avatarJeff Garzik <jgarzik@pobox.com>
parent 64b97594
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -557,6 +557,13 @@ S: Maintained
F:	drivers/net/appletalk/
F:	net/appletalk/

ARASAN COMPACT FLASH PATA CONTROLLER
M:	Viresh Kumar <viresh.kumar@st.com>
L:	linux-ide@vger.kernel.org
S:	Maintained
F:	include/linux/pata_arasan_cf_data.h
F:	drivers/ata/pata_arasan_cf.c

ARC FRAMEBUFFER DRIVER
M:	Jaya Kumar <jayalk@intworks.biz>
S:	Maintained
+6 −0
Original line number Diff line number Diff line
@@ -311,6 +311,12 @@ config PATA_AMD

	  If unsure, say N.

config PATA_ARASAN_CF
	tristate "ARASAN CompactFlash PATA Controller Support"
	select DMA_ENGINE
	help
	  Say Y here to support the ARASAN CompactFlash PATA controller

config PATA_ARTOP
	tristate "ARTOP 6210/6260 PATA support"
	depends on PCI
+1 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ obj-$(CONFIG_SATA_DWC) += sata_dwc_460ex.o

# SFF w/ custom DMA
obj-$(CONFIG_PDC_ADMA)		+= pdc_adma.o
obj-$(CONFIG_PATA_ARASAN_CF)	+= pata_arasan_cf.o
obj-$(CONFIG_PATA_OCTEON_CF)	+= pata_octeon_cf.o
obj-$(CONFIG_SATA_QSTOR)	+= sata_qstor.o
obj-$(CONFIG_SATA_SX4)		+= sata_sx4.o
+977 −0

File added.

Preview size limit exceeded, changes collapsed.

+47 −0
Original line number Diff line number Diff line
/*
 * include/linux/pata_arasan_cf_data.h
 *
 * Arasan Compact Flash host controller platform data header file
 *
 * Copyright (C) 2011 ST Microelectronics
 * Viresh Kumar <viresh.kumar@st.com>
 *
 * This file is licensed under the terms of the GNU General Public
 * License version 2. This program is licensed "as is" without any
 * warranty of any kind, whether express or implied.
 */

#ifndef _PATA_ARASAN_CF_DATA_H
#define _PATA_ARASAN_CF_DATA_H

#include <linux/platform_device.h>

struct arasan_cf_pdata {
	u8 cf_if_clk;
	#define CF_IF_CLK_100M			(0x0)
	#define CF_IF_CLK_75M			(0x1)
	#define CF_IF_CLK_66M			(0x2)
	#define CF_IF_CLK_50M			(0x3)
	#define CF_IF_CLK_40M			(0x4)
	#define CF_IF_CLK_33M			(0x5)
	#define CF_IF_CLK_25M			(0x6)
	#define CF_IF_CLK_125M			(0x7)
	#define CF_IF_CLK_150M			(0x8)
	#define CF_IF_CLK_166M			(0x9)
	#define CF_IF_CLK_200M			(0xA)
	/*
	 * Platform specific incapabilities of CF controller is handled via
	 * quirks
	 */
	u32 quirk;
	#define CF_BROKEN_PIO			(1)
	#define CF_BROKEN_MWDMA			(1 << 1)
	#define CF_BROKEN_UDMA			(1 << 2)
};

static inline void
set_arasan_cf_pdata(struct platform_device *pdev, struct arasan_cf_pdata *data)
{
	pdev->dev.platform_data = data;
}
#endif /* _PATA_ARASAN_CF_DATA_H */