1 Reply Latest reply on Sep 9, 2015 4:23 PM by ivanu_intel

    Baytrail UDC driver

    neoegg


      Is there a yocto version of baytrail UDC driver? out platform is Atom quad core processor. Right now the g_mass-storage.ko is failing to load stating no udc device found. Your input on this issue is much appriciated.


      Currently we are trying to integrate the DWC3 USB UDC driver from Android 3.10 kernel to the 3.19 Valleyview Island  kernel to support USB gadget for Yocto device.

      We are doing the following to register the PCI_VENDOR_ID_INTEL and PCI_DEVICE_ID_DWC using pci_register_driver() to PCI bus. But the dwc_otg_probe() is never called so DWC3 driver is not loaded.

       

      We have added logs and checked that the PCI_DEVICE_ID_PWC is not available  in the PCI_DEV driver due to that local_probe is not called. Is any bios initialization and any additional changes in the PCI registration is needed to load the DWC3 driver successfully?

       

      static DEFINE_PCI_DEVICE_TABLE(pci_ids) = {

       

              { PCI_DEVICE_CLASS(((PCI_CLASS_SERIAL_USB << 8) | 0x20), ~0),

                      .vendor = PCI_VENDOR_ID_INTEL,

                      .device = PCI_DEVICE_ID_DWC,

              },

              { PCI_DEVICE_CLASS(((PCI_CLASS_SERIAL_USB << 8) | 0x80), ~0),

                      .vendor = PCI_VENDOR_ID_INTEL,

                      .device = PCI_DEVICE_ID_DWC,

              },

              { PCI_DEVICE_CLASS(((PCI_CLASS_SERIAL_USB << 8) | 0x80), ~0),

                      .vendor = PCI_VENDOR_ID_INTEL,

                      .device = PCI_DEVICE_ID_DWC_VLV,

              },

              { /* end: all zeroes */ }

      };

       

       

       

       

      int dwc3_otg_register(struct dwc3_otg_hw_ops *pdata)

       

      {

              int retval;

              if (!pdata)

                      return -EINVAL;

              if (dwc3_otg_pdata)

                      return -EBUSY;

              dwc3_otg_pdata = pdata;

      #ifdef CONFIG_PCI

              retval = pci_register_driver(&dwc_otg_pci_driver);

      #endif

              mutex_init(&lock);

              return retval;

      }

      EXPORT_SYMBOL_GPL(dwc3_otg_register);