Пример #1
0
void spi_Open(void)
{
    HANDLE hGPIO;
    hGPIO = GPIOOpen(); 
    //Set the initialize status of each SPI interface, Ray 13-09-23
    GPIOSetBit(hGPIO, SPI_CS0_PIN);
    GPIOSetBit(hGPIO, SPI_CLK_PIN);
    GPIOSetBit(hGPIO, SPI_DOUT_PIN);

    GPIOClose(hGPIO);
}
Пример #2
0
//------------------------------------------------------------------------------
//
//  Function:  configure_dss
//
//  This function configures the Display Sub System on omap35xx
//
void configure_dss( UINT32 framebuffer )
{
    OMAP_DSS_REGS   *pDSSRegs = OALPAtoUA(OMAP_DSS1_REGS_PA);
    OMAP_DISPC_REGS *pDisplayRegs = OALPAtoUA(OMAP_DISC1_REGS_PA);
    HANDLE hGpio = GPIOOpen();

    // OALMSG(OAL_INFO, (L"configure_dss+\r\n"));

    //  Configure the clock source
    OUTREG32( &pDSSRegs->DSS_CONTROL, 
                DSS_CONTROL_DISPC_CLK_SWITCH_DSS1_ALWON |
                DSS_CONTROL_DSI_CLK_SWITCH_DSS1_ALWON
                );
    
    //  Configure interconnect parameters
    OUTREG32( &pDSSRegs->DSS_SYSCONFIG, DISPC_SYSCONFIG_AUTOIDLE );
    OUTREG32( &pDisplayRegs->DISPC_SYSCONFIG, DISPC_SYSCONFIG_AUTOIDLE|SYSCONFIG_NOIDLE|SYSCONFIG_NOSTANDBY );

    // Not enabling any interrupts
    OUTREG32( &pDisplayRegs->DISPC_IRQENABLE, 0x00000000 );
    
    
    //  Configure the LCD
    LcdPdd_LCD_Initialize( pDSSRegs, pDisplayRegs, NULL, NULL);
    	
    //  Over-ride default LCD config
    OUTREG32(&pDisplayRegs->DISPC_CONFIG,BSP_LCD_CONFIG);
    
    
    // Configure Graphics Window
    //--------------------------
    
    OUTREG32(&pDisplayRegs->DISPC_GFX_BA0 ,framebuffer );
 
    // configure the position of graphics window
    OUTREG32(&pDisplayRegs->DISPC_GFX_POSITION,BSP_GFX_POS);
    
    // size of graphics window
    OUTREG32(&pDisplayRegs->DISPC_GFX_SIZE,BSP_GFX_SIZE);
    
    // GW Enabled, RGB24 packed, Little Endian
    OUTREG32(&pDisplayRegs->DISPC_GFX_ATTRIBUTES,LOGO_GFX_ATTRIBUTES);
    
    OUTREG32(&pDisplayRegs->DISPC_GFX_FIFO_THRESHOLD,BSP_GFX_FIFO_THRESHOLD);
    OUTREG32(&pDisplayRegs->DISPC_GFX_ROW_INC,BSP_GFX_ROW_INC); 
    OUTREG32(&pDisplayRegs->DISPC_GFX_PIXEL_INC,BSP_GFX_PIXEL_INC); 
    OUTREG32(&pDisplayRegs->DISPC_GFX_WINDOW_SKIP,BSP_GFX_WINDOW_SKIP);

    // OALMSG(OAL_INFO, (L"configure_dss-\r\n"));

	GPIOClose(hGpio);
}
Пример #3
0
void spi_Low(void)
{
    //DWORD dTime = 5000000;

    HANDLE hGPIO;
    hGPIO = GPIOOpen(); 
    //Set the initialize status of each SPI interface, Ray 13-09-23
    GPIOClrBit(hGPIO, SPI_CS0_PIN);
    GPIOClrBit(hGPIO, SPI_CLK_PIN);
    GPIOClrBit(hGPIO, SPI_DOUT_PIN);

    //LcdStall(dTime);
    GPIOClose(hGPIO); 
}
Пример #4
0
//------------------------------------------------------------------------------
//
//  Set up the "MCSPI1" function active, Ray 13-09-23
//
void spiWrBitHigh(void)
{
    DWORD delay = 10;
    HANDLE hGPIO;
    hGPIO = GPIOOpen(); 

    GPIOSetBit(hGPIO, SPI_DOUT_PIN);

    GPIOClrBit(hGPIO, SPI_CLK_PIN);
    LcdStall(delay);
    GPIOSetBit(hGPIO, SPI_CLK_PIN);
    LcdStall(delay);
    GPIOClrBit(hGPIO, SPI_CLK_PIN);
    GPIOClose(hGPIO); 
}
Пример #5
0
void I2C3_Low(void)
{
    HANDLE hGPIO;
    hGPIO = GPIOOpen();
    GPIOClrBit(hGPIO, I2C3_SCL_GPIO);
    GPIOClrBit(hGPIO, I2C3_SDA_GPIO);

    /*HANDLE hI2C; 
    hI2C = I2COpen(OMAP_DEVICE_I2C3);
    GPIOSetBit(hI2C, I2C3_SCL_GPIO);
    GPIOSetBit(hI2C, I2C3_SDA_GPIO);*/

    LcdStall(dTime);
    GPIOClose(hGPIO);
    //I2CClose(hI2C);
}
Пример #6
0
void spiWrBitLow(void)
{
    int delay = 10;
    HANDLE hGPIO;
    hGPIO = GPIOOpen(); 
    
    GPIOClrBit(hGPIO, SPI_DOUT_PIN);

    GPIOClrBit(hGPIO, SPI_CLK_PIN);
    LcdStall(delay);
    //LcdStall(10);
    GPIOSetBit(hGPIO, SPI_CLK_PIN);
    LcdStall(delay);
    //LcdStall(10);
    GPIOClrBit(hGPIO, SPI_CLK_PIN);
    GPIOClose(hGPIO); 
}
Пример #7
0
int _tmain(int argc, TCHAR *argv[], TCHAR *envp[])
{
    DWORD id = 168;
    if (argc == 2)
    {
        id = _wtoi(argv[1]);
    }
    _tprintf(_T("Hello World!\n"));
#if 0
    DWORD config[2] = {id,GPIO_DIR_OUTPUT};

    HANDLE h = CreateFile(L"GIO1:",0,0,NULL,OPEN_EXISTING,0,NULL);
    DeviceIoControl(h,IOCTL_GPIO_SETMODE,config,sizeof(config),NULL,0,NULL,NULL);

    for (;;)
    {
        DeviceIoControl(h,IOCTL_GPIO_SETBIT,config,sizeof(config),NULL,0,NULL,NULL);
        Sleep(10);
        DeviceIoControl(h,IOCTL_GPIO_CLRBIT,config,sizeof(config),NULL,0,NULL,NULL);
        Sleep(10);
    }
    CloseHandle(h);
#else
    HANDLE h = GPIOOpen();
    GPIOSetMode(h,id,GPIO_DIR_OUTPUT);
    for (;;)
    {
        GPIOSetBit(h,id);
        Sleep(10);
        GPIOClrBit(h,id);
        Sleep(10);
    }
    GPIOClose(h);
#endif
    return 0;
}
Пример #8
0
//------------------------------------------------------------------------------
//
//  Function:  HDS_Deinit
//
//  Called by device manager to uninitialize device.
//
BOOL
HDS_Deinit(
    DWORD context
    )
{
    BOOL rc = FALSE;
    HeadsetDevice_t *pDevice = (HeadsetDevice_t*)context;

    DEBUGMSG(ZONE_FUNCTION, (L"+HDS_Deinit(0x%08x)\r\n", context));

    // Check if we get correct context
    if ((pDevice == NULL) || (pDevice->cookie != HDS_DEVICE_COOKIE))
        {
        DEBUGMSG (ZONE_ERROR, (L"ERROR: HDS_Deinit: "
            L"Incorrect context parameter\r\n"
            ));
        goto cleanUp;
        }

    // Signal stop to threads
    pDevice->intrThreadExit = TRUE;

    // Close interrupt thread
    if (pDevice->hIntrThread != NULL)
        {
        // Set event to wake it
        SetEvent(pDevice->hIntrEvent);
        // Wait until thread exits
        WaitForSingleObject(pDevice->hIntrThread, INFINITE);
        // Close handle
        CloseHandle(pDevice->hIntrThread);
        }

    // Disable GPIO interrupt
    if (pDevice->hGPIO != NULL)
        {
        GPIOInterruptMask(pDevice->hGPIO, pDevice->hdstDetGpio, pDevice->dwSysIntr, TRUE);
        if (pDevice->hIntrEvent != NULL)
            {
            GPIOInterruptDisable(pDevice->hGPIO, pDevice->hdstDetGpio, pDevice->dwSysIntr);
            }
        GPIOClose(pDevice->hGPIO);
        }

    // Close GPIO driver
    if (pDevice->hGPIO != NULL)
        {
        GPIOClose(pDevice->hGPIO);
        }

    // Close interrupt handler
    if (pDevice->hIntrEvent != NULL) CloseHandle(pDevice->hIntrEvent);

    // Delete critical section
    DeleteCriticalSection(&pDevice->cs);

    // Free device structure
    LocalFree(pDevice);

    // Done
    rc = TRUE;

cleanUp:
    DEBUGMSG(ZONE_FUNCTION, (L"-HDS_Deinit(rc = %d)\r\n", rc));
    return rc;
}