No need to duplicate these defines now that the common Blackfin code has unified these for all UART devices. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Cc: Samuel Ortiz <samuel@sortiz.org> Cc: David Miller <davem@davemloft.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
		
			
				
	
	
		
			96 lines
		
	
	
	
		
			2.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			2.3 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Blackfin Infra-red Driver
 | 
						|
 *
 | 
						|
 * Copyright 2006-2009 Analog Devices Inc.
 | 
						|
 *
 | 
						|
 * Enter bugs at http://blackfin.uclinux.org/
 | 
						|
 *
 | 
						|
 * Licensed under the GPL-2 or later.
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
#include <linux/serial.h>
 | 
						|
#include <linux/module.h>
 | 
						|
#include <linux/netdevice.h>
 | 
						|
#include <linux/interrupt.h>
 | 
						|
#include <linux/delay.h>
 | 
						|
#include <linux/platform_device.h>
 | 
						|
#include <linux/dma-mapping.h>
 | 
						|
#include <linux/slab.h>
 | 
						|
 | 
						|
#include <net/irda/irda.h>
 | 
						|
#include <net/irda/wrapper.h>
 | 
						|
#include <net/irda/irda_device.h>
 | 
						|
 | 
						|
#include <asm/irq.h>
 | 
						|
#include <asm/cacheflush.h>
 | 
						|
#include <asm/dma.h>
 | 
						|
#include <asm/portmux.h>
 | 
						|
#undef DRIVER_NAME
 | 
						|
 | 
						|
#ifdef CONFIG_SIR_BFIN_DMA
 | 
						|
struct dma_rx_buf {
 | 
						|
	char *buf;
 | 
						|
	int head;
 | 
						|
	int tail;
 | 
						|
};
 | 
						|
#endif
 | 
						|
 | 
						|
struct bfin_sir_port {
 | 
						|
	unsigned char __iomem   *membase;
 | 
						|
	unsigned int            irq;
 | 
						|
	unsigned int            lsr;
 | 
						|
	unsigned long           clk;
 | 
						|
	struct net_device       *dev;
 | 
						|
#ifdef CONFIG_SIR_BFIN_DMA
 | 
						|
	int                     tx_done;
 | 
						|
	struct dma_rx_buf       rx_dma_buf;
 | 
						|
	struct timer_list       rx_dma_timer;
 | 
						|
	int                     rx_dma_nrows;
 | 
						|
#endif
 | 
						|
	unsigned int            tx_dma_channel;
 | 
						|
	unsigned int            rx_dma_channel;
 | 
						|
};
 | 
						|
 | 
						|
struct bfin_sir_port_res {
 | 
						|
	unsigned long   base_addr;
 | 
						|
	int             irq;
 | 
						|
	unsigned int    rx_dma_channel;
 | 
						|
	unsigned int    tx_dma_channel;
 | 
						|
};
 | 
						|
 | 
						|
struct bfin_sir_self {
 | 
						|
	struct bfin_sir_port    *sir_port;
 | 
						|
	spinlock_t              lock;
 | 
						|
	unsigned int            open;
 | 
						|
	int                     speed;
 | 
						|
	int                     newspeed;
 | 
						|
 | 
						|
	struct sk_buff          *txskb;
 | 
						|
	struct sk_buff          *rxskb;
 | 
						|
	struct net_device_stats stats;
 | 
						|
	struct device           *dev;
 | 
						|
	struct irlap_cb         *irlap;
 | 
						|
	struct qos_info         qos;
 | 
						|
 | 
						|
	iobuff_t                tx_buff;
 | 
						|
	iobuff_t                rx_buff;
 | 
						|
 | 
						|
	struct work_struct      work;
 | 
						|
	int                     mtt;
 | 
						|
};
 | 
						|
 | 
						|
#define DRIVER_NAME "bfin_sir"
 | 
						|
 | 
						|
#define port_membase(port)     (((struct bfin_sir_port *)(port))->membase)
 | 
						|
#define get_lsr_cache(port)    (((struct bfin_sir_port *)(port))->lsr)
 | 
						|
#define put_lsr_cache(port, v) (((struct bfin_sir_port *)(port))->lsr = (v))
 | 
						|
#include <asm/bfin_serial.h>
 | 
						|
 | 
						|
static const unsigned short per[][4] = {
 | 
						|
	/* rx pin      tx pin     NULL  uart_number */
 | 
						|
	{P_UART0_RX, P_UART0_TX,    0,    0},
 | 
						|
	{P_UART1_RX, P_UART1_TX,    0,    1},
 | 
						|
	{P_UART2_RX, P_UART2_TX,    0,    2},
 | 
						|
	{P_UART3_RX, P_UART3_TX,    0,    3},
 | 
						|
};
 |