fs_uart_pd.h (1523B)
1/* 2 * Platform information definitions for the CPM Uart driver. 3 * 4 * 2006 (c) MontaVista Software, Inc. 5 * Vitaly Bordug <vbordug@ru.mvista.com> 6 * 7 * This file is licensed under the terms of the GNU General Public License 8 * version 2. This program is licensed "as is" without any warranty of any 9 * kind, whether express or implied. 10 */ 11 12#ifndef FS_UART_PD_H 13#define FS_UART_PD_H 14 15#include <asm/types.h> 16 17enum fs_uart_id { 18 fsid_smc1_uart, 19 fsid_smc2_uart, 20 fsid_scc1_uart, 21 fsid_scc2_uart, 22 fsid_scc3_uart, 23 fsid_scc4_uart, 24 fs_uart_nr, 25}; 26 27static inline int fs_uart_id_scc2fsid(int id) 28{ 29 return fsid_scc1_uart + id - 1; 30} 31 32static inline int fs_uart_id_fsid2scc(int id) 33{ 34 return id - fsid_scc1_uart + 1; 35} 36 37static inline int fs_uart_id_smc2fsid(int id) 38{ 39 return fsid_smc1_uart + id - 1; 40} 41 42static inline int fs_uart_id_fsid2smc(int id) 43{ 44 return id - fsid_smc1_uart + 1; 45} 46 47struct fs_uart_platform_info { 48 void(*init_ioports)(struct fs_uart_platform_info *); 49 /* device specific information */ 50 int fs_no; /* controller index */ 51 char fs_type[4]; /* controller type */ 52 u32 uart_clk; 53 u8 tx_num_fifo; 54 u8 tx_buf_size; 55 u8 rx_num_fifo; 56 u8 rx_buf_size; 57 u8 brg; 58 u8 clk_rx; 59 u8 clk_tx; 60}; 61 62static inline int fs_uart_get_id(struct fs_uart_platform_info *fpi) 63{ 64 if(strstr(fpi->fs_type, "SMC")) 65 return fs_uart_id_smc2fsid(fpi->fs_no); 66 if(strstr(fpi->fs_type, "SCC")) 67 return fs_uart_id_scc2fsid(fpi->fs_no); 68 return fpi->fs_no; 69} 70 71#endif