Touch abilities on my TFT Display are not working

Hi Guys so as you know I'm still working hard on getting this TFT display to do what I want. I have the ST7796S Display. And people have mentioned before that I should keep trying to use the TFT_eSPI library. So I'm doing so right now, I'm currently having trouble in calibrating my machine. As you know I have an arduino uno rev4 with WiFi which is still quite a new board.
And I've had problems in the past with this display especially when it came to the clock speed for the device. Thankfully after grinding many hours into finding the problem I was able to print things out onto the screen.

My next step was to add touch features where you can press a button and gain information back. But the touch feature was not working for some reason. I looked through multiple documentations and went across this example where you can do a calibrations test. So I did that, here is the following code that I did:

void setup() {
  // Use serial port
  Serial.begin(115200);

  // Initialise the TFT screen
  tft.init();

  tft.setRotation(1);

  touch_calibrate();

/*
  // Replace above line with the code sent to Serial Monitor
  // once calibration is complete, e.g.:
  uint16_t calData[5] = { 286, 3534, 283, 3600, 6 };
  tft.setTouch(calData);
*/

  // Clear the screen
  tft.fillScreen(TFT_BLACK);
  tft.drawCentreString("Touch screen to test!",tft.width()/2, tft.height()/2, 2);
}

//------------------------------------------------------------------------------------------

void loop(void) {
  uint16_t x = 0, y = 0; // To store the touch coordinates

  // Pressed will be set true is there is a valid touch on the screen
  bool pressed = tft.getTouch(&x, &y);

  // Draw a white spot at the detected coordinates
  if (pressed) {
    tft.fillCircle(x, y, 2, TFT_WHITE);
    //Serial.print("x,y = ");
    //Serial.print(x);
    //Serial.print(",");
    //Serial.println(y);
  }
}

//------------------------------------------------------------------------------------------

// Code to run a screen calibration, not needed when calibration values set in setup()
void touch_calibrate()
{
  uint16_t calData[5];
  uint8_t calDataOK = 0;

  // Calibrate
  tft.fillScreen(TFT_BLACK);
  tft.setCursor(20, 0);
  tft.setTextFont(2);
  tft.setTextSize(1);
  tft.setTextColor(TFT_WHITE, TFT_BLACK);

  tft.println("Touch corners as indicated");

  tft.setTextFont(1);
  tft.println();

  tft.calibrateTouch(calData, TFT_MAGENTA, TFT_BLACK, 15);

  Serial.println(); Serial.println();
  Serial.println("// Use this calibration code in setup():");
  Serial.print("  uint16_t calData[5] = ");
  Serial.print("{ ");

  for (uint8_t i = 0; i < 5; i++)
  {
    Serial.print(calData[i]);
    if (i < 4) Serial.print(", ");
  }

  Serial.println(" };");
  Serial.print("  tft.setTouch(calData);");
  Serial.println(); Serial.println();

  tft.fillScreen(TFT_BLACK);
  
  tft.setTextColor(TFT_GREEN, TFT_BLACK);
  tft.println("Calibration complete!");
  tft.println("Calibration code sent to Serial port.");

  delay(4000);
}

while trying to run the calibration I was still not able to get anything through the serial port, meaning for some reason I am unable to connect to the screen.

Within the User_Setup.h this was how I set up my board:

// Can use Ardiuno pin references, arbitrary allocation, TFT_eSPI controls chip select
#define TFT_CS        10
#define TFT_DC         9
#define TFT_RST        8

#define TFT_SCLK      13
#define TFT_MISO      12
#define TFT_MOSI      11

//for touch
#define TOUCH_CS      5
#define TOUCH_CLK     6
#define TOUCH_DIN     4
#define TOUCH_DOUT    3

I really don't know what else to do. I was able to use the touch before when I used this separate library but since I'm now using TFT_eSPI it's not working. I don't know what else to do.

Update, so I did the diagnostics test for touch with the following code:

void setup(void) {
  Serial.begin(115200);
  Serial.println("\n\nStarting...");

  tft.init();
}

//====================================================================

void loop() {

  uint16_t x, y;

  tft.getTouchRaw(&x, &y);
  
  Serial.printf("x: %i     ", x);

  Serial.printf("y: %i     ", y);

  Serial.printf("z: %i \n", tft.getTouchRawZ());

  delay(250);

}

And the only thing I am getting are zeros meaning that the touch screen isn't detecting any input. which also means it has to do with how I set up the touch within user_setup. But the problem with that is I thought I did it right because each of the touch pins are connected in a way where it worked for another library. So I am still stuck in where I need to look or how I should go about this.

The touch screen has an SPI interface, I assume? If that is indeed the case why aren't you using the hardware SPI pins?

Nope. New thread, new audience.