71 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* ssp.h
 | 
						|
 | 
						|
   written by Marc Singer
 | 
						|
   6 Dec 2004
 | 
						|
 | 
						|
   Copyright (C) 2004 Marc Singer
 | 
						|
 | 
						|
   -----------
 | 
						|
   DESCRIPTION
 | 
						|
   -----------
 | 
						|
 | 
						|
   This SSP header is available throughout the kernel, for this
 | 
						|
   machine/architecture, because drivers that use it may be dispersed.
 | 
						|
 | 
						|
   This file was cloned from the 7952x implementation.  It would be
 | 
						|
   better to share them, but we're taking an easier approach for the
 | 
						|
   time being.
 | 
						|
 | 
						|
*/
 | 
						|
 | 
						|
#if !defined (__SSP_H__)
 | 
						|
#    define   __SSP_H__
 | 
						|
 | 
						|
/* ----- Includes */
 | 
						|
 | 
						|
/* ----- Types */
 | 
						|
 | 
						|
struct ssp_driver {
 | 
						|
	int  (*init)		(void);
 | 
						|
	void (*exit)		(void);
 | 
						|
	void (*acquire)		(void);
 | 
						|
	void (*release)		(void);
 | 
						|
	int  (*configure)	(int device, int mode, int speed,
 | 
						|
				 int frame_size_write, int frame_size_read);
 | 
						|
	void (*chip_select)	(int enable);
 | 
						|
	void (*set_callbacks)   (void* handle,
 | 
						|
				 irqreturn_t (*callback_tx)(void*),
 | 
						|
				 irqreturn_t (*callback_rx)(void*));
 | 
						|
	void (*enable)		(void);
 | 
						|
	void (*disable)		(void);
 | 
						|
//	int  (*save_state)	(void*);
 | 
						|
//	void (*restore_state)	(void*);
 | 
						|
	int  (*read)		(void);
 | 
						|
	int  (*write)		(u16 data);
 | 
						|
	int  (*write_read)	(u16 data);
 | 
						|
	void (*flush)		(void);
 | 
						|
	void (*write_async)	(void* pv, size_t cb);
 | 
						|
	size_t (*write_pos)	(void);
 | 
						|
};
 | 
						|
 | 
						|
	/* These modes are only available on the LH79524 */
 | 
						|
#define SSP_MODE_SPI		(1)
 | 
						|
#define SSP_MODE_SSI		(2)
 | 
						|
#define SSP_MODE_MICROWIRE	(3)
 | 
						|
#define SSP_MODE_I2S		(4)
 | 
						|
 | 
						|
	/* CPLD SPI devices */
 | 
						|
#define DEVICE_EEPROM	0	/* Configuration eeprom */
 | 
						|
#define DEVICE_MAC	1	/* MAC eeprom (LPD79524) */
 | 
						|
#define DEVICE_CODEC	2	/* Audio codec */
 | 
						|
#define DEVICE_TOUCH	3	/* Touch screen (LPD79520) */
 | 
						|
 | 
						|
/* ----- Globals */
 | 
						|
 | 
						|
/* ----- Prototypes */
 | 
						|
 | 
						|
//extern struct ssp_driver lh79520_i2s_driver;
 | 
						|
extern struct ssp_driver lh7a400_cpld_ssp_driver;
 | 
						|
 | 
						|
#endif  /* __SSP_H__ */
 |