for Riverdi EVE-70

Dependents:   disp70 disp70

Revision:
10:6a81aeca25e3
Parent:
8:b5a41d1581ad
Child:
11:2f11d40f0f9a
--- a/src/FT_GPU_Hal.cpp	Thu Dec 22 20:19:22 2016 +0000
+++ b/src/FT_GPU_Hal.cpp	Mon Jul 23 12:22:23 2018 +0000
@@ -1,4 +1,4 @@
-/* mbed Library for FTDI FT800  Enbedded Video Engine "EVE"
+/* mbed Library for FTDI FT813  Enbedded Video Engine "EVE"
  * based on Original Code Sample from FTDI
  * ported to mbed by Peter Drescher, DC2PD 2014
  * Released under the MIT License: http://mbed.org/license/mit 
@@ -11,160 +11,165 @@
 #include "FT_LCD_Type.h"
 //Serial pc(USBTX, USBRX);
 
-FT800::FT800(PinName mosi,
+#define SPI_SPEED_START 10000000
+#define SPI_SPEED_AFTER 27000000
+
+FT813::FT813(PinName mosi,
             PinName miso,
             PinName sck,
             PinName ss,
             PinName intr,
             PinName pd)
-    :
-
-     _spi(mosi, miso, sck),
-     _ss(ss),
-     _pd(pd),
-     _f800_isr(InterruptIn(intr))
-     {
-         _spi.format(8,0);                  // 8 bit spi mode 0
-         _spi.frequency(1000000);          // start with 10 Mhz SPI clock
-         _ss = 1;                           // cs high
-         _pd = 1;                           // PD high
-         Bootup();
-     }
+:
+_spi(mosi, miso, sck),
+_ss(ss),
+_pd(pd),
+_f800_isr(InterruptIn(intr))
+{
+    _spi.format(8, 0);                  // 8 bit spi mode 0
+    _spi.frequency(SPI_SPEED_START);          // start with 10 Mhz SPI clock
+    _ss = 1;                           // cs high
+    _pd = 1;                           // PD high
+    Bootup();
+    _address = 0;
+    _bitmap_count = 0;
+    _bitmapCount = 0;
+    _bitmapAddress = 0;
+}
 
 
-ft_bool_t FT800::Bootup(void){
+ft_bool_t FT813::Bootup(void)
+{
 //    terminal.printf("Bootup() entered\r\n");
     Open();
 
     BootupConfig();
 
     return(1);
-    }
+}
 
 
-ft_void_t FT800::BootupConfig(void){
+ft_void_t FT813::BootupConfig(void)
+{
     ft_uint8_t chipid;
     /* Do a power cycle for safer side */
-    Powercycle( FT_TRUE);
+    Powercycle(FT_TRUE);
     /*
     7/8/16: Curt added the sleep delay below...
     */
 //  Sleep(30);
     
     /* Set the clk to external clock */
-    HostCommand( FT_GPU_EXTERNAL_OSC);
+    HostCommand(FT_GPU_EXTERNAL_OSC);
     Sleep(10);
     
-    /* Access address 0 to wake up the FT800 */
-    HostCommand( FT_GPU_ACTIVE_M);
+    /* Access address 0 to wake up the FT813 */
+    HostCommand(FT_GPU_ACTIVE_M);
     Sleep(500);
 
     /* Switch PLL output to 48MHz */
-//  HostCommand( FT_GPU_PLL_48M);
+    HostCommand(FT_GPU_PLL_48M);
     Sleep(10);
 
     /* Do a core reset for safer side */
-    HostCommand( FT_GPU_CORE_RESET);
+    HostCommand(FT_GPU_CORE_RESET);
     Sleep(500);
-    //Read Register ID to check if FT800 is ready.
-    chipid = Rd8(  REG_ID);
+    //Read Register ID to check if FT813 is ready.
+    chipid = Rd8(REG_ID);
 //  chipid = Rd8(0x0C0000);
