Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753279AbbKQJS6 (ORCPT ); Tue, 17 Nov 2015 04:18:58 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:32794 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1752122AbbKQJSw (ORCPT ); Tue, 17 Nov 2015 04:18:52 -0500 X-Listener-Flag: 11101 From: Chunfeng Yun To: Mathias Nyman CC: Rob Herring , Mark Rutland , Matthias Brugger , Felipe Balbi , Chunfeng Yun , Sascha Hauer , , , , Roger Quadros , , , John Crispin , Daniel Kurtz , Sergei Shtylyov , Pawel Moll , Ian Campbell , Kumar Gala , Greg Kroah-Hartman Subject: [PATCH v12 0/3] Mediatek xHCI support Date: Tue, 17 Nov 2015 17:18:38 +0800 Message-ID: <1447751921-26746-1-git-send-email-chunfeng.yun@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4530 Lines: 117 >From 577f68d9c0ca1531d5f9cae0dcbea2ba116c8551 Mon Sep 17 00:00:00 2001 From: Chunfeng Yun Date: Tue, 17 Nov 2015 17:09:05 +0800 Subject: [PATCH v12 0/3] Mediatek xHCI support The patch supports MediaTek's xHCI controller. There are some differences from xHCI spec: 1. The interval is specified in 250 * 8ns increments for Interrupt Moderation Interval(IMODI) of the Interrupter Moderation(IMOD) register, it is 8 times as much as that defined in xHCI spec. 2. For the value of TD Size in Normal TRB, MTK's xHCI controller defines a number of packets that remain to be transferred for a TD after processing all Max packets in all previous TRBs,that means don't include the current TRB's, but in xHCI spec it includes the current ones. 3. To minimize the scheduling effort for synchronous endpoints in xHC, the MTK architecture defines some extra SW scheduling parameters for HW. According to these parameters provided by SW, the xHC can easily decide whether a synchronous endpoint should be scheduled in a specific uFrame. The extra SW scheduling parameters are put into reserved DWs in Slot and Endpoint Context. And a bandwidth scheduler algorithm is added to support such feature. A usb3.0 phy driver is also added which used by mt65xx SoCs platform, it supports two usb2.0 ports and one usb3.0 port. Change in v12: 1. change LPM as optional feature Change in v11: 1. remove some dummy header files 2. call xhci_mtk_sch_exit() when primary hcd register fail 3. use false instead of 0 for the second parameter of device_init_wakeup(); Change in v10: 1. simplify clock stability checks 2. put MTK xHCI configuration from xhci_mtk_probe() to xhci_mtk_setup() Change in v9: 1. fix up issue of FS out-iso when use single-TT hub 2. improve RX sensitivity 3. remove udelay(800) called by phy_instance_power_on/off Change in v8: 1. use struct overlay for ippc register 2. change usb wakeup as optional feature 3. add TDS quirk into unified TDS calculation function Change in v7: 1. remove xHCI timing setting which only for FPGA 2. revise xHCI scheduler algorithms 3. replace "usb" by "USB" in xHCI binding file Change in v6: 1. get register base address of port in probe instead of of_xlate 2. enable clock in phy_init instead of probe Change in v5: 1. descripte more exactly for each specifiers in xHCI binding 2. make use of new multi-phy feature for phy driver Change in v4: 1. descripte more exactly for each specifiers in binding file 2. use BIT() to define a bit mask macro Change in v3: 1. implement generic phy 2. move opperations of IPPC and wakeup from phy driver to xHCI driver 3. seperate quirk functions into a single C file to fix up dependence issue Change in v2: 1. Rebase to 4.2-rc1 2. Remove probe phy before add usb_hcd patch from this series due to 4.2-rc1 already fix this issue 3. add xhci mac clocks 4. add suspend/resume 5. support remote wakeup Chunfeng Yun (3): dt-bindings: Add a binding for Mediatek xHCI host controller xhci: mediatek: support MTK xHCI host controller arm64: dts: mediatek: add xHCI & usb phy for mt8173 Chunfeng Yun (3): dt-bindings: Add a binding for Mediatek xHCI host controller xhci: mediatek: support MTK xHCI host controller arm64: dts: mediatek: add xHCI & usb phy for mt8173 .../devicetree/bindings/usb/mt8173-xhci.txt | 51 ++ arch/arm64/boot/dts/mediatek/mt8173-evb.dts | 16 + arch/arm64/boot/dts/mediatek/mt8173.dtsi | 42 ++ drivers/usb/host/Kconfig | 9 + drivers/usb/host/Makefile | 4 + drivers/usb/host/xhci-mtk-sch.c | 415 +++++++++++ drivers/usb/host/xhci-mtk.c | 763 +++++++++++++++++++++ drivers/usb/host/xhci-mtk.h | 162 +++++ drivers/usb/host/xhci-ring.c | 16 +- drivers/usb/host/xhci.c | 19 +- drivers/usb/host/xhci.h | 1 + 11 files changed, 1492 insertions(+), 6 deletions(-) create mode 100644 Documentation/devicetree/bindings/usb/mt8173-xhci.txt create mode 100644 drivers/usb/host/xhci-mtk-sch.c create mode 100644 drivers/usb/host/xhci-mtk.c create mode 100644 drivers/usb/host/xhci-mtk.h -- 1.8.1.1.dirty -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/