use esp_hal_common::gpio::{types::*, *}; // ESP32S3 is a dual-core chip however pro cpu and app cpu shares the same // interrupt enable bit see https://github.com/espressif/esp-idf/blob/c04803e88b871a4044da152dfb3699cf47354d18/components/hal/esp32s3/include/hal/gpio_ll.h#L32 // Treating it as SingleCore in the gpio macro makes this work. gpio! { Function1, SingleCore, Gpio0: ( gpio0, 0, gpio[0], IO, RTC, Bank0), Gpio1: ( gpio1, 1, gpio[1], IO, RTC, Bank0), Gpio2: ( gpio2, 2, gpio[2], IO, RTC, Bank0), Gpio3: ( gpio3, 3, gpio[3], IO, RTC, Bank0), Gpio4: ( gpio4, 4, gpio[4], IO, RTC, Bank0), Gpio5: ( gpio5, 5, gpio[5], IO, RTC, Bank0), Gpio6: ( gpio6, 6, gpio[6], IO, RTC, Bank0), Gpio7: ( gpio7, 7, gpio[7], IO, RTC, Bank0), Gpio8: ( gpio8, 8, gpio[8], IO, RTC, Bank0), (), (SUBSPICS1: Function3), Gpio9: ( gpio9, 9, gpio[9], IO, RTC, Bank0), (SUBSPIHD: Function3, FSPIHD: Function4), (SUBSPIHD: Function3, FSPIHD: Function4), Gpio10: (gpio10, 10, gpio[10], IO, RTC, Bank0), (FSPIIO4: Function2, FSPICS0: Function4), (FSPIIO4: Function2, SUBSPICS0: Function3, FSPICS0: Function4), Gpio11: (gpio11, 11, gpio[11], IO, RTC, Bank0), (FSPIIO5: Function2, SUBSPID: Function3, FSPID: Function4), (FSPIIO5: Function2, SUBSPID: Function3, FSPID: Function4), Gpio12: (gpio12, 12, gpio[12], IO, RTC, Bank0), (FSPIIO6: Function2, FSPICLK: Function4), (FSPIIO6: Function2, SUBSPICLK: Function3, FSPICLK: Function4), Gpio13: (gpio13, 13, gpio[13], IO, RTC, Bank0), (FSPIIO7: Function2, SUBSPIQ: Function3, FSPIQ: Function4), (FSPIIO7: Function2, SUBSPIQ: Function3, FSPIQ: Function4), Gpio14: (gpio14, 14, gpio[14], IO, RTC, Bank0), (SUBSPIWP: Function3, FSPIWP: Function4), (FSPIDQS: Function2, SUBSPIWP: Function3, FSPIWP: Function4), Gpio15: (gpio15, 15, gpio[15], IO, RTC, Bank0), (), (U0RTS: Function2), Gpio16: (gpio16, 16, gpio[16], IO, RTC, Bank0), (U0CTS: Function2), (), Gpio17: (gpio17, 17, gpio[17], IO, RTC, Bank0), (), (U1TXD: Function2), Gpio18: (gpio18, 18, gpio[18], IO, RTC, Bank0), (U1RXD: Function2), (), Gpio19: (gpio19, 19, gpio[19], IO, RTC, Bank0), (), (U1RTS: Function2), Gpio20: (gpio20, 20, gpio[20], IO, RTC, Bank0), (U1CTS: Function2), (), Gpio21: (gpio21, 21, gpio[21], IO, RTC, Bank0), Gpio26: (gpio26, 26, gpio[26], IO, 0, Bank0), Gpio27: (gpio27, 27, gpio[27], IO, 0, Bank0), Gpio28: (gpio28, 28, gpio[28], IO, 0, Bank0), Gpio29: (gpio29, 29, gpio[29], IO, 0, Bank0), Gpio30: (gpio30, 30, gpio[30], IO, 0, Bank0), Gpio31: (gpio31, 31, gpio[31], IO, 0, Bank0), Gpio32: (gpio32, 32, gpio[32], IO, 0, Bank1), Gpio33: (gpio33, 33, gpio[33], IO, 0, Bank1), (FSPIHD: Function2, SUBSPIHD: Function3), (FSPIHD: Function2, SUBSPIHD: Function3), Gpio34: (gpio34, 34, gpio[34], IO, 0, Bank1), (FSPICS0: Function2), (FSPICS0: Function2, SUBSPICS0: Function3), Gpio35: (gpio35, 35, gpio[35], IO, 0, Bank1), (FSPID: Function2, SUBSPID: Function3), (FSPID: Function2, SUBSPID: Function3), Gpio36: (gpio36, 36, gpio[36], IO, 0, Bank1), (FSPICLK: Function2), (FSPICLK: Function2, SUBSPICLK: Function3), Gpio37: (gpio37, 37, gpio[37], IO, 0, Bank1), (FSPIQ: Function2, SUBSPIQ: Function3, SPIDQS: Function4), (FSPIQ: Function2, SUBSPIQ: Function3, SPIDQS: Function4), Gpio38: (gpio38, 38, gpio[38], IO, 0, Bank1), (FSPIWP: Function2, SUBSPIWP: Function3), (FSPIWP: Function3, SUBSPIWP: Function3), Gpio39: (gpio39, 39, gpio[39], IO, 0, Bank1), (), (SUBSPICS1: Function4), Gpio40: (gpio40, 40, gpio[40], IO, 0, Bank1), Gpio41: (gpio41, 41, gpio[41], IO, 0, Bank1), Gpio42: (gpio42, 42, gpio[42], IO, 0, Bank1), Gpio43: (gpio43, 43, gpio[43], IO, 0, Bank1), Gpio44: (gpio44, 44, gpio[44], IO, 0, Bank1), Gpio45: (gpio45, 45, gpio[45], IO, 0, Bank1), Gpio46: (gpio46, 46, gpio[46], IO, 0, Bank1), Gpio47: (gpio47, 47, gpio[47], IO, 0, Bank1), Gpio48: (gpio48, 48, gpio[48], IO, 0, Bank1), }