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__ */
|