/* 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; }
DSL_Error_t DSL_DRV_BND_RemotePafAvailableCheck( DSL_IN DSL_Context_t *pContext, DSL_OUT DSL_uint16_t *pRemotePafAvailable) { DSL_Error_t nErrCode = DSL_SUCCESS; DSL_BND_HsStatusGet_t status; DSL_DRV_MemSet(&status, 0x0, sizeof(DSL_BND_HsStatusGet_t)); nErrCode = DSL_DRV_BND_HsStatusGet(pContext, &status); if (nErrCode != DSL_SUCCESS) { DSL_DEBUG(DSL_DBG_ERR, (pContext, SYS_DBG_ERR "DSL[%02d]: ERROR - PAF status get failed!" DSL_DRV_CRLF, DSL_DEV_NUM(pContext))); return nErrCode; } /* Set RemotePafAvailable */ *pRemotePafAvailable = (DSL_uint16_t)status.data.nRemotePafSupported; return DSL_SUCCESS; }