-//    pc.printf("ID%08X\n", chipid);
+//    printf("ID1: 0x%08X\n", chipid);
     while(chipid != 0x7C)
-
+//    wait(1);
+//    printf("ID2: 0x%08X\n", chipid);
 
     // Speed up
-    _spi.frequency(30000000);           // 30 Mhz SPI clock DC
-//    _spi.frequency(20000000);           // 20 Mhz SPI clock DC
-//  _spi.frequency(12000000);           // 12 Mhz SPI clock
+//    _spi.frequency(50000000);           // 30 Mhz SPI clock DC
+    _spi.frequency(SPI_SPEED_AFTER);           // 20 Mhz SPI clock DC
+//    _spi.frequency(12000000);           // 12 Mhz SPI clock
     /* Configuration of LCD display */
     DispHCycle = my_DispHCycle;
-    Wr16(  REG_HCYCLE, DispHCycle);
+    Wr16(REG_HCYCLE, DispHCycle);
     DispHOffset = my_DispHOffset;
-    Wr16(  REG_HOFFSET, DispHOffset);
+    Wr16(REG_HOFFSET, DispHOffset);
     DispWidth = my_DispWidth;
-    Wr16(  REG_HSIZE, DispWidth);
+    Wr16(REG_HSIZE, DispWidth);
     DispHSync0 = my_DispHSync0;
-    Wr16(  REG_HSYNC0, DispHSync0);
+    Wr16(REG_HSYNC0, DispHSync0);
     DispHSync1 = my_DispHSync1;
-    Wr16(  REG_HSYNC1, DispHSync1);
+    Wr16(REG_HSYNC1, DispHSync1);
     DispVCycle = my_DispVCycle;
-    Wr16(  REG_VCYCLE, DispVCycle);
+    Wr16(REG_VCYCLE, DispVCycle);
     DispVOffset = my_DispVOffset;
-    Wr16(  REG_VOFFSET, DispVOffset);
+    Wr16(REG_VOFFSET, DispVOffset);
     DispHeight = my_DispHeight;
-    Wr16(  REG_VSIZE, DispHeight);
+    Wr16(REG_VSIZE, DispHeight);
     DispVSync0 = my_DispVSync0;
-    Wr16(  REG_VSYNC0, DispVSync0);
+    Wr16(REG_VSYNC0, DispVSync0);
     DispVSync1 = my_DispVSync1;
-    Wr16(  REG_VSYNC1, DispVSync1);
+    Wr16(REG_VSYNC1, DispVSync1);
     DispSwizzle = my_DispSwizzle;
-    Wr8(  REG_SWIZZLE, DispSwizzle);
+    Wr8(REG_SWIZZLE, DispSwizzle);
     DispPCLKPol = my_DispPCLKPol;
-    Wr8(  REG_PCLK_POL, DispPCLKPol);
-    Wr8(  REG_CSPREAD, 0);
+    Wr8(REG_PCLK_POL, DispPCLKPol);
+    Wr8(REG_CSPREAD, 0);
     DispPCLK = my_DispPCLK;
-    Wr8(  REG_PCLK, DispPCLK);//after this display is visible on the LCD
+    Wr8(REG_PCLK, DispPCLK);    // After this display is visible on the LCD
 
-    Wr16(  REG_PWM_HZ, 10000);
+    Wr16(REG_PWM_HZ, 10000);
 //#ifdef Inv_Backlite               // turn on backlite
-//    Wr16(  REG_PWM_DUTY, 0);
+//    Wr16(REG_PWM_DUTY, 0);
 //#else
-    Wr16(  REG_PWM_DUTY, 127);
+    Wr16(REG_PWM_DUTY, 255); // Brightness 127
 //#endif
