/* 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;
}
示例#2
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;
}