blob: 4a0eb02d2cba8acf03f1712697406c3ac20864af [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
Thierry Reding24ef5742015-01-08 08:24:45 +010024#define TEGRA132 0x13
Thierry Reding0dc5a0d2015-04-29 16:55:57 +020025#define TEGRA210 0x21
Thierry Reding304664e2014-07-11 09:52:41 +020026
Peter De Schrijver783c8f42014-06-12 18:36:37 +030027#define TEGRA_FUSE_SKU_CALIB_0 0xf0
28#define TEGRA30_FUSE_SATA_CALIB 0x124
29
Thierry Reding304664e2014-07-11 09:52:41 +020030#ifndef __ASSEMBLY__
31
Prashant Gaikwadc7736ed2013-01-11 13:16:19 +053032u32 tegra_read_chipid(void);
Thierry Reding304664e2014-07-11 09:52:41 +020033u8 tegra_get_chip_id(void);
34
Peter De Schrijver35874f32014-06-12 18:36:36 +030035enum tegra_revision {
36 TEGRA_REVISION_UNKNOWN = 0,
37 TEGRA_REVISION_A01,
38 TEGRA_REVISION_A02,
39 TEGRA_REVISION_A03,
40 TEGRA_REVISION_A03p,
41 TEGRA_REVISION_A04,
42 TEGRA_REVISION_MAX,
43};
44
Peter De Schrijver783c8f42014-06-12 18:36:37 +030045struct tegra_sku_info {
46 int sku_id;
47 int cpu_process_id;
48 int cpu_speedo_id;
49 int cpu_speedo_value;
50 int cpu_iddq_value;
51 int core_process_id;
52 int soc_speedo_id;
Thierry Reding0dc5a0d2015-04-29 16:55:57 +020053 int soc_speedo_value;
Peter De Schrijver783c8f42014-06-12 18:36:37 +030054 int gpu_process_id;
Thierry Reding0dc5a0d2015-04-29 16:55:57 +020055 int gpu_speedo_id;
Peter De Schrijver783c8f42014-06-12 18:36:37 +030056 int gpu_speedo_value;
57 enum tegra_revision revision;
58};
59
Peter De Schrijver35874f32014-06-12 18:36:36 +030060u32 tegra_read_straps(void);
Mikko Perttunen6ea26092015-03-12 15:47:55 +010061u32 tegra_read_ram_code(void);
Peter De Schrijver35874f32014-06-12 18:36:36 +030062u32 tegra_read_chipid(void);
Peter De Schrijver783c8f42014-06-12 18:36:37 +030063int tegra_fuse_readl(unsigned long offset, u32 *value);
Peter De Schrijver35874f32014-06-12 18:36:36 +030064
Peter De Schrijver783c8f42014-06-12 18:36:37 +030065extern struct tegra_sku_info tegra_sku_info;
Peter De Schrijver35874f32014-06-12 18:36:36 +030066
Thierry Reding304664e2014-07-11 09:52:41 +020067#endif /* __ASSEMBLY__ */
Prashant Gaikwadc7736ed2013-01-11 13:16:19 +053068
Thierry Reding306a7f92014-07-17 13:17:24 +020069#endif /* __SOC_TEGRA_FUSE_H__ */