From 7a100a0a35d300876c44c81d9e818961495b9c4d Mon Sep 17 00:00:00 2001
From: mrfaptastic <12006953+mrfaptastic@users.noreply.github.com>
Date: Mon, 27 Nov 2023 02:20:20 +0000
Subject: [PATCH] Fixes for IDF 5.1 & Arduino 3.0.0

Implement various tweaks such that it compiles with Arduino core 3.0.0-alpha2
---
 src/ESP32-HUB75-MatrixPanel-leddrivers.cpp     |  3 ++-
 src/platforms/esp32/esp32_i2s_parallel_dma.cpp | 11 +++++++++--
 src/platforms/esp32/esp32_i2s_parallel_dma.hpp |  6 ++++--
 src/platforms/esp32s3/gdma_lcd_parallel16.cpp  |  1 +
 src/platforms/platform_detect.hpp              |  4 ++--
 5 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/src/ESP32-HUB75-MatrixPanel-leddrivers.cpp b/src/ESP32-HUB75-MatrixPanel-leddrivers.cpp
index 7fa0182..b4d768b 100644
--- a/src/ESP32-HUB75-MatrixPanel-leddrivers.cpp
+++ b/src/ESP32-HUB75-MatrixPanel-leddrivers.cpp
@@ -3,10 +3,11 @@
 
 */
 
+#include <driver/gpio.h>
+
 #ifdef ARDUINO_ARCH_ESP32
   #include <Arduino.h>
 #else
-    #include <driver/gpio.h>
     #define LOW 0
     #define HIGH 1
 #endif
diff --git a/src/platforms/esp32/esp32_i2s_parallel_dma.cpp b/src/platforms/esp32/esp32_i2s_parallel_dma.cpp
index 04d27a0..5db80bf 100644
--- a/src/platforms/esp32/esp32_i2s_parallel_dma.cpp
+++ b/src/platforms/esp32/esp32_i2s_parallel_dma.cpp
@@ -24,10 +24,17 @@ Modified heavily for the ESP32 HUB75 DMA library by:
 
 #include "esp32_i2s_parallel_dma.hpp"
 
+#if defined (CONFIG_IDF_TARGET_ESP32S2)
+  #pragma message "Compiling for ESP32-S2"
+#else
+  #pragma message "Compiling for original ESP32 (released 2016)"  
+#endif
+
 #include <driver/gpio.h>
-#include <driver/periph_ctrl.h>
+#include <esp_private/periph_ctrl.h>
 #include <soc/gpio_sig_map.h>
-#include <soc/i2s_periph.h>
+#include <soc/i2s_periph.h> //includes struct and reg
+
 
 #if defined (ARDUINO_ARCH_ESP32)
 #include <Arduino.h>
diff --git a/src/platforms/esp32/esp32_i2s_parallel_dma.hpp b/src/platforms/esp32/esp32_i2s_parallel_dma.hpp
index a8ab305..88a09e4 100644
--- a/src/platforms/esp32/esp32_i2s_parallel_dma.hpp
+++ b/src/platforms/esp32/esp32_i2s_parallel_dma.hpp
@@ -43,10 +43,12 @@ Original Source:
 
 #include <sys/types.h>
 #include <freertos/FreeRTOS.h>
-#include <driver/i2s.h>
-#include <soc/i2s_struct.h>
+//#include <driver/i2s.h>
 #include <rom/lldesc.h>
 #include <rom/gpio.h>
+#include <driver/i2s_types.h> //includes struct and reg
+#include <soc/i2s_periph.h> //includes struct and reg
+
 
 #define DMA_MAX (4096-4)
 
diff --git a/src/platforms/esp32s3/gdma_lcd_parallel16.cpp b/src/platforms/esp32s3/gdma_lcd_parallel16.cpp
index 251709f..7bb390d 100644
--- a/src/platforms/esp32s3/gdma_lcd_parallel16.cpp
+++ b/src/platforms/esp32s3/gdma_lcd_parallel16.cpp
@@ -18,6 +18,7 @@
  ********************************************************************************************/
 #if __has_include (<hal/lcd_ll.h>)
 // Stop compile errors: /src/platforms/esp32s3/gdma_lcd_parallel16.hpp:64:10: fatal error: hal/lcd_ll.h: No such file or directory
+  #pragma message "Compiling for ESP32-S3"
 
   #ifdef ARDUINO_ARCH_ESP32
      #include <Arduino.h>
diff --git a/src/platforms/platform_detect.hpp b/src/platforms/platform_detect.hpp
index 9b44356..9532c88 100644
--- a/src/platforms/platform_detect.hpp
+++ b/src/platforms/platform_detect.hpp
@@ -28,14 +28,14 @@ Modified heavily for the ESP32 HUB75 DMA library by:
 
  #elif defined (CONFIG_IDF_TARGET_ESP32S2)
 
-  #pragma message "Compiling for ESP32-S2"
+  //#pragma message "Compiling for ESP32-S2"
   #include "esp32/esp32_i2s_parallel_dma.hpp"  
   #include "esp32s2/esp32s2-default-pins.hpp"  
 
 
  #elif defined (CONFIG_IDF_TARGET_ESP32S3)
   
-  #pragma message "Compiling for ESP32-S3"
+  //#pragma message "Compiling for ESP32-S3"
   #include "esp32s3/gdma_lcd_parallel16.hpp"
   #include "esp32s3/esp32s3-default-pins.hpp"