SC16IS750 SPI connection and receiving no output

Hello,

I want to send data via the SPI to the SC160IS750 and get the data back via UART.
This is my current connection:

I2C/SPI - GND
A0/CS - PIN 10
A1/SI - MISO PIN 12
NC/SO - MOSI PIN 11
SCL-SCK - PIN 13
SDA - VSS - GND
VIN - 3.3v ARDUINO
IRQ - Vdd with 1k resitor.

TX - FTDI RX
GND - FTDI GND with Arduino
Hardware: http://www.sparkfun.com/products/9981

I am currently having trouble looking at the data in the output of the the breakout board…nothing is coming out. Here is my code:

#include <SPI.h>
const int  cs=10; //chip select 
char data;
// SC16IS750 Register definitions
// TODO: Don't bit shift these here, do it in the read/write register routines
//NOTE:In the spi mode, SDA / VSS pin is not connected to the power
#define THR        0x00 << 3
#define RHR        0x00 << 3
#define IER        0x01 << 3
#define FCR        0x02 << 3
#define IIR        0x02 << 3
#define LCR        0x03 << 3
#define MCR        0x04 << 3
#define LSR        0x05 << 3
#define MSR        0x06 << 3
#define SPR        0x07 << 3
#define TXLVL      0x08 << 3
#define RXLVL      0x09 << 3
#define DLAB       0x80 << 3
#define IODIR      0x0A << 3
#define IOSTATE    0x0B << 3
#define IOINTMSK   0x0C << 3
#define IOCTRL     0x0E << 3
#define EFCR       0x0F << 3

#define DLL        0x00 << 3
#define DLM        0x01 << 3
#define EFR        0x02 << 3
#define XON1       0x04 << 3  
#define XON2       0x05 << 3
#define XOFF1      0x06 << 3
#define XOFF2      0x07 << 3

void setup() {
  SPI.begin();
  Serial.begin(9600);
  
  SPI_Uart_Init();
  SPI_Uart_Init();
  SPI_Uart_Init();
  
  if (SPI_Uart_Init())
  {
	Serial.println("SPI_UART initialized successfully!");
  }
  else
  {
	Serial.println("Could not initialize!!!");
	while(1);
  }
  /*SPI_Uart_Init();
  SPI_Uart_Init();
  SPI_Uart_Init();
  SPI_Uart_Init();
  SPI_Uart_Init();            //Initialized twice or more, otherwise the initialization is not successful
  */
}

void select(void)
{
  digitalWrite(cs,LOW);
}

void deselect(void)
{
  digitalWrite(cs,HIGH);
}

char spi_transfer(volatile char data)
{
  SPDR = data;                    // Start the transmission
  while (!(SPSR & (1<<SPIF)))     // Wait for the end of the transmission
  {
  };
  return SPDR;                    // return the received byte
}

long int SPI_Write(char* srcptr, long int length)
// Write string to SC16IS750
{
  for(long int i = 0; i < length; i++)
  {
    spi_transfer(srcptr[i]);
  }
  return length; 
}

char SPI_Uart_ReadByte(char address)
// Read from SC16IS750 register at <address>
{
  char data;

  address = (address | 0x80);

  select();
  spi_transfer(address);
  data = spi_transfer(0xFF);
  deselect();
  return data;  
}

/*void SPI_Uart_WriteArray(char *data, long int NumBytes)
// Write array to SC16IS750 THR
{
  long int length;
  select();
  length = SPI_Write(&TX_Fifo_Address,1);

  while(NumBytes > 16)
  {
    length = SPI_Write(data,16);
    NumBytes -= 16;
    data += 16;
  }
  length = SPI_Write(data,NumBytes);

  deselect();
}*/

void SPI_Uart_WriteByte(char address, char data)
// Write <data> to SC16IS750 register at <address>
{
  long int length;
  char senddata[2];
  senddata[0] = address;
  senddata[1] = data;

  select();
  length = SPI_Write(senddata, 2);
  deselect();
}

void loop() { 
  
  //read
  digitalWrite(cs, LOW);                      
  SPI.transfer(RHR|0x80);
  data=SPI.transfer(0xff);               
  digitalWrite(cs, HIGH);
  //delay(1000);
  Serial.println(data);
  
  //write
  digitalWrite(cs, LOW);                     
  SPI.transfer(THR);
  SPI.transfer(data); 
  digitalWrite(cs, HIGH);
  delay(1000);
 
}
//=====================================
int SPI_Uart_Init(){ 
     pinMode(cs,OUTPUT); // chip select
     // start the SPI library:
     SPI.begin();
     SPI.setBitOrder(MSBFIRST); 
     SPI.setDataMode(SPI_MODE0); 
     //set control register 
     digitalWrite(cs, LOW);  
     SPI.transfer(LCR);
     SPI.transfer(0x80); 
     digitalWrite(cs, HIGH);

     digitalWrite(cs, LOW);  
     SPI.transfer(DLL);
     SPI.transfer(0x60); 
     digitalWrite(cs, HIGH);

     digitalWrite(cs, LOW);  
     SPI.transfer(DLM);
     SPI.transfer(0x00); 
     digitalWrite(cs, HIGH);

     digitalWrite(cs, LOW);  
     SPI.transfer(LCR);
     SPI.transfer(0xbf); 
     digitalWrite(cs, HIGH);

     digitalWrite(cs, LOW);  
     SPI.transfer(EFR);
     SPI.transfer(0xd0); 
     digitalWrite(cs, HIGH);

     digitalWrite(cs, LOW);  
     SPI.transfer(LCR);
     SPI.transfer(0x03); 
     digitalWrite(cs, HIGH);

     digitalWrite(cs, LOW);  
     SPI.transfer(FCR);
     SPI.transfer(0x06); 
     digitalWrite(cs, HIGH);

     digitalWrite(cs, LOW);  
     SPI.transfer(FCR);
     SPI.transfer(0x01); 
     digitalWrite(cs, HIGH);
     
     // Perform read/write test to check if UART is working
    //write
    digitalWrite(cs, LOW);                     
    SPI.transfer(THR);
    SPI.transfer('H'); 
    digitalWrite(cs, HIGH);
    delay(1000);
    
     //read
    digitalWrite(cs, LOW);                      
    SPI.transfer(RHR|0x80);
    data=SPI.transfer(0xff);               
    digitalWrite(cs, HIGH);
    //delay(1000);
    Serial.print("Data received: ");
    Serial.println(data);

    
    if(data == 'H'){ 
      return 1; 
    }
    else { 
      return 0; 
    }
}
  SPI_Uart_Init();
  SPI_Uart_Init();
  SPI_Uart_Init();

Isn't once enough? Isn't once enough? Isn't once enough?

Links to the hardware?

I want to send data via the SPI to the SC160IS750 and get the data back via UART.

Why?

I want to receive the data via UART interface to connect other sensor which is UART and already run out of UART interface...