-    Wr8(  REG_GPIO_DIR,0x82);  //| Rd8( REG_GPIO_DIR));
-    Wr8(  REG_GPIO,0x080);     //| Rd8( REG_GPIO));
+    Wr8(REG_GPIO_DIR, 0x82);  //| Rd8(REG_GPIO_DIR));
+    Wr8(REG_GPIO, 0x080);     //| Rd8(REG_GPIO));
 
-    Wr32(  RAM_DL, CLEAR(1,1,1));
-    Wr32(  RAM_DL+4, DISPLAY());
-    Wr32(  REG_DLSWAP,1);
+    Wr32(RAM_DL, CLEAR(1, 1, 1));
+    Wr32(RAM_DL+4, DISPLAY());
+    Wr32(REG_DLSWAP, 1);
 
-    Wr16(  REG_PCLK, DispPCLK);
+    Wr16(REG_PCLK, DispPCLK);
 
-    /* Touch configuration - configure the resistance value to 1200 - this value is specific to customer requirement and derived by experiment */
-//    Wr16(  REG_TOUCH_RZTHRESH,2400);
-    Wr16(  REG_TOUCH_RZTHRESH,0xFFFF);
-
+    /* Touch configuration - configure the resistance value to 1200 */
+    /* This value is specific to customer requirement and derived by experiment */
+//    Wr16(REG_TOUCH_RZTHRESH,2400);
+    Wr16(REG_TOUCH_RZTHRESH, 0xFFFF);
 }
 
-
-
 /* API to initialize the SPI interface */
-ft_bool_t  FT800::Init()
+ft_bool_t FT813::Init()
 {
-    // is done in constructor
+    // This is done in the constructor
     return 1;
 }
 
-
-ft_bool_t  FT800::Open()
+ft_bool_t FT813::Open()
 {
     cmd_fifo_wp = dl_buff_wp = 0;
     status = OPENED;
     return 1;
 }
 
-ft_void_t  FT800::Close( )
+ft_void_t FT813::Close()
 {
     status = CLOSED;
 }
 
-ft_void_t FT800::DeInit()
+ft_void_t FT813::DeInit()
 {
-
 }
 
 /*The APIs for reading/writing transfer continuously only with small buffer system*/
