TLE6220 SPI issue

Hello,

ive been playing around with some ics, i plan to use for a project and require help if some one would be kind enough to helpme.
Im using these TLE6220 quad lowside switches.
http://www.infineon.com/dgdl/Infineon-TLE6220GP-DS-v02_02-en.pdf?fileId=db3a30431b3e89eb011bb6330f97065c

From the data sheet ;
MSB LSB
123 123 ControlBits Data Bits
CCCC DDDD : Serial input byte

I think my issue is that when SPI.transfer(B00001111); the first bit is being lost some where, so it would be SPI.transfer(B00011110); I’ve had to put a small cap in the SI line as it would only work with my finger on the icsp port. i just guessed it was a speed issue.

Sorry if this is a repetition of a previous post i might of been asking google the wrong questions.

What am i missing? (Im a newbie so i do lack allot of knowledge so be kind please.)

This is the code im testing its with;

include <SPI.h>

const int slaveSelectPin = 53;

void setup() {
Serial.begin(9600);
pinMode (slaveSelectPin, OUTPUT);
SPI.beginTransaction(SPISettings(4000000, MSBFIRST, SPI_MODE0));
SPI.begin();

}

void loop() {

digitalWrite(slaveSelectPin, LOW);
SPI.transfer(B11111111);
digitalWrite(slaveSelectPin, HIGH);
Serial.println(11111111);
delay(1000);

digitalWrite(slaveSelectPin, LOW);
SPI.transfer(B00010000);
digitalWrite(slaveSelectPin, HIGH);
Serial.println(00010000);
delay(100);

digitalWrite(slaveSelectPin, LOW);
SPI.transfer(B00011000);
digitalWrite(slaveSelectPin, HIGH);
Serial.println(00011000);
delay(100);

digitalWrite(slaveSelectPin, LOW);
SPI.transfer(B00011100);
digitalWrite(slaveSelectPin, HIGH);
Serial.println(00011100);
delay(100);

digitalWrite(slaveSelectPin, LOW);
SPI.transfer(B00011110);
digitalWrite(slaveSelectPin, HIGH);
Serial.println(00011110);
delay(100);

}