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 <linux/version.h> 16#include <asm/types.h> 17 18enum fs_uart_id { 19 fsid_smc1_uart, 20 fsid_smc2_uart, 21 fsid_scc1_uart, 22 fsid_scc2_uart, 23 fsid_scc3_uart, 24 fsid_scc4_uart, 25 fs_uart_nr, 26}; 27 28static inline int fs_uart_id_scc2fsid(int id) 29{ 30 return fsid_scc1_uart + id - 1; 31} 32 33static inline int fs_uart_id_fsid2scc(int id) 34{ 35 return id - fsid_scc1_uart + 1; 36} 37 38static inline int fs_uart_id_smc2fsid(int id) 39{ 40 return fsid_smc1_uart + id - 1; 41} 42 43static inline int fs_uart_id_fsid2smc(int id) 44{ 45 return id - fsid_smc1_uart + 1; 46} 47 48struct fs_uart_platform_info { 49 void(*init_ioports)(struct fs_uart_platform_info *); 50 /* device specific information */ 51 int fs_no; /* controller index */ 52 char fs_type[4]; /* controller type */ 53 u32 uart_clk; 54 u8 tx_num_fifo; 55 u8 tx_buf_size; 56 u8 rx_num_fifo; 57 u8 rx_buf_size; 58 u8 brg; 59 u8 clk_rx; 60 u8 clk_tx; 61}; 62 63static inline int fs_uart_get_id(struct fs_uart_platform_info *fpi) 64{ 65 if(strstr(fpi->fs_type, "SMC")) 66 return fs_uart_id_smc2fsid(fpi->fs_no); 67 if(strstr(fpi->fs_type, "SCC")) 68 return fs_uart_id_scc2fsid(fpi->fs_no); 69 return fpi->fs_no; 70} 71 72#endif 73