linux/include/linux/fs_uart_pd.h
<<
>>
Prefs
   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
  72