This source file includes following definitions.
- uart_read
- uart_write
- uart_is_enabled
- putc
- flush
- arch_decomp_setup
   1 
   2 
   3 
   4 
   5 
   6 
   7 
   8 
   9 #include <linux/serial_reg.h>
  10 #include <asm/mach-types.h>
  11 
  12 #define FFUART_BASE     (0x40100000)
  13 #define BTUART_BASE     (0x40200000)
  14 #define STUART_BASE     (0x40700000)
  15 
  16 unsigned long uart_base;
  17 unsigned int uart_shift;
  18 unsigned int uart_is_pxa;
  19 
  20 static inline unsigned char uart_read(int offset)
  21 {
  22         return *(volatile unsigned char *)(uart_base + (offset << uart_shift));
  23 }
  24 
  25 static inline void uart_write(unsigned char val, int offset)
  26 {
  27         *(volatile unsigned char *)(uart_base + (offset << uart_shift)) = val;
  28 }
  29 
  30 static inline int uart_is_enabled(void)
  31 {
  32         
  33         return uart_is_pxa ? uart_read(UART_IER) & UART_IER_UUE : 1;
  34 }
  35 
  36 static inline void putc(char c)
  37 {
  38         if (!uart_is_enabled())
  39                 return;
  40 
  41         while (!(uart_read(UART_LSR) & UART_LSR_THRE))
  42                 barrier();
  43 
  44         uart_write(c, UART_TX);
  45 }
  46 
  47 
  48 
  49 
  50 static inline void flush(void)
  51 {
  52 }
  53 
  54 static inline void arch_decomp_setup(void)
  55 {
  56         
  57         uart_base = FFUART_BASE;
  58         uart_shift = 2;
  59         uart_is_pxa = 1;
  60 
  61         if (machine_is_littleton() || machine_is_intelmote2()
  62             || machine_is_csb726() || machine_is_stargate2()
  63             || machine_is_cm_x300() || machine_is_balloon3())
  64                 uart_base = STUART_BASE;
  65 
  66         if (machine_is_arcom_zeus()) {
  67                 uart_base = 0x10000000; 
  68                 uart_shift = 1;
  69                 uart_is_pxa = 0;
  70         }
  71 }