blob: 9efde0dad249e92160eaf18abae0233b869ca50d [file] [log] [blame]
Andrew Victor79da7a62006-11-30 11:58:14 +01001/*
Andrew Victor9d041262007-02-05 11:42:07 +01002 * include/asm-arm/arch-at91/cpu.h
Andrew Victor79da7a62006-11-30 11:58:14 +01003 *
4 * Copyright (C) 2006 SAN People
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 */
12
13#ifndef __ASM_ARCH_CPU_H
14#define __ASM_ARCH_CPU_H
15
16#include <asm/hardware.h>
17#include <asm/arch/at91_dbgu.h>
18
19
20#define ARCH_ID_AT91RM9200 0x09290780
21#define ARCH_ID_AT91SAM9260 0x019803a0
22#define ARCH_ID_AT91SAM9261 0x019703a0
Andrew Victorb2c65612007-02-08 09:42:40 +010023#define ARCH_ID_AT91SAM9263 0x019607a0
Andrew Victor79da7a62006-11-30 11:58:14 +010024
25
26static inline unsigned long at91_cpu_identify(void)
27{
28 return (at91_sys_read(AT91_DBGU_CIDR) & ~AT91_CIDR_VERSION);
29}
30
31
32#ifdef CONFIG_ARCH_AT91RM9200
33#define cpu_is_at91rm9200() (at91_cpu_identify() == ARCH_ID_AT91RM9200)
34#else
35#define cpu_is_at91rm9200() (0)
36#endif
37
38#ifdef CONFIG_ARCH_AT91SAM9260
39#define cpu_is_at91sam9260() (at91_cpu_identify() == ARCH_ID_AT91SAM9260)
40#else
41#define cpu_is_at91sam9260() (0)
42#endif
43
44#ifdef CONFIG_ARCH_AT91SAM9261
45#define cpu_is_at91sam9261() (at91_cpu_identify() == ARCH_ID_AT91SAM9261)
46#else
47#define cpu_is_at91sam9261() (0)
48#endif
49
Andrew Victorb2c65612007-02-08 09:42:40 +010050#ifdef CONFIG_ARCH_AT91SAM9263
51#define cpu_is_at91sam9263() (at91_cpu_identify() == ARCH_ID_AT91SAM9263)
52#else
53#define cpu_is_at91sam9263() (0)
54#endif
55
Andrew Victor79da7a62006-11-30 11:58:14 +010056#endif