xref: /openbmc/linux/drivers/soc/atmel/soc.h (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
1cd9168b4SClaudiu Beznea /* SPDX-License-Identifier: GPL-2.0-only */
2b32de9ddSAlexandre Belloni /*
3b32de9ddSAlexandre Belloni  * Copyright (C) 2015 Atmel
4b32de9ddSAlexandre Belloni  *
5b32de9ddSAlexandre Belloni  * Boris Brezillon <boris.brezillon@free-electrons.com
6b32de9ddSAlexandre Belloni  */
7b32de9ddSAlexandre Belloni 
8b32de9ddSAlexandre Belloni #ifndef __AT91_SOC_H
9b32de9ddSAlexandre Belloni #define __AT91_SOC_H
10b32de9ddSAlexandre Belloni 
11b32de9ddSAlexandre Belloni #include <linux/sys_soc.h>
12b32de9ddSAlexandre Belloni 
13b32de9ddSAlexandre Belloni struct at91_soc {
14b32de9ddSAlexandre Belloni 	u32 cidr_match;
15af3a1051SClaudiu Beznea 	u32 cidr_mask;
16af3a1051SClaudiu Beznea 	u32 version_mask;
17b32de9ddSAlexandre Belloni 	u32 exid_match;
18b32de9ddSAlexandre Belloni 	const char *name;
19b32de9ddSAlexandre Belloni 	const char *family;
20b32de9ddSAlexandre Belloni };
21b32de9ddSAlexandre Belloni 
22af3a1051SClaudiu Beznea #define AT91_SOC(__cidr, __cidr_mask, __version_mask, __exid,	\
23af3a1051SClaudiu Beznea 		 __name, __family)				\
24b32de9ddSAlexandre Belloni 	{							\
25b32de9ddSAlexandre Belloni 		.cidr_match = (__cidr),				\
26af3a1051SClaudiu Beznea 		.cidr_mask = (__cidr_mask),			\
27af3a1051SClaudiu Beznea 		.version_mask = (__version_mask),		\
28b32de9ddSAlexandre Belloni 		.exid_match = (__exid),				\
29b32de9ddSAlexandre Belloni 		.name = (__name),				\
30b32de9ddSAlexandre Belloni 		.family = (__family),				\
31b32de9ddSAlexandre Belloni 	}
32b32de9ddSAlexandre Belloni 
33b32de9ddSAlexandre Belloni struct soc_device * __init
34b32de9ddSAlexandre Belloni at91_soc_init(const struct at91_soc *socs);
35b32de9ddSAlexandre Belloni 
36b32de9ddSAlexandre Belloni #define AT91RM9200_CIDR_MATCH		0x09290780
37b32de9ddSAlexandre Belloni 
38b32de9ddSAlexandre Belloni #define AT91SAM9260_CIDR_MATCH		0x019803a0
39b32de9ddSAlexandre Belloni #define AT91SAM9261_CIDR_MATCH		0x019703a0
40b32de9ddSAlexandre Belloni #define AT91SAM9263_CIDR_MATCH		0x019607a0
41b32de9ddSAlexandre Belloni #define AT91SAM9G20_CIDR_MATCH		0x019905a0
42b32de9ddSAlexandre Belloni #define AT91SAM9RL64_CIDR_MATCH		0x019b03a0
43b32de9ddSAlexandre Belloni #define AT91SAM9G45_CIDR_MATCH		0x019b05a0
44b32de9ddSAlexandre Belloni #define AT91SAM9X5_CIDR_MATCH		0x019a05a0
45b32de9ddSAlexandre Belloni #define AT91SAM9N12_CIDR_MATCH		0x019a07a0
46446e8986SSandeep Sheriker Mallikarjun #define SAM9X60_CIDR_MATCH		0x019b35a0
47f12a29cbSClaudiu Beznea #define SAMA7G5_CIDR_MATCH		0x00162100
48b32de9ddSAlexandre Belloni 
49b32de9ddSAlexandre Belloni #define AT91SAM9M11_EXID_MATCH		0x00000001
50b32de9ddSAlexandre Belloni #define AT91SAM9M10_EXID_MATCH		0x00000002
51b32de9ddSAlexandre Belloni #define AT91SAM9G46_EXID_MATCH		0x00000003
52b32de9ddSAlexandre Belloni #define AT91SAM9G45_EXID_MATCH		0x00000004
53b32de9ddSAlexandre Belloni 
54b32de9ddSAlexandre Belloni #define AT91SAM9G15_EXID_MATCH		0x00000000
55b32de9ddSAlexandre Belloni #define AT91SAM9G35_EXID_MATCH		0x00000001
56b32de9ddSAlexandre Belloni #define AT91SAM9X35_EXID_MATCH		0x00000002
57b32de9ddSAlexandre Belloni #define AT91SAM9G25_EXID_MATCH		0x00000003
58b32de9ddSAlexandre Belloni #define AT91SAM9X25_EXID_MATCH		0x00000004
59b32de9ddSAlexandre Belloni 
60b32de9ddSAlexandre Belloni #define AT91SAM9CN12_EXID_MATCH		0x00000005
61b32de9ddSAlexandre Belloni #define AT91SAM9N12_EXID_MATCH		0x00000006
62b32de9ddSAlexandre Belloni #define AT91SAM9CN11_EXID_MATCH		0x00000009
63b32de9ddSAlexandre Belloni 
64446e8986SSandeep Sheriker Mallikarjun #define SAM9X60_EXID_MATCH		0x00000000
65786c395dSKai Stuhlemmer #define SAM9X60_D5M_EXID_MATCH		0x00000001
66786c395dSKai Stuhlemmer #define SAM9X60_D1G_EXID_MATCH		0x00000010
67786c395dSKai Stuhlemmer #define SAM9X60_D6K_EXID_MATCH		0x00000011
68446e8986SSandeep Sheriker Mallikarjun 
69f12a29cbSClaudiu Beznea #define SAMA7G51_EXID_MATCH		0x3
70f12a29cbSClaudiu Beznea #define SAMA7G52_EXID_MATCH		0x2
71f12a29cbSClaudiu Beznea #define SAMA7G53_EXID_MATCH		0x1
72f12a29cbSClaudiu Beznea #define SAMA7G54_EXID_MATCH		0x0
73*d4ac3791SMihai Sain #define SAMA7G54_D1G_EXID_MATCH		0x00000018
74*d4ac3791SMihai Sain #define SAMA7G54_D2G_EXID_MATCH		0x00000020
75*d4ac3791SMihai Sain #define SAMA7G54_D4G_EXID_MATCH		0x00000028
76f12a29cbSClaudiu Beznea 
77b32de9ddSAlexandre Belloni #define AT91SAM9XE128_CIDR_MATCH	0x329973a0
78b32de9ddSAlexandre Belloni #define AT91SAM9XE256_CIDR_MATCH	0x329a93a0
79b32de9ddSAlexandre Belloni #define AT91SAM9XE512_CIDR_MATCH	0x329aa3a0
80b32de9ddSAlexandre Belloni 
81b32de9ddSAlexandre Belloni #define SAMA5D2_CIDR_MATCH		0x0a5c08c0
82b32de9ddSAlexandre Belloni #define SAMA5D21CU_EXID_MATCH		0x0000005a
83cd2e9be8SCristian Birsan #define SAMA5D225C_D1M_EXID_MATCH	0x00000053
84b32de9ddSAlexandre Belloni #define SAMA5D22CU_EXID_MATCH		0x00000059
85b32de9ddSAlexandre Belloni #define SAMA5D22CN_EXID_MATCH		0x00000069
86b32de9ddSAlexandre Belloni #define SAMA5D23CU_EXID_MATCH		0x00000058
87b32de9ddSAlexandre Belloni #define SAMA5D24CX_EXID_MATCH		0x00000004
88b32de9ddSAlexandre Belloni #define SAMA5D24CU_EXID_MATCH		0x00000014
89b32de9ddSAlexandre Belloni #define SAMA5D26CU_EXID_MATCH		0x00000012
90cd2e9be8SCristian Birsan #define SAMA5D27C_D1G_EXID_MATCH	0x00000033
91cd2e9be8SCristian Birsan #define SAMA5D27C_D5M_EXID_MATCH	0x00000032
9215653dc8SNicolas Ferre #define SAMA5D27C_LD1G_EXID_MATCH	0x00000061
9315653dc8SNicolas Ferre #define SAMA5D27C_LD2G_EXID_MATCH	0x00000062
94b32de9ddSAlexandre Belloni #define SAMA5D27CU_EXID_MATCH		0x00000011
95b32de9ddSAlexandre Belloni #define SAMA5D27CN_EXID_MATCH		0x00000021
96cd2e9be8SCristian Birsan #define SAMA5D28C_D1G_EXID_MATCH	0x00000013
9715653dc8SNicolas Ferre #define SAMA5D28C_LD1G_EXID_MATCH	0x00000071
9815653dc8SNicolas Ferre #define SAMA5D28C_LD2G_EXID_MATCH	0x00000072
99b32de9ddSAlexandre Belloni #define SAMA5D28CU_EXID_MATCH		0x00000010
100b32de9ddSAlexandre Belloni #define SAMA5D28CN_EXID_MATCH		0x00000020
101def8abbbSMihai Sain #define SAMA5D29CN_EXID_MATCH		0x00000023
102b32de9ddSAlexandre Belloni 
103b32de9ddSAlexandre Belloni #define SAMA5D3_CIDR_MATCH		0x0a5c07c0
104b32de9ddSAlexandre Belloni #define SAMA5D31_EXID_MATCH		0x00444300
105b32de9ddSAlexandre Belloni #define SAMA5D33_EXID_MATCH		0x00414300
106b32de9ddSAlexandre Belloni #define SAMA5D34_EXID_MATCH		0x00414301
107b32de9ddSAlexandre Belloni #define SAMA5D35_EXID_MATCH		0x00584300
108b32de9ddSAlexandre Belloni #define SAMA5D36_EXID_MATCH		0x00004301
109b32de9ddSAlexandre Belloni 
110b32de9ddSAlexandre Belloni #define SAMA5D4_CIDR_MATCH		0x0a5c07c0
111b32de9ddSAlexandre Belloni #define SAMA5D41_EXID_MATCH		0x00000001
112b32de9ddSAlexandre Belloni #define SAMA5D42_EXID_MATCH		0x00000002
113b32de9ddSAlexandre Belloni #define SAMA5D43_EXID_MATCH		0x00000003
114b32de9ddSAlexandre Belloni #define SAMA5D44_EXID_MATCH		0x00000004
115b32de9ddSAlexandre Belloni 
11682208e75SSzemző András #define SAME70Q21_CIDR_MATCH		0x21020e00
11782208e75SSzemző András #define SAME70Q21_EXID_MATCH		0x00000002
11882208e75SSzemző András #define SAME70Q20_CIDR_MATCH		0x21020c00
11982208e75SSzemző András #define SAME70Q20_EXID_MATCH		0x00000002
12082208e75SSzemző András #define SAME70Q19_CIDR_MATCH		0x210d0a00
12182208e75SSzemző András #define SAME70Q19_EXID_MATCH		0x00000002
12282208e75SSzemző András 
12382208e75SSzemző András #define SAMS70Q21_CIDR_MATCH		0x21120e00
12482208e75SSzemző András #define SAMS70Q21_EXID_MATCH		0x00000002
12582208e75SSzemző András #define SAMS70Q20_CIDR_MATCH		0x21120c00
12682208e75SSzemző András #define SAMS70Q20_EXID_MATCH		0x00000002
12782208e75SSzemző András #define SAMS70Q19_CIDR_MATCH		0x211d0a00
12882208e75SSzemző András #define SAMS70Q19_EXID_MATCH		0x00000002
12982208e75SSzemző András 
13082208e75SSzemző András #define SAMV71Q21_CIDR_MATCH		0x21220e00
13182208e75SSzemző András #define SAMV71Q21_EXID_MATCH		0x00000002
13282208e75SSzemző András #define SAMV71Q20_CIDR_MATCH		0x21220c00
13382208e75SSzemző András #define SAMV71Q20_EXID_MATCH		0x00000002
13482208e75SSzemző András #define SAMV71Q19_CIDR_MATCH		0x212d0a00
13582208e75SSzemző András #define SAMV71Q19_EXID_MATCH		0x00000002
13682208e75SSzemző András 
13782208e75SSzemző András #define SAMV70Q20_CIDR_MATCH		0x21320c00
13882208e75SSzemző András #define SAMV70Q20_EXID_MATCH		0x00000002
13982208e75SSzemző András #define SAMV70Q19_CIDR_MATCH		0x213d0a00
14082208e75SSzemző András #define SAMV70Q19_EXID_MATCH		0x00000002
14182208e75SSzemző András 
142b32de9ddSAlexandre Belloni #endif /* __AT91_SOC_H */
143