how to initialize SD1289 LCD TFT?
I didn't spent a lot of time reading datasheet that you pointed, but I noticed some points which doesn't fit to your code. 


Are you sure you have good communication with SD1289? Please try to read IR register (0x00). According to datasheet (p.27) it should gives you value 0x8989. It's device ID.
If you don't get this value, that means you don't have good connection with device and init procedure will not be performed.
If you able to read device ID, check if writing also works. Write something, then read it and compare. For test you can use 0x4F register (Set GDDRAM Y addr)
In my opinion it seems that your read/write functions are incomplete. Please look at page 21. Pin E is used as clock signal for MPU parallel interface. In your functions I see only R/W#, CS# and D/C# (you called it RS?) signals. I don't see the clock.
Another issue is data width. You are writing/reading 16 bits (probably) while interface is 18-bit. Have you set remaining 2 bits to any defined value?
Initialization sequence - it looks bit different in datasheet than in your code. Please refer to page 72. _ 1st step in manual - Reg 0x07 = 0x0021, and you starting OSC, and then writing 0x0023 to R0x07.