1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * arch/arm/mach-w90x900/cpu.h
5 * Based on linux/include/asm-arm/plat-s3c24xx/cpu.h by Ben Dooks
7 * Copyright (c) 2008 Nuvoton technology corporation
10 * Header file for NUC900 CPU support
12 * Wan ZongShun <mcuos.com@gmail.com>
15 #define IODESC_ENT(y) \
17 .virtual = (unsigned long)W90X900_VA_##y, \
18 .pfn = __phys_to_pfn(W90X900_PA_##y), \
19 .length = W90X900_SZ_##y, \
23 #define NUC900_8250PORT(name) \
25 .membase = name##_BA, \
26 .mapbase = name##_PA, \
28 .uartclk = 11313600, \
31 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, \
34 /*Cpu identifier register*/
36 #define NUC900PDID W90X900_VA_GCR
37 #define NUC910_CPUID 0x02900910
38 #define NUC920_CPUID 0x02900920
39 #define NUC950_CPUID 0x02900950
40 #define NUC960_CPUID 0x02900960
42 /* extern file from cpu.c */
44 extern void nuc900_clock_source(struct device
*dev
, unsigned char *src
);
45 extern void nuc900_init_clocks(void);
46 extern void nuc900_map_io(struct map_desc
*mach_desc
, int mach_size
);
47 extern void nuc900_board_init(struct platform_device
**device
, int size
);
49 /* for either public between 910 and 920, or between 920 and 950 */
51 extern struct platform_device nuc900_serial_device
;
52 extern struct platform_device nuc900_device_fmi
;
53 extern struct platform_device nuc900_device_kpi
;
54 extern struct platform_device nuc900_device_rtc
;
55 extern struct platform_device nuc900_device_ts
;
56 extern struct platform_device nuc900_device_lcd
;