blob: 8e1249474e84dd4e0e6abd71f52c8e2fcf6015c9 [file] [log] [blame]
Prashant Gaikwadc7736ed2013-01-11 13:16:19 +05301/*
2 * Copyright (c) 2012, NVIDIA CORPORATION. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms and conditions of the GNU General Public License,
6 * version 2, as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
11 * more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
Thierry Reding306a7f92014-07-17 13:17:24 +020017#ifndef __SOC_TEGRA_FUSE_H__
18#define __SOC_TEGRA_FUSE_H__
Prashant Gaikwadc7736ed2013-01-11 13:16:19 +053019
Thierry Reding304664e2014-07-11 09:52:41 +020020#define TEGRA20 0x20
21#define TEGRA30 0x30
22#define TEGRA114 0x35
23#define TEGRA124 0x40
24
Peter De Schrijver783c8f42014-06-12 18:36:37 +030025#define TEGRA_FUSE_SKU_CALIB_0 0xf0
26#define TEGRA30_FUSE_SATA_CALIB 0x124
27
Thierry Reding304664e2014-07-11 09:52:41 +020028#ifndef __ASSEMBLY__
29
Prashant Gaikwadc7736ed2013-01-11 13:16:19 +053030u32 tegra_read_chipid(void);
Thierry Reding304664e2014-07-11 09:52:41 +020031u8 tegra_get_chip_id(void);
32
Peter De Schrijver35874f32014-06-12 18:36:36 +030033enum tegra_revision {
34 TEGRA_REVISION_UNKNOWN = 0,
35 TEGRA_REVISION_A01,
36 TEGRA_REVISION_A02,
37 TEGRA_REVISION_A03,
38 TEGRA_REVISION_A03p,
39 TEGRA_REVISION_A04,
40 TEGRA_REVISION_MAX,
41};
42
Peter De Schrijver783c8f42014-06-12 18:36:37 +030043struct tegra_sku_info {
44 int sku_id;
45 int cpu_process_id;
46 int cpu_speedo_id;
47 int cpu_speedo_value;
48 int cpu_iddq_value;
49 int core_process_id;
50 int soc_speedo_id;
51 int gpu_speedo_id;
52 int gpu_process_id;
53 int gpu_speedo_value;
54 enum tegra_revision revision;
55};
56
Peter De Schrijver35874f32014-06-12 18:36:36 +030057u32 tegra_read_straps(void);
58u32 tegra_read_chipid(void);
Peter De Schrijver783c8f42014-06-12 18:36:37 +030059int tegra_fuse_readl(unsigned long offset, u32 *value);
Peter De Schrijver35874f32014-06-12 18:36:36 +030060
Peter De Schrijver783c8f42014-06-12 18:36:37 +030061extern struct tegra_sku_info tegra_sku_info;
Peter De Schrijver35874f32014-06-12 18:36:36 +030062
Thierry Reding304664e2014-07-11 09:52:41 +020063#endif /* __ASSEMBLY__ */
Prashant Gaikwadc7736ed2013-01-11 13:16:19 +053064
Thierry Reding306a7f92014-07-17 13:17:24 +020065#endif /* __SOC_TEGRA_FUSE_H__ */