/* Entry point of driver */ int DSL_DRV_DeviceCreate(void) { DSL_int_t i; DSL_char_t name[32]; printf(DSL_DRV_CRLF DSL_DRV_CRLF "Lantiq CPE API Driver version: %s" DSL_DRV_CRLF, &(dsl_cpe_api_version[4])); DSL_DRV_MemSet( &ifxDevices, 0, sizeof(DSL_devCtx_t) * DSL_DRV_MAX_ENTITIES ); /* Apply initial debug levels. The lines below should be updated in case of new modules insert */ #ifndef DSL_DEBUG_DISABLE DSL_DRV_DebugInit(); #endif DSL_DRV_DrvNum = iosDrvInstall(IFX_NULL, IFX_NULL, (FUNCPTR)DSL_DRV_Open, (FUNCPTR)DSL_DRV_Close, IFX_NULL, (FUNCPTR)DSL_DRV_Write, (FUNCPTR)DSL_DRV_Ioctls); /* Get handles for lower level driver */ for (i = 0; i < DSL_DRV_MAX_ENTITIES; i++) { ifxDevices[i].lowHandle = DSL_DRV_DEV_DriverHandleGet(0,i); if (ifxDevices[i].lowHandle == DSL_NULL) { printf("Get BSP Driver Handle Fail!"DSL_DRV_CRLF); } #ifdef INCLUDE_DSL_NFC_HANDLE ifxDevices[i].nfc_lowHandle = DSL_DRV_DEV_DriverHandleGet(0,i); if (ifxDevices[i].lowHandle == DSL_NULL) { printf("Get BSP Driver NFC Handle Fail!"DSL_DRV_CRLF); } #endif /* INCLUDE_DSL_NFC_HANDLE*/ ifxDevices[i].nUsageCount = 0; ifxDevices[i].bFirstPowerOn = DSL_TRUE; DSL_DEBUG(DSL_DBG_MSG, (DSL_NULL, SYS_DBG_MSG"ifxDevices[%d].lowHandle=0x%0X" DSL_DRV_CRLF, i, ifxDevices[i].lowHandle)); /* Set device number*/ DSL_DevHeader[i].deviceNum = i; sprintf(name, "/dev/%s/%d", DRV_DSL_CPE_API_DEV_NAME, i); DSL_DRV_DevNodeInit(&DSL_DevHeader[i], name, DSL_DRV_DrvNum); } return 0; }
//old name: int DSL_ModuleInit(void) int DSL_DRV_DeviceCreate(void) { DSL_int_t i; printf(DSL_DRV_CRLF DSL_DRV_CRLF "Infineon CPE API Driver version: %s" DSL_DRV_CRLF, &(dsl_cpe_api_version[4])); DSL_DRV_MemSet( &ifxDevices, 0, sizeof(DSL_devCtx_t) * DSL_DRV_MAX_DEVICE_NUMBER ); /* Apply initial debug levels. The lines below should be updated in case of new modules insert */ #ifndef DSL_DEBUG_DISABLE DSL_DRV_DebugInit(); #endif #if defined(INCLUDE_DSL_CPE_API_VINAX) && defined(INCLUDE_DSL_BONDING) if ( DSL_DRV_Phy2VirtMap( DSL_FPGA_BND_BASE_ADDR, DSL_FPGA_BND_REGS_SZ_BYTE, "BND_FPGA", (DSL_uint8_t**)&g_BndFpgaBase) < 0) { DSL_DEBUG(DSL_DBG_ERR, (DSL_NULL, "Bonding FPGA memory mapping failed!"DSL_DRV_CRLF)); } #endif /* defined(INCLUDE_DSL_CPE_API_VINAX) && defined(INCLUDE_DSL_BONDING)*/ /* Get handles for lower level driver */ for (i = 0; i < DSL_DRV_MAX_DEVICE_NUMBER; i++) { ifxDevices[i].lowHandle = DSL_DRV_DEV_DriverHandleGet(0,i); if (ifxDevices[i].lowHandle == DSL_NULL) { printf("Get BSP Driver Handle Fail!"DSL_DRV_CRLF); } #ifdef INCLUDE_DSL_CPE_API_VINAX ifxDevices[i].nfc_lowHandle = DSL_DRV_DEV_DriverHandleGet(0,i); if (ifxDevices[i].lowHandle == DSL_NULL) { printf("Get BSP Driver NFC Handle Fail!"DSL_DRV_CRLF); } #endif /* #ifdef INCLUDE_DSL_CPE_API_VINAX*/ ifxDevices[i].nUsageCount = 0; ifxDevices[i].bFirstPowerOn = DSL_TRUE; DSL_DEBUG(DSL_DBG_MSG, (DSL_NULL, "ifxDevices[%d].lowHandle=0x%0X"DSL_DRV_CRLF, i, ifxDevices[i].lowHandle)); } return 0; }