linux/arch/arm/mach-at91/include/mach/uncompress.h
<<
>>
Prefs
   1/*
   2 * arch/arm/mach-at91/include/mach/uncompress.h
   3 *
   4 *  Copyright (C) 2003 SAN People
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License as published by
   8 * the Free Software Foundation; either version 2 of the License, or
   9 * (at your option) any later version.
  10 *
  11 * This program is distributed in the hope that it will be useful,
  12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14 * GNU General Public License for more details.
  15 *
  16 * You should have received a copy of the GNU General Public License
  17 * along with this program; if not, write to the Free Software
  18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  19 */
  20
  21#ifndef __ASM_ARCH_UNCOMPRESS_H
  22#define __ASM_ARCH_UNCOMPRESS_H
  23
  24#include <linux/io.h>
  25#include <linux/atmel_serial.h>
  26
  27#if defined(CONFIG_AT91_EARLY_DBGU)
  28#define UART_OFFSET (AT91_DBGU + AT91_BASE_SYS)
  29#elif defined(CONFIG_AT91_EARLY_USART0)
  30#define UART_OFFSET AT91_USART0
  31#elif defined(CONFIG_AT91_EARLY_USART1)
  32#define UART_OFFSET AT91_USART1
  33#elif defined(CONFIG_AT91_EARLY_USART2)
  34#define UART_OFFSET AT91_USART2
  35#elif defined(CONFIG_AT91_EARLY_USART3)
  36#define UART_OFFSET AT91_USART3
  37#elif defined(CONFIG_AT91_EARLY_USART4)
  38#define UART_OFFSET AT91_USART4
  39#elif defined(CONFIG_AT91_EARLY_USART5)
  40#define UART_OFFSET AT91_USART5
  41#endif
  42
  43/*
  44 * The following code assumes the serial port has already been
  45 * initialized by the bootloader.  If you didn't setup a port in
  46 * your bootloader then nothing will appear (which might be desired).
  47 *
  48 * This does not append a newline
  49 */
  50static void putc(int c)
  51{
  52#ifdef UART_OFFSET
  53        void __iomem *sys = (void __iomem *) UART_OFFSET;       /* physical address */
  54
  55        while (!(__raw_readl(sys + ATMEL_US_CSR) & ATMEL_US_TXRDY))
  56                barrier();
  57        __raw_writel(c, sys + ATMEL_US_THR);
  58#endif
  59}
  60
  61static inline void flush(void)
  62{
  63#ifdef UART_OFFSET
  64        void __iomem *sys = (void __iomem *) UART_OFFSET;       /* physical address */
  65
  66        /* wait for transmission to complete */
  67        while (!(__raw_readl(sys + ATMEL_US_CSR) & ATMEL_US_TXEMPTY))
  68                barrier();
  69#endif
  70}
  71
  72#define arch_decomp_setup()
  73
  74#define arch_decomp_wdog()
  75
  76#endif
  77
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.