blob: 631ebbb283c6b6247ec1df7a57359765c06e56d6 (
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
|
/* SPDX-License-Identifier: GPL-2.0+ */
/*
* (C) Copyright 2010,2011
* NVIDIA Corporation <www.nvidia.com>
*/
#ifndef _FUSE_H_
#define _FUSE_H_
/* FUSE registers */
struct fuse_regs {
u32 reserved0[64]; /* 0x00 - 0xFC: */
u32 production_mode; /* 0x100: FUSE_PRODUCTION_MODE */
u32 reserved1[3]; /* 0x104 - 0x10c: */
u32 sku_info; /* 0x110 */
u32 reserved2[13]; /* 0x114 - 0x144: */
u32 fa; /* 0x148: FUSE_FA */
u32 reserved3[21]; /* 0x14C - 0x19C: */
u32 security_mode; /* 0x1A0: FUSE_SECURITY_MODE */
u32 sbk[4]; /* 0x1A4 - 0x1B4 */
};
/* Defines the supported operating modes */
enum fuse_operating_mode {
MODE_UNDEFINED = 0,
MODE_PRODUCTION = 3,
MODE_ODM_PRODUCTION_SECURE = 4,
MODE_ODM_PRODUCTION_OPEN = 5,
};
/**
* Initializes fuse hardware
*/
void tegra_fuse_init(void);
/**
* Calculate SoC UID
*
* Return: uid if ok, 0 on error
*/
unsigned long long tegra_chip_uid(void);
/**
* Gives the current operating mode from fuses
*
* @return current operating mode
*/
enum fuse_operating_mode tegra_fuse_get_operation_mode(void);
#endif /* ifndef _FUSE_H_ */
|