-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathKconfig
1028 lines (862 loc) · 32.8 KB
/
Kconfig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
config ESP_HOSTED_ENABLED
bool
default y if ESP_WIFI_REMOTE_ENABLED && ESP_WIFI_REMOTE_LIBRARY_HOSTED
default n
menu "ESP-Hosted config"
depends on ESP_HOSTED_ENABLED
# Co-processor selection done in Wi-Fi Remote Component
comment "ESP32 is Slave Target from Wi-Fi Remote Component"
depends on SLAVE_IDF_TARGET_ESP32
comment "ESP32-S2 is Slave Target from Wi-Fi Remote Component"
depends on SLAVE_IDF_TARGET_ESP32S2
comment "ESP32-S3 is Slave Target from Wi-Fi Remote Component"
depends on SLAVE_IDF_TARGET_ESP32S3
comment "ESP32-C2 is Slave Target from Wi-Fi Remote Component"
depends on SLAVE_IDF_TARGET_ESP32C2
comment "ESP32-C3 is Slave Target from Wi-Fi Remote Component"
depends on SLAVE_IDF_TARGET_ESP32C3
comment "ESP32-C6 is Slave Target from Wi-Fi Remote Component"
depends on SLAVE_IDF_TARGET_ESP32C6
comment "ESP32-C5 is Slave Target from Wi-Fi Remote Component"
depends on SLAVE_IDF_TARGET_ESP32C5
comment "ESP32-C61 is Slave Target from Wi-Fi Remote Component"
depends on SLAVE_IDF_TARGET_ESP32C61
# y if SDIO Transport is available, based on host and slave selection
config ESP_HOSTED_PRIV_SDIO_OPTION
bool
default y if (IDF_TARGET_ESP32 || IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32P4) && (SLAVE_IDF_TARGET_ESP32 || SLAVE_IDF_TARGET_ESP32C6)
default n
# y if SPI HD Transport is available, based on host and slave selection
config ESP_HOSTED_PRIV_SPI_HD_OPTION
bool
default n if (IDF_TARGET_ESP32 || SLAVE_IDF_TARGET_ESP32)
default y
choice ESP_HOSTED_HOST_INTERFACE
bool "Transport layer"
default ESP_HOSTED_SDIO_HOST_INTERFACE if ESP_HOSTED_PRIV_SDIO_OPTION
default ESP_HOSTED_SPI_HOST_INTERFACE
help
Bus interface to be used for communication with the host
config ESP_HOSTED_SPI_HOST_INTERFACE
bool "SPI Full-duplex"
help
Enable/Disable SPI Full-duplex host interface
config ESP_HOSTED_SDIO_HOST_INTERFACE
depends on ESP_HOSTED_PRIV_SDIO_OPTION
bool "SDIO"
help
Enable/Disable SDIO host interface
# SPI Half Duplex is not supported in ESP32
config ESP_HOSTED_SPI_HD_HOST_INTERFACE
depends on ESP_HOSTED_PRIV_SPI_HD_OPTION
bool "SPI Half-duplex"
help
Enable/Disable SPI Half-duplex host interface
config ESP_HOSTED_UART_HOST_INTERFACE
bool "UART"
help
Enable/Disable UART host interface
endchoice
config ESP_HOSTED_IDF_SLAVE_TARGET
string
default "esp32" if SLAVE_IDF_TARGET_ESP32
default "esp32s2" if SLAVE_IDF_TARGET_ESP32S2
default "esp32s3" if SLAVE_IDF_TARGET_ESP32S3
default "esp32c2" if SLAVE_IDF_TARGET_ESP32C2
default "esp32c3" if SLAVE_IDF_TARGET_ESP32C3
default "esp32c6" if SLAVE_IDF_TARGET_ESP32C6
default "esp32c5" if SLAVE_IDF_TARGET_ESP32C5
default "invalid"
menu "SPI Configuration"
depends on ESP_HOSTED_SPI_HOST_INTERFACE
choice ESP_HOSTED_SPI_PRIV_MODE_ESP32
depends on SLAVE_IDF_TARGET_ESP32
bool "Host SPI mode"
default ESP_HOSTED_SPI_PRIV_MODE_2_ESP32
config ESP_HOSTED_SPI_PRIV_MODE_0_ESP32
bool "Host SPI mode 0"
config ESP_HOSTED_SPI_PRIV_MODE_1_ESP32
bool "Host SPI mode 1"
config ESP_HOSTED_SPI_PRIV_MODE_2_ESP32
bool "Host SPI mode 2"
config ESP_HOSTED_SPI_PRIV_MODE_3_ESP32
bool "Host SPI mode 3"
endchoice
choice ESP_HOSTED_SPI_PRIV_MODE_ESP32XX
depends on !SLAVE_IDF_TARGET_ESP32
bool "Host SPI mode"
default ESP_HOSTED_SPI_PRIV_MODE_3_ESP32XX
config ESP_HOSTED_SPI_PRIV_MODE_0_ESP32XX
bool "Host SPI mode 0"
config ESP_HOSTED_SPI_PRIV_MODE_1_ESP32XX
bool "Host SPI mode 1"
config ESP_HOSTED_SPI_PRIV_MODE_2_ESP32XX
bool "Host SPI mode 2"
config ESP_HOSTED_SPI_PRIV_MODE_3_ESP32XX
bool "Host SPI mode 3"
endchoice
config ESP_HOSTED_SPI_MODE
int
default 0 if ESP_HOSTED_SPI_PRIV_MODE_0_ESP32
default 1 if ESP_HOSTED_SPI_PRIV_MODE_1_ESP32
default 2 if ESP_HOSTED_SPI_PRIV_MODE_2_ESP32
default 3 if ESP_HOSTED_SPI_PRIV_MODE_3_ESP32
default 0 if ESP_HOSTED_SPI_PRIV_MODE_0_ESP32XX
default 1 if ESP_HOSTED_SPI_PRIV_MODE_1_ESP32XX
default 2 if ESP_HOSTED_SPI_PRIV_MODE_2_ESP32XX
default 3 if ESP_HOSTED_SPI_PRIV_MODE_3_ESP32XX
choice ESP_HOSTED_SPI_CONTROLLER
bool "Host SPI controller to use"
default ESP_HOSTED_SPI_HSPI
config ESP_HOSTED_SPI_HSPI
bool "HSPI/FSPI"
help
"HSPI/FSPI: SPI_controller_1"
config ESP_HOSTED_SPI_VSPI
depends on IDF_TARGET_ESP32
bool "VSPI"
help
"VSPI: SPI_controller_2"
endchoice
config ESP_HOSTED_SPI_CONTROLLER
int
default 2 if ESP_HOSTED_SPI_VSPI
default 1
menu "Host SPI GPIOs Config"
choice ESP_HOSTED_SPI_HANDSHAKE_GPIO_CONFIG
bool "Handshake GPIO Config"
default ESP_HOSTED_HS_ACTIVE_HIGH
config ESP_HOSTED_HS_ACTIVE_HIGH
bool "HS: Active High"
config ESP_HOSTED_HS_ACTIVE_LOW
bool "HS: Active Low"
endchoice
choice ESP_HOSTED_SPI_DATAREADY__GPIO_CONFIG
bool "DataReady GPIO Config"
default ESP_HOSTED_DR_ACTIVE_HIGH
config ESP_HOSTED_DR_ACTIVE_HIGH
bool "DR: Active High"
config ESP_HOSTED_DR_ACTIVE_LOW
bool "DR: Active Low"
endchoice
choice ESP_HOSTED_SPI_RESET_GPIO_CONFIG
bool "Reset GPIO Config"
default ESP_HOSTED_SPI_RESET_ACTIVE_HIGH
help
"If Active High, High->Low->High will trigger reset (Low will trigger reset)
If Active Low, Low->High->Low will trigger reset (High will trigger reset)"
config ESP_HOSTED_SPI_RESET_ACTIVE_HIGH
bool "RESET: Active High"
config ESP_HOSTED_SPI_RESET_ACTIVE_LOW
bool "RESET: Active Low"
endchoice
config ESP_HOSTED_SPI_HSPI_GPIO_MOSI
depends on ESP_HOSTED_SPI_HSPI
int "GPIO pin for Host MOSI"
default 14 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6
default 13 if IDF_TARGET_ESP32
default 11 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
default 7
help
SPI controller Host MOSI
config ESP_HOSTED_SPI_HSPI_GPIO_MISO
depends on ESP_HOSTED_SPI_HSPI
int "GPIO pin for Host MISO"
default 15 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6
default 12 if IDF_TARGET_ESP32
default 13 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
default 2
help
SPI controller Host MISO
config ESP_HOSTED_SPI_HSPI_GPIO_CLK
depends on ESP_HOSTED_SPI_HSPI
int "GPIO pin for Host CLK"
default 18 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6
default 14 if IDF_TARGET_ESP32
default 12 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
default 6
help
SPI controller Host CLK
config ESP_HOSTED_SPI_HSPI_GPIO_CS
depends on ESP_HOSTED_SPI_HSPI
int "GPIO pin for Host CS"
default 19 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6
default 15 if IDF_TARGET_ESP32
default 10 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
default 10
help
SPI controller Host CS
config ESP_HOSTED_SPI_VSPI_GPIO_MOSI
depends on ESP_HOSTED_SPI_VSPI
int "GPIO pin for Host MOSI"
default 23
help
SPI controller Host MOSI
config ESP_HOSTED_SPI_VSPI_GPIO_MISO
depends on ESP_HOSTED_SPI_VSPI
int "GPIO pin for Host MISO"
default 19
help
SPI controller Host MISO
config ESP_HOSTED_SPI_VSPI_GPIO_CLK
depends on ESP_HOSTED_SPI_VSPI
int "GPIO pin for Host CLK"
default 18
help
SPI controller Host CLK
config ESP_HOSTED_SPI_VSPI_GPIO_CS
depends on ESP_HOSTED_SPI_VSPI
int "GPIO pin for Host CS"
default 5
help
SPI controller Host CS
config ESP_HOSTED_SPI_GPIO_MOSI
int
default ESP_HOSTED_SPI_VSPI_GPIO_MOSI if ESP_HOSTED_SPI_VSPI
default ESP_HOSTED_SPI_HSPI_GPIO_MOSI
config ESP_HOSTED_SPI_GPIO_MISO
int
default ESP_HOSTED_SPI_VSPI_GPIO_MISO if ESP_HOSTED_SPI_VSPI
default ESP_HOSTED_SPI_HSPI_GPIO_MISO
config ESP_HOSTED_SPI_GPIO_CLK
int
default ESP_HOSTED_SPI_VSPI_GPIO_CLK if ESP_HOSTED_SPI_VSPI
default ESP_HOSTED_SPI_HSPI_GPIO_CLK
config ESP_HOSTED_SPI_GPIO_CS
int
default ESP_HOSTED_SPI_VSPI_GPIO_CS if ESP_HOSTED_SPI_VSPI
default ESP_HOSTED_SPI_HSPI_GPIO_CS
config ESP_HOSTED_SPI_GPIO_HANDSHAKE
int "GPIO pin for handshake"
default 16 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6
default 3 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C6
default 17 if IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32S2
default 26
help
GPIO pin to use for handshake with other spi controller
config ESP_HOSTED_SPI_GPIO_DATA_READY
int "GPIO pin for data ready interrupt"
default 17 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6
default 4
help
GPIO pin for indicating host that SPI slave has data to be read by host
config ESP_HOSTED_SPI_GPIO_RESET_SLAVE
int "GPIO pin for Reseting slave ESP"
default 54 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6
default 5
help
GPIO pin for Resetting ESP SPI slave device. Should be connected to RST/EN of ESP SPI slave device.
endmenu
ESP32XX_SPI_CLK_FREQ_RANGE_MIN := 1
ESP32_SPI_CLK_FREQ_RANGE_MAX := 10
ESP32C6_SPI_CLK_FREQ_RANGE_MAX := 40
ESP32XX_SPI_CLK_FREQ_RANGE_MAX := 40
config ESP_HOSTED_SPI_FREQ_ESP32
depends on SLAVE_IDF_TARGET_ESP32
int "SPI Clock Freq (MHz)"
default 10
range $(ESP32XX_SPI_CLK_FREQ_RANGE_MIN) $(ESP32_SPI_CLK_FREQ_RANGE_MAX)
help
"Optimize SPI CLK by increasing till host practically can support"
config ESP_HOSTED_SPI_FREQ_ESP32C6
depends on SLAVE_IDF_TARGET_ESP32C6
int "SPI Clock Freq (MHz)"
default 40 if IDF_TARGET_ESP32P4 #config for ESP32-P4 Function_EV_Board
default 26
range $(ESP32XX_SPI_CLK_FREQ_RANGE_MIN) $(ESP32C6_SPI_CLK_FREQ_RANGE_MAX)
help
"Optimize SPI CLK by increasing till host practically can support"
config ESP_HOSTED_SPI_FREQ_ESP32XX
depends on SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5
int "SPI Clock Freq"
default 30 if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5
range $(ESP32XX_SPI_CLK_FREQ_RANGE_MIN) $(ESP32XX_SPI_CLK_FREQ_RANGE_MAX)
help
"Optimize SPI CLK by increasing till host practically can support"
config ESP_HOSTED_SPI_CLK_FREQ
int
default ESP_HOSTED_SPI_FREQ_ESP32 if SLAVE_IDF_TARGET_ESP32
default ESP_HOSTED_SPI_FREQ_ESP32C6 if SLAVE_IDF_TARGET_ESP32C6
default ESP_HOSTED_SPI_FREQ_ESP32XX if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5
help
"Optimize SPI CLK by increasing till host practically can support"
config ESP_HOSTED_SPI_TX_Q_SIZE
int "ESP to Host SPI queue size"
default 20
help
Very small tx queue will lower ESP -- SPI --> Host data rate
config ESP_HOSTED_SPI_RX_Q_SIZE
int "Host to ESP SPI queue size"
default 20
help
Very small RX queue will lower ESP <-- SPI -- Host data rate
endmenu
menu "Hosted SDIO Configuration"
depends on ESP_HOSTED_SDIO_HOST_INTERFACE
choice ESP_HOSTED_SDIO_RESET_GPIO_CONFIG
bool "RESET GPIO Config"
default ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH
help
"If Active High, High->Low->High will trigger reset (Low will trigger reset)
If Active Low, Low->High->Low will trigger reset (High will trigger reset)"
config ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH
bool "RESET: Active High"
config ESP_HOSTED_SDIO_RESET_ACTIVE_LOW
bool "RESET: Active Low"
endchoice
choice ESP_HOSTED_SDIO_RX_OPTIMIZATION
bool "SDIO Receive Optimization"
default ESP_HOSTED_SDIO_OPTIMIZATION_RX_STREAMING_MODE
config ESP_HOSTED_SDIO_OPTIMIZATION_RX_NONE
bool "No optimization"
help
Use SDIO as is, with no optimizations.
config ESP_HOSTED_SDIO_OPTIMIZATION_RX_MAX_SIZE
bool "Always Rx Max Packet size"
help
Always read max Rx Packet Size (512 * 3 bytes). This saves one SDIO
transaction (get Rx Packet Size) when reading data from slave by
always transferring a fixed amount of data. Extra data at end of valid
packet data is discarded.
config ESP_HOSTED_SDIO_OPTIMIZATION_RX_STREAMING_MODE
bool "Use Streaming Mode"
help
Receive a stream of queued data from the slave, made up of one or more
packets of data. Host extracts packets from the stream. This improves
SDIO read performance by doing one large read transaction instead of
many smaller read transactions for each packet.
(Note: requires slave to support streaming mode.)
endchoice
config ESP_HOSTED_SDIO_GPIO_RESET_SLAVE
int "GPIO pin for Reseting slave ESP"
default 54 if IDF_TARGET_ESP32P4
default 42 if IDF_TARGET_ESP32S3
default 5
help
GPIO pin for Resetting ESP SDIO slave device. Should be connected to RST/EN of ESP SDIO slave device.
choice
prompt "SDIO Bus Width"
default ESP_HOSTED_SDIO_4_BIT_BUS
help
Select the SDIO Bus Width to use
config ESP_HOSTED_SDIO_4_BIT_BUS
bool "4 Bits"
config ESP_HOSTED_SDIO_1_BIT_BUS
bool "1 Bit"
endchoice
config ESP_HOSTED_SDIO_BUS_WIDTH
int
default 1 if ESP_HOSTED_SDIO_1_BIT_BUS
default 4
ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MIN := 400
ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MAX := 40000
ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MIN := 400
ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MAX := 50000
config ESP_HOSTED_SDIO_CLOCK_FREQ_KHZ
int "SDIO Clock Freq (in kHz)"
default 40000
range $(ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MIN) $(ESP32_SDIO_CLK_FREQ_KHZ_RANGE_MAX) if IDF_TARGET_ESP32
range $(ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MIN) $(ESP32XX_SDIO_CLK_FREQ_KHZ_RANGE_MAX) if IDF_TARGET_ESP32S3 || IDF_TARGET_ESP32P4
help
"Optimize SDIO CLK by increasing till host practically can support. Clock frequency for ESP32-P4 as host <= 40MHz"
config ESP_HOSTED_SDIO_PIN_CMD
int "CMD GPIO number"
default 47 if IDF_TARGET_ESP32S3
default 19 if IDF_TARGET_ESP32P4
range 15 15 if IDF_TARGET_ESP32
help
"Value can only be configured for some targets. Displayed always for reference."
config ESP_HOSTED_SDIO_PIN_CLK
int "CLK GPIO number"
default 19 if IDF_TARGET_ESP32S3
default 18 if IDF_TARGET_ESP32P4
range 14 14 if IDF_TARGET_ESP32
help
"Value can only be configured for some targets. Displayed always for reference."
config ESP_HOSTED_SDIO_PIN_D0
int "D0 GPIO number"
default 13 if IDF_TARGET_ESP32S3
default 14 if IDF_TARGET_ESP32P4
range 2 2 if IDF_TARGET_ESP32
help
"Value can only be configured for some targets. Displayed always for reference."
if ESP_HOSTED_SDIO_4_BIT_BUS
config ESP_HOSTED_SDIO_PIN_D1
int "D1 GPIO number"
default 35 if IDF_TARGET_ESP32S3
default 15 if IDF_TARGET_ESP32P4
range 4 4 if IDF_TARGET_ESP32
help
"Value can only be configured for some targets. Displayed always for reference."
config ESP_HOSTED_SDIO_PIN_D2
int "D2 GPIO number"
default 20 if IDF_TARGET_ESP32S3
default 16 if IDF_TARGET_ESP32P4
range 12 12 if IDF_TARGET_ESP32
help
"Value can only be configured for some targets. Displayed always for reference."
config ESP_HOSTED_SDIO_PIN_D3
int "D3 GPIO number"
default 9 if IDF_TARGET_ESP32S3
default 17 if IDF_TARGET_ESP32P4
range 13 13 if IDF_TARGET_ESP32
help
"Value can only be configured for some targets. Displayed always for reference."
endif
if !ESP_HOSTED_SDIO_4_BIT_BUS
config ESP_HOSTED_SDIO_PIN_D1
int "D1 GPIO number (Interrupt Line)"
default 35 if IDF_TARGET_ESP32S3
default 15 if IDF_TARGET_ESP32P4
range 4 4 if IDF_TARGET_ESP32
help
"Value can only be configured for some targets. Displayed always for reference."
endif
config ESP_HOSTED_SDIO_TX_Q_SIZE
int "Host SDIO Tx queue size"
default 20
help
Very small tx queue will lower data rate
config ESP_HOSTED_SDIO_RX_Q_SIZE
int "Host SDIO Rx queue size"
default 20
help
Very small RX queue will lower data rate
config ESP_HOSTED_SDIO_CHECKSUM
bool "SDIO checksum ENABLE/DISABLE"
help
ENABLE/DISABLE software SDIO checksum
endmenu
menu "SPI Half-duplex Configuration"
depends on ESP_HOSTED_SPI_HD_HOST_INTERFACE
config ESP_HOSTED_SPI_HD_MODE
int "SPI Mode to use"
default 3
range 0 3
help
SPI Mode to use. The same mode must be used on both host and slave.
choice ESP_HOSTED_SPI_HD_PRIV_INTERFACE_NUM_DATA_LINES
bool "Num Data Lines to use"
default ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES
help
Number of Data Lines to use in the SPI HD interface
config ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES
bool "4 data lines"
config ESP_HOSTED_SPI_HD_PRIV_INTERFACE_2_DATA_LINES
bool "2 data lines"
endchoice
config ESP_HOSTED_SPI_HD_INTERFACE_NUM_DATA_LINES
int
default 4 if ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES
default 2 if ESP_HOSTED_SPI_HD_PRIV_INTERFACE_2_DATA_LINES
choice ESP_HOSTED_SPI_HD_RESET_GPIO_CONFIG
bool "RESET GPIO Config"
default ESP_HOSTED_SPI_HD_RESET_ACTIVE_HIGH
help
"If Active High, High->Low->High will trigger reset (Low will trigger reset)
If Active Low, Low->High->Low will trigger reset (High will trigger reset)"
config ESP_HOSTED_SPI_HD_RESET_ACTIVE_HIGH
bool "RESET: Active High"
config ESP_HOSTED_SPI_HD_RESET_ACTIVE_LOW
bool "RESET: Active Low"
endchoice
choice ESP_HOSTED_SPI_HD_DATAREADY_GPIO_CONFIG
bool "DataReady GPIO Config"
default ESP_HOSTED_SPI_HD_DR_ACTIVE_HIGH
config ESP_HOSTED_SPI_HD_DR_ACTIVE_HIGH
bool "DR: Active High"
config ESP_HOSTED_SPI_HD_DR_ACTIVE_LOW
bool "DR: Active Low"
endchoice
menu "Host GPIOs Config"
config ESP_HOSTED_SPI_HD_GPIO_CS
int "GPIO pin for Host CS"
default 10 if IDF_TARGET_ESP32S3
default 19 if IDF_TARGET_ESP32P4
default 15
help
SPI Half-duplex controller Host CS
config ESP_HOSTED_SPI_HD_GPIO_CLK
int "GPIO pin for Host CLK"
default 12 if IDF_TARGET_ESP32S3
default 18 if IDF_TARGET_ESP32P4
default 18
help
SPI Half-duplex controller Host CLK
config ESP_HOSTED_SPI_HD_GPIO_D0
int "GPIO pin for Host D0"
default 11 if IDF_TARGET_ESP32S3
default 14 if IDF_TARGET_ESP32P4
default 2
help
SPI Half-duplex controller Host D0
config ESP_HOSTED_SPI_HD_GPIO_D1
int "GPIO pin for Host D1"
default 13 if IDF_TARGET_ESP32S3
default 15 if IDF_TARGET_ESP32P4
default 4
help
SPI Half-duplex controller Host D1
config ESP_HOSTED_SPI_HD_GPIO_D2
depends on ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES
int "GPIO pin for Host D2"
default 14 if IDF_TARGET_ESP32S3
default 16 if IDF_TARGET_ESP32P4
default 12
help
SPI Half-duplex controller Host D2
config ESP_HOSTED_SPI_HD_GPIO_D3
depends on ESP_HOSTED_SPI_HD_PRIV_INTERFACE_4_DATA_LINES
int "GPIO pin for Host D3"
default 9 if IDF_TARGET_ESP32S3
default 17 if IDF_TARGET_ESP32P4
default 13
help
SPI Half-duplex controller Host D3
config ESP_HOSTED_SPI_HD_GPIO_DATA_READY
int "GPIO pin for data ready interrupt"
default 4 if IDF_TARGET_ESP32S3
default 6 if IDF_TARGET_ESP32P4
default 8
help
GPIO pin for indicating host that slave has data to be read by host
config ESP_HOSTED_SPI_HD_GPIO_RESET_SLAVE
int "GPIO pin for Reseting slave ESP"
default 5 if IDF_TARGET_ESP32S3
default 54 if IDF_TARGET_ESP32P4 && SLAVE_IDF_TARGET_ESP32C6
default 5
help
GPIO pin for Resetting ESP slave device. Should be connected to RST/EN of ESP SPI slave device.
endmenu
ESP32XX_SPI_HD_CLK_FREQ_RANGE_MIN := 1
ESP32_SPI_HD_CLK_FREQ_RANGE_MAX := 10
ESP32C6_SPI_HD_CLK_FREQ_RANGE_MAX := 40
ESP32XX_SPI_HD_CLK_FREQ_RANGE_MAX := 40
config ESP_HOSTED_SPI_HD_FREQ_ESP32C6
depends on SLAVE_IDF_TARGET_ESP32C6
int "SPI HD Clock Freq (MHz)"
default 40 if IDF_TARGET_ESP32P4 #config for ESP32-P4 Function_EV_Board
default 10
range $(ESP32XX_SPI_HD_CLK_FREQ_RANGE_MIN) $(ESP32C6_SPI_HD_CLK_FREQ_RANGE_MAX)
help
"Optimize CLK by increasing till host practically can support"
config ESP_HOSTED_SPI_HD_FREQ_ESP32XX
depends on SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5
int "SPI HD Clock Freq (MHz)"
default 10 if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5
range $(ESP32XX_SPI_HD_CLK_FREQ_RANGE_MIN) $(ESP32XX_SPI_HD_CLK_FREQ_RANGE_MAX)
help
"Optimize CLK by increasing till host practically can support"
config ESP_HOSTED_SPI_HD_CLK_FREQ
int
default ESP_HOSTED_SPI_HD_FREQ_ESP32C6 if SLAVE_IDF_TARGET_ESP32C6
default ESP_HOSTED_SPI_HD_FREQ_ESP32XX if SLAVE_IDF_TARGET_ESP32C2 || SLAVE_IDF_TARGET_ESP32C3 || SLAVE_IDF_TARGET_ESP32S2 || SLAVE_IDF_TARGET_ESP32S3 || SLAVE_IDF_TARGET_ESP32C5
help
"Optimize CLK by increasing till host practically can support"
config ESP_HOSTED_SPI_HD_TX_Q_SIZE
int "ESP to Host queue size"
default 20
help
Very small tx queue will lower ESP -- SPI Half-duplex --> Host data rate
config ESP_HOSTED_SPI_HD_RX_Q_SIZE
int "Host to ESP queue size"
default 20
help
Very small RX queue will lower ESP <-- SPI Half-duplex -- Host data rate
config ESP_HOSTED_SPI_HD_CHECKSUM
bool "Checksum ENABLE/DISABLE"
default y
help
ENABLE/DISABLE software checksum
endmenu
menu "UART Configuration"
depends on ESP_HOSTED_UART_HOST_INTERFACE
choice ESP_HOSTED_UART_RESET_GPIO_CONFIG
bool "RESET GPIO Config"
default ESP_HOSTED_UART_RESET_ACTIVE_HIGH
help
"If Active High, High->Low->High will trigger reset (Low will trigger reset)
If Active Low, Low->High->Low will trigger reset (High will trigger reset)"
config ESP_HOSTED_UART_RESET_ACTIVE_HIGH
bool "RESET: Active High"
config ESP_HOSTED_UART_RESET_ACTIVE_LOW
bool "RESET: Active Low"
endchoice
config ESP_HOSTED_UART_PORT
int "UART Port to Use"
default 1
range 0 2 if IDF_TARGET_ESP32
range 0 1 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32C5 || IDF_TARGET_ESP32C6
range 0 2 if IDF_TARGET_ESP32C61
range 0 1 if IDF_TARGET_ESP32S2
range 0 2 if IDF_TARGET_ESP32S3
range 0 4 if IDF_TARGET_ESP32P4
help
Select UART Port to Use. Do not select the UART Port used for console output (if enabled)
config ESP_HOSTED_UART_PIN_TX
int "TX GPIO number"
default 13 if IDF_TARGET_ESP32
default 5 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3
default 14 if IDF_TARGET_ESP32C5
default 21 if IDF_TARGET_ESP32C6
default 5 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
default 14 if IDF_TARGET_ESP32P4
help
GPIO used for UART TX
config ESP_HOSTED_UART_PIN_RX
int "RX GPIO number"
default 12 if IDF_TARGET_ESP32
default 4 if IDF_TARGET_ESP32C2 || IDF_TARGET_ESP32C3
default 13 if IDF_TARGET_ESP32C5
default 20 if IDF_TARGET_ESP32C6
default 4 if IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32S3
default 15 if IDF_TARGET_ESP32P4
help
GPIO used for UART RX
config ESP_HOSTED_UART_BAUDRATE
int "Baud Rate"
default 921600
range 9600 3500000
help
Baud Rate to Use. Make sure Hardware supports the rate. Standard rates are 9600, 19200, 38400, 57600, 115200, 460800, 921600
config ESP_HOSTED_UART_NUM_DATA_BITS
int "Number of Data Bits"
default 8
range 5 8
help
Number of Data Bits to use
choice ESP_HOSTED_UART_PRIV_PARITY
bool "Parity"
config ESP_HOSTED_UART_PRIV_PARITY_NONE
bool "None"
config ESP_HOSTED_UART_PRIV_PARITY_EVEN
bool "Even"
config ESP_HOSTED_UART_PRIV_PARITY_ODD
bool "Odd"
endchoice
config ESP_HOSTED_UART_PARITY
int
default 0 if ESP_HOSTED_UART_PRIV_PARITY_NONE
default 1 if ESP_HOSTED_UART_PRIV_PARITY_EVEN
default 2 if ESP_HOSTED_UART_PRIV_PARITY_ODD
choice ESP_HOSTED_UART_PRIV_STOP_BITS
bool "Number of Stop Bits"
config ESP_HOSTED_UART_PRIV_STOP_BITS_1
bool "1"
config ESP_HOSTED_UART_PRIV_STOP_BITS_1_5
bool "1.5"
config ESP_HOSTED_UART_PRIV_STOP_BITS_2
bool "2"
endchoice
config ESP_HOSTED_UART_STOP_BITS
int
default 0 if ESP_HOSTED_UART_PRIV_STOP_BITS_1
default 1 if ESP_HOSTED_UART_PRIV_STOP_BITS_1_5
default 2 if ESP_HOSTED_UART_PRIV_STOP_BITS_2
config ESP_HOSTED_UART_GPIO_RESET_SLAVE
int "GPIO pin for Reseting slave ESP"
default 54 if IDF_TARGET_ESP32P4
default 42 if IDF_TARGET_ESP32S3
default 5
help
GPIO pin for Resetting ESP SDIO slave device. Should be connected to RST/EN of ESP SDIO slave device.
config ESP_HOSTED_UART_TX_Q_SIZE
int "Tx Queue Size"
default 5
help
UART rates are low, so large queue sizes are not required
config ESP_HOSTED_UART_RX_Q_SIZE
int "Rx Queue Size"
default 5
help
UART rates are low, so large queue sizes are not required
config ESP_HOSTED_UART_CHECKSUM
bool "UART checksum ENABLE/DISABLE"
default y
help
ENABLE/DISABLE software UART checksum
endmenu
config ESP_HOSTED_GPIO_SLAVE_RESET_SLAVE
int
default ESP_HOSTED_SPI_GPIO_RESET_SLAVE if ESP_HOSTED_SPI_HOST_INTERFACE
default ESP_HOSTED_SDIO_GPIO_RESET_SLAVE if ESP_HOSTED_SDIO_HOST_INTERFACE
default ESP_HOSTED_SPI_HD_GPIO_RESET_SLAVE if ESP_HOSTED_SPI_HD_HOST_INTERFACE
default ESP_HOSTED_UART_GPIO_RESET_SLAVE if ESP_HOSTED_UART_HOST_INTERFACE
config ESP_HOSTED_RESET_GPIO_ACTIVE_LOW
bool
default n if ESP_HOSTED_SDIO_RESET_ACTIVE_HIGH || ESP_HOSTED_SPI_RESET_ACTIVE_HIGH || ESP_HOSTED_SPI_HD_RESET_ACTIVE_HIGH || ESP_HOSTED_UART_RESET_ACTIVE_HIGH
default y if ESP_HOSTED_SDIO_RESET_ACTIVE_LOW || ESP_HOSTED_SPI_RESET_ACTIVE_LOW || ESP_HOSTED_SPI_HD_RESET_ACTIVE_LOW || ESP_HOSTED_UART_RESET_ACTIVE_LOW
menu "Bluetooth Support"
comment "Following options must be set before this option can be enabled"
depends on !BT_ENABLED || BT_CONTROLLER_ONLY || (BT_NIMBLE_ENABLED && (BT_NIMBLE_TRANSPORT_UART || BT_CONTROLLER_ENABLED)) || (BT_BLUEDROID_ENABLED && BT_CONTROLLER_ENABLED)
comment "'Component config->Bluetooth' must be enabled"
depends on !BT_ENABLED
comment "'Component config->Bluetooth->Host' must be enabled"
depends on BT_ENABLED && BT_CONTROLLER_ONLY
comment "'Component config->Bluetooth->Controller' must be disabled"
depends on BT_ENABLED && BT_CONTROLLER_ENABLED
comment "'Component config->Bluetooth->NimBLE Options->Host-controller Transport->Uart Transport' must be disabled"
depends on BT_NIMBLE_ENABLED && BT_NIMBLE_TRANSPORT_UART
if BT_ENABLED && BT_BLUEDROID_ENABLED && !BT_CONTROLLER_ENABLED
config ESP_HOSTED_ENABLE_BT_BLUEDROID
bool "Enable Hosted Bluedroid Bluetooth support"
default n
help
Enable Bluetooth Support for Bluedroid via Hosted
choice ESP_HOSTED_BLUEDROID_HCI_TYPE
bool "BT Bluedroid HCI Type"
default ESP_HOSTED_BLUEDROID_HCI_VHCI
depends on ESP_HOSTED_ENABLE_BT_BLUEDROID
help
Selects the HCI to use
config ESP_HOSTED_BLUEDROID_HCI_VHCI
bool "VHCI"
help
Bluetooth data is sent through the selected transport layer
endchoice
endif
if BT_ENABLED && BT_NIMBLE_ENABLED && !BT_CONTROLLER_ENABLED && !BT_NIMBLE_TRANSPORT_UART
config ESP_HOSTED_ENABLE_BT_NIMBLE
bool "Enable Hosted Nimble Bluetooth support"
default n
help
Enable Bluetooth Support via Hosted
choice ESP_HOSTED_NIMBLE_HCI_TYPE
bool "BT Nimble HCI Type"
default ESP_HOSTED_NIMBLE_HCI_VHCI
depends on ESP_HOSTED_ENABLE_BT_NIMBLE
help
Selects the HCI to use
config ESP_HOSTED_NIMBLE_HCI_VHCI
bool "VHCI"
help
Bluetooth data is sent through the selected transport layer
endchoice
endif
endmenu
menu "Task defaults"
config ESP_HOSTED_RPC_TASK_STACK
int "RPC task stack size"
default 4096
config ESP_HOSTED_DFLT_TASK_STACK
int "Hosted default task size"
default 3072
endmenu
config ESP_HOSTED_USE_MEMPOOL
bool "Cache allocated memory like mempool - helps to reduce malloc calls"
default y
help
Cache allocated memory - reduces number of malloc calls
config ESP_HOSTED_MAX_SIMULTANEOUS_SYNC_RPC_REQUESTS
int "Maximum number of simultaneous synchronous RPC Request"
default 5
help
Sets the maximum number of simultaneous synchronous RPC Requests.
(Synchronous RPC Request: each sending task waits for the response.)
Usually, the host application may send up to 3 simultaneous RPC requests to the slave.
Increase this number if you need to send more simultaneous RPC requests.
Note: the slave will only process one RPC request (sync and async) at a time
config ESP_HOSTED_MAX_SIMULTANEOUS_ASYNC_RPC_REQUESTS
int "Maximum number of simultaneous asynchronous RPC Request"
default 5
help
Sets the maximum number of simultaneous asynchronous RPC Requests.
(Asynchronous RPC Request: each sending task registers a callback to get the response.)
Usually, the host application may send up to 3 simultaneous RPC requests to the slave.
Increase this number if you need to send more simultaneous RPC requests.
Note: the slave will only process one RPC request (sync and async) at a time
menu "Debug Settings"
config ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT
bool "RawTP: Transport level throughput debug test"
default n
help
Find max transport performance which helps to assess stability of porting done
choice ESP_HOSTED_RAW_THROUGHPUT_DIRECTION
bool "RawTP: Send data from:"
depends on ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT
config ESP_HOSTED_RAW_THROUGHPUT_TX_TO_SLAVE
bool "Host to Slave"
help
Sends data from Host to Slave
config ESP_HOSTED_RAW_THROUGHPUT_RX_FROM_SLAVE
bool "Slave to Host"
help
Sends data from Slave to Slave
config ESP_HOSTED_RAW_THROUGHPUT_BIDIRECTIONAL
bool "Bidirectional"
help
Sends data in both directions
endchoice
config ESP_HOSTED_RAW_TP_HOST_TO_ESP_PKT_LEN
depends on ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT
int "RawTP: Host to ESP packet size"
range 1 1500
default 1460
config ESP_HOSTED_RAW_TP_REPORT_INTERVAL
depends on ESP_HOSTED_RAW_THROUGHPUT_TRANSPORT
int "RawTP: periodic duration to report stats accumulated"
default 5
config ESP_HOSTED_PKT_STATS
bool "Transport level packet stats"
default n
help
On comparing with slave packet stats helps to understand any packet loss at hosted
endmenu
menu "Data path options"
config ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE
bool "Report WiFi queue utilization to host"
default y
help
Proactively drop Host->slave Wi-Fi data when Slave Wi-Fi is under load
Slave Wi-Fi may drop ingress bursty or higher than capacity packets.
To have synchronous way of packet dropped for application,
Host will throttle incoming data if the slave datapath Rx load is high
config ESP_HOSTED_PRIV_WIFI_TX_SPI_HIGH_THRESHOLD
depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_SPI_HOST_INTERFACE
int "High threshold to report host to drop data when wifi highly loaded"
range 0 100
default 90
help
Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold
0 value will disable this function
config ESP_HOSTED_PRIV_WIFI_TX_SDIO_HIGH_THRESHOLD
depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_SDIO_HOST_INTERFACE
int "High threshold to report host to drop data when wifi highly loaded"
range 0 100
default 80
help
Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold
0 value will disable this function
config ESP_HOSTED_PRIV_WIFI_TX_SPI_HD_HIGH_THRESHOLD
depends on ESP_HOSTED_HOST_TO_ESP_WIFI_DATA_THROTTLE && ESP_HOSTED_SPI_HD_HOST_INTERFACE
int "High threshold to report host to drop data when wifi highly loaded"
range 0 100
default 80
help
Host will throttle incoming data if the slave datapath Rx load goes beyond this threshold
0 value will disable this function