root/arch/arm/mach-footbridge/cats-hw.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. cats_hw_init
  2. fixup_cats

   1 // SPDX-License-Identifier: GPL-2.0
   2 /*
   3  * linux/arch/arm/mach-footbridge/cats-hw.c
   4  *
   5  * CATS machine fixup
   6  *
   7  * Copyright (C) 1998, 1999 Russell King, Phil Blundell
   8  */
   9 #include <linux/ioport.h>
  10 #include <linux/kernel.h>
  11 #include <linux/init.h>
  12 #include <linux/screen_info.h>
  13 #include <linux/io.h>
  14 #include <linux/spinlock.h>
  15 
  16 #include <asm/hardware/dec21285.h>
  17 #include <asm/mach-types.h>
  18 #include <asm/setup.h>
  19 
  20 #include <asm/mach/arch.h>
  21 
  22 #include "common.h"
  23 
  24 #define CFG_PORT        0x370
  25 #define INDEX_PORT      (CFG_PORT)
  26 #define DATA_PORT       (CFG_PORT + 1)
  27 
  28 static int __init cats_hw_init(void)
  29 {
  30         if (machine_is_cats()) {
  31                 /* Set Aladdin to CONFIGURE mode */
  32                 outb(0x51, CFG_PORT);
  33                 outb(0x23, CFG_PORT);
  34 
  35                 /* Select logical device 3 */
  36                 outb(0x07, INDEX_PORT);
  37                 outb(0x03, DATA_PORT);
  38 
  39                 /* Set parallel port to DMA channel 3, ECP+EPP1.9, 
  40                    enable EPP timeout */
  41                 outb(0x74, INDEX_PORT);
  42                 outb(0x03, DATA_PORT);
  43         
  44                 outb(0xf0, INDEX_PORT);
  45                 outb(0x0f, DATA_PORT);
  46 
  47                 outb(0xf1, INDEX_PORT);
  48                 outb(0x07, DATA_PORT);
  49 
  50                 /* Select logical device 4 */
  51                 outb(0x07, INDEX_PORT);
  52                 outb(0x04, DATA_PORT);
  53 
  54                 /* UART1 high speed mode */
  55                 outb(0xf0, INDEX_PORT);
  56                 outb(0x02, DATA_PORT);
  57 
  58                 /* Select logical device 5 */
  59                 outb(0x07, INDEX_PORT);
  60                 outb(0x05, DATA_PORT);
  61 
  62                 /* UART2 high speed mode */
  63                 outb(0xf0, INDEX_PORT);
  64                 outb(0x02, DATA_PORT);
  65 
  66                 /* Set Aladdin to RUN mode */
  67                 outb(0xbb, CFG_PORT);
  68         }
  69 
  70         return 0;
  71 }
  72 
  73 __initcall(cats_hw_init);
  74 
  75 /*
  76  * CATS uses soft-reboot by default, since
  77  * hard reboots fail on early boards.
  78  */
  79 static void __init
  80 fixup_cats(struct tag *tags, char **cmdline)
  81 {
  82 #if defined(CONFIG_VGA_CONSOLE) || defined(CONFIG_DUMMY_CONSOLE)
  83         screen_info.orig_video_lines  = 25;
  84         screen_info.orig_video_points = 16;
  85         screen_info.orig_y = 24;
  86 #endif
  87 }
  88 
  89 MACHINE_START(CATS, "Chalice-CATS")
  90         /* Maintainer: Philip Blundell */
  91         .atag_offset    = 0x100,
  92         .reboot_mode    = REBOOT_SOFT,
  93         .fixup          = fixup_cats,
  94         .map_io         = footbridge_map_io,
  95         .init_irq       = footbridge_init_irq,
  96         .init_time      = isa_timer_init,
  97         .restart        = footbridge_restart,
  98 MACHINE_END

/* [<][>][^][v][top][bottom][index][help] */