mirror of
https://github.com/adulau/aha.git
synced 2024-12-27 19:26:25 +00:00
ARM: 5684/1: Add nuc960 platform to w90x900
Add nuc960 platform to w90x900. Signed-off-by: Wan ZongShun <mcuos.com@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
936fbe9efc
commit
8e22676e56
5 changed files with 143 additions and 0 deletions
|
@ -10,6 +10,11 @@ config CPU_NUC950
|
|||
help
|
||||
Support for NUCP950 of Nuvoton NUC900 CPUs.
|
||||
|
||||
config CPU_NUC960
|
||||
bool
|
||||
help
|
||||
Support for NUCP960 of Nuvoton NUC900 CPUs.
|
||||
|
||||
menu "W90P910 Machines"
|
||||
|
||||
config MACH_W90P910EVB
|
||||
|
@ -31,4 +36,14 @@ config MACH_W90P950EVB
|
|||
|
||||
endmenu
|
||||
|
||||
menu "NUC960 Machines"
|
||||
|
||||
config MACH_W90N960EVB
|
||||
bool "Nuvoton NUC960 Evaluation Board"
|
||||
select CPU_NUC960
|
||||
help
|
||||
Say Y here if you are using the Nuvoton NUC960EVB
|
||||
|
||||
endmenu
|
||||
|
||||
endif
|
||||
|
|
|
@ -10,8 +10,10 @@ obj-y += clksel.o dev.o cpu.o
|
|||
|
||||
obj-$(CONFIG_CPU_W90P910) += nuc910.o
|
||||
obj-$(CONFIG_CPU_NUC950) += nuc950.o
|
||||
obj-$(CONFIG_CPU_NUC960) += nuc960.o
|
||||
|
||||
# machine support
|
||||
|
||||
obj-$(CONFIG_MACH_W90P910EVB) += mach-nuc910evb.o
|
||||
obj-$(CONFIG_MACH_W90P950EVB) += mach-nuc950evb.o
|
||||
obj-$(CONFIG_MACH_W90N960EVB) += mach-nuc960evb.o
|
||||
|
|
44
arch/arm/mach-w90x900/mach-nuc960evb.c
Normal file
44
arch/arm/mach-w90x900/mach-nuc960evb.c
Normal file
|
@ -0,0 +1,44 @@
|
|||
/*
|
||||
* linux/arch/arm/mach-w90x900/mach-nuc960evb.c
|
||||
*
|
||||
* Based on mach-s3c2410/mach-smdk2410.c by Jonas Dietsche
|
||||
*
|
||||
* Copyright (C) 2008 Nuvoton technology corporation.
|
||||
*
|
||||
* Wan ZongShun <mcuos.com@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation;version 2 of the License.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
#include <asm/mach/arch.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <mach/map.h>
|
||||
|
||||
#include "nuc960.h"
|
||||
|
||||
static void __init nuc960evb_map_io(void)
|
||||
{
|
||||
nuc960_map_io();
|
||||
nuc960_init_clocks();
|
||||
}
|
||||
|
||||
static void __init nuc960evb_init(void)
|
||||
{
|
||||
nuc960_board_init();
|
||||
}
|
||||
|
||||
MACHINE_START(W90N960EVB, "W90N960EVB")
|
||||
/* Maintainer: Wan ZongShun */
|
||||
.phys_io = W90X900_PA_UART,
|
||||
.io_pg_offst = (((u32)W90X900_VA_UART) >> 18) & 0xfffc,
|
||||
.boot_params = 0,
|
||||
.map_io = nuc960evb_map_io,
|
||||
.init_irq = nuc900_init_irq,
|
||||
.init_machine = nuc960evb_init,
|
||||
.timer = &nuc900_timer,
|
||||
MACHINE_END
|
54
arch/arm/mach-w90x900/nuc960.c
Normal file
54
arch/arm/mach-w90x900/nuc960.c
Normal file
|
@ -0,0 +1,54 @@
|
|||
/*
|
||||
* linux/arch/arm/mach-w90x900/nuc960.c
|
||||
*
|
||||
* Based on linux/arch/arm/plat-s3c24xx/s3c244x.c by Ben Dooks
|
||||
*
|
||||
* Copyright (c) 2008 Nuvoton technology corporation.
|
||||
*
|
||||
* Wan ZongShun <mcuos.com@gmail.com>
|
||||
*
|
||||
* NUC960 cpu support
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation;version 2 of the License.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <linux/platform_device.h>
|
||||
#include <asm/mach/map.h>
|
||||
#include <mach/hardware.h>
|
||||
#include "cpu.h"
|
||||
|
||||
/* define specific CPU platform device */
|
||||
|
||||
static struct platform_device *nuc960_dev[] __initdata = {
|
||||
&nuc900_device_kpi,
|
||||
&nuc900_device_fmi,
|
||||
};
|
||||
|
||||
/* define specific CPU platform io map */
|
||||
|
||||
static struct map_desc nuc960evb_iodesc[] __initdata = {
|
||||
};
|
||||
|
||||
/*Init NUC960 evb io*/
|
||||
|
||||
void __init nuc960_map_io(void)
|
||||
{
|
||||
nuc900_map_io(nuc960evb_iodesc, ARRAY_SIZE(nuc960evb_iodesc));
|
||||
}
|
||||
|
||||
/*Init NUC960 clock*/
|
||||
|
||||
void __init nuc960_init_clocks(void)
|
||||
{
|
||||
nuc900_init_clocks();
|
||||
}
|
||||
|
||||
/*Init NUC960 board info*/
|
||||
|
||||
void __init nuc960_board_init(void)
|
||||
{
|
||||
nuc900_board_init(nuc960_dev, ARRAY_SIZE(nuc960_dev));
|
||||
}
|
28
arch/arm/mach-w90x900/nuc960.h
Normal file
28
arch/arm/mach-w90x900/nuc960.h
Normal file
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
* arch/arm/mach-w90x900/nuc960.h
|
||||
*
|
||||
* Copyright (c) 2008 Nuvoton corporation
|
||||
*
|
||||
* Header file for NUC900 CPU support
|
||||
*
|
||||
* Wan ZongShun <mcuos.com@gmail.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
*/
|
||||
|
||||
struct map_desc;
|
||||
struct sys_timer;
|
||||
|
||||
/* core initialisation functions */
|
||||
|
||||
extern void nuc900_init_irq(void);
|
||||
extern struct sys_timer nuc900_timer;
|
||||
|
||||
/* extern file from nuc960.c */
|
||||
|
||||
extern void nuc960_board_init(void);
|
||||
extern void nuc960_init_clocks(void);
|
||||
extern void nuc960_map_io(void);
|
Loading…
Reference in a new issue