Uno r4 Wifi gives <util\delay> not found error with SSH1106 display

That line isn't really the issue. It is trivial to disable the #include directive, as was already done for the ATSAM3X8E-based boards (e.g., Due) in the library code. It doesn't appear that the declarations from that header are even referenced by the code so there isn't any side effect from its disabling.

Unfortunately, as KurtE already noted, fixing that problem only gets you to the next problems caused by incompatibilities in other parts of the code. For example, if I compile this sketch for the UNO R4 WiFi after disabling that #include directive:

#include <Adafruit_SH1106.h>
void setup() {}
void loop() {}

Compilation fails:

In file included from C:\Users\per\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.0.2\libraries\Wire/Wire.h:23:0,
                 from c:\Users\per\Documents\Arduino\libraries\Adafruit_SH1106-master\Adafruit_SH1106.cpp:35:
c:\Users\per\Documents\Arduino\libraries\Adafruit_SH1106-master\Adafruit_SH1106.cpp: In member function 'void Adafruit_SH1106::begin(uint8_t, uint8_t, bool)':
C:\Users\per\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.0.2\cores\arduino/Arduino.h:76:92: error: cannot convert 'volatile uint16_t* {aka volatile short unsigned int*}' to 'PortReg* {aka volatile unsigned char*}' in assignment
 #define portOutputRegister(port)    &(((R_PORT0_Type *)IOPORT_PRV_PORT_ADDRESS(port))->PODR)
                                                                                            ^
c:\Users\per\Documents\Arduino\libraries\Adafruit_SH1106-master\Adafruit_SH1106.cpp:179:19: note: in expansion of macro 'portOutputRegister'
     csport      = portOutputRegister(digitalPinToPort(cs));
                   ^~~~~~~~~~~~~~~~~~
C:\Users\per\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.0.2\cores\arduino/Arduino.h:76:92: error: cannot convert 'volatile uint16_t* {aka volatile short unsigned int*}' to 'PortReg* {aka volatile unsigned char*}' in assignment
 #define portOutputRegister(port)    &(((R_PORT0_Type *)IOPORT_PRV_PORT_ADDRESS(port))->PODR)
                                                                                            ^
c:\Users\per\Documents\Arduino\libraries\Adafruit_SH1106-master\Adafruit_SH1106.cpp:181:19: note: in expansion of macro 'portOutputRegister'
     dcport      = portOutputRegister(digitalPinToPort(dc));
                   ^~~~~~~~~~~~~~~~~~
C:\Users\per\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.0.2\cores\arduino/Arduino.h:76:92: error: cannot convert 'volatile uint16_t* {aka volatile short unsigned int*}' to 'PortReg* {aka volatile unsigned char*}' in assignment
 #define portOutputRegister(port)    &(((R_PORT0_Type *)IOPORT_PRV_PORT_ADDRESS(port))->PODR)
                                                                                            ^
c:\Users\per\Documents\Arduino\libraries\Adafruit_SH1106-master\Adafruit_SH1106.cpp:187:21: note: in expansion of macro 'portOutputRegister'
       clkport     = portOutputRegister(digitalPinToPort(sclk));
                     ^~~~~~~~~~~~~~~~~~
C:\Users\per\AppData\Local\Arduino15\packages\arduino\hardware\renesas_uno\1.0.2\cores\arduino/Arduino.h:76:92: error: cannot convert 'volatile uint16_t* {aka volatile short unsigned int*}' to 'PortReg* {aka volatile unsigned char*}' in assignment
 #define portOutputRegister(port)    &(((R_PORT0_Type *)IOPORT_PRV_PORT_ADDRESS(port))->PODR)
                                                                                            ^
c:\Users\per\Documents\Arduino\libraries\Adafruit_SH1106-master\Adafruit_SH1106.cpp:189:21: note: in expansion of macro 'portOutputRegister'
       mosiport    = portOutputRegister(digitalPinToPort(sid));
                     ^~~~~~~~~~~~~~~~~~
c:\Users\per\Documents\Arduino\libraries\Adafruit_SH1106-master\Adafruit_SH1106.cpp:197:11: error: 'class arduino::ArduinoSPI' has no member named 'setClockDivider'
       SPI.setClockDivider (SPI_CLOCK_DIV2); // 8 MHz
           ^~~~~~~~~~~~~~~
c:\Users\per\Documents\Arduino\libraries\Adafruit_SH1106-master\Adafruit_SH1106.cpp:197:28: error: 'SPI_CLOCK_DIV2' was not declared in this scope
       SPI.setClockDivider (SPI_CLOCK_DIV2); // 8 MHz
                            ^~~~~~~~~~~~~~
c:\Users\per\Documents\Arduino\libraries\Adafruit_SH1106-master\Adafruit_SH1106.cpp:197:28: note: suggested alternative: 'AGT_CLOCK_P402'
       SPI.setClockDivider (SPI_CLOCK_DIV2); // 8 MHz
                            ^~~~~~~~~~~~~~
                            AGT_CLOCK_P402
c:\Users\per\Documents\Arduino\libraries\Adafruit_SH1106-master\Adafruit_SH1106.cpp: In member function 'void Adafruit_SH1106::display()':
c:\Users\per\Documents\Arduino\libraries\Adafruit_SH1106-master\Adafruit_SH1106.cpp:551:28: error: 'TWBR' was not declared in this scope
       uint8_t twbrbackup = TWBR;
                            ^~~~

exit status 1

Compilation error: exit status 1
2 Likes