1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- /* ssp.h
- $Id: ssp.h,v 1.1.1.1 2007/06/12 07:27:14 eyryu Exp $
- 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__ */
|