@@ -5,184 +5,128 @@ pub struct Module {
55 pub name : & ' static str ,
66 pub display_name : & ' static str ,
77 pub chip : Chip ,
8- pub reserved_gpios : & ' static [ u8 ] ,
9- pub octal_psram : bool ,
8+ pub remove_pins : & ' static [ & ' static str ] ,
109}
1110
12- pub const MODULES : & [ Module ] = & [
13- // ESP32-C6 modules (in-package flash, SPI flash pins 24-26,28-30 not exposed in HAL)
11+ pub const ESP32_MODULES : & [ Module ] = & [
1412 Module {
15- name : "esp32c6-wroom-1" ,
16- display_name : "ESP32-C6-WROOM-1 (4MB flash)" ,
17- chip : Chip :: Esp32c6 ,
18- reserved_gpios : & [ ] ,
19- octal_psram : false ,
20- } ,
21- Module {
22- name : "esp32c6-wroom-1u" ,
23- display_name : "ESP32-C6-WROOM-1U (4MB flash, U.FL)" ,
24- chip : Chip :: Esp32c6 ,
25- reserved_gpios : & [ ] ,
26- octal_psram : false ,
27- } ,
28- Module {
29- name : "esp32c6-mini-1" ,
30- display_name : "ESP32-C6-MINI-1 (4/8MB flash)" ,
31- chip : Chip :: Esp32c6 ,
32- reserved_gpios : & [ ] ,
33- octal_psram : false ,
34- } ,
35- // ESP32-S3 modules (SPI flash pins 26-32 not exposed in HAL)
36- // Quad flash/PSRAM modules: no additional reserved pins
37- // Octal flash/PSRAM modules: pins 33-37 connected to octal flash/PSRAM
38- Module {
39- name : "esp32s3-wroom-1" ,
40- display_name : "ESP32-S3-WROOM-1 (quad flash/PSRAM)" ,
41- chip : Chip :: Esp32s3 ,
42- reserved_gpios : & [ ] ,
43- octal_psram : false ,
44- } ,
45- Module {
46- name : "esp32s3-wroom-1u" ,
47- display_name : "ESP32-S3-WROOM-1U (quad flash/PSRAM, U.FL)" ,
48- chip : Chip :: Esp32s3 ,
49- reserved_gpios : & [ ] ,
50- octal_psram : false ,
51- } ,
52- Module {
53- name : "esp32s3-wroom-2" ,
54- display_name : "ESP32-S3-WROOM-2 (octal flash/PSRAM)" ,
55- chip : Chip :: Esp32s3 ,
56- reserved_gpios : & [ 33 , 34 , 35 , 36 , 37 ] ,
57- octal_psram : true ,
13+ name : "esp32-wroom-32e" ,
14+ display_name : "ESP32-WROOM-32E/32UE (4/8/16MB flash)" ,
15+ chip : Chip :: Esp32 ,
16+ remove_pins : & [ "spi_flash" , "esp32_pico_v3" ] ,
5817 } ,
5918 Module {
60- name : "esp32s3-mini-1" ,
61- display_name : "ESP32-S3-MINI-1 (quad flash/PSRAM)" ,
62- chip : Chip :: Esp32s3 ,
63- reserved_gpios : & [ ] ,
64- octal_psram : false ,
19+ name : "esp32-wrover-e" ,
20+ display_name : "ESP32-WROVER-E/IE (8MB PSRAM)" ,
21+ chip : Chip :: Esp32 ,
22+ remove_pins : & [ "spi_flash" , "spi_psram" , "esp32_pico_v3" ] ,
6523 } ,
6624 Module {
67- name : "esp32s3-mini-1u" ,
68- display_name : "ESP32-S3-MINI-1U (quad flash/PSRAM, U.FL)" ,
69- chip : Chip :: Esp32s3 ,
70- reserved_gpios : & [ ] ,
71- octal_psram : false ,
25+ name : "esp32-mini-1" ,
26+ display_name : "ESP32-MINI-1 (4MB flash)" ,
27+ chip : Chip :: Esp32 ,
28+ remove_pins : & [ "spi_flash" , "esp32_pico_v3" ] ,
7229 } ,
73- // ESP32-C3 modules (in-package flash, SPI flash pins 11-17 not exposed in HAL)
30+ ] ;
31+
32+ pub const ESP32C2_MODULES : & [ Module ] = & [ Module {
33+ name : "esp32c2-mini-1" ,
34+ display_name : "ESP32-C2-MINI-1 (2/4MB flash)" ,
35+ chip : Chip :: Esp32c2 ,
36+ remove_pins : & [ "spi_flash" ] ,
37+ } ] ;
38+
39+ pub const ESP32C3_MODULES : & [ Module ] = & [
7440 Module {
7541 name : "esp32c3-wroom-02" ,
76- display_name : "ESP32-C3-WROOM-02 (4MB flash)" ,
77- chip : Chip :: Esp32c3 ,
78- reserved_gpios : & [ ] ,
79- octal_psram : false ,
80- } ,
81- Module {
82- name : "esp32c3-wroom-02u" ,
83- display_name : "ESP32-C3-WROOM-02U (4MB flash, U.FL)" ,
42+ display_name : "ESP32-C3-WROOM-02/02U (4MB flash)" ,
8443 chip : Chip :: Esp32c3 ,
85- reserved_gpios : & [ ] ,
86- octal_psram : false ,
44+ remove_pins : & [ "spi_flash" ] ,
8745 } ,
8846 Module {
8947 name : "esp32c3-mini-1" ,
9048 display_name : "ESP32-C3-MINI-1 (4MB flash)" ,
9149 chip : Chip :: Esp32c3 ,
92- reserved_gpios : & [ ] ,
93- octal_psram : false ,
50+ remove_pins : & [ "spi_flash" ] ,
9451 } ,
95- // ESP32 modules (SPI flash pins 6-11 not exposed in HAL)
96- // WROVER-E has PSRAM on pins 16, 17 which need to be reserved
52+ ] ;
53+
54+ pub const ESP32C6_MODULES : & [ Module ] = & [
9755 Module {
98- name : "esp32-wroom-32e" ,
99- display_name : "ESP32-WROOM-32E (4/8/16MB flash)" ,
100- chip : Chip :: Esp32 ,
101- reserved_gpios : & [ ] ,
102- octal_psram : false ,
56+ name : "esp32c6-wroom-1" ,
57+ display_name : "ESP32-C6-WROOM-1/1U (4MB flash)" ,
58+ chip : Chip :: Esp32c6 ,
59+ remove_pins : & [ "spi_flash" ] ,
10360 } ,
10461 Module {
105- name : "esp32-wroom-32ue" ,
106- display_name : "ESP32-WROOM-32UE (4/8/16MB flash, U.FL)" ,
107- chip : Chip :: Esp32 ,
108- reserved_gpios : & [ ] ,
109- octal_psram : false ,
62+ name : "esp32c6-mini-1" ,
63+ display_name : "ESP32-C6-MINI-1 (4/8MB flash)" ,
64+ chip : Chip :: Esp32c6 ,
65+ remove_pins : & [ "spi_flash" ] ,
11066 } ,
67+ ] ;
68+
69+ pub const ESP32H2_MODULES : & [ Module ] = & [
11170 Module {
112- name : "esp32-wrover-e" ,
113- display_name : "ESP32-WROVER-E (8MB PSRAM)" ,
114- chip : Chip :: Esp32 ,
115- reserved_gpios : & [ 16 , 17 ] ,
116- octal_psram : false ,
71+ name : "esp32h2-wroom-02" ,
72+ display_name : "ESP32-H2-WROOM-02 (4MB flash)" ,
73+ chip : Chip :: Esp32h2 ,
74+ remove_pins : & [ "spi_flash" ] ,
11775 } ,
11876 Module {
119- name : "esp32-mini-1" ,
120- display_name : "ESP32-MINI-1 (4MB flash)" ,
121- chip : Chip :: Esp32 ,
122- reserved_gpios : & [ ] ,
123- octal_psram : false ,
77+ name : "esp32h2-mini-1" ,
78+ display_name : "ESP32-H2-MINI-1 (4MB flash)" ,
79+ chip : Chip :: Esp32h2 ,
80+ remove_pins : & [ "spi_flash" ] ,
12481 } ,
125- // ESP32-S2 modules (SPI flash pins 26-32 not exposed in HAL)
82+ ] ;
83+
84+ pub const ESP32S2_MODULES : & [ Module ] = & [
12685 Module {
12786 name : "esp32s2-wroom" ,
12887 display_name : "ESP32-S2-WROOM (4MB flash)" ,
12988 chip : Chip :: Esp32s2 ,
130- reserved_gpios : & [ ] ,
131- octal_psram : false ,
89+ remove_pins : & [ "spi_flash" ] ,
13290 } ,
13391 Module {
13492 name : "esp32s2-wrover" ,
13593 display_name : "ESP32-S2-WROVER (2MB PSRAM)" ,
13694 chip : Chip :: Esp32s2 ,
137- reserved_gpios : & [ ] ,
138- octal_psram : false ,
95+ remove_pins : & [ "spi_flash" , "spi_psram" ] ,
13996 } ,
14097 Module {
14198 name : "esp32s2-mini-1" ,
14299 display_name : "ESP32-S2-MINI-1 (4MB flash)" ,
143100 chip : Chip :: Esp32s2 ,
144- reserved_gpios : & [ ] ,
145- octal_psram : false ,
101+ remove_pins : & [ "spi_flash" ] ,
146102 } ,
147- // ESP32-C2 modules (SPI flash pins 11-17 not exposed in HAL)
103+ ] ;
104+
105+ pub const ESP32S3_MODULES : & [ Module ] = & [
148106 Module {
149- name : "esp32c2-mini-1" ,
150- display_name : "ESP32-C2-MINI-1 (2/4MB flash)" ,
151- chip : Chip :: Esp32c2 ,
152- reserved_gpios : & [ ] ,
153- octal_psram : false ,
107+ name : "esp32s3-wroom-1" ,
108+ display_name : "ESP32-S3-WROOM-1/1U (quad flash/PSRAM)" ,
109+ chip : Chip :: Esp32s3 ,
110+ remove_pins : & [ "spi_flash" ] ,
154111 } ,
155- // ESP32-H2 modules (in-package flash, no reserved GPIOs)
156112 Module {
157- name : "esp32h2-wroom-02" ,
158- display_name : "ESP32-H2-WROOM-02 (4MB flash)" ,
159- chip : Chip :: Esp32h2 ,
160- reserved_gpios : & [ ] ,
161- octal_psram : false ,
113+ name : "esp32s3-wroom-2" ,
114+ display_name : "ESP32-S3-WROOM-2 (octal flash/PSRAM)" ,
115+ chip : Chip :: Esp32s3 ,
116+ remove_pins : & [ ] ,
162117 } ,
163118 Module {
164- name : "esp32h2-mini-1" ,
165- display_name : "ESP32-H2-MINI-1 (4MB flash)" ,
166- chip : Chip :: Esp32h2 ,
167- reserved_gpios : & [ ] ,
168- octal_psram : false ,
119+ name : "esp32s3-mini-1" ,
120+ display_name : "ESP32-S3-MINI-1/1U (quad flash/PSRAM)" ,
121+ chip : Chip :: Esp32s3 ,
122+ remove_pins : & [ ] ,
169123 } ,
170124] ;
171125
172- pub fn modules_for_chip ( chip : Chip ) -> Vec < & ' static Module > {
173- MODULES . iter ( ) . filter ( |m| m. chip == chip) . collect ( )
174- }
175-
176- pub fn find_module ( name : & str ) -> Option < & ' static Module > {
177- MODULES . iter ( ) . find ( |m| m. name == name)
178- }
179-
180126use crate :: template:: GeneratorOptionItem ;
181127
182128/// Populates the module category in the template options with chip-specific modules.
183129pub fn populate_module_category ( chip : Chip , options : & mut [ GeneratorOptionItem ] ) {
184- let modules = modules_for_chip ( chip) ;
185-
186130 for item in options. iter_mut ( ) {
187131 let GeneratorOptionItem :: Category ( category) = item else {
188132 continue ;
@@ -200,7 +144,7 @@ pub fn populate_module_category(chip: Chip, options: &mut [GeneratorOptionItem])
200144
201145 category. options . clear ( ) ;
202146
203- for module in modules {
147+ for module in chip . modules ( ) {
204148 let mut opt = template_opt. clone ( ) ;
205149 opt. name = module. name . to_string ( ) ;
206150 opt. display_name = module. display_name . to_string ( ) ;
0 commit comments