SemiDrive SSDK Appication Program Interface PTG3.0
sdrv_fuse.h
Go to the documentation of this file.
1
9#ifndef SDRV_FUSE_H_
10#define SDRV_FUSE_H_
11
12#include <compiler.h>
13#include <types.h>
14#include "sdrv_common.h"
15
19typedef enum {
21 PLOCK = 1,
25 RLOCK = 2,
27 OLOCK = 4,
29 HLOCK = 8,
31
35typedef enum {
36 /* fuse lock bank from bank1 to bank32 */
70
74enum
75{
76 SDRV_FUSE_CTRL_ERROR_OR_BUSY = SDRV_ERROR_STATUS(SDRV_STATUS_GROUP_FUSE, 0), /* Fuse status for fuse_ctrl register is error or busy. */
77 SDRV_FUSE_CTRL_ERROR = SDRV_ERROR_STATUS(SDRV_STATUS_GROUP_FUSE, 1), /* Fuse status for fuse_ctrl register is error. */
78};
79
89uint32_t sdrv_fuse_read(uint32_t index);
90
101status_t sdrv_fuse_sense(uint32_t index, uint32_t *data);
102
113status_t sdrv_fuse_program(uint32_t index, uint32_t v);
114
126status_t sdrv_fuse_program_raw(uint32_t index, uint32_t val, bool ecc);
127
134
142
151
159
168
176
177#endif /* SDRV_FUSE_H_ */
unsigned char v[1]
Definition: logo_rgb565.h:32917
SemiDrive driver common header file.
@ SDRV_STATUS_GROUP_FUSE
Definition: sdrv_common.h:30
int32_t status_t
Type used for all status and error return values.
Definition: sdrv_common.h:82
#define SDRV_ERROR_STATUS(group, code)
Construct a status code value from a group and code number. All the error statuses are negetive numbe...
Definition: sdrv_common.h:17
status_t sdrv_fuse_ctl_trigger_sw_vio(fuse_lock_bits_e msk)
Trigger software violation.
uint32_t sdrv_fuse_get_bank_lock(fuse_lock_bank_e bank)
Get fuse bank lock type.
fuse_lock_bits_e
Fuse lock types.
Definition: sdrv_fuse.h:19
@ HLOCK
Definition: sdrv_fuse.h:29
@ OLOCK
Definition: sdrv_fuse.h:27
@ PLOCK
Definition: sdrv_fuse.h:21
@ RLOCK
Definition: sdrv_fuse.h:25
status_t sdrv_fuse_ctl_cfg_timing(uint32_t freq_mhz)
Update fuse control timing.
status_t sdrv_fuse_lock_bank(fuse_lock_bank_e bank, fuse_lock_bits_e lock_bits)
Lock fuse banks.
fuse_lock_bank_e
Fuse lock bank.
Definition: sdrv_fuse.h:35
@ FUSE_LOCK_BANK9
Definition: sdrv_fuse.h:45
@ FUSE_LOCK_BANK12
Definition: sdrv_fuse.h:48
@ FUSE_LOCK_BANK30
Definition: sdrv_fuse.h:66
@ FUSE_LOCK_BANK28
Definition: sdrv_fuse.h:64
@ FUSE_LOCK_BANK25
Definition: sdrv_fuse.h:61
@ FUSE_LOCK_BANK22
Definition: sdrv_fuse.h:58
@ FUSE_LOCK_BANK11
Definition: sdrv_fuse.h:47
@ FUSE_LOCK_BANK29
Definition: sdrv_fuse.h:65
@ FUSE_LOCK_BANK6
Definition: sdrv_fuse.h:42
@ FUSE_LOCK_BANK16
Definition: sdrv_fuse.h:52
@ FUSE_LOCK_BANK26
Definition: sdrv_fuse.h:62
@ FUSE_LOCK_BANK1
Definition: sdrv_fuse.h:37
@ FUSE_LOCK_BANK5
Definition: sdrv_fuse.h:41
@ FUSE_LOCK_BANK23
Definition: sdrv_fuse.h:59
@ FUSE_LOCK_BANK7
Definition: sdrv_fuse.h:43
@ FUSE_LOCK_BANK21
Definition: sdrv_fuse.h:57
@ FUSE_LOCK_BANK15
Definition: sdrv_fuse.h:51
@ FUSE_LOCK_BANK10
Definition: sdrv_fuse.h:46
@ FUSE_LOCK_BANK17
Definition: sdrv_fuse.h:53
@ FUSE_LOCK_BANK13
Definition: sdrv_fuse.h:49
@ FUSE_LOCK_BANK14
Definition: sdrv_fuse.h:50
@ FUSE_LOCK_BANK19
Definition: sdrv_fuse.h:55
@ FUSE_LOCK_BANK18
Definition: sdrv_fuse.h:54
@ FUSE_LOCK_BANK32
Definition: sdrv_fuse.h:68
@ FUSE_LOCK_BANK4
Definition: sdrv_fuse.h:40
@ FUSE_LOCK_BANK2
Definition: sdrv_fuse.h:38
@ FUSE_LOCK_BANK31
Definition: sdrv_fuse.h:67
@ FUSE_LOCK_BANK27
Definition: sdrv_fuse.h:63
@ FUSE_LOCK_BANK20
Definition: sdrv_fuse.h:56
@ FUSE_LOCK_BANK8
Definition: sdrv_fuse.h:44
@ FUSE_LOCK_BANK24
Definition: sdrv_fuse.h:60
@ FUSE_LOCK_BANK3
Definition: sdrv_fuse.h:39
@ SDRV_FUSE_CTRL_ERROR
Definition: sdrv_fuse.h:77
@ SDRV_FUSE_CTRL_ERROR_OR_BUSY
Definition: sdrv_fuse.h:76
status_t sdrv_fuse_program_raw(uint32_t index, uint32_t val, bool ecc)
Program raw fuse value.
status_t sdrv_fuse_sense(uint32_t index, uint32_t *data)
Load fuse value by software.
uint32_t sdrv_fuse_read(uint32_t index)
Read fuse value from shadow register.
status_t sdrv_fuse_reload(void)
Reload fuse into shadow registers.
status_t sdrv_fuse_program(uint32_t index, uint32_t v)
Program fuse.
status_t sdrv_fuse_set_sticky_bit(uint32_t id)
Set stick bit for specified fuse Id.