72 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * Platform information definitions for the CPM Uart driver.
 | 
						|
 *
 | 
						|
 * 2006 (c) MontaVista Software, Inc.
 | 
						|
 * Vitaly Bordug <vbordug@ru.mvista.com>
 | 
						|
 *
 | 
						|
 * This file is licensed under the terms of the GNU General Public License
 | 
						|
 * version 2. This program is licensed "as is" without any warranty of any
 | 
						|
 * kind, whether express or implied.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef FS_UART_PD_H
 | 
						|
#define FS_UART_PD_H
 | 
						|
 | 
						|
#include <asm/types.h>
 | 
						|
 | 
						|
enum fs_uart_id {
 | 
						|
	fsid_smc1_uart,
 | 
						|
	fsid_smc2_uart,
 | 
						|
	fsid_scc1_uart,
 | 
						|
	fsid_scc2_uart,
 | 
						|
	fsid_scc3_uart,
 | 
						|
	fsid_scc4_uart,
 | 
						|
	fs_uart_nr,
 | 
						|
};
 | 
						|
 | 
						|
static inline int fs_uart_id_scc2fsid(int id)
 | 
						|
{
 | 
						|
    return fsid_scc1_uart + id - 1;
 | 
						|
}
 | 
						|
 | 
						|
static inline int fs_uart_id_fsid2scc(int id)
 | 
						|
{
 | 
						|
    return id - fsid_scc1_uart + 1;
 | 
						|
}
 | 
						|
 | 
						|
static inline int fs_uart_id_smc2fsid(int id)
 | 
						|
{
 | 
						|
    return fsid_smc1_uart + id - 1;
 | 
						|
}
 | 
						|
 | 
						|
static inline int fs_uart_id_fsid2smc(int id)
 | 
						|
{
 | 
						|
    return id - fsid_smc1_uart + 1;
 | 
						|
}
 | 
						|
 | 
						|
struct fs_uart_platform_info {
 | 
						|
        void(*init_ioports)(struct fs_uart_platform_info *);
 | 
						|
	/* device specific information */
 | 
						|
	int fs_no;		/* controller index */
 | 
						|
	char fs_type[4];        /* controller type  */
 | 
						|
	u32 uart_clk;
 | 
						|
	u8 tx_num_fifo;
 | 
						|
	u8 tx_buf_size;
 | 
						|
	u8 rx_num_fifo;
 | 
						|
	u8 rx_buf_size;
 | 
						|
	u8 brg;
 | 
						|
	u8 clk_rx;
 | 
						|
	u8 clk_tx;
 | 
						|
};
 | 
						|
 | 
						|
static inline int fs_uart_get_id(struct fs_uart_platform_info *fpi)
 | 
						|
{
 | 
						|
        if(strstr(fpi->fs_type, "SMC"))
 | 
						|
                return fs_uart_id_smc2fsid(fpi->fs_no);
 | 
						|
        if(strstr(fpi->fs_type, "SCC"))
 | 
						|
                return fs_uart_id_scc2fsid(fpi->fs_no);
 | 
						|
        return fpi->fs_no;
 | 
						|
}
 | 
						|
 | 
						|
#endif
 |