]>
Commit | Line | Data |
---|---|---|
6e197696 VB |
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 | ||
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, | |
26 | }; | |
27 | ||
28 | static inline int fs_uart_id_scc2fsid(int id) | |
29 | { | |
30 | return fsid_scc1_uart + id - 1; | |
31 | } | |
32 | ||
33 | static inline int fs_uart_id_fsid2scc(int id) | |
34 | { | |
35 | return id - fsid_scc1_uart + 1; | |
36 | } | |
37 | ||
38 | static inline int fs_uart_id_smc2fsid(int id) | |
39 | { | |
40 | return fsid_smc1_uart + id - 1; | |
41 | } | |
42 | ||
43 | static inline int fs_uart_id_fsid2smc(int id) | |
44 | { | |
45 | return id - fsid_smc1_uart + 1; | |
46 | } | |
47 | ||
48 | struct fs_uart_platform_info { | |
d3465c92 | 49 | void(*init_ioports)(struct fs_uart_platform_info *); |
6e197696 VB |
50 | /* device specific information */ |
51 | int fs_no; /* controller index */ | |
611a15af | 52 | char fs_type[4]; /* controller type */ |
6e197696 VB |
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; | |
d3465c92 VB |
59 | u8 clk_rx; |
60 | u8 clk_tx; | |
6e197696 VB |
61 | }; |
62 | ||
611a15af VB |
63 | static 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 | ||
6e197696 | 72 | #endif |