linux-brain/arch/mips/lasat/setup.c
Thomas Gleixner 41173abc57 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 182
Based on 1 normalized pattern(s):

  this program is free software you can distribute it and or modify it
  under the terms of the gnu general public license version 2 as
  published by the free software foundation this program is
  distributed in the hope it will be useful but without any warranty
  without even the implied warranty of merchantability or fitness for
  a particular purpose see the gnu general public license for more
  details you should have received a copy of the gnu general public
  license along with this program if not write to the free software
  foundation inc 59 temple place suite 330 boston ma 02111 1307 usa

extracted by the scancode license scanner the SPDX license identifier

  GPL-2.0-only

has been chosen to replace the boilerplate/reference in 32 file(s).

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Allison Randal <allison@lohutok.net>
Reviewed-by: Richard Fontana <rfontana@redhat.com>
Reviewed-by: Steve Winslow <swinslow@gmail.com>
Reviewed-by: Alexios Zavras <alexios.zavras@intel.com>
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190528170026.531157061@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-30 11:29:20 -07:00

142 lines
3.1 KiB
C

// SPDX-License-Identifier: GPL-2.0-only
/*
* Carsten Langgaard, carstenl@mips.com
* Copyright (C) 1999 MIPS Technologies, Inc. All rights reserved.
*
* Thomas Horsten <thh@lasat.com>
* Copyright (C) 2000 LASAT Networks A/S.
*
* Brian Murphy <brian@murphy.dk>
*
* Lasat specific setup.
*/
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/pci.h>
#include <linux/interrupt.h>
#include <linux/tty.h>
#include <asm/time.h>
#include <asm/cpu.h>
#include <asm/bootinfo.h>
#include <asm/irq.h>
#include <asm/lasat/lasat.h>
#include <asm/lasat/serial.h>
#ifdef CONFIG_PICVUE
#include <linux/notifier.h>
#endif
#include "ds1603.h"
#include <asm/lasat/ds1603.h>
#include <asm/lasat/picvue.h>
#include <asm/lasat/eeprom.h>
#include "prom.h"
int lasat_command_line;
void lasatint_init(void);
extern void lasat_reboot_setup(void);
extern void pcisetup(void);
extern void edhac_init(void *, void *, void *);
extern void addrflt_init(void);
struct lasat_misc lasat_misc_info[N_MACHTYPES] = {
{
.reset_reg = (void *)KSEG1ADDR(0x1c840000),
.flash_wp_reg = (void *)KSEG1ADDR(0x1c800000), 2
}, {
.reset_reg = (void *)KSEG1ADDR(0x11080000),
.flash_wp_reg = (void *)KSEG1ADDR(0x11000000), 6
}
};
struct lasat_misc *lasat_misc;
#ifdef CONFIG_DS1603
static struct ds_defs ds_defs[N_MACHTYPES] = {
{ (void *)DS1603_REG_100, (void *)DS1603_REG_100,
DS1603_RST_100, DS1603_CLK_100, DS1603_DATA_100,
DS1603_DATA_SHIFT_100, 0, 0 },
{ (void *)DS1603_REG_200, (void *)DS1603_DATA_REG_200,
DS1603_RST_200, DS1603_CLK_200, DS1603_DATA_200,
DS1603_DATA_READ_SHIFT_200, 1, 2000 }
};
#endif
#ifdef CONFIG_PICVUE
#include "picvue.h"
static struct pvc_defs pvc_defs[N_MACHTYPES] = {
{ (void *)PVC_REG_100, PVC_DATA_SHIFT_100, PVC_DATA_M_100,
PVC_E_100, PVC_RW_100, PVC_RS_100 },
{ (void *)PVC_REG_200, PVC_DATA_SHIFT_200, PVC_DATA_M_200,
PVC_E_200, PVC_RW_200, PVC_RS_200 }
};
#endif
static int lasat_panic_display(struct notifier_block *this,
unsigned long event, void *ptr)
{
#ifdef CONFIG_PICVUE
unsigned char *string = ptr;
if (string == NULL)
string = "Kernel Panic";
pvc_dump_string(string);
#endif
return NOTIFY_DONE;
}
static int lasat_panic_prom_monitor(struct notifier_block *this,
unsigned long event, void *ptr)
{
prom_monitor();
return NOTIFY_DONE;
}
static struct notifier_block lasat_panic_block[] =
{
{
.notifier_call = lasat_panic_display,
.priority = INT_MAX
}, {
.notifier_call = lasat_panic_prom_monitor,
.priority = INT_MIN
}
};
void __init plat_time_init(void)
{
mips_hpt_frequency = lasat_board_info.li_cpu_hz / 2;
change_c0_status(ST0_IM, IE_IRQ0);
}
void __init plat_mem_setup(void)
{
int i;
int lasat_type = IS_LASAT_200() ? 1 : 0;
lasat_misc = &lasat_misc_info[lasat_type];
#ifdef CONFIG_PICVUE
picvue = &pvc_defs[lasat_type];
#endif
/* Set up panic notifier */
for (i = 0; i < ARRAY_SIZE(lasat_panic_block); i++)
atomic_notifier_chain_register(&panic_notifier_list,
&lasat_panic_block[i]);
lasat_reboot_setup();
#ifdef CONFIG_DS1603
ds1603 = &ds_defs[lasat_type];
#endif
#ifdef DYNAMIC_SERIAL_INIT
serial_init();
#endif
pr_info("Lasat specific initialization complete\n");
}