diff options
Diffstat (limited to 'arch/arm/plat-omap/include/plat/omap-serial.h')
| -rw-r--r-- | arch/arm/plat-omap/include/plat/omap-serial.h | 37 | 
1 files changed, 31 insertions, 6 deletions
diff --git a/arch/arm/plat-omap/include/plat/omap-serial.h b/arch/arm/plat-omap/include/plat/omap-serial.h index 2682043f5a5..9ff444469f3 100644 --- a/arch/arm/plat-omap/include/plat/omap-serial.h +++ b/arch/arm/plat-omap/include/plat/omap-serial.h @@ -19,6 +19,7 @@  #include <linux/serial_core.h>  #include <linux/platform_device.h> +#include <linux/pm_qos.h>  #include <plat/mux.h> @@ -33,6 +34,8 @@  #define OMAP_MODE13X_SPEED	230400 +#define OMAP_UART_SCR_TX_EMPTY	0x08 +  /* WER = 0x7F   * Enable module level wakeup in WER reg   */ @@ -51,18 +54,27 @@  #define OMAP_UART_DMA_CH_FREE	-1 -#define RX_TIMEOUT		(3 * HZ)  #define OMAP_MAX_HSUART_PORTS	4  #define MSR_SAVE_FLAGS		UART_MSR_ANY_DELTA +#define UART_ERRATA_i202_MDR1_ACCESS	BIT(0) +#define UART_ERRATA_i291_DMA_FORCEIDLE	BIT(1) +  struct omap_uart_port_info {  	bool			dma_enabled;	/* To specify DMA Mode */  	unsigned int		uartclk;	/* UART clock rate */ -	void __iomem		*membase;	/* ioremap cookie or NULL */ -	resource_size_t		mapbase;	/* resource base */ -	unsigned long		irqflags;	/* request_irq flags */  	upf_t			flags;		/* UPF_* flags */ +	u32			errata; +	unsigned int		dma_rx_buf_size; +	unsigned int		dma_rx_timeout; +	unsigned int		autosuspend_timeout; +	unsigned int		dma_rx_poll_rate; + +	int (*get_context_loss_count)(struct device *); +	void (*set_forceidle)(struct platform_device *); +	void (*set_noidle)(struct platform_device *); +	void (*enable_wakeup)(struct platform_device *, bool);  };  struct uart_omap_dma { @@ -86,8 +98,9 @@ struct uart_omap_dma {  	spinlock_t		rx_lock;  	/* timer to poll activity on rx dma */  	struct timer_list	rx_timer; -	int			rx_buf_size; -	int			rx_timeout; +	unsigned int		rx_buf_size; +	unsigned int		rx_poll_rate; +	unsigned int		rx_timeout;  };  struct uart_omap_port { @@ -100,6 +113,10 @@ struct uart_omap_port {  	unsigned char		mcr;  	unsigned char		fcr;  	unsigned char		efr; +	unsigned char		dll; +	unsigned char		dlh; +	unsigned char		mdr1; +	unsigned char		scr;  	int			use_dma;  	/* @@ -111,6 +128,14 @@ struct uart_omap_port {  	unsigned char		msr_saved_flags;  	char			name[20];  	unsigned long		port_activity; +	u32			context_loss_cnt; +	u32			errata; +	u8			wakeups_enabled; + +	struct pm_qos_request	pm_qos_request; +	u32			latency; +	u32			calc_latency; +	struct work_struct	qos_work;  };  #endif /* __OMAP_SERIAL_H__ */  |