From patchwork Thu Sep 3 09:19:01 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Siva Durga Prasad Paladugu X-Patchwork-Id: 513991 X-Patchwork-Delegate: monstr@monstr.eu Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 0D8911401DA for ; Thu, 3 Sep 2015 21:12:31 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 455984B7D7; Thu, 3 Sep 2015 13:12:15 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Lyj-V0ztegUi; Thu, 3 Sep 2015 13:12:15 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 3D3594B7DE; Thu, 3 Sep 2015 13:11:54 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id BC5924B779 for ; Thu, 3 Sep 2015 11:19:21 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Z3a6aY99jkhD for ; Thu, 3 Sep 2015 11:19:21 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bon0065.outbound.protection.outlook.com [157.56.111.65]) by theia.denx.de (Postfix) with ESMTPS id 1E3114B782 for ; Thu, 3 Sep 2015 11:19:17 +0200 (CEST) Received: from BN1BFFO11FD022.protection.gbl (10.58.144.30) by BN1BFFO11HUB042.protection.gbl (10.58.144.189) with Microsoft SMTP Server (TLS) id 15.1.256.10; Thu, 3 Sep 2015 09:19:15 +0000 Authentication-Results: spf=temperror (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; lists.denx.de; dkim=none (message not signed) header.d=none;lists.denx.de; dmarc=temperror action=none header.from=xilinx.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of xilinx.com: DNS Timeout) Received: from xsj-pvapsmtpgw02 (149.199.60.100) by BN1BFFO11FD022.mail.protection.outlook.com (10.58.144.85) with Microsoft SMTP Server (TLS) id 15.1.262.18 via Frontend Transport; Thu, 3 Sep 2015 09:19:14 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66]:60207 helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw02 with esmtp (Exim 4.63) (envelope-from ) id 1ZXQfp-0006a9-0c; Thu, 03 Sep 2015 02:19:13 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1ZXQfo-0002DC-Ru; Thu, 03 Sep 2015 02:19:12 -0700 Received: from xsj-pvapsmtp01 (xsj-smtp1.xilinx.com [149.199.38.66]) by xsj-smtp-dlp1.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id t839Iafv014325; Thu, 3 Sep 2015 02:18:36 -0700 Received: from [172.23.146.171] (helo=xhdl3763.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1ZXQfi-0002Cc-7p; Thu, 03 Sep 2015 02:19:06 -0700 Received: by xhdl3763.xilinx.com (Postfix, from userid 13899) id 6A1362CE04E5; Thu, 3 Sep 2015 14:49:05 +0530 (IST) From: Siva Durga Prasad Paladugu To: Date: Thu, 3 Sep 2015 14:49:01 +0530 Message-ID: <1441271942-39785-1-git-send-email-sivadur@xilinx.com> X-Mailer: git-send-email 2.1.1 X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-21788.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD022; 1:+87h7kOoCeMsCe+zi/4jVZ/ZZVdlpD6ts6P/pcVm/ByS8Zrrt/A9f47ap71SZcy7l5FjsG3s4F8hcZX2GMw19FPMam8saxeFATOH/CZN4oZtojBLYsUxiSsvotISr+vm+TMDIT7ujc06OwBKiDeety8KciSDq0IU23LpsTapJffmw+KbStW970jfXOzQ22f14QJ5Rf2hVsJUjub4AP2u5uFAw9lZzbxBRO4zX/R3n4fHakDMvwcdCj0XsCkvROEMUY3ZL0P2AggJUOAq9+06Ke/4jmjvu9+xXa3LzBi9XKQhJ04SOUCB8MoY7WtGmSu9hjVzYCIBpFWyHPf5gK9zAjvTqMUoVtgvKhchnZsUVFhHC8gBBiuvRGbxWesaDhkG X-Forefront-Antispam-Report: CIP:149.199.60.100; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(979002)(6009001)(2980300002)(199003)(189002)(36386004)(110136002)(63266004)(50226001)(5007970100001)(42186005)(86362001)(2351001)(48376002)(50466002)(64706001)(81156007)(4001540100001)(47776003)(103686003)(5003940100001)(106466001)(50986999)(77156002)(46102003)(62966003)(36756003)(87936001)(6806004)(19580405001)(5001860100001)(92566002)(46386002)(52956003)(229853001)(5001830100001)(19580395003)(45336002)(5001920100001)(5001960100002)(107886002)(189998001)(33646002)(107986001)(4001430100001)(5001870100001)(90966001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1BFFO11HUB042; H:xsj-pvapsmtpgw02; FPR:; SPF:TempError; PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11HUB042; 2:cIIWxvpaLViBSoJr2bKAyIenC59kHlxnQ3+cao7CC2IeAivJ8nHCgPyH5FUj03Df77ajB67rNzRopybfZG7Df9yIcLX0XGTUoOe/4MxL8djq1zAHXipiCYL5ufI2p6PJm74LS/VcU1o0zqftrnLMRhOZNrsvD1OjOaW/mjbqNlU=; 3:NXXUrxVzFwkQ279IlzMyAS/20LY9APnZOA1hWUQR89LetMWVbWLZ+acB/DwhngQqgF7RPIA+wG6E3ZP2VoTIgY4JeJw8jaluKHDprQxzvNHx1JP+V423+GauZVf/N0ioySfpWX8F/bMZBjPDuDJmuYfsuSkDurQYpj45SPbvFMEOymvw9scIbI0MKxjrEFZp2DHtmKEAp7H9O60F/INzvSA4po47+vvv5Y9NhPhM54BnUw4UcuIA9fA0tf9LFOZB; 25:bj7A+wtbhIM+IBOHMDlmX1G4gqVMGDfPSvHnXD+Br8NtNcEeYNDc7/2Rhn4DJavlgjBJ+SXm3es5dibIq68A0jd+TqOaxTA4ghnrVBh+Fu4U56ONAJSYdyr/qTm73/cxs8ocUSqnRmu01im5V1T9sfYlNv+G7eLuP7V9tUN8HTbt8Ej0wHgzkpjh0z936bWqnRuOEedN/FSLpCjHSGPq8kPr1N1SOPq8UZjdFUWZF45L+4SyL9yMuSIdHMOYIuKCc/ZXFgx+fx+IPi8gy+ZMZw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN1BFFO11HUB042; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11HUB042; 20:SfoCPhqXqEDKM8CCs5dXTN2hXe/8I0WBgYjYJcTJZPXo6oWNw1z6rryIvOF5UNsUspJzHmV5WuPzUJzZ/eUQiYcGXozkz+apFDuylcV4iAsy6am/ZU0OaEq73tlOzHi5jrVT1Pb1dX7biQIrRRygTOh86OODy+y9BLJLQkxdOrQMOiIpQDhzRtSTjYBUWpfpXkBPtf5MQ59/CsfBVmzpRoSkxGcGca9w/bMeqzjX9/LF9hWhRyvzxSYYDF+e7sj6QnMyaYVq+GSAQzlqXoZuvvXqwX44uYx/uFGRu1RNymSXXHAvSUThb1gKQzMkAGSnFEcyUkh5IkYd41/Csl7/h0auItAFk0ImPU0P8wTJ5zQoDWWeZZRx6RxQtvnIIK415JgntVWIdhWlYKSK4h2NRVCHQPQaXIi9pIHO3nOrzyk2tVLoQKzzAqQKpzxi/YWqeI5MTIo41MZ6Tx9eaJC8DUPzOTGhD61y2KEBvEcooOLtMTfQTRWi9y8WgBdE9Vst; 4:wSSwwI224B6Q5ZsvLONhdMuUm1PsMQN6y94Pcyu89ELYkaXoXao5qkDGe8vFqOwlbGnS7EYXsKxky1auInmr8k1dD5zA8s+0KSikI/gDQvdvB68Nwlt/r93uLbtYgx5ua13R7EJNsNlJ0a1I1/KaLdVAcVPv4BjqkHXqwJ97pAkxB6gUbOYVrt/QhXGYVWVZKiMl4AmNsq4nilJBwVco00zY3EfcYEceba0eF8lAsfOYR5NAmwRnMolBrjAHa97zTzwaQ1oTu5aeXRw3i//UFjV3NsN6dcTP0sOvPVXqD7626asRpxrI0tEQVbUih1EX X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(8121501046)(3002001); SRVR:BN1BFFO11HUB042; BCL:0; PCL:0; RULEID:; SRVR:BN1BFFO11HUB042; X-Forefront-PRVS: 0688BF9B46 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1BFFO11HUB042; 23:Z3Qq/0DxYlDuPdMCtXHKeoCNpF9O1eghB1ddosA?= =?us-ascii?Q?iSnxvUC6mBHvOKV7biLvYNe0C/EIQ5JOUd7Jg6okaUmJCTrA/JPl7nYj4BRr?= =?us-ascii?Q?v31lL7uCLoqjgbWtLIHznxf0cXI9s5ydHmZX/DBo41g0mstvfo+R9RKHMNUe?= =?us-ascii?Q?TSQT//rIbqIg/1pbzSjamWI/MAdIUydpgtK60B94j32vboAA5CGH60m5AJXF?= =?us-ascii?Q?bAC4FCOkmXpjIgNP1XpZYjWV9FVCbe38oGxmdUe5Vhp15DpX3/xJolZpBTWz?= =?us-ascii?Q?erVWHyCvlf7Atjqxgn2f4LVvaPzXDbeorq7eoPJN7y4toz2KMFSPT0PwMHhD?= =?us-ascii?Q?KV3wwZpGfl1cCuGDkAoq7yVl+yV2bZjHkR6vlGXGVhUqVHpEV34zwMyiS+bA?= =?us-ascii?Q?r6H76vTLMWTWcZRHnld27rVe/mmE9dw/t3xMbADDVtY8Aohu+WVQ4IHRcxkR?= =?us-ascii?Q?vBsQ9sfwwJvy1TX2Ep8cnFr+dBiwcsn82vWMHMpsxeGeeDb088gY6b2wnLf7?= =?us-ascii?Q?Sh9D2KEqEsAJvNtmzzYu1aMRrOebxFKXzK4Jbp7Me56QbsmlfqvFNWK0Blty?= =?us-ascii?Q?kHOpEEfFjLAfSbiZXCpuawTBqLEizjdFe0ZV/Emo5ldcJp6arYTdhUkVqNVg?= =?us-ascii?Q?I2nN4amSBVeOLe2S4xdoCKONotHnMMJZzKUk7c0TURi47lgyJcOFnOTX+yVt?= =?us-ascii?Q?xp++e/pbpRC+6JHns09RDnzpi54WGswNoUar1fv9vaEBineIGavKMy5Bkq7R?= =?us-ascii?Q?h/VX5eDD0Vboy3JV0jDH9r8BpYcET3nPCYk2QXrZQ5FxWiyiXonBJbzKWRmV?= =?us-ascii?Q?Q5/5xdegpcWdtxjXekel6EOXBx2wD4VQwRRn3fHb/KjLwaYxgbgDtEE2aSVs?= =?us-ascii?Q?CbPo7kXSGHG/fQq1elkHyUZAv6lH3I2CuiXfpP6l4XCQEALlvU0cYq1oqtsj?= =?us-ascii?Q?ZjT7dRUEp3/BYVLmg5TdtkNo3G+mmV6kLyKGbiLq+yArdEDwE83ufemAxbIw?= =?us-ascii?Q?pWOiizGTl5iEIe3pSLZRqjdjugaJFu1ExxTo/xI2v1+wwbvNEH7NIJgZE7yZ?= =?us-ascii?Q?fmG46g4mZfvbOH4xobqLp0/E84LCPuYUd8TkLOEtR+AZ0edqZSsu1/htZITt?= =?us-ascii?Q?N2Xoi1rBhzFSr9LYiD3+E3aYyNWWVj+3k6a3TOhyl57XEmm53fnh8xcNMAmd?= =?us-ascii?Q?UFf8e4C8TEioqTNDL+CcjRzqfBBNgkJFj/GhYRhLAx79J6KXw88hPQj7jXWp?= =?us-ascii?Q?Jom4Y08ANhQ6rK3tQdcmmkEImdfn8Gc7z+3XJHP0UlR2uwFF/RyUd4FG5Ni7?= =?us-ascii?Q?QoHtvAzjGlDmYobpsb12WKvH9+C/8Ybjj/eGsVgUXYOLrXooLBoolwBYT+4e?= =?us-ascii?Q?1scDKHg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11HUB042; 5:lTJrZ9RNgqRWUTbgy/2gryDKwGWK1duBb3BKYTlB+wYkrsJ+NDCJVU9KtmDUuW5YulT4kLW8/KDfa6yhU/ZgwWIezHjUBGAYk7LrpMx56wbovOkJNL0MLFMYpXGU9XP0Q1cLs701P+GUnfBSod/mNA==; 24:yaXxTWcESFOUH4L4M+VyjXf4hUuudbRepMgYAit6RT4XsReMwuCZr7gAEsHb4qREzJPKfd2SJMUobcG+cCwFaJwetIzlA4exkRqCZlde3kA= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2015 09:19:14.0954 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.60.100]; Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1BFFO11HUB042 X-Mailman-Approved-At: Thu, 03 Sep 2015 13:11:38 +0200 Cc: marex@denx.de, Siva Durga Prasad Paladugu Subject: [U-Boot] [PATCH v3 1/2] usb: zynqmp: Add XHCI driver support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Added USB XHCI driver support for zynqmp. Signed-off-by: Siva Durga Prasad Paladugu --- Changes for v3: - Decreased the phy reset delay to 10 micro secs - Defined base addresses in board config file as per review comment. Changes for v2: - Moved all from xhci-zynqmp.h to .c file as per review comment - Removed ad-hoc function zynqmp_xhci_core_exit() as per review comment --- drivers/usb/host/Makefile | 1 + drivers/usb/host/xhci-zynqmp.c | 145 ++++++++++++++++++++++++++++++++++++ include/configs/xilinx_zynqmp_ep.h | 2 + 3 files changed, 148 insertions(+), 0 deletions(-) create mode 100644 drivers/usb/host/xhci-zynqmp.c diff --git a/drivers/usb/host/Makefile b/drivers/usb/host/Makefile index f70f38c..645b990 100644 --- a/drivers/usb/host/Makefile +++ b/drivers/usb/host/Makefile @@ -54,6 +54,7 @@ obj-$(CONFIG_USB_EHCI_ZYNQ) += ehci-zynq.o # xhci obj-$(CONFIG_USB_XHCI) += xhci.o xhci-mem.o xhci-ring.o obj-$(CONFIG_USB_XHCI_DWC3) += xhci-dwc3.o +obj-$(CONFIG_USB_XHCI_ZYNQMP) += xhci-zynqmp.o obj-$(CONFIG_USB_XHCI_KEYSTONE) += xhci-keystone.o obj-$(CONFIG_USB_XHCI_EXYNOS) += xhci-exynos5.o obj-$(CONFIG_USB_XHCI_FSL) += xhci-fsl.o diff --git a/drivers/usb/host/xhci-zynqmp.c b/drivers/usb/host/xhci-zynqmp.c new file mode 100644 index 0000000..6e4eb3a --- /dev/null +++ b/drivers/usb/host/xhci-zynqmp.c @@ -0,0 +1,145 @@ +/* + * Copyright 2015 Xilinx, Inc. + * + * Zynq USB HOST xHCI Controller + * + * Author: Siva Durga Prasad Paladugu + * + * This file was reused from Freescale USB xHCI + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include +#include +#include +#include +#include +#include +#include "xhci.h" + +/* Declare global data pointer */ +DECLARE_GLOBAL_DATA_PTR; + +/* Default to the ZYNQMP XHCI defines */ +#define USB3_PWRCTL_CLK_CMD_MASK 0x3FE000 +#define USB3_PWRCTL_CLK_FREQ_MASK 0xFFC +#define USB3_PHY_PARTIAL_RX_POWERON BIT(6) +#define USB3_PHY_RX_POWERON BIT(14) +#define USB3_PHY_TX_POWERON BIT(15) +#define USB3_PHY_TX_RX_POWERON (USB3_PHY_RX_POWERON | USB3_PHY_TX_POWERON) +#define USB3_PWRCTL_CLK_CMD_SHIFT 14 +#define USB3_PWRCTL_CLK_FREQ_SHIFT 22 + +/* USBOTGSS_WRAPPER definitions */ +#define USBOTGSS_WRAPRESET BIT(17) +#define USBOTGSS_DMADISABLE BIT(16) +#define USBOTGSS_STANDBYMODE_NO_STANDBY BIT(4) +#define USBOTGSS_STANDBYMODE_SMRT BIT(5) +#define USBOTGSS_STANDBYMODE_SMRT_WKUP (0x3 << 4) +#define USBOTGSS_IDLEMODE_NOIDLE BIT(2) +#define USBOTGSS_IDLEMODE_SMRT BIT(3) +#define USBOTGSS_IDLEMODE_SMRT_WKUP (0x3 << 2) + +/* USBOTGSS_IRQENABLE_SET_0 bit */ +#define USBOTGSS_COREIRQ_EN BIT(1) + +/* USBOTGSS_IRQENABLE_SET_1 bits */ +#define USBOTGSS_IRQ_SET_1_IDPULLUP_FALL_EN BIT(1) +#define USBOTGSS_IRQ_SET_1_DISCHRGVBUS_FALL_EN BIT(3) +#define USBOTGSS_IRQ_SET_1_CHRGVBUS_FALL_EN BIT(4) +#define USBOTGSS_IRQ_SET_1_DRVVBUS_FALL_EN BIT(5) +#define USBOTGSS_IRQ_SET_1_IDPULLUP_RISE_EN BIT(8) +#define USBOTGSS_IRQ_SET_1_DISCHRGVBUS_RISE_EN BIT(11) +#define USBOTGSS_IRQ_SET_1_CHRGVBUS_RISE_EN BIT(12) +#define USBOTGSS_IRQ_SET_1_DRVVBUS_RISE_EN BIT(13) +#define USBOTGSS_IRQ_SET_1_OEVT_EN BIT(16) +#define USBOTGSS_IRQ_SET_1_DMADISABLECLR_EN BIT(17) + +struct zynqmp_xhci { + struct xhci_hccr *hcd; + struct dwc3 *dwc3_reg; +}; + +static struct zynqmp_xhci zynqmp_xhci; + +unsigned long ctr_addr[] = CONFIG_ZYNQMP_XHCI_LIST; + +__weak int __board_usb_init(int index, enum usb_init_type init) +{ + return 0; +} + +void usb_phy_reset(struct dwc3 *dwc3_reg) +{ + /* Assert USB3 PHY reset */ + setbits_le32(&dwc3_reg->g_usb3pipectl[0], DWC3_GUSB3PIPECTL_PHYSOFTRST); + + /* Assert USB2 PHY reset */ + setbits_le32(&dwc3_reg->g_usb2phycfg, DWC3_GUSB2PHYCFG_PHYSOFTRST); + + udelay(10); + + /* Clear USB3 PHY reset */ + clrbits_le32(&dwc3_reg->g_usb3pipectl[0], DWC3_GUSB3PIPECTL_PHYSOFTRST); + + /* Clear USB2 PHY reset */ + clrbits_le32(&dwc3_reg->g_usb2phycfg, DWC3_GUSB2PHYCFG_PHYSOFTRST); +} + +static int zynqmp_xhci_core_init(struct zynqmp_xhci *zynqmp_xhci) +{ + int ret = 0; + + ret = dwc3_core_init(zynqmp_xhci->dwc3_reg); + if (ret) { + debug("%s:failed to initialize core\n", __func__); + return ret; + } + + /* We are hard-coding DWC3 core to Host Mode */ + dwc3_set_mode(zynqmp_xhci->dwc3_reg, DWC3_GCTL_PRTCAP_HOST); + + return ret; +} + +int xhci_hcd_init(int index, struct xhci_hccr **hccr, struct xhci_hcor **hcor) +{ + struct zynqmp_xhci *ctx = &zynqmp_xhci; + int ret = 0; + + ctx->hcd = (struct xhci_hccr *)ctr_addr[index]; + ctx->dwc3_reg = (struct dwc3 *)((char *)(ctx->hcd) + DWC3_REG_OFFSET); + + ret = board_usb_init(index, USB_INIT_HOST); + if (ret != 0) { + puts("Failed to initialize board for USB\n"); + return ret; + } + + ret = zynqmp_xhci_core_init(ctx); + if (ret < 0) { + puts("Failed to initialize xhci\n"); + return ret; + } + + *hccr = (struct xhci_hccr *)ctx->hcd; + *hcor = (struct xhci_hcor *)((uint32_t) *hccr + + HC_LENGTH(xhci_readl(&(*hccr)->cr_capbase))); + + debug("zynqmp-xhci: init hccr %x and hcor %x hc_length %d\n", + (uint32_t)*hccr, (uint32_t)*hcor, + (uint32_t)HC_LENGTH(xhci_readl(&(*hccr)->cr_capbase))); + + return ret; +} + +void xhci_hcd_stop(int index) +{ + /* + * Currently zynqmp socs do not support PHY shutdown from + * sw. But this support may be added in future socs. + */ + + return 0; +} diff --git a/include/configs/xilinx_zynqmp_ep.h b/include/configs/xilinx_zynqmp_ep.h index e476eb1..abb3c40 100644 --- a/include/configs/xilinx_zynqmp_ep.h +++ b/include/configs/xilinx_zynqmp_ep.h @@ -24,6 +24,8 @@ #define CONFIG_SYS_I2C_ZYNQ #define CONFIG_ZYNQ_EEPROM #define CONFIG_AHCI +#define CONFIG_ZYNQMP_XHCI_LIST {ZYNQMP_USB0_XHCI_BASEADDR, \ + ZYNQMP_USB1_XHCI_BASEADDR} #include