diff options
author | Peter De Schrijver <pdeschrijver@nvidia.com> | 2014-06-12 11:36:37 -0400 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2014-07-17 08:36:01 -0400 |
commit | 783c8f4c84451bc444e314a71b447239c6ef6fd9 (patch) | |
tree | ccf8ed545ac850e06d3e781a99769bd0ea43c597 /drivers/soc/tegra/fuse/fuse.h | |
parent | 35874f3617b38e0c1f72163407c41d554a8f5939 (diff) |
soc/tegra: Add efuse driver for Tegra
Implement fuse driver for Tegra20, Tegra30, Tegra114 and Tegra124. This
replaces functionality previously provided in arch/arm/mach-tegra, which
is removed in this patch.
While at it, move the only user of the global tegra_revision variable
over to tegra_sku_info.revision and export tegra_fuse_readl() to allow
drivers to read calibration fuses.
Signed-off-by: Peter De Schrijver <pdeschrijver@nvidia.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/soc/tegra/fuse/fuse.h')
-rw-r--r-- | drivers/soc/tegra/fuse/fuse.h | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/drivers/soc/tegra/fuse/fuse.h b/drivers/soc/tegra/fuse/fuse.h new file mode 100644 index 000000000000..b3442770df09 --- /dev/null +++ b/drivers/soc/tegra/fuse/fuse.h | |||
@@ -0,0 +1,71 @@ | |||
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 __DRIVERS_MISC_TEGRA_FUSE_H | ||
20 | #define __DRIVERS_MISC_TEGRA_FUSE_H | ||
21 | |||
22 | #define TEGRA_FUSE_BASE 0x7000f800 | ||
23 | #define TEGRA_FUSE_SIZE 0x400 | ||
24 | |||
25 | int tegra_fuse_create_sysfs(struct device *dev, int size, | ||
26 | u32 (*readl)(const unsigned int offset)); | ||
27 | |||
28 | bool tegra30_spare_fuse(int bit); | ||
29 | u32 tegra30_fuse_readl(const unsigned int offset); | ||
30 | void tegra30_init_fuse_early(void); | ||
31 | void tegra_init_revision(void); | ||
32 | void tegra_init_apbmisc(void); | ||
33 | |||
34 | #ifdef CONFIG_ARCH_TEGRA_2x_SOC | ||
35 | void tegra20_init_speedo_data(struct tegra_sku_info *sku_info); | ||
36 | bool tegra20_spare_fuse_early(int spare_bit); | ||
37 | void tegra20_init_fuse_early(void); | ||
38 | u32 tegra20_fuse_early(const unsigned int offset); | ||
39 | #else | ||
40 | static inline void tegra20_init_speedo_data(struct tegra_sku_info *sku_info) {} | ||
41 | static inline bool tegra20_spare_fuse_early(int spare_bit, void *fuse_base) | ||
42 | { | ||
43 | return false; | ||
44 | } | ||
45 | static inline void tegra20_init_fuse_early(void); | ||
46 | static inline tegra20_fuse_early(const unsigned int offset); | ||
47 | { | ||
48 | return 0; | ||
49 | } | ||
50 | #endif | ||
51 | |||
52 | |||
53 | #ifdef CONFIG_ARCH_TEGRA_3x_SOC | ||
54 | void tegra30_init_speedo_data(struct tegra_sku_info *sku_info); | ||
55 | #else | ||
56 | static inline void tegra30_init_speedo_data(struct tegra_sku_info *sku_info) {} | ||
57 | #endif | ||
58 | |||
59 | #ifdef CONFIG_ARCH_TEGRA_114_SOC | ||
60 | void tegra114_init_speedo_data(struct tegra_sku_info *sku_info); | ||
61 | #else | ||
62 | static inline void tegra114_init_speedo_data(struct tegra_sku_info *sku_info) {} | ||
63 | #endif | ||
64 | |||
65 | #ifdef CONFIG_ARCH_TEGRA_124_SOC | ||
66 | void tegra124_init_speedo_data(struct tegra_sku_info *sku_info); | ||
67 | #else | ||
68 | static inline void tegra124_init_speedo_data(struct tegra_sku_info *sku_info) {} | ||
69 | #endif | ||
70 | |||
71 | #endif | ||