Committer: Michael Beasley <mike@snafu.setup>
[mikesnafu-overlay.git] / include / linux / fs_uart_pd.h
blob809bb9ffc78846fbc2f8b5747ef42b225d8c4940
1 /*
2 * Platform information definitions for the CPM Uart driver.
4 * 2006 (c) MontaVista Software, Inc.
5 * Vitaly Bordug <vbordug@ru.mvista.com>
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.
12 #ifndef FS_UART_PD_H
13 #define FS_UART_PD_H
15 #include <linux/version.h>
16 #include <asm/types.h>
18 enum 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,
28 static inline int fs_uart_id_scc2fsid(int id)
30 return fsid_scc1_uart + id - 1;
33 static inline int fs_uart_id_fsid2scc(int id)
35 return id - fsid_scc1_uart + 1;
38 static inline int fs_uart_id_smc2fsid(int id)
40 return fsid_smc1_uart + id - 1;
43 static inline int fs_uart_id_fsid2smc(int id)
45 return id - fsid_smc1_uart + 1;
48 struct 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;
63 static inline int fs_uart_get_id(struct fs_uart_platform_info *fpi)
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;
72 #endif