-ft_void_t  FT800::StartTransfer( FT_GPU_TRANSFERDIR_T rw,ft_uint32_t addr)
+ft_void_t FT813::StartTransfer(FT_GPU_TRANSFERDIR_T rw, ft_uint32_t addr)
 {
-    if (FT_GPU_READ == rw){
+    if (FT_GPU_READ == rw) {
         _ss = 0;       // cs low
         _spi.write(addr >> 16);
         _spi.write(addr >> 8);
         _spi.write(addr & 0xff);
         _spi.write(0); //Dummy Read Byte
         status = READING;
-    }else{
+    } else {
         _ss = 0;       // cs low
         _spi.write(0x80 | (addr >> 16));
         _spi.write(addr >> 8);
@@ -175,110 +180,131 @@
 
 
 /*The APIs for writing transfer continuously only*/
-ft_void_t  FT800::StartCmdTransfer( FT_GPU_TRANSFERDIR_T rw, ft_uint16_t count)
+ft_void_t FT813::StartCmdTransfer(FT_GPU_TRANSFERDIR_T rw, ft_uint16_t count)
 {
-    StartTransfer( rw, cmd_fifo_wp + RAM_CMD);
+    StartTransfer(rw, cmd_fifo_wp + RAM_CMD);
 }
 
-ft_uint8_t  FT800::TransferString( const ft_char8_t *string)
+ft_uint8_t FT813::TransferString(const ft_char8_t *string)
 {
     ft_uint16_t length = strlen(string);
-    while(length --){
-       Transfer8( *string);
-       string ++;
+    while(length --) {
+       Transfer8(*string);
+       string++;
     }
     //Append one null as ending flag
-    Transfer8( 0);
+    Transfer8(0);
     return(1);
 }
 
 
-ft_uint8_t  FT800::Transfer8( ft_uint8_t value)
+ft_uint8_t FT813::Transfer8(ft_uint8_t value)
 {
         return _spi.write(value);
 }
 
 
-ft_uint16_t  FT800::Transfer16( ft_uint16_t value)
+ft_uint16_t FT813::Transfer16(ft_uint16_t value)
 {
     ft_uint16_t retVal = 0;
 
-        if (status == WRITING){
-        Transfer8( value & 0xFF);//LSB first
-        Transfer8( (value >> 8) & 0xFF);
-    }else{
-        retVal = Transfer8( 0);
-        retVal |= (ft_uint16_t)Transfer8( 0) << 8;
+        if (status == WRITING) {
+        Transfer8(value & 0xFF);//LSB first
+        Transfer8((value >> 8) & 0xFF);
+    } else {
+        retVal = Transfer8(0);
+        retVal |= (ft_uint16_t)Transfer8(0) << 8;
     }
 
     return retVal;
 }
 
-ft_uint32_t  FT800::Transfer32( ft_uint32_t value)
+ft_uint32_t FT813::Transfer32(ft_uint32_t value)
 {
     ft_uint32_t retVal = 0;
-    if (status == WRITING){
-        Transfer16( value & 0xFFFF);//LSB first
-        Transfer16( (value >> 16) & 0xFFFF);
-    }else{
-        retVal = Transfer16( 0);
-        retVal |= (ft_uint32_t)Transfer16( 0) << 16;
+    if (status == WRITING) {
+        Transfer16(value & 0xFFFF);//LSB first
+        Transfer16((value >> 16) & 0xFFFF);
+    } else {
+        retVal = Transfer16(0);
+        retVal |= (ft_uint32_t)Transfer16(0) << 16;
     }
     return retVal;
 }
 
-ft_void_t   FT800::EndTransfer( )
+ft_void_t FT813::EndTransfer()
 {
     _ss = 1;
     status = OPENED;
 }
 
-
-ft_uint8_t  FT800::Rd8( ft_uint32_t addr)
+ft_uint8_t FT813::Rd8(ft_uint32_t addr)
 {
     ft_uint8_t value;
-    StartTransfer( FT_GPU_READ,addr);
-    value = Transfer8( 0);
-    EndTransfer( );
+    StartTransfer(FT_GPU_READ, addr);
+    value = Transfer8(0);
+    EndTransfer();
     return value;
 }
-ft_uint16_t FT800::Rd16( ft_uint32_t addr)
+
+ft_uint16_t FT813::Rd16(ft_uint32_t addr)
 {
     ft_uint16_t value;
-    StartTransfer( FT_GPU_READ,addr);
-    value = Transfer16( 0);
-    EndTransfer( );
+    StartTransfer(FT_GPU_READ, addr);
+    value = Transfer16(0);
+    EndTransfer();
     return value;
 }
-ft_uint32_t FT800::Rd32( ft_uint32_t addr)
+
+ft_uint32_t FT813::Rd32(ft_uint32_t addr)
 {
     ft_uint32_t value;
-    StartTransfer( FT_GPU_READ,addr);
-    value = Transfer32( 0);
-    EndTransfer( );
+    StartTransfer(FT_GPU_READ, addr);
+    value = Transfer32(0);
+    EndTransfer();
     return value;
 }
 
-ft_void_t FT800::Wr8( ft_uint32_t addr, ft_uint8_t v)
-{
-    StartTransfer( FT_GPU_WRITE,addr);
-    Transfer8( v);
-    EndTransfer( );
-}
-ft_void_t FT800::Wr16( ft_uint32_t addr, ft_uint16_t v)
+ft_void_t FT813::Wr8(ft_uint32_t addr, ft_uint8_t v)
 {
-    StartTransfer( FT_GPU_WRITE,addr);
-    Transfer16( v);
-    EndTransfer( );
-}
-ft_void_t FT800::Wr32( ft_uint32_t addr, ft_uint32_t v)
-{
-    StartTransfer( FT_GPU_WRITE,addr);
-    Transfer32( v);
-    EndTransfer( );
+//    StartTransfer(FT_GPU_WRITE, addr);
+//    if (FT_GPU_READ == rw) {  // if (FT_GPU_READ == FT_GPU_WRITE)
+//        _ss = 0;       // cs low
+//        _spi.write(addr >> 16);
+//        _spi.write(addr >> 8);
+//        _spi.write(addr & 0xff);
+//        _spi.write(0); //Dummy Read Byte
+//        status = READING;
+//    } else {
+        _ss = 0;       // cs low
+        _spi.write(0x80 | (addr >> 16));
+        _spi.write(addr >> 8);
+        _spi.write(addr & 0xff);
+        status = WRITING;
+//    }
+
+//    Transfer8(v);
+    _spi.write(v);
+//    EndTransfer();
+    _ss = 1;
+    status = OPENED;
 }
 
-ft_void_t FT800::HostCommand( ft_uint8_t cmd)
+ft_void_t FT813::Wr16(ft_uint32_t addr, ft_uint16_t v)
+{
+    StartTransfer(FT_GPU_WRITE, addr);
+    Transfer16(v);
+    EndTransfer();
+}
+
+ft_void_t FT813::Wr32(ft_uint32_t addr, ft_uint32_t v)
+{
+    StartTransfer(FT_GPU_WRITE, addr);
+    Transfer32(v);
+    EndTransfer();
+}
+
+ft_void_t FT813::HostCommand(ft_uint8_t cmd)
 {
   _ss = 0;
   _spi.write(cmd);
@@ -287,247 +313,236 @@
   _ss = 1;
 }
 
-ft_void_t FT800::ClockSelect( FT_GPU_PLL_SOURCE_T pllsource)
+ft_void_t FT813::ClockSelect(FT_GPU_PLL_SOURCE_T pllsource)
 {
-   HostCommand( pllsource);
+   HostCommand(pllsource);
 }
 
-ft_void_t FT800::PLL_FreqSelect( FT_GPU_PLL_FREQ_T freq)
+ft_void_t FT813::PLL_FreqSelect(FT_GPU_PLL_FREQ_T freq)
 {
-   HostCommand( freq);
+   HostCommand(freq);
 }
 
-ft_void_t FT800::PowerModeSwitch( FT_GPU_POWER_MODE_T pwrmode)
+ft_void_t FT813::PowerModeSwitch(FT_GPU_POWER_MODE_T pwrmode)
 {
-   HostCommand( pwrmode);
+   HostCommand(pwrmode);
 }
 
-ft_void_t FT800::CoreReset( )
+ft_void_t FT813::CoreReset()
 {
-   HostCommand( 0x68);
+   HostCommand(0x68);
 }
 
-
-ft_void_t FT800::Updatecmdfifo( ft_uint16_t count)
+ft_void_t FT813::Updatecmdfifo(ft_uint16_t count)
 {
-     cmd_fifo_wp  = ( cmd_fifo_wp + count) & 4095;
+     cmd_fifo_wp  = (cmd_fifo_wp + count) & 4095;
     //4 byte alignment
-     cmd_fifo_wp = ( cmd_fifo_wp + 3) & 0xffc;
-    Wr16( REG_CMD_WRITE, cmd_fifo_wp);
+     cmd_fifo_wp = (cmd_fifo_wp + 3) & 0xffc;
+    Wr16(REG_CMD_WRITE, cmd_fifo_wp);
 }
 
-
-ft_uint16_t FT800::fifo_Freespace( )
+ft_uint16_t FT813::fifo_Freespace()
 {
     ft_uint16_t fullness,retval;
 
-    fullness = ( cmd_fifo_wp - Rd16( REG_CMD_READ)) & 4095;
+    fullness = (cmd_fifo_wp - Rd16(REG_CMD_READ)) & 4095;
     retval = (FT_CMD_FIFO_SIZE - 4) - fullness;
     return (retval);
 }
 
-ft_void_t FT800::WrCmdBuf( ft_uint8_t *buffer,ft_uint16_t count)
+ft_void_t FT813::WrCmdBuf(ft_uint8_t *buffer, ft_uint16_t count)
 {
     ft_uint32_t length =0, SizeTransfered = 0;
 
-#define MAX_CMD_FIFO_TRANSFER   fifo_Freespace( )
+#define MAX_CMD_FIFO_TRANSFER   fifo_Freespace()
     do {
         length = count;
-        if (length > MAX_CMD_FIFO_TRANSFER){
+        if (length > MAX_CMD_FIFO_TRANSFER) {
             length = MAX_CMD_FIFO_TRANSFER;
         }
-                CheckCmdBuffer( length);
+        CheckCmdBuffer(length);
 
-                StartCmdTransfer( FT_GPU_WRITE,length);
+        StartCmdTransfer(FT_GPU_WRITE, length);
 
-                SizeTransfered = 0;
+        SizeTransfered = 0;
         while (length--) {
-                    Transfer8( *buffer);
-                    buffer++;
-                    SizeTransfered ++;
+//            Transfer8(*buffer);
+            _spi.write(*buffer);
+            buffer++;
+            SizeTransfered++;
         }
-                length = SizeTransfered;
+        length = SizeTransfered;
 
-        EndTransfer( );
-        Updatecmdfifo( length);
+        EndTransfer();
+        Updatecmdfifo(length);
 
-        WaitCmdfifo_empty( );
+        WaitCmdfifo_empty();
 
         count -= length;
-    }while (count > 0);
+    } while (count > 0);
 }
 
-
-ft_void_t FT800::WrCmdBufFromFlash( FT_PROGMEM ft_prog_uchar8_t *buffer,ft_uint16_t count)
+ft_void_t FT813::WrCmdBufFromFlash(FT_PROGMEM ft_prog_uchar8_t *buffer, ft_uint16_t count)
 {
     ft_uint32_t length =0, SizeTransfered = 0;
 
-#define MAX_CMD_FIFO_TRANSFER   fifo_Freespace( )
+#define MAX_CMD_FIFO_TRANSFER   fifo_Freespace()
     do {
         length = count;
-        if (length > MAX_CMD_FIFO_TRANSFER){
+        if (length > MAX_CMD_FIFO_TRANSFER) {
             length = MAX_CMD_FIFO_TRANSFER;
         }
-                CheckCmdBuffer( length);
+        CheckCmdBuffer(length);
 
-                StartCmdTransfer( FT_GPU_WRITE,length);
+        StartCmdTransfer(FT_GPU_WRITE,length);
 
-
-                SizeTransfered = 0;
+        SizeTransfered = 0;
         while (length--) {
-                    Transfer8( ft_pgm_read_byte_near(buffer));
+            Transfer8(ft_pgm_read_byte_near(buffer));
             buffer++;
-                    SizeTransfered ++;
+            SizeTransfered++;
         }
-                length = SizeTransfered;
+        length = SizeTransfered;
 
-                EndTransfer( );
-        Updatecmdfifo( length);
+        EndTransfer();
+        Updatecmdfifo(length);
 
-        WaitCmdfifo_empty( );
+        WaitCmdfifo_empty();
 
         count -= length;
-    }while (count > 0);
+    } while (count > 0);
 }
 
-
-ft_void_t FT800::CheckCmdBuffer( ft_uint16_t count)
+ft_void_t FT813::CheckCmdBuffer(ft_uint16_t count)
 {
    ft_uint16_t getfreespace;
-   do{
-        getfreespace = fifo_Freespace( );
-   }while(getfreespace < count);
+   do {
+        getfreespace = fifo_Freespace();
+   } while(getfreespace < count);
 }
 
-ft_void_t FT800::WaitCmdfifo_empty( )
+ft_void_t FT813::WaitCmdfifo_empty()
 {
-   while(Rd16( REG_CMD_READ) != Rd16( REG_CMD_WRITE));
+   while(Rd16(REG_CMD_READ) != Rd16(REG_CMD_WRITE));
 
-    cmd_fifo_wp = Rd16( REG_CMD_WRITE);
+    cmd_fifo_wp = Rd16(REG_CMD_WRITE);
 }
 
-ft_void_t FT800::WaitLogo_Finish( )
+ft_void_t FT813::WaitLogo_Finish()
 {
-    ft_int16_t cmdrdptr,cmdwrptr;
+    ft_int16_t cmdrdptr, cmdwrptr;
 
-    do{
-         cmdrdptr = Rd16( REG_CMD_READ);
-         cmdwrptr = Rd16( REG_CMD_WRITE);
-    }while ((cmdwrptr != cmdrdptr) || (cmdrdptr != 0));
-     cmd_fifo_wp = 0;
+    do {
+         cmdrdptr = Rd16(REG_CMD_READ);
+         cmdwrptr = Rd16(REG_CMD_WRITE);
+    } while ((cmdwrptr != cmdrdptr) || (cmdrdptr != 0));
+    cmd_fifo_wp = 0;
 }
 
-
-ft_void_t FT800::ResetCmdFifo( )
+ft_void_t FT813::ResetCmdFifo()
 {
     cmd_fifo_wp = 0;
 }
 
-
-ft_void_t FT800::WrCmd32( ft_uint32_t cmd)
+ft_void_t FT813::WrCmd32(ft_uint32_t cmd)
 {
-         CheckCmdBuffer( sizeof(cmd));
+     CheckCmdBuffer(sizeof(cmd));
 
-         Wr32( RAM_CMD +  cmd_fifo_wp,cmd);
+     Wr32(RAM_CMD + cmd_fifo_wp, cmd);
 
-         Updatecmdfifo( sizeof(cmd));
+     Updatecmdfifo(sizeof(cmd));
 }
 
-
-ft_void_t FT800::ResetDLBuffer( )
+ft_void_t FT813::ResetDLBuffer()
 {
-            dl_buff_wp = 0;
+    dl_buff_wp = 0;
 }
 
-/* Toggle PD_N pin of FT800 board for a power cycle*/
-ft_void_t FT800::Powercycle(  ft_bool_t up)
+/* Toggle PD_N pin of FT813 board for a power cycle*/
+ft_void_t FT813::Powercycle(ft_bool_t up)
 {
     if (up)
     {
-             //Toggle PD_N from low to high for power up switch
-            _pd = 0;
-            Sleep(20);
+        //Toggle PD_N from low to high for power up switch
+        _pd = 0;
+        Sleep(20);
 
-            _pd = 1;
-            Sleep(20);
-    }else
-    {
-             //Toggle PD_N from high to low for power down switch
-            _pd = 1;
-            Sleep(20);
+        _pd = 1;
+        Sleep(20);
+    } else {
+        //Toggle PD_N from high to low for power down switch
+        _pd = 1;
+        Sleep(20);
 
-            _pd = 0;
-            Sleep(20);
+        _pd = 0;
+        Sleep(20);
     }
 }
 
-ft_void_t FT800::WrMemFromFlash( ft_uint32_t addr,const ft_prog_uchar8_t *buffer, ft_uint32_t length)
+ft_void_t FT813::WrMemFromFlash(ft_uint32_t addr, const ft_prog_uchar8_t *buffer, ft_uint32_t length)
 {
     //ft_uint32_t SizeTransfered = 0;
 
-    StartTransfer( FT_GPU_WRITE,addr);
+    StartTransfer(FT_GPU_WRITE,addr);
 
     while (length--) {
-            Transfer8( ft_pgm_read_byte_near(buffer));
+        Transfer8(ft_pgm_read_byte_near(buffer));
         buffer++;
     }
 
-    EndTransfer( );
+    EndTransfer();
 }
 
-ft_void_t FT800::WrMem( ft_uint32_t addr,const ft_uint8_t *buffer, ft_uint32_t length)
+ft_void_t FT813::WrMem(ft_uint32_t addr, const ft_uint8_t *buffer, ft_uint32_t length)
 {
     //ft_uint32_t SizeTransfered = 0;
 
-    StartTransfer( FT_GPU_WRITE,addr);
+    StartTransfer(FT_GPU_WRITE,addr);
 
     while (length--) {
-            Transfer8( *buffer);
+        Transfer8(*buffer);
         buffer++;
     }
 
-    EndTransfer( );
+    EndTransfer();
 }
 
-
-ft_void_t FT800::RdMem( ft_uint32_t addr, ft_uint8_t *buffer, ft_uint32_t length)
+ft_void_t FT813::RdMem(ft_uint32_t addr, ft_uint8_t *buffer, ft_uint32_t length)
 {
     //ft_uint32_t SizeTransfered = 0;
 
-    StartTransfer( FT_GPU_READ,addr);
+    StartTransfer(FT_GPU_READ,addr);
 
     while (length--) {
-       *buffer = Transfer8( 0);
+       *buffer = Transfer8(0);
        buffer++;
     }
 
-    EndTransfer( );
+    EndTransfer();
 }
 
-ft_int32_t FT800::Dec2Ascii(ft_char8_t *pSrc,ft_int32_t value)
+ft_int32_t FT813::Dec2Ascii(ft_char8_t *pSrc, ft_int32_t value)
 {
     ft_int16_t Length;
-    ft_char8_t *pdst,charval;
-    ft_int32_t CurrVal = value,tmpval,i;
-    ft_char8_t tmparray[16],idx = 0;
+    ft_char8_t *pdst, charval;
+    ft_int32_t CurrVal = value, tmpval,i;
+    ft_char8_t tmparray[16], idx = 0;
 
     Length = strlen(pSrc);
     pdst = pSrc + Length;
 
-    if(0 == value)
-    {
+    if(0 == value) {
         *pdst++ = '0';
         *pdst++ = '\0';
         return 0;
     }
 
-    if(CurrVal < 0)
-    {
+    if(CurrVal < 0) {
         *pdst++ = '-';
         CurrVal = - CurrVal;
     }
     /* insert the value */
-    while(CurrVal > 0){
+    while(CurrVal > 0) {
         tmpval = CurrVal;
         CurrVal /= 10;
         tmpval = tmpval - CurrVal*10;
@@ -535,8 +550,7 @@
         tmparray[idx++] = charval;
     }
 
-    for(i=0;i<idx;i++)
-    {
+    for(i = 0; i < idx; i++) {
         *pdst++ = tmparray[idx - i - 1];
     }
     *pdst++ = '\0';
@@ -544,20 +558,17 @@
     return 0;
 }
 
-
-ft_void_t FT800::Sleep(ft_uint16_t ms)
+ft_void_t FT813::Sleep(ft_uint16_t ms)
 {
     wait_ms(ms);
 }
 
-ft_void_t FT800::Sound_ON(){
-     Wr8(  REG_GPIO, 0x02 | Rd8( REG_GPIO));
+ft_void_t FT813::Sound_ON()
+{
+     Wr8(REG_GPIO, 0x02 | Rd8(REG_GPIO));
 }
 
-ft_void_t FT800::Sound_OFF(){
-     Wr8(  REG_GPIO, 0xFD & Rd8( REG_GPIO));
+ft_void_t FT813::Sound_OFF()
+{
+     Wr8(REG_GPIO, 0xFD & Rd8(REG_GPIO));
 }
-
-
-
-