src/flash/nor: flash driver for RSL10
[fw/openocd] / src / flash / nor / drivers.c
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2
3 /***************************************************************************
4  *   Copyright (C) 2009 Zachary T Welch <zw@superlucidity.net>             *
5  ***************************************************************************/
6
7 #ifdef HAVE_CONFIG_H
8 #include "config.h"
9 #endif
10 #include "imp.h"
11
12 extern const struct flash_driver aduc702x_flash;
13 extern const struct flash_driver aducm360_flash;
14 extern const struct flash_driver ambiqmicro_flash;
15 extern const struct flash_driver at91sam3_flash;
16 extern const struct flash_driver at91sam4_flash;
17 extern const struct flash_driver at91sam4l_flash;
18 extern const struct flash_driver at91sam7_flash;
19 extern const struct flash_driver at91samd_flash;
20 extern const struct flash_driver ath79_flash;
21 extern const struct flash_driver atsame5_flash;
22 extern const struct flash_driver atsamv_flash;
23 extern const struct flash_driver avr_flash;
24 extern const struct flash_driver bluenrgx_flash;
25 extern const struct flash_driver cc3220sf_flash;
26 extern const struct flash_driver cc26xx_flash;
27 extern const struct flash_driver cfi_flash;
28 extern const struct flash_driver dsp5680xx_flash;
29 extern const struct flash_driver efm32_flash;
30 extern const struct flash_driver em357_flash;
31 extern const struct flash_driver esirisc_flash;
32 extern const struct flash_driver faux_flash;
33 extern const struct flash_driver fm3_flash;
34 extern const struct flash_driver fm4_flash;
35 extern const struct flash_driver fespi_flash;
36 extern const struct flash_driver jtagspi_flash;
37 extern const struct flash_driver kinetis_flash;
38 extern const struct flash_driver kinetis_ke_flash;
39 extern const struct flash_driver lpc2000_flash;
40 extern const struct flash_driver lpc288x_flash;
41 extern const struct flash_driver lpc2900_flash;
42 extern const struct flash_driver lpcspifi_flash;
43 extern const struct flash_driver max32xxx_flash;
44 extern const struct flash_driver mdr_flash;
45 extern const struct flash_driver mrvlqspi_flash;
46 extern const struct flash_driver msp432_flash;
47 extern const struct flash_driver niietcm4_flash;
48 extern const struct flash_driver npcx_flash;
49 extern const struct flash_driver nrf5_flash;
50 extern const struct flash_driver nrf51_flash;
51 extern const struct flash_driver numicro_flash;
52 extern const struct flash_driver ocl_flash;
53 extern const struct flash_driver pic32mx_flash;
54 extern const struct flash_driver psoc4_flash;
55 extern const struct flash_driver psoc5lp_flash;
56 extern const struct flash_driver psoc5lp_eeprom_flash;
57 extern const struct flash_driver psoc5lp_nvl_flash;
58 extern const struct flash_driver psoc6_flash;
59 extern const struct flash_driver renesas_rpchf_flash;
60 extern const struct flash_driver rp2040_flash;
61 extern const struct flash_driver sh_qspi_flash;
62 extern const struct flash_driver sim3x_flash;
63 extern const struct flash_driver stellaris_flash;
64 extern const struct flash_driver stm32f1x_flash;
65 extern const struct flash_driver stm32f2x_flash;
66 extern const struct flash_driver stm32lx_flash;
67 extern const struct flash_driver stm32l4x_flash;
68 extern const struct flash_driver stm32h7x_flash;
69 extern const struct flash_driver stmqspi_flash;
70 extern const struct flash_driver stmsmi_flash;
71 extern const struct flash_driver str7x_flash;
72 extern const struct flash_driver str9x_flash;
73 extern const struct flash_driver str9xpec_flash;
74 extern const struct flash_driver swm050_flash;
75 extern const struct flash_driver tms470_flash;
76 extern const struct flash_driver virtual_flash;
77 extern const struct flash_driver w600_flash;
78 extern const struct flash_driver xcf_flash;
79 extern const struct flash_driver xmc1xxx_flash;
80 extern const struct flash_driver xmc4xxx_flash;
81 extern const struct flash_driver rsl10_flash;
82
83 /**
84  * The list of built-in flash drivers.
85  * @todo Make this dynamically extendable with loadable modules.
86  */
87 static const struct flash_driver * const flash_drivers[] = {
88         &aduc702x_flash,
89         &aducm360_flash,
90         &ambiqmicro_flash,
91         &at91sam3_flash,
92         &at91sam4_flash,
93         &at91sam4l_flash,
94         &at91sam7_flash,
95         &at91samd_flash,
96         &ath79_flash,
97         &atsame5_flash,
98         &atsamv_flash,
99         &avr_flash,
100         &bluenrgx_flash,
101         &cc3220sf_flash,
102         &cc26xx_flash,
103         &cfi_flash,
104         &dsp5680xx_flash,
105         &efm32_flash,
106         &em357_flash,
107         &esirisc_flash,
108         &faux_flash,
109         &fm3_flash,
110         &fm4_flash,
111         &fespi_flash,
112         &jtagspi_flash,
113         &kinetis_flash,
114         &kinetis_ke_flash,
115         &lpc2000_flash,
116         &lpc288x_flash,
117         &lpc2900_flash,
118         &lpcspifi_flash,
119         &max32xxx_flash,
120         &mdr_flash,
121         &mrvlqspi_flash,
122         &msp432_flash,
123         &niietcm4_flash,
124         &npcx_flash,
125         &nrf5_flash,
126         &nrf51_flash,
127         &numicro_flash,
128         &ocl_flash,
129         &pic32mx_flash,
130         &psoc4_flash,
131         &psoc5lp_flash,
132         &psoc5lp_eeprom_flash,
133         &psoc5lp_nvl_flash,
134         &psoc6_flash,
135         &renesas_rpchf_flash,
136         &rp2040_flash,
137         &sh_qspi_flash,
138         &sim3x_flash,
139         &stellaris_flash,
140         &stm32f1x_flash,
141         &stm32f2x_flash,
142         &stm32lx_flash,
143         &stm32l4x_flash,
144         &stm32h7x_flash,
145         &stmsmi_flash,
146         &stmqspi_flash,
147         &str7x_flash,
148         &str9x_flash,
149         &str9xpec_flash,
150         &swm050_flash,
151         &tms470_flash,
152         &virtual_flash,
153         &xcf_flash,
154         &xmc1xxx_flash,
155         &xmc4xxx_flash,
156         &w600_flash,
157         &rsl10_flash,
158         NULL,
159 };
160
161 const struct flash_driver *flash_driver_find_by_name(const char *name)
162 {
163         for (unsigned i = 0; flash_drivers[i]; i++) {
164                 if (strcmp(name, flash_drivers[i]->name) == 0)
165                         return flash_drivers[i];
166         }
167         return NULL;
168 }