[linux-yocto] [PATCH 1/4] valleyisland-io: enable USB controller support for Baytrail

rebecca.swee.fun.chang at intel.com rebecca.swee.fun.chang at intel.com
Sun Dec 8 23:45:19 PST 2013


From: "Chang, Rebecca Swee Fun" <rebecca.swee.fun.chang at intel.com>

Baytrail has 2 USB controllers, namely, EHCI controller and XHCI
controller. This patch will add PCI device ID for Baytrail to have
USB EHCI and XHCI controller support.

Signed-off-by: Chang, Rebecca Swee Fun <rebecca.swee.fun.chang at intel.com>
---
 ...upport-for-Intel-Baytrail-USB-controllers.patch |   60 ++++++++++++++++++++
 1 file changed, 60 insertions(+)
 create mode 100644 meta/cfg/kernel-cache/features/valleyisland-io/0011-usb-add-support-for-Intel-Baytrail-USB-controllers.patch

diff --git a/meta/cfg/kernel-cache/features/valleyisland-io/0011-usb-add-support-for-Intel-Baytrail-USB-controllers.patch b/meta/cfg/kernel-cache/features/valleyisland-io/0011-usb-add-support-for-Intel-Baytrail-USB-controllers.patch
new file mode 100644
index 0000000..f0978ee
--- /dev/null
+++ b/meta/cfg/kernel-cache/features/valleyisland-io/0011-usb-add-support-for-Intel-Baytrail-USB-controllers.patch
@@ -0,0 +1,60 @@
+usb: add support for Baytrail USB controllers
+
+Intel Baytrail has 1 EHCI controller and 1 XHCI controller.
+
+Signed-off-by: Chang, Rebecca Swee Fun <rebecca.swee.fun.chang at intel.com>
+---
+ drivers/usb/host/ehci-pci.c   |    3 ++-
+ drivers/usb/host/pci-quirks.c |   12 +++++++++++-
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
+index 170b939..2f9e35a 100644
+--- a/drivers/usb/host/ehci-pci.c
++++ b/drivers/usb/host/ehci-pci.c
+@@ -332,7 +332,8 @@ static bool usb_is_intel_switchable_ehci(struct pci_dev *pdev)
+ 		(pdev->device == 0x1E26 ||
+ 		 pdev->device == 0x8C2D ||
+ 		 pdev->device == 0x8C26 ||
+-		 pdev->device == 0x9C26);
++		 pdev->device == 0x9C26 ||
++		 pdev->device == 0x0F34);
+ }
+
+ static void ehci_enable_xhci_companion(void)
+diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
+index 4c338ec..4375c5e 100644
+--- a/drivers/usb/host/pci-quirks.c
++++ b/drivers/usb/host/pci-quirks.c
+@@ -724,6 +724,7 @@ static int handshake(void __iomem *ptr, u32 mask, u32 done,
+
+ #define PCI_DEVICE_ID_INTEL_LYNX_POINT_XHCI	0x8C31
+ #define PCI_DEVICE_ID_INTEL_LYNX_POINT_LP_XHCI	0x9C31
++#define PCI_DEVICE_ID_INTEL_BYT_XHCI          0x0F35
+
+ bool usb_is_intel_ppt_switchable_xhci(struct pci_dev *pdev)
+ {
+@@ -741,10 +742,19 @@ bool usb_is_intel_lpt_switchable_xhci(struct pci_dev *pdev)
+ 		 pdev->device == PCI_DEVICE_ID_INTEL_LYNX_POINT_LP_XHCI);
+ }
+
++/* The Intel BYT also has switchable ports. */
++bool usb_is_intel_byt_switchable_xhci(struct pci_dev *pdev)
++{
++        return pdev->class == PCI_CLASS_SERIAL_USB_XHCI &&
++                pdev->vendor == PCI_VENDOR_ID_INTEL &&
++                pdev->device == PCI_DEVICE_ID_INTEL_BYT_XHCI;
++}
++
+ bool usb_is_intel_switchable_xhci(struct pci_dev *pdev)
+ {
+ 	return usb_is_intel_ppt_switchable_xhci(pdev) ||
+-		usb_is_intel_lpt_switchable_xhci(pdev);
++		usb_is_intel_lpt_switchable_xhci(pdev)||
++		usb_is_intel_byt_switchable_xhci(pdev);
+ }
+ EXPORT_SYMBOL_GPL(usb_is_intel_switchable_xhci);
+
+--
+1.7.10.4
+
-- 
1.7.10.4



More information about the linux-yocto mailing list