1238106Sdes/* Blackfin One-Time Programmable Memory (OTP) model
2238106Sdes
3238106Sdes   Copyright (C) 2010-2023 Free Software Foundation, Inc.
4238106Sdes   Contributed by Analog Devices, Inc.
5238106Sdes
6238106Sdes   This file is part of simulators.
7238106Sdes
8238106Sdes   This program is free software; you can redistribute it and/or modify
9238106Sdes   it under the terms of the GNU General Public License as published by
10238106Sdes   the Free Software Foundation; either version 3 of the License, or
11238106Sdes   (at your option) any later version.
12238106Sdes
13238106Sdes   This program is distributed in the hope that it will be useful,
14238106Sdes   but WITHOUT ANY WARRANTY; without even the implied warranty of
15238106Sdes   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16238106Sdes   GNU General Public License for more details.
17238106Sdes
18238106Sdes   You should have received a copy of the GNU General Public License
19238106Sdes   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20238106Sdes
21238106Sdes#ifndef DV_BFIN_OTP_H
22238106Sdes#define DV_BFIN_OTP_H
23238106Sdes
24238106Sdes/* OTP Defined Pages.  */
25238106Sdes#define FPS00		0x004
26238106Sdes#define FPS01		0x005
27238106Sdes#define FPS02		0x006
28238106Sdes#define FPS03		0x007
29238106Sdes#define FPS04		0x008
30238106Sdes#define FPS05		0x009
31238106Sdes#define FPS06		0x00A
32238106Sdes#define FPS07		0x00B
33238106Sdes#define FPS08		0x00C
34238106Sdes#define FPS09		0x00D
35238106Sdes#define FPS10		0x00E
36238106Sdes#define FPS11		0x00F
37238106Sdes#define CPS00		0x010
38238106Sdes#define CPS01		0x011
39238106Sdes#define CPS02		0x012
40238106Sdes#define CPS03		0x013
41238106Sdes#define CPS04		0x014
42238106Sdes#define CPS05		0x015
43238106Sdes#define CPS06		0x016
44238106Sdes#define CPS07		0x017
45238106Sdes#define PBS00		0x018
46238106Sdes#define PBS01		0x019
47238106Sdes#define PBS02		0x01A
48238106Sdes#define PBS03		0x01B
49238106Sdes#define PUB000		0x01C
50238106Sdes#define PUBCRC000	0x0E0
51238106Sdes#define PRIV000		0x110
52238106Sdes#define PRIVCRC000	0x1E0
53238106Sdes
54238106Sdes/* FPS03 Part values.  */
55238106Sdes#define FPS03_BF51XF(n)	(FPS03_BF##n | 0xF000)
56238106Sdes#define FPS03_BF512	0x0200
57238106Sdes#define FPS03_BF512F	FPS03_BF51XF(512)
58238106Sdes#define FPS03_BF514	0x0202
59238106Sdes#define FPS03_BF514F	FPS03_BF51XF(514)
60238106Sdes#define FPS03_BF516	0x0204
61238106Sdes#define FPS03_BF516F	FPS03_BF51XF(516)
62238106Sdes#define FPS03_BF518	0x0206
63238106Sdes#define FPS03_BF518F	FPS03_BF51XF(518)
64238106Sdes#define FPS03_BF52X_C1(n)	(FPS03_BF##n | 0x8000)
65238106Sdes#define FPS03_BF52X_C2(n)	(FPS03_BF##n | 0x4000)
66238106Sdes#define FPS03_BF522	0x020A
67238106Sdes#define FPS03_BF522_C1	FPS03_BF52X_C1(522)
68238106Sdes#define FPS03_BF522_C2	FPS03_BF52X_C2(522)
69238106Sdes#define FPS03_BF523	0x020B
70238106Sdes#define FPS03_BF523_C1	FPS03_BF52X_C1(523)
71238106Sdes#define FPS03_BF523_C2	FPS03_BF52X_C2(523)
72238106Sdes#define FPS03_BF524	0x020C
73238106Sdes#define FPS03_BF524_C1	FPS03_BF52X_C1(524)
74238106Sdes#define FPS03_BF524_C2	FPS03_BF52X_C2(524)
75238106Sdes#define FPS03_BF525	0x020D
76238106Sdes#define FPS03_BF525_C1	FPS03_BF52X_C1(525)
77238106Sdes#define FPS03_BF525_C2	FPS03_BF52X_C2(525)
78238106Sdes#define FPS03_BF526	0x020E
79238106Sdes#define FPS03_BF526_C1	FPS03_BF52X_C1(526)
80238106Sdes#define FPS03_BF526_C2	FPS03_BF52X_C2(526)
81238106Sdes#define FPS03_BF527	0x020F
82238106Sdes#define FPS03_BF527_C1	FPS03_BF52X_C1(527)
83238106Sdes#define FPS03_BF527_C2	FPS03_BF52X_C2(527)
84238106Sdes
85238106Sdes/* OTP_CONTROL masks.  */
86238106Sdes#define PAGE_ADDR	(0x1FF)
87238106Sdes#define DO_READ		(1 << 14)
88238106Sdes#define DO_WRITE	(1 << 15)
89238106Sdes
90238106Sdes/* OTP_STATUS masks.  */
91238106Sdes#define STATUS_DONE	(1 << 0)
92238106Sdes#define STATUS_ERR	(1 << 1)
93238106Sdes
94238106Sdes#endif
95238106Sdes