From c3192f589131d9466a8dcd1c6107aafd9152b452 Mon Sep 17 00:00:00 2001
From: Rodrigo Garcia <rodrigo.garcia@espressif.com>
Date: Sat, 16 Jul 2022 18:26:59 -0300
Subject: [PATCH] Fixes Arduino Wire::begin overload

---
 cores/esp32/esp32-hal-i2c.c |  1 +
 libraries/Wire/src/Wire.h   | 17 +++++++++++++++--
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/cores/esp32/esp32-hal-i2c.c b/cores/esp32/esp32-hal-i2c.c
index f01b501a020..4538a7ef076 100644
--- a/cores/esp32/esp32-hal-i2c.c
+++ b/cores/esp32/esp32-hal-i2c.c
@@ -72,6 +72,7 @@ esp_err_t i2cInit(uint8_t i2c_num, int8_t sda, int8_t scl, uint32_t frequency){
     } else if(frequency > 1000000UL){
         frequency = 1000000UL;
     }
+    log_i("Initialising I2C Master: sda=%d scl=%d freq=%d", sda, scl, frequency);
 
     i2c_config_t conf = { };
     conf.mode = I2C_MODE_MASTER;
diff --git a/libraries/Wire/src/Wire.h b/libraries/Wire/src/Wire.h
index ca048bb16c4..3d028f3c3d5 100644
--- a/libraries/Wire/src/Wire.h
+++ b/libraries/Wire/src/Wire.h
@@ -76,8 +76,21 @@ class TwoWire: public Stream
     //call setPins() first, so that begin() can be called without arguments from libraries
     bool setPins(int sda, int scl);
     
-    bool begin(int sda=-1, int scl=-1, uint32_t frequency=0); // returns true, if successful init of i2c bus
-    bool begin(uint8_t slaveAddr, int sda=-1, int scl=-1, uint32_t frequency=0);
+    bool begin(int sda, int scl, uint32_t frequency=0); // returns true, if successful init of i2c bus
+    bool begin(uint8_t slaveAddr, int sda, int scl, uint32_t frequency);
+    // Explicit Overload for Arduino MainStream API compatibility
+    inline bool begin()
+    {
+        return begin(-1, -1, static_cast<uint32_t>(0));
+    }
+    inline bool begin(uint8_t addr)
+    {
+        return begin(addr, -1, -1, 0);
+    }
+    inline bool begin(int addr)
+    {
+        return begin(static_cast<uint8_t>(addr), -1, -1, 0);
+    }
     bool end();
 
     void setTimeOut(uint16_t timeOutMillis); // default timeout of i2c transactions is 50ms