blob: 4e3f1afcfa0d01249173812bae8cf36d4d730307 [file] [log] [blame]
Mike Frysinger66c4cf42008-02-04 19:26:55 -05001/*
2 * OTP Masks
3 */
4
5#ifndef __BFIN_PERIPHERAL_OTP__
6#define __BFIN_PERIPHERAL_OTP__
7
8#ifndef __ASSEMBLY__
9
10#include "bootrom.h"
11
Mike Frysingerf96a9d72008-10-11 22:04:05 -040012static uint32_t (* const bfrom_OtpCommand)(uint32_t command, uint32_t value) = (void *)_BOOTROM_OTP_COMMAND;
13static uint32_t (* const bfrom_OtpRead)(uint32_t page, uint32_t flags, uint64_t *page_content) = (void *)_BOOTROM_OTP_READ;
14static uint32_t (* const bfrom_OtpWrite)(uint32_t page, uint32_t flags, uint64_t *page_content) = (void *)_BOOTROM_OTP_WRITE;
Mike Frysinger66c4cf42008-02-04 19:26:55 -050015
16#endif
17
18/* otp_command(): defines for "command" */
Mike Frysingerf96a9d72008-10-11 22:04:05 -040019#define OTP_INIT 0x00000001
20#define OTP_CLOSE 0x00000002
Mike Frysinger66c4cf42008-02-04 19:26:55 -050021
22/* otp_{read,write}(): defines for "flags" */
Mike Frysingerf96a9d72008-10-11 22:04:05 -040023#define OTP_LOWER_HALF 0x00000000 /* select upper/lower 64-bit half (bit 0) */
24#define OTP_UPPER_HALF 0x00000001
25#define OTP_NO_ECC 0x00000010 /* do not use ECC */
26#define OTP_LOCK 0x00000020 /* sets page protection bit for page */
27#define OTP_CHECK_FOR_PREV_WRITE 0x00000080
Mike Frysinger66c4cf42008-02-04 19:26:55 -050028
29/* Return values for all functions */
30#define OTP_SUCCESS 0x00000000
31#define OTP_MASTER_ERROR 0x001
32#define OTP_WRITE_ERROR 0x003
33#define OTP_READ_ERROR 0x005
34#define OTP_ACC_VIO_ERROR 0x009
35#define OTP_DATA_MULT_ERROR 0x011
36#define OTP_ECC_MULT_ERROR 0x021
37#define OTP_PREV_WR_ERROR 0x041
38#define OTP_DATA_SB_WARN 0x100
39#define OTP_ECC_SB_WARN 0x200
40
41/* Predefined otp pages: Factory Programmed Settings */
42#define FPS00 0x0004
43#define FPS01 0x0005
44#define FPS02 0x0006
45#define FPS03 0x0007
46#define FPS04 0x0008
47#define FPS05 0x0009
48#define FPS06 0x000A
49#define FPS07 0x000B
50#define FPS08 0x000C
51#define FPS09 0x000D
52#define FPS10 0x000E
53#define FPS11 0x000F
54
55/* Predefined otp pages: Customer Programmed Settings */
56#define CPS00 0x0010
57#define CPS01 0x0011
58#define CPS02 0x0012
59#define CPS03 0x0013
60#define CPS04 0x0014
61#define CPS05 0x0015
62#define CPS06 0x0016
63#define CPS07 0x0017
64
65/* Predefined otp pages: Pre-Boot Settings */
66#define PBS00 0x0018
67#define PBS01 0x0019
68#define PBS02 0x001A
69#define PBS03 0x001B
70
71#endif