aboutsummaryrefslogtreecommitdiff
path: root/payloads/libpayload/drivers/timer/Kconfig
blob: 54cbe4a6634bd6733f818ac84019595c378011a4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
##
## This file is part of the coreboot project.
##
## 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.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.

choice
	prompt "Timer driver"
	default TIMER_NONE if !ARCH_X86
	default TIMER_RDTSC if ARCH_X86

config TIMER_RDTSC
	bool "x86 rdtsc"
	depends on ARCH_X86

config TIMER_NONE
	bool "None"
	help
	  The timer driver is provided by the payload itself.

config TIMER_MCT
	bool "Exynos MCT"

config TIMER_TEGRA_1US
	bool "Tegra 1us"

config TIMER_IPQ806X
	bool "Timer for ipq806x platforms"

config TIMER_ARMADA38X
        bool "Timer for armada38x platforms"
	help
	  This is the timer driver for marvell armada38x
	  platforms.

config TIMER_IPQ40XX
	bool "Timer for ipq40xx platforms"
	help
	  This is the timer driver for QCA IPQ40xx based
	  platforms.

config TIMER_ARM64_ARCH
	bool "Architecture Timer for ARM64 platforms"
	help
	  The cntfrq register needs to have been pre-initialized.

config TIMER_RK3288
	bool "Timer for Rockchip RK3288"

config TIMER_RK3399
	bool "Timer for Rockchip RK3399"

config TIMER_CYGNUS
	bool "Timer for Cygnus"

config TIMER_IMG_PISTACHIO
	bool "Timer for IMG Pistachio"

config TIMER_MTK
	bool "Timer for MediaTek MT8173"

config TIMER_MVMAP2315
	bool "Timer for Marvell MVMAP2315"

endchoice

config ARMADA38X_TIMER_FREQ
        int "Hardware timer frequency"
        depends on TIMER_ARMADA38X
        default 25000000

config ARMADA38X_TIMER_REG
        hex "Timer register address"
        default 0xF1020314
        depends on TIMER_ARMADA38X

config MVMAP2315_TIMER_FREQ
	int "Hardware timer frequency"
	depends on TIMER_MVMAP2315
	default 1000000

config MVMAP2315_TIMER_REG
	hex "Timer register address"
	depends on TIMER_MVMAP2315
	default 0xE1020004

config TIMER_GENERIC_HZ
	int "Generic Timer Frequency"
	default 500000000 if TIMER_CYGNUS
	default 48000000 if TIMER_IPQ40XX
	default 6250000 if TIMER_IPQ806X
	default 24000000 if TIMER_MCT
	default 13000000 if TIMER_MTK
	default 24000000 if TIMER_RK3288
	default 24000000 if TIMER_RK3399
	default 1000000 if TIMER_TEGRA_1US
	default 0
	help
	  Clock frequency of generic time counter in Hertz. Leave at 0 to
	  disable when using a non-generic timer driver.

config TIMER_GENERIC_REG
	hex "Generic Timer Register Address"
	default 0x19020200 if TIMER_CYGNUS
	default 0x004A2000 if TIMER_IPQ40XX
	default 0x0200A028 if TIMER_IPQ806X
	default 0x101C0100 if TIMER_MCT
	default 0x10008048 if TIMER_MTK
	default 0xff810028 if TIMER_RK3288
	default 0xff850008 if TIMER_RK3399
	default 0x60005010 if TIMER_TEGRA_1US
	default 0x0
	help
	  Register address to read generic time counter from.

config TIMER_GENERIC_HIGH_REG
	hex "Generic Timer High Register Address"
	default 0x19020204 if TIMER_CYGNUS
	default 0x004A2004 if TIMER_IPQ40XX
	default 0x101C0104 if TIMER_MCT
	default 0xff81002C if TIMER_RK3288
	default 0xff85000C if TIMER_RK3399
	default 0x0
	help
	  Register address to read high 32 bits of generic time counter from.
	  Leave at 0x0 for 32-bit counters.