8f1bf8743c
Patch from Paul Sokolovsky This patch adds timeouts while working with SSP registers. Such timeouts were envisioned by docstrings in ssp.c, but were not implemented. There were actual lockups while accessing touchscreen for iPaqs h1910, h4000 due to lack of the timeouts. This is updated version of previously submitted patch: 3738/1. Signed-off-by: Paul Sokolovsky <pmiscml@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
53 lines
1.3 KiB
C
53 lines
1.3 KiB
C
/*
|
|
* ssp.h
|
|
*
|
|
* Copyright (C) 2003 Russell King, All Rights Reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*
|
|
* This driver supports the following PXA CPU/SSP ports:-
|
|
*
|
|
* PXA250 SSP
|
|
* PXA255 SSP, NSSP
|
|
* PXA26x SSP, NSSP, ASSP
|
|
* PXA27x SSP1, SSP2, SSP3
|
|
*/
|
|
|
|
#ifndef SSP_H
|
|
#define SSP_H
|
|
|
|
/*
|
|
* SSP initialisation flags
|
|
*/
|
|
#define SSP_NO_IRQ 0x1 /* don't register an irq handler in SSP driver */
|
|
|
|
struct ssp_state {
|
|
u32 cr0;
|
|
u32 cr1;
|
|
u32 to;
|
|
u32 psp;
|
|
};
|
|
|
|
struct ssp_dev {
|
|
u32 port;
|
|
u32 mode;
|
|
u32 flags;
|
|
u32 psp_flags;
|
|
u32 speed;
|
|
int irq;
|
|
};
|
|
|
|
int ssp_write_word(struct ssp_dev *dev, u32 data);
|
|
int ssp_read_word(struct ssp_dev *dev, u32 *data);
|
|
int ssp_flush(struct ssp_dev *dev);
|
|
void ssp_enable(struct ssp_dev *dev);
|
|
void ssp_disable(struct ssp_dev *dev);
|
|
void ssp_save_state(struct ssp_dev *dev, struct ssp_state *ssp);
|
|
void ssp_restore_state(struct ssp_dev *dev, struct ssp_state *ssp);
|
|
int ssp_init(struct ssp_dev *dev, u32 port, u32 init_flags);
|
|
int ssp_config(struct ssp_dev *dev, u32 mode, u32 flags, u32 psp_flags, u32 speed);
|
|
void ssp_exit(struct ssp_dev *dev);
|
|
|
|
#endif
|