9 #include <soc/sdmmc_periph.h>
10 #include <soc/adc_periph.h>
11 #include <soc/mcpwm_periph.h>
12 #include <soc/hwcrypto_periph.h>
13 #include <soc/touch_sensor_periph.h>
14 #include <soc/sens_periph.h>
15 #include <soc/pcnt_periph.h>
16 #include <soc/sdio_slave_periph.h>
17 #include <soc/dac_periph.h>
18 #include <soc/can_periph.h>
19 #include <soc/gpio_periph.h>
20 #include <soc/i2s_periph.h>
21 #include <soc/timer_periph.h>
22 #include <soc/sigmadelta_periph.h>
23 #include <soc/i2c_periph.h>
24 #include <soc/spi_periph.h>
25 #include <soc/syscon_periph.h>
26 #include <soc/efuse_periph.h>
27 #include <soc/ledc_periph.h>
28 #include <soc/rmt_periph.h>
29 #include <soc/uart_periph.h>
30 #include <soc/rtc_periph.h>
32 #define ESP8266_REG(addr) *((volatile uint32_t*)(0x60000000 + (addr)))
33 #define ESP8266_DREG(addr) *((volatile uint32_t*)(0x3FF00000 + (addr)))
34 #define ESP8266_CLOCK 80000000UL
37 #define CPU2X ESP8266_DREG(0x14)
40 #define MAC0 ESP8266_DREG(0x50)
41 #define MAC1 ESP8266_DREG(0x54)
42 #define CHIPID ESP8266_DREG(0x58)
45 #define GPO ESP8266_REG(0x300)
46 #define GPOS ESP8266_REG(0x304)
47 #define GPOC ESP8266_REG(0x308)
48 #define GPE ESP8266_REG(0x30C)
49 #define GPES ESP8266_REG(0x310)
50 #define GPEC ESP8266_REG(0x314)
51 #define GPI ESP8266_REG(0x318)
52 #define GPIE ESP8266_REG(0x31C)
53 #define GPIES ESP8266_REG(0x320)
54 #define GPIEC ESP8266_REG(0x324)
56 #define GPOP(p) ((GPO & (1 << ((p)&0xF))) != 0)
57 #define GPEP(p) ((GPE & (1 << ((p)&0xF))) != 0)
58 #define GPIP(p) ((GPI & (1 << ((p)&0xF))) != 0)
59 #define GPIEP(p) ((GPIE & (1 << ((p)&0xF))) != 0)
62 #define GPC(p) ESP8266_REG(0x328 + ((p & 0xF) * 4))
63 #define GPC0 ESP8266_REG(0x328)
64 #define GPC1 ESP8266_REG(0x32C)
65 #define GPC2 ESP8266_REG(0x330)
66 #define GPC3 ESP8266_REG(0x334)
67 #define GPC4 ESP8266_REG(0x338)
68 #define GPC5 ESP8266_REG(0x33C)
69 #define GPC6 ESP8266_REG(0x340)
70 #define GPC7 ESP8266_REG(0x344)
71 #define GPC8 ESP8266_REG(0x348)
72 #define GPC9 ESP8266_REG(0x34C)
73 #define GPC10 ESP8266_REG(0x350)
74 #define GPC11 ESP8266_REG(0x354)
75 #define GPC12 ESP8266_REG(0x358)
76 #define GPC13 ESP8266_REG(0x35C)
77 #define GPC14 ESP8266_REG(0x360)
78 #define GPC15 ESP8266_REG(0x364)
86 #define GPMUX ESP8266_REG(0x800)
88 #define GPF0 ESP8266_REG(0x834)
89 #define GPF1 ESP8266_REG(0x818)
90 #define GPF2 ESP8266_REG(0x838)
91 #define GPF3 ESP8266_REG(0x814)
92 #define GPF4 ESP8266_REG(0x83C)
93 #define GPF5 ESP8266_REG(0x840)
94 #define GPF6 ESP8266_REG(0x81C)
95 #define GPF7 ESP8266_REG(0x820)
96 #define GPF8 ESP8266_REG(0x824)
97 #define GPF9 ESP8266_REG(0x828)
98 #define GPF10 ESP8266_REG(0x82C)
99 #define GPF11 ESP8266_REG(0x830)
100 #define GPF12 ESP8266_REG(0x804)
101 #define GPF13 ESP8266_REG(0x808)
102 #define GPF14 ESP8266_REG(0x80C)
103 #define GPF15 ESP8266_REG(0x810)
106 #define GPF(p) ESP8266_REG(0x800 + esp8266_gpioToFn[(p & 0xF)])
118 #define GPFFS(f) (((((f)&4) != 0) << GPFFS2) | ((((f)&2) != 0) << GPFFS1) | ((((f)&1) != 0) << GPFFS0))
119 #define GPFFS_GPIO(p) (((p) == 0 || (p) == 2 || (p) == 4 || (p) == 5) ? 0 : ((p) == 16) ? 1 : 3)
120 #define GPFFS_BUS(p) \
121 (((p) == 1 || (p) == 3) ? 0 \
122 : ((p) == 2 || (p) == 12 || (p) == 13 || (p) == 14 || (p) == 15) ? 2 : ((p) == 0) ? 4 : 1)
125 #define GP16O ESP8266_REG(0x768)
126 #define GP16E ESP8266_REG(0x774)
127 #define GP16I ESP8266_REG(0x78C)
130 #define GP16C ESP8266_REG(0x790)
134 #define GP16F ESP8266_REG(0x7A0)
143 #define GP16FFS(f) (((f)&0x03) | (((f)&0x04) << 4))
146 #define T1L ESP8266_REG(0x600)
147 #define T1V ESP8266_REG(0x604)
148 #define T1C ESP8266_REG(0x608)
149 #define T1I ESP8266_REG(0x60C)
151 #define TEIE ESP8266_DREG(0x04)
155 #define T2L ESP8266_REG(0x620)
156 #define T2V ESP8266_REG(0x624)
157 #define T2C ESP8266_REG(0x628)
158 #define T2I ESP8266_REG(0x62C)
159 #define T2A ESP8266_REG(0x630)
169 #define RTCSV ESP8266_REG(0x704)
170 #define RTCCV ESP8266_REG(0x71C)
171 #define RTCIS ESP8266_REG(0x720)
172 #define RTCIC ESP8266_REG(0x724)
173 #define RTCIE ESP8266_REG(0x728)
175 #define RTC_USER_MEM ((volatile uint32_t*)0x60001200)
178 #define IOSWAP ESP8266_DREG(0x28)
188 #define UIS ESP8266_DREG(0x20020)
193 #define U0F ESP8266_REG(0x000)
194 #define U0IR ESP8266_REG(0x004)
195 #define U0IS ESP8266_REG(0x008)
196 #define U0IE ESP8266_REG(0x00c)
197 #define U0IC ESP8266_REG(0x010)
198 #define U0D ESP8266_REG(0x014)
199 #define U0A ESP8266_REG(0x018)
200 #define U0S ESP8266_REG(0x01C)
201 #define U0C0 ESP8266_REG(0x020)
202 #define U0C1 ESP8266_REG(0x024)
203 #define U0LP ESP8266_REG(0x028)
204 #define U0HP ESP8266_REG(0x02C)
205 #define U0PN ESP8266_REG(0x030)
206 #define U0DT ESP8266_REG(0x078)
207 #define U0ID ESP8266_REG(0x07C)
210 #define U1F ESP8266_REG(0xF00)
211 #define U1IR ESP8266_REG(0xF04)
212 #define U1IS ESP8266_REG(0xF08)
213 #define U1IE ESP8266_REG(0xF0c)
214 #define U1IC ESP8266_REG(0xF10)
215 #define U1D ESP8266_REG(0xF14)
216 #define U1A ESP8266_REG(0xF18)
217 #define U1S ESP8266_REG(0xF1C)
218 #define U1C0 ESP8266_REG(0xF20)
219 #define U1C1 ESP8266_REG(0xF24)
220 #define U1LP ESP8266_REG(0xF28)
221 #define U1HP ESP8266_REG(0xF2C)
222 #define U1PN ESP8266_REG(0xF30)
223 #define U1DT ESP8266_REG(0xF78)
224 #define U1ID ESP8266_REG(0xF7C)
227 #define USF(u) ESP8266_REG(0x000 + (0xF00 * (u & 1)))
228 #define USIR(u) ESP8266_REG(0x004 + (0xF00 * (u & 1)))
229 #define USIS(u) ESP8266_REG(0x008 + (0xF00 * (u & 1)))
230 #define USIE(u) ESP8266_REG(0x00c + (0xF00 * (u & 1)))
231 #define USIC(u) ESP8266_REG(0x010 + (0xF00 * (u & 1)))
232 #define USD(u) ESP8266_REG(0x014 + (0xF00 * (u & 1)))
233 #define USA(u) ESP8266_REG(0x018 + (0xF00 * (u & 1)))
234 #define USS(u) ESP8266_REG(0x01C + (0xF00 * (u & 1)))
235 #define USC0(u) ESP8266_REG(0x020 + (0xF00 * (u & 1)))
236 #define USC1(u) ESP8266_REG(0x024 + (0xF00 * (u & 1)))
237 #define USLP(u) ESP8266_REG(0x028 + (0xF00 * (u & 1)))
238 #define USHP(u) ESP8266_REG(0x02C + (0xF00 * (u & 1)))
239 #define USPN(u) ESP8266_REG(0x030 + (0xF00 * (u & 1)))
240 #define USDT(u) ESP8266_REG(0x078 + (0xF00 * (u & 1)))
241 #define USID(u) ESP8266_REG(0x07C + (0xF00 * (u & 1)))
292 #define SPIRDY ESP8266_DREG(0x0C)
296 #define SPI0CMD ESP8266_REG(0x200)
297 #define SPI0A ESP8266_REG(0x204)
298 #define SPI0C ESP8266_REG(0x208)
299 #define SPI0C1 ESP8266_REG(0x20C)
300 #define SPI0RS ESP8266_REG(0x210)
301 #define SPI0C2 ESP8266_REG(0x214)
302 #define SPI0CLK ESP8266_REG(0x218)
303 #define SPI0U ESP8266_REG(0x21C)
304 #define SPI0U1 ESP8266_REG(0x220)
305 #define SPI0U2 ESP8266_REG(0x224)
306 #define SPI0WS ESP8266_REG(0x228)
307 #define SPI0P ESP8266_REG(0x22C)
308 #define SPI0S ESP8266_REG(0x230)
309 #define SPI0S1 ESP8266_REG(0x234)
310 #define SPI0S2 ESP8266_REG(0x238)
311 #define SPI0S3 ESP8266_REG(0x23C)
312 #define SPI0W0 ESP8266_REG(0x240)
313 #define SPI0W1 ESP8266_REG(0x244)
314 #define SPI0W2 ESP8266_REG(0x248)
315 #define SPI0W3 ESP8266_REG(0x24C)
316 #define SPI0W4 ESP8266_REG(0x250)
317 #define SPI0W5 ESP8266_REG(0x254)
318 #define SPI0W6 ESP8266_REG(0x258)
319 #define SPI0W7 ESP8266_REG(0x25C)
320 #define SPI0W8 ESP8266_REG(0x260)
321 #define SPI0W9 ESP8266_REG(0x264)
322 #define SPI0W10 ESP8266_REG(0x268)
323 #define SPI0W11 ESP8266_REG(0x26C)
324 #define SPI0W12 ESP8266_REG(0x270)
325 #define SPI0W13 ESP8266_REG(0x274)
326 #define SPI0W14 ESP8266_REG(0x278)
327 #define SPI0W15 ESP8266_REG(0x27C)
328 #define SPI0E3 ESP8266_REG(0x2FC)
329 #define SPI0W(p) ESP8266_REG(0x240 + ((p & 0xF) * 4))
332 #define SPI1CMD ESP8266_REG(0x100)
333 #define SPI1A ESP8266_REG(0x104)
334 #define SPI1C ESP8266_REG(0x108)
335 #define SPI1C1 ESP8266_REG(0x10C)
336 #define SPI1RS ESP8266_REG(0x110)
337 #define SPI1C2 ESP8266_REG(0x114)
338 #define SPI1CLK ESP8266_REG(0x118)
339 #define SPI1U ESP8266_REG(0x11C)
340 #define SPI1U1 ESP8266_REG(0x120)
341 #define SPI1U2 ESP8266_REG(0x124)
342 #define SPI1WS ESP8266_REG(0x128)
343 #define SPI1P ESP8266_REG(0x12C)
344 #define SPI1S ESP8266_REG(0x130)
345 #define SPI1S1 ESP8266_REG(0x134)
346 #define SPI1S2 ESP8266_REG(0x138)
347 #define SPI1S3 ESP8266_REG(0x13C)
348 #define SPI1W0 ESP8266_REG(0x140)
349 #define SPI1W1 ESP8266_REG(0x144)
350 #define SPI1W2 ESP8266_REG(0x148)
351 #define SPI1W3 ESP8266_REG(0x14C)
352 #define SPI1W4 ESP8266_REG(0x150)
353 #define SPI1W5 ESP8266_REG(0x154)
354 #define SPI1W6 ESP8266_REG(0x158)
355 #define SPI1W7 ESP8266_REG(0x15C)
356 #define SPI1W8 ESP8266_REG(0x160)
357 #define SPI1W9 ESP8266_REG(0x164)
358 #define SPI1W10 ESP8266_REG(0x168)
359 #define SPI1W11 ESP8266_REG(0x16C)
360 #define SPI1W12 ESP8266_REG(0x170)
361 #define SPI1W13 ESP8266_REG(0x174)
362 #define SPI1W14 ESP8266_REG(0x178)
363 #define SPI1W15 ESP8266_REG(0x17C)
364 #define SPI1E0 ESP8266_REG(0x1F0)
365 #define SPI1E1 ESP8266_REG(0x1F4)
366 #define SPI1E2 ESP8266_REG(0x1F8)
367 #define SPI1E3 ESP8266_REG(0x1FC)
368 #define SPI1W(p) ESP8266_REG(0x140 + ((p & 0xF) * 4))
371 #define SPIIR ESP8266_DREG(0x20)
377 #define SPICMDREAD (1 << 31)
378 #define SPICMDWREN (1 << 30)
379 #define SPICMDWRDI (1 << 29)
380 #define SPICMDRDID (1 << 28)
381 #define SPICMDRDSR (1 << 27)
382 #define SPICMDWRSR (1 << 26)
383 #define SPICMDPP (1 << 25)
384 #define SPICMDSE (1 << 24)
385 #define SPICMDBE (1 << 23)
386 #define SPICMDCE (1 << 22)
387 #define SPICMDDP (1 << 21)
388 #define SPICMDRES (1 << 20)
389 #define SPICMDHPM (1 << 19)
390 #define SPICMDUSR (1 << 18)
391 #define SPIBUSY (1 << 18)
394 #define SPICWBO (1 << 26)
395 #define SPICRBO (1 << 25)
396 #define SPICQIO (1 << 24)
397 #define SPICDIO (1 << 23)
398 #define SPIC2BSE (1 << 22)
399 #define SPICWPR (1 << 21)
400 #define SPICQOUT (1 << 20)
401 #define SPICSHARE (1 << 19)
402 #define SPICHOLD (1 << 18)
403 #define SPICAHB (1 << 17)
404 #define SPICSSTAAI (1 << 16)
405 #define SPICRESANDRES (1 << 15)
406 #define SPICDOUT (1 << 14)
407 #define SPICFASTRD (1 << 13)
410 #define SPIC1TCSH 0xF
411 #define SPIC1TCSH_S 28
412 #define SPIC1TRES 0xFFF
413 #define SPIC1TRES_S 16
414 #define SPIC1BTL 0xFFFF
418 #define SPIRSEXT 0xFF
419 #define SPIRSEXT_S 24
422 #define SPIRSSP (1 << 7)
423 #define SPIRSTBP (1 << 5)
424 #define SPIRSBP2 (1 << 4)
425 #define SPIRSBP1 (1 << 3)
426 #define SPIRSBP0 (1 << 2)
427 #define SPIRSWRE (1 << 1)
428 #define SPIRSBUSY (1 << 0)
431 #define SPIC2CSDN 0xF
432 #define SPIC2CSDN_S 28
433 #define SPIC2CSDM 0x3
434 #define SPIC2CSDM_S 26
435 #define SPIC2MOSIDN 0x7
436 #define SPIC2MOSIDN_S 23
437 #define SPIC2MOSIDM 0x3
438 #define SPIC2MOSIDM_S 21
439 #define SPIC2MISODN 0x7
440 #define SPIC2MISODN_S 18
441 #define SPIC2MISODM 0x3
442 #define SPIC2MISODM_S 16
443 #define SPIC2CKOHM 0xF
444 #define SPIC2CKOHM_S 12
445 #define SPIC2CKOLM 0xF
446 #define SPIC2CKOLM_S 8
453 #define SPICLK_EQU_SYSCLK (1 << 31)
454 #define SPICLKDIVPRE 0x1FFF
455 #define SPICLKDIVPRE_S 18
456 #define SPICLKCN 0x3F
457 #define SPICLKCN_S 12
458 #define SPICLKCH 0x3F
460 #define SPICLKCL 0x3F
464 #define SPIUCOMMAND (1 << 31)
465 #define SPIUADDR (1 << 30)
466 #define SPIUDUMMY (1 << 29)
467 #define SPIUMISO (1 << 28)
468 #define SPIUMOSI (1 << 27)
469 #define SPIUDUMMYIDLE (1 << 26)
470 #define SPIUMOSIH (1 << 25)
471 #define SPIUMISOH (1 << 24)
472 #define SPIUPREPHOLD (1 << 23)
473 #define SPIUCMDHOLD (1 << 22)
474 #define SPIUADDRHOLD (1 << 21)
475 #define SPIUDUMMYHOLD (1 << 20)
476 #define SPIUMISOHOLD (1 << 19)
477 #define SPIUMOSIHOLD (1 << 18)
478 #define SPIUHOLDPOL (1 << 17)
479 #define SPIUSIO (1 << 16)
480 #define SPIUFWQIO (1 << 15)
481 #define SPIUFWDIO (1 << 14)
482 #define SPIUFWQUAD (1 << 13)
483 #define SPIUFWDUAL (1 << 12)
484 #define SPIUWRBYO (1 << 11)
485 #define SPIURDBYO (1 << 10)
486 #define SPIUAHBEM 0x3
487 #define SPIUAHBEM_S 8
488 #define SPIUSME (1 << 7)
489 #define SPIUSSE (1 << 6)
490 #define SPIUCSSETUP (1 << 5)
491 #define SPIUCSHOLD (1 << 4)
492 #define SPIUAHBUCMD (1 << 3)
493 #define SPIUAHBUCMD4B (1 << 1)
494 #define SPIUDUPLEX (1 << 0)
497 #define SPILCOMMAND 28
503 #define SPIMCOMMAND 0xF
504 #define SPIMADDR 0x3F
505 #define SPIMDUMMY 0xFF
506 #define SPIMMISO 0x1FF
507 #define SPIMMOSI 0x1FF
510 #define SPISSRES (1 << 31)
511 #define SPISE (1 << 30)
512 #define SPISBE (1 << 29)
513 #define SPISSE (1 << 28)
514 #define SPISCD (1 << 27)
515 #define SPISTRCNT 0xF
516 #define SPISTRCNT_S 23
522 #define SPIDCSIM_S 10
523 #define SPISTRIE (1 << 9)
524 #define SPISWSIE (1 << 8)
525 #define SPISRSIE (1 << 7)
526 #define SPISWBIE (1 << 6)
527 #define SPISRBIE (1 << 5)
528 #define SPISTRIS (1 << 4)
529 #define SPISWSIS (1 << 3)
530 #define SPISRSIS (1 << 2)
531 #define SPISWBIS (1 << 1)
532 #define SPISRBIS (1 << 0)
536 #define SPIS1FE (1 << 26)
537 #define SPIS1RSTA (1 << 25)
541 #define SPIS1WSDE (1 << 3)
542 #define SPIS1RSDE (1 << 2)
543 #define SPIS1WBDE (1 << 1)
544 #define SPIS1RBDE (1 << 0)
547 #define SPIS2WBDL 0xFF
548 #define SPIS2WBDL_S 24
549 #define SPIS2RBDL 0xFF
550 #define SPIS2RBDL_S 16
551 #define SPIS2WSDL 0xFF
552 #define SPIS2WSDL_S 8
553 #define SPIS2RSDL 0xFF
554 #define SPIS2RSDL_S 0
557 #define SPIS3WSCV 0xFF
558 #define SPIS3WSCV_S 24
559 #define SPIS3RSCV 0xFF
560 #define SPIS3RSCV_S 16
561 #define SPIS3WBCV 0xFF
562 #define SPIS3WBCV_S 8
563 #define SPIS3RBCV 0xFF
564 #define SPIS3RBCV_S 0
567 #define SPIE0TPPEN (1 << 31)
568 #define SPIE0TPPS 0xF
569 #define SPIE0TPPS_S 16
570 #define SPIE0TPPT 0xFFF
571 #define SPIE0TPPT_S 0
574 #define SPIE1TEREN (1 << 31)
575 #define SPIE1TERS 0xF
576 #define SPIE1TERS_S 16
577 #define SPIE1TERT 0xFFF
578 #define SPIE1TERT_S 0
585 #define SPIE2IHEN 0x3
586 #define SPIE2IHEN_S 0
589 #define SLCC0 ESP8266_REG(0xB00)
590 #define SLCIR ESP8266_REG(0xB04)
591 #define SLCIS ESP8266_REG(0xB08)
592 #define SLCIE ESP8266_REG(0xB0C)
593 #define SLCIC ESP8266_REG(0xB10)
594 #define SLCRXS ESP8266_REG(0xB14)
595 #define SLCRXP ESP8266_REG(0xB18)
596 #define SLCTXS ESP8266_REG(0xB1C)
597 #define SLCTXP ESP8266_REG(0xB20)
598 #define SLCRXL ESP8266_REG(0xB24)
599 #define SLCTXL ESP8266_REG(0xB28)
600 #define SLCIVTH ESP8266_REG(0xB2C)
601 #define SLCT0 ESP8266_REG(0xB30)
602 #define SLCT1 ESP8266_REG(0xB34)
603 #define SLCC1 ESP8266_REG(0xB38)
604 #define SLCS0 ESP8266_REG(0xB3C)
605 #define SLCS1 ESP8266_REG(0xB40)
606 #define SLCBC ESP8266_REG(0xB44)
607 #define SLCRXEDA ESP8266_REG(0xB48)
608 #define SLCTXEDA ESP8266_REG(0xB4C)
609 #define SLCRXEBDA ESP8266_REG(0xB50)
610 #define SLCAT ESP8266_REG(0xB54)
611 #define SLCSS ESP8266_REG(0xB58)
612 #define SLCRXDC ESP8266_REG(0xB5C)
613 #define SLCTXD ESP8266_REG(0xB60)
614 #define SLCTXDB0 ESP8266_REG(0xB64)
615 #define SLCTXDB1 ESP8266_REG(0xB68)
616 #define SLCRXD ESP8266_REG(0xB6C)
617 #define SLCRXDB0 ESP8266_REG(0xB70)
618 #define SLCRXDB1 ESP8266_REG(0xB74)
619 #define SLCDT ESP8266_REG(0xB78)
620 #define SLCID ESP8266_REG(0xB7C)
621 #define SLCHIR ESP8266_REG(0xB88)
622 #define SLCHC0 ESP8266_REG(0xB94)
623 #define SLCHC1 ESP8266_REG(0xB98)
624 #define SLCHIS ESP8266_REG(0xB9C)
625 #define SLCHC2 ESP8266_REG(0xBA0)
626 #define SLCHC3 ESP8266_REG(0xBA4)
627 #define SLCHC4 ESP8266_REG(0xBA8)
628 #define SLCHIC ESP8266_REG(0xBB0)
629 #define SLCHIE ESP8266_REG(0xBB4)
630 #define SLCHC5 ESP8266_REG(0xBBC)
635 #define SLCDTBE (1 << 9)
636 #define SLCDBE (1 << 8)
637 #define SLCRXNRC (1 << 7)
638 #define SLCRXAW (1 << 6)
639 #define SLCRXLT (1 << 5)
640 #define SLCTXLT (1 << 4)
641 #define SLCAR (1 << 3)
642 #define SLCAFR (1 << 2)
643 #define SLCRXLR (1 << 1)
644 #define SLCTXLR (1 << 0)
647 #define SLCITXDE (1 << 21)
648 #define SLCIRXDER (1 << 20)
649 #define SLCITXDER (1 << 19)
650 #define SLCITH (1 << 18)
651 #define SLCIRXEOF (1 << 17)
652 #define SLCIRXD (1 << 16)
653 #define SLCITXEOF (1 << 15)
654 #define SLCITXD (1 << 14)
655 #define SLCIT0 (1 << 13)
656 #define SLCIT1 (1 << 12)
657 #define SLCITXO (1 << 11)
658 #define SLCIRXU (1 << 10)
659 #define SLCITXS (1 << 9)
660 #define SLCIRXS (1 << 8)
661 #define SLCIFH7 (1 << 7)
662 #define SLCIFH6 (1 << 6)
663 #define SLCIFH5 (1 << 5)
664 #define SLCIFH4 (1 << 4)
665 #define SLCIFH3 (1 << 3)
666 #define SLCIFH2 (1 << 2)
667 #define SLCIFH1 (1 << 1)
668 #define SLCIFH0 (1 << 0)
671 #define SLCRXE (1 << 1)
672 #define SLCRXF (1 << 0)
675 #define SLCTXE (1 << 1)
676 #define SLCTXF (1 << 0)
679 #define SLCRXFP (1 << 16)
680 #define SLCRXWDM (0x1FF)
684 #define SLCTXFP (1 << 16)
685 #define SLCTXRDM (0x7FF)
689 #define SLCRXLP (1 << 31)
690 #define SLCRXLRS (1 << 30)
691 #define SLCRXLS (1 << 29)
692 #define SLCRXLE (1 << 28)
693 #define SLCRXLAM (0xFFFF)
697 #define SLCTXLP (1 << 31)
698 #define SLCTXLRS (1 << 30)
699 #define SLCTXLS (1 << 29)
700 #define SLCTXLE (1 << 28)
701 #define SLCTXLAM (0xFFFF)
705 #define SLCTM (0xFFF)
707 #define SLCTIM (1 << 14)
708 #define SLCTI (1 << 13)
709 #define SLCTW (1 << 12)
710 #define SLCTDM (0xFFF)
714 #define SLCBFMEM (0xF)
716 #define SLCBTEEM (0x3F)
720 #define SLCATAM (0x3)
722 #define SLCATMM (0x7)
728 #define SLCSW (1 << 8)
735 #define SLCBRXFE (1 << 20)
736 #define SLCBRXEM (1 << 19)
737 #define SLCBRXFM (1 << 18)
738 #define SLCBINR (1 << 17)
739 #define SLCBTNR (1 << 16)
740 #define SLCBPICM (0xFFFF)
744 #define i2c_bbpll 0x67
745 #define i2c_bbpll_hostid 4
746 #define i2c_bbpll_en_audio_clock_out 4
747 #define i2c_bbpll_en_audio_clock_out_msb 7
748 #define i2c_bbpll_en_audio_clock_out_lsb 7
749 #define I2S_CLK_ENABLE() i2c_writeReg_Mask_def(i2c_bbpll, i2c_bbpll_en_audio_clock_out, 1)
750 #define I2SBASEFREQ (160000000L)
752 #define I2STXF ESP8266_REG(0xe00)
753 #define I2SRXF ESP8266_REG(0xe04)
754 #define I2SC ESP8266_REG(0xe08)
755 #define I2SIR ESP8266_REG(0xe0C)
756 #define I2SIS ESP8266_REG(0xe10)
757 #define I2SIE ESP8266_REG(0xe14)
758 #define I2SIC ESP8266_REG(0xe18)
759 #define I2ST ESP8266_REG(0xe1C)
760 #define I2SFC ESP8266_REG(0xe20)
761 #define I2SRXEN ESP8266_REG(0xe24)
762 #define I2SCSD ESP8266_REG(0xe28)
763 #define I2SCC ESP8266_REG(0xe2C)
766 #define I2SBDM (0x3F)
768 #define I2SCDM (0x3F)
772 #define I2SRMS (1 << 11)
773 #define I2STMS (1 << 10)
774 #define I2SRXS (1 << 9)
775 #define I2STXS (1 << 8)
776 #define I2SMR (1 << 7)
777 #define I2SRF (1 << 6)
778 #define I2SRSM (1 << 5)
779 #define I2STSM (1 << 4)
780 #define I2SRXFR (1 << 3)
781 #define I2STXFR (1 << 2)
782 #define I2SRXR (1 << 1)
783 #define I2STXR (1 << 0)
787 #define I2SITXRE (1 << 5)
788 #define I2SITXWF (1 << 4)
789 #define I2SIRXRE (1 << 3)
790 #define I2SIRXWF (1 << 2)
791 #define I2SITXPD (1 << 1)
792 #define I2SIRXTD (1 << 0)
795 #define I2STBII (1 << 22)
796 #define I2SRDS (1 << 21)
797 #define I2STDS (1 << 20)
798 #define I2SRBODM (0x3)
800 #define I2SRWODM (0x3)
802 #define I2STSODM (0x3)
804 #define I2STWODM (0x3)
806 #define I2STBODM (0x3)
808 #define I2SRSIDM (0x3)
810 #define I2SRWIDM (0x3)
812 #define I2SRBIDM (0x3)
814 #define I2STWIDM (0x3)
816 #define I2STBIDM (0x3)
820 #define I2SRXFMM (0x7)
822 #define I2STXFMM (0x7)
824 #define I2SDE (1 << 12)
825 #define I2STXDNM (0x3F)
827 #define I2SRXDNM (0x3F)
831 #define I2SRXCMM (0x3)
833 #define I2STXCMM (0x7)
840 #define RANDOM_REG32 ESP8266_DREG(0x20E44)
const uint8_t esp8266_gpioToFn[16]