~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/u-boot/arch/arm/cpu/armv7/at91/cpu.c

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * (C) Copyright 2010
 
3
 * Reinhard Meyer, reinhard.meyer@emk-elektronik.de
 
4
 * (C) Copyright 2009
 
5
 * Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
 
6
 * (C) Copyright 2013
 
7
 * Bo Shen <voice.shen@atmel.com>
 
8
 *
 
9
 * SPDX-License-Identifier:     GPL-2.0+
 
10
 */
 
11
 
 
12
#include <common.h>
 
13
#include <asm/io.h>
 
14
#include <asm/arch/hardware.h>
 
15
#include <asm/arch/at91_dbu.h>
 
16
#include <asm/arch/at91_pmc.h>
 
17
#include <asm/arch/at91_pit.h>
 
18
#include <asm/arch/at91_gpbr.h>
 
19
#include <asm/arch/clk.h>
 
20
 
 
21
#ifndef CONFIG_SYS_AT91_MAIN_CLOCK
 
22
#define CONFIG_SYS_AT91_MAIN_CLOCK 0
 
23
#endif
 
24
 
 
25
int arch_cpu_init(void)
 
26
{
 
27
        return at91_clock_init(CONFIG_SYS_AT91_MAIN_CLOCK);
 
28
}
 
29
 
 
30
void arch_preboot_os(void)
 
31
{
 
32
        ulong cpiv;
 
33
        at91_pit_t *pit = (at91_pit_t *)ATMEL_BASE_PIT;
 
34
 
 
35
        cpiv = AT91_PIT_MR_PIV_MASK(readl(&pit->piir));
 
36
 
 
37
        /*
 
38
         * Disable PITC
 
39
         * Add 0x1000 to current counter to stop it faster
 
40
         * without waiting for wrapping back to 0
 
41
         */
 
42
        writel(cpiv + 0x1000, &pit->mr);
 
43
}
 
44
 
 
45
#if defined(CONFIG_DISPLAY_CPUINFO)
 
46
int print_cpuinfo(void)
 
47
{
 
48
        char buf[32];
 
49
 
 
50
        printf("CPU: %s\n", get_cpu_name());
 
51
        printf("Crystal frequency: %8s MHz\n",
 
52
               strmhz(buf, get_main_clk_rate()));
 
53
        printf("CPU clock        : %8s MHz\n",
 
54
               strmhz(buf, get_cpu_clk_rate()));
 
55
        printf("Master clock     : %8s MHz\n",
 
56
               strmhz(buf, get_mck_clk_rate()));
 
57
 
 
58
        return 0;
 
59
}
 
60
#endif
 
61
 
 
62
void enable_caches(void)
 
63
{
 
64
}
 
65
 
 
66
unsigned int get_chip_id(void)
 
67
{
 
68
        return readl(ATMEL_BASE_DBGU + AT91_DBU_CIDR) & ~AT91_DBU_CIDR_MASK;
 
69
}
 
70
 
 
71
unsigned int get_extension_chip_id(void)
 
72
{
 
73
        return readl(ATMEL_BASE_DBGU + AT91_DBU_EXID);
 
74
}