1/* 2 * arch/arm/mach-w90x900/cpu.h 3 * 4 * Based on linux/include/asm-arm/plat-s3c24xx/cpu.h by Ben Dooks 5 * 6 * Copyright (c) 2008 Nuvoton technology corporation 7 * All rights reserved. 8 * 9 * Header file for NUC900 CPU support 10 * 11 * Wan ZongShun <mcuos.com@gmail.com> 12 * 13 * This program is free software; you can redistribute it and/or modify 14 * it under the terms of the GNU General Public License version 2 as 15 * published by the Free Software Foundation. 16 * 17 */ 18 19#define IODESC_ENT(y) \ 20{ \ 21 .virtual = (unsigned long)W90X900_VA_##y, \ 22 .pfn = __phys_to_pfn(W90X900_PA_##y), \ 23 .length = W90X900_SZ_##y, \ 24 .type = MT_DEVICE, \ 25} 26 27#define NUC900_8250PORT(name) \ 28{ \ 29 .membase = name##_BA, \ 30 .mapbase = name##_PA, \ 31 .irq = IRQ_##name, \ 32 .uartclk = 11313600, \ 33 .regshift = 2, \ 34 .iotype = UPIO_MEM, \ 35 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, \ 36} 37 38/*Cpu identifier register*/ 39 40#define NUC900PDID W90X900_VA_GCR 41#define NUC910_CPUID 0x02900910 42#define NUC920_CPUID 0x02900920 43#define NUC950_CPUID 0x02900950 44#define NUC960_CPUID 0x02900960 45 46/* extern file from cpu.c */ 47 48extern void nuc900_clock_source(struct device *dev, unsigned char *src); 49extern void nuc900_init_clocks(void); 50extern void nuc900_map_io(struct map_desc *mach_desc, int mach_size); 51extern void nuc900_board_init(struct platform_device **device, int size); 52 53/* for either public between 910 and 920, or between 920 and 950 */ 54 55extern struct platform_device nuc900_serial_device; 56extern struct platform_device nuc900_device_fmi; 57extern struct platform_device nuc900_device_kpi; 58extern struct platform_device nuc900_device_rtc; 59extern struct platform_device nuc900_device_ts; 60extern struct platform_device nuc900_device_lcd; 61