0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef FS_UART_PD_H
0013 #define FS_UART_PD_H
0014
0015 #include <asm/types.h>
0016
0017 enum fs_uart_id {
0018 fsid_smc1_uart,
0019 fsid_smc2_uart,
0020 fsid_scc1_uart,
0021 fsid_scc2_uart,
0022 fsid_scc3_uart,
0023 fsid_scc4_uart,
0024 fs_uart_nr,
0025 };
0026
0027 static inline int fs_uart_id_scc2fsid(int id)
0028 {
0029 return fsid_scc1_uart + id - 1;
0030 }
0031
0032 static inline int fs_uart_id_fsid2scc(int id)
0033 {
0034 return id - fsid_scc1_uart + 1;
0035 }
0036
0037 static inline int fs_uart_id_smc2fsid(int id)
0038 {
0039 return fsid_smc1_uart + id - 1;
0040 }
0041
0042 static inline int fs_uart_id_fsid2smc(int id)
0043 {
0044 return id - fsid_smc1_uart + 1;
0045 }
0046
0047 struct fs_uart_platform_info {
0048 void(*init_ioports)(struct fs_uart_platform_info *);
0049
0050 int fs_no;
0051 char fs_type[4];
0052 u32 uart_clk;
0053 u8 tx_num_fifo;
0054 u8 tx_buf_size;
0055 u8 rx_num_fifo;
0056 u8 rx_buf_size;
0057 u8 brg;
0058 u8 clk_rx;
0059 u8 clk_tx;
0060 };
0061
0062 static inline int fs_uart_get_id(struct fs_uart_platform_info *fpi)
0063 {
0064 if(strstr(fpi->fs_type, "SMC"))
0065 return fs_uart_id_smc2fsid(fpi->fs_no);
0066 if(strstr(fpi->fs_type, "SCC"))
0067 return fs_uart_id_scc2fsid(fpi->fs_no);
0068 return fpi->fs_no;
0069 }
0070
0071 #endif