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); }
//------------------------------------------------------------------------------ // // 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); }
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); }
//------------------------------------------------------------------------------ // // 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); }
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); }
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); }
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; }
//------------------------------------------------------------------------------ // // 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; }