]> git.karo-electronics.de Git - karo-tx-linux.git/blob - arch/arm/mach-tegra/fuse.h
Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[karo-tx-linux.git] / arch / arm / mach-tegra / fuse.h
1 /*
2  * Copyright (C) 2010 Google, Inc.
3  * Copyright (c) 2013, NVIDIA CORPORATION.  All rights reserved.
4  *
5  * Author:
6  *      Colin Cross <ccross@android.com>
7  *
8  * This software is licensed under the terms of the GNU General Public
9  * License version 2, as published by the Free Software Foundation, and
10  * may be copied, distributed, and modified under those terms.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  */
18
19 #ifndef __MACH_TEGRA_FUSE_H
20 #define __MACH_TEGRA_FUSE_H
21
22 #define SKU_ID_T20      8
23 #define SKU_ID_T25SE    20
24 #define SKU_ID_AP25     23
25 #define SKU_ID_T25      24
26 #define SKU_ID_AP25E    27
27 #define SKU_ID_T25E     28
28
29 #define TEGRA20         0x20
30 #define TEGRA30         0x30
31 #define TEGRA114        0x35
32
33 #ifndef __ASSEMBLY__
34 enum tegra_revision {
35         TEGRA_REVISION_UNKNOWN = 0,
36         TEGRA_REVISION_A01,
37         TEGRA_REVISION_A02,
38         TEGRA_REVISION_A03,
39         TEGRA_REVISION_A03p,
40         TEGRA_REVISION_A04,
41         TEGRA_REVISION_MAX,
42 };
43
44 extern int tegra_sku_id;
45 extern int tegra_cpu_process_id;
46 extern int tegra_core_process_id;
47 extern int tegra_chip_id;
48 extern int tegra_cpu_speedo_id;         /* only exist in Tegra30 and later */
49 extern int tegra_soc_speedo_id;
50 extern enum tegra_revision tegra_revision;
51
52 extern int tegra_bct_strapping;
53
54 unsigned long long tegra_chip_uid(void);
55 void tegra_init_fuse(void);
56 bool tegra_spare_fuse(int bit);
57 u32 tegra_fuse_readl(unsigned long offset);
58
59 #ifdef CONFIG_ARCH_TEGRA_2x_SOC
60 void tegra20_init_speedo_data(void);
61 #else
62 static inline void tegra20_init_speedo_data(void) {}
63 #endif
64
65 #ifdef CONFIG_ARCH_TEGRA_3x_SOC
66 void tegra30_init_speedo_data(void);
67 #else
68 static inline void tegra30_init_speedo_data(void) {}
69 #endif
70
71 #ifdef CONFIG_ARCH_TEGRA_114_SOC
72 void tegra114_init_speedo_data(void);
73 #else
74 static inline void tegra114_init_speedo_data(void) {}
75 #endif
76 #endif /* __ASSEMBLY__ */
77
78 #endif