1 /*
2  * atmel platform data
3  *
4  * GPL v2 Only
5  */
6 
7 #ifndef __ATMEL_H__
8 #define __ATMEL_H__
9 
10 #include <linux/mtd/nand.h>
11 #include <linux/mtd/partitions.h>
12 
13  /* Compact Flash */
14 struct at91_cf_data {
15 	int	irq_pin;		/* I/O IRQ */
16 	int	det_pin;		/* Card detect */
17 	int	vcc_pin;		/* power switching */
18 	int	rst_pin;		/* card reset */
19 	u8	chipselect;		/* EBI Chip Select number */
20 	u8	flags;
21 #define AT91_CF_TRUE_IDE	0x01
22 #define AT91_IDE_SWAP_A0_A2	0x02
23 };
24 
25  /* NAND / SmartMedia */
26 struct atmel_nand_data {
27 	int		enable_pin;		/* chip enable */
28 	int		det_pin;		/* card detect */
29 	int		rdy_pin;		/* ready/busy */
30 	u8		rdy_pin_active_low;	/* rdy_pin value is inverted */
31 	u8		ale;			/* address line number connected to ALE */
32 	u8		cle;			/* address line number connected to CLE */
33 	u8		bus_width_16;		/* buswidth is 16 bit */
34 	u8		ecc_mode;		/* ecc mode */
35 	u8		on_flash_bbt;		/* bbt on flash */
36 	struct mtd_partition *parts;
37 	unsigned int	num_parts;
38 	bool		has_dma;		/* support dma transfer */
39 
40 	/* default is false, only for at32ap7000 chip is true */
41 	bool		need_reset_workaround;
42 };
43 
44 /* FIXME: this needs a better location, but gets stuff building again */
45 extern int at91_suspend_entering_slow_clock(void);
46 
47 #endif /* __ATMEL_H__ */
48