xref: /kernel/linux/linux-6.6/arch/m68k/68000/m68328.c (revision 62306a36)
162306a36Sopenharmony_ci/***************************************************************************/
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci/*
462306a36Sopenharmony_ci *  m68328.c - 68328/68EZ328/68VZ328 specific config
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci *  Copyright (C) 1993 Hamish Macdonald
762306a36Sopenharmony_ci *  Copyright (C) 1999 D. Jeff Dionne
862306a36Sopenharmony_ci *  Copyright (C) 2001 Georges Menie, Ken Desmet
962306a36Sopenharmony_ci *
1062306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General Public
1162306a36Sopenharmony_ci * License.  See the file COPYING in the main directory of this archive
1262306a36Sopenharmony_ci * for more details.
1362306a36Sopenharmony_ci *
1462306a36Sopenharmony_ci * VZ Support/Fixes             Evan Stawnyczy <e@lineo.ca>
1562306a36Sopenharmony_ci */
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci/***************************************************************************/
1862306a36Sopenharmony_ci
1962306a36Sopenharmony_ci#include <linux/init.h>
2062306a36Sopenharmony_ci#include <linux/types.h>
2162306a36Sopenharmony_ci#include <linux/kernel.h>
2262306a36Sopenharmony_ci#include <linux/rtc.h>
2362306a36Sopenharmony_ci#include <asm/machdep.h>
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci#if defined(CONFIG_INIT_LCD) && defined(CONFIG_M68VZ328)
2662306a36Sopenharmony_ci#include "bootlogo-vz.h"
2762306a36Sopenharmony_ci#elif defined(CONFIG_PILOT) || defined(CONFIG_INIT_LCD)
2862306a36Sopenharmony_ci#include "bootlogo.h"
2962306a36Sopenharmony_ci#endif
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci#include "m68328.h"
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci/***************************************************************************/
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_cistatic void m68328_reset(void)
3662306a36Sopenharmony_ci{
3762306a36Sopenharmony_ci  local_irq_disable();
3862306a36Sopenharmony_ci  asm volatile ("moveal #0x10c00000, %a0;\n\t"
3962306a36Sopenharmony_ci		"moveb #0, 0xFFFFF300;\n\t"
4062306a36Sopenharmony_ci		"moveal 0(%a0), %sp;\n\t"
4162306a36Sopenharmony_ci		"moveal 4(%a0), %a0;\n\t"
4262306a36Sopenharmony_ci		"jmp (%a0);");
4362306a36Sopenharmony_ci}
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci/***************************************************************************/
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_civoid __init config_BSP(char *command, int len)
4862306a36Sopenharmony_ci{
4962306a36Sopenharmony_ci	mach_sched_init = hw_timer_init;
5062306a36Sopenharmony_ci	mach_hwclk = m68328_hwclk;
5162306a36Sopenharmony_ci	mach_reset = m68328_reset;
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci#if   defined(CONFIG_PILOT) && defined(CONFIG_M68328)
5462306a36Sopenharmony_ci	mach_sched_init = NULL;
5562306a36Sopenharmony_ci#elif defined(CONFIG_UCSIMM)
5662306a36Sopenharmony_ci	init_ucsimm(command, len);
5762306a36Sopenharmony_ci#elif defined(CONFIG_UCDIMM)
5862306a36Sopenharmony_ci	init_ucsimm(command, len);
5962306a36Sopenharmony_ci#elif defined(CONFIG_DRAGEN2)
6062306a36Sopenharmony_ci	init_dragen2(command, len);
6162306a36Sopenharmony_ci#endif
6262306a36Sopenharmony_ci}
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci/***************************************************************************/
65