From patchwork Thu Sep 3 07:21:20 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: 513987 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 70F341401DA for ; Thu, 3 Sep 2015 21:11:44 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 32EC84B7B2; Thu, 3 Sep 2015 13:11:41 +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 cAaPGfOyhG5o; Thu, 3 Sep 2015 13:11:40 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 9469C4B765; Thu, 3 Sep 2015 13:11:40 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 060A34B788 for ; Thu, 3 Sep 2015 09:21:33 +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 sygdmZ2DEikQ for ; Thu, 3 Sep 2015 09:21:32 +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-bn1on0088.outbound.protection.outlook.com [157.56.110.88]) by theia.denx.de (Postfix) with ESMTPS id 65D1B4B786 for ; Thu, 3 Sep 2015 09:21:29 +0200 (CEST) Received: from BN1AFFO11FD055.protection.gbl (10.58.52.34) by BN1AFFO11HUB034.protection.gbl (10.58.52.145) with Microsoft SMTP Server (TLS) id 15.1.256.10; Thu, 3 Sep 2015 07:21:27 +0000 Authentication-Results: spf=pass (sender IP is 149.199.60.83) smtp.mailfrom=xilinx.com; lists.denx.de; dkim=none (message not signed) header.d=none;lists.denx.de; dmarc=bestguesspass action=none header.from=xilinx.com; Received-SPF: Pass (protection.outlook.com: domain of xilinx.com designates 149.199.60.83 as permitted sender) receiver=protection.outlook.com; client-ip=149.199.60.83; helo=xsj-pvapsmtpgw01; Received: from xsj-pvapsmtpgw01 (149.199.60.83) by BN1AFFO11FD055.mail.protection.outlook.com (10.58.53.70) with Microsoft SMTP Server (TLS) id 15.1.262.18 via Frontend Transport; Thu, 3 Sep 2015 07:21:26 +0000 Received: from unknown-38-66.xilinx.com ([149.199.38.66] helo=xsj-pvapsmtp01) by xsj-pvapsmtpgw01 with esmtp (Exim 4.63) (envelope-from ) id 1ZXOpp-0007AS-TT; Thu, 03 Sep 2015 00:21:25 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1ZXOpp-0005s3-Oo; Thu, 03 Sep 2015 00:21:25 -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 t837KsVt030862; Thu, 3 Sep 2015 00:20:54 -0700 Received: from [172.23.146.171] (helo=xhdl3763.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1ZXOpo-0005rm-GQ; Thu, 03 Sep 2015 00:21:24 -0700 Received: by xhdl3763.xilinx.com (Postfix, from userid 13899) id ABE452CE04E5; Thu, 3 Sep 2015 12:51:23 +0530 (IST) From: Siva Durga Prasad Paladugu To: Date: Thu, 3 Sep 2015 12:51:20 +0530 Message-ID: <1441264881-3878-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; BN1AFFO11FD055; 1:BCk0nhvsHLWHmiiLz1t0y9Y2ASbkucTZ0D7GsfDzpfDAyjJ22nSstjVcnlK9KSYeidUVCmmyZVym+lxEW8s39PBlTawyanFqd0XJGlUvHAtmlryaFUy9gWpjEUnjpPEszP/oA5ZIP8WSCwjoQuw/nGylbsKzgPN9BdYoSNyspfZBrFxzfJ9QwinIkux2iWD+SNAdS9CcQs0x1fZxQOm3e5e/2cz6gRUCVkOHaC/lEgB/Jyk4rYxnQ2r8z9W4ejjJeTDoeX21RK3HACvvl5R8HatlwpfWleVwkQ1LCL/Der0TSHUmGMfY3Cze0DM2OEEKs2jMwFBFESaWyRU8jhlVjg== X-Forefront-Antispam-Report: CIP:149.199.60.83; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(438002)(189002)(199003)(81156007)(2351001)(50466002)(87936001)(48376002)(36756003)(110136002)(47776003)(77156002)(92566002)(86362001)(52956003)(42186005)(6806004)(33646002)(46386002)(46102003)(45336002)(5007970100001)(189998001)(4001540100001)(5001830100001)(50226001)(62966003)(5001960100002)(5001920100001)(19580405001)(103686003)(5003940100001)(106466001)(5001860100001)(50986999)(64706001)(63266004)(36386004)(107886002)(19580395003)(229853001)(107986001)(4001430100001)(90966001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1AFFO11HUB034; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; PTR:unknown-60-83.xilinx.com; MX:1; A:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11HUB034; 2:NnPys1B+8zh3gJ1HL0yG85aqyfwvsVqoKMp1j+7rucoJ5OEorAxPW0IqRXYSnb5BmDb450G7BOg5bTXnLc7XRGLQ88SLQxL8l+mWVgAFiwOyqAW6/3BccViSgs9Y3KebyGLeNSyfyyM3pTS9t6e6Z95qzsRrBIyJkqp64PjX+cA=; 3:sHGmty9m7vTz3IneKH2Gpb9Hm32nD39i0uQX5U3Loj/zjwU1NmN1dKN4oLShrxzXHu0MVbKlovZpfBDwWAgIMLZ3uem9IwhQFAlJ0CfSavllX8Uw6Rlvl70ZDtOUL8xmCUr+alTu2laCzpdxLb+ETeHtAkhKGpCC+VhqCZXWgFftR4PMFE00J9FjvdkjqL3iVOTbjIfWX6bX4qd/evDsDUv9WVq/KctE36D3IkE7OEhxPVy5+EWxr4cZmZmojwPajgd+fyzUcM6IQVu3ExWyNA==; 25:SDDWtBrjjN7OrimFYVFBiY8zlXyv9rQN4RevGLy+G203BSYs0w0V6EdhO23g+yls559Y8jKJHLTq0+BBLvRZAbYieXepwkPp8kZwAdzeyOumOJyHI/Du2Zlc+tNQ5aIiB1uLKdBnlBJUD5tcgTGgECUdI6r3Wv/W9Nbj1xhdd4JmALhlMKO5UBnKrOueuV5GU3LbmG9QbFyFtKO0Ly9qNoHKmtrkHegcIG68RKYUl2GEGs73PvxxkjAAGjz8x+CnWoZIeqJQGmGiry+wxq21YA== X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501001); SRVR:BN1AFFO11HUB034; X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11HUB034; 20:eD55+Kf79pn611AuzbkncL51iwbxWr+qDyFOwSMT8CTC/hH0dJ1/NrscMYP7F5RvuT2FyHroyeVCPSYwIvJYNAktFtzoYVbUAlWQ5PvMKvOygtOFiHRiGd6UXB4gMfxDhHkJIxpvHUOjQtJkGgahTUSU3LOZlxjP4RYNBlXbt1TqXnvWvXyCzVkYLYjX2CAlEUoLsedrtJ5tFvz2mFqAIC2GcoO72IVp6x9qdW5xFIbRUkefOw056iGgYa+zO5sdHsr3UyTa1IVVSntnuLsvnmxvAboOAkBCxOUqidIrfKy6OQSL7jNEZ+LoLVImVMrdIAvQ2gFMytEyvhOIC90CEyDfcW3/HtyaRvJeVTMW+afCGjBk5aonrwEt9y23DledjOdZbEry4WZYe4K8FQNoq0PWKXC01T9SS0myrrVaADCiiNMvSMzbqLqVjuO0ELEMF0n8C7Lo1gIBo2Zsy5oHzGuUHhQVr/QQbRVKxSgK8LD8m/bYi0wli2X6JmVyG/mP; 4:E1TaQZaC6yXuTMo1jS0bcvkX2MVDADH30L7btWZkGabm5C5yVFQz/liS2W+dUbmJc5RvLLsrzVzM9ZIWUyRoXTQVj06PDo37xVcREDUpRsyiSAzL+rXfU8cuEvjjC7Sq7keqqrFacOnEVk+Gmg7whps8FqcfgfOLQ07LojX/ptBgZOZ3Z3YSZYdiKErkxL3rpMUvUVTnEcwtf33uaytiR02seX8JC4Zd9VYVOiVqsPw+JW0gtHaN3P/kYpqT1c314jRECHAfQHB8wyqulcQdS8fDvCLBXKtn8Lj49nb9ukreEgFtagpACFB177E+7PX8 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(8121501046)(5005006)(3002001); SRVR:BN1AFFO11HUB034; BCL:0; PCL:0; RULEID:; SRVR:BN1AFFO11HUB034; X-Forefront-PRVS: 0688BF9B46 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1AFFO11HUB034; 23:kOUoE/OnLeFnvlhmy0JHlz7O0iSiTICDss8n1Dd?= =?us-ascii?Q?pFIYidT3ya848Kwppl4M0jEZKHzN3FXIFoWxvggFfWhdAkl4R/iNNJSRFbdM?= =?us-ascii?Q?Gkn5mi12TB95LNnTzhgcbRwW4tPJCvbQ7h5Oz9aKDZlL2ak3eiWuIWfQKad4?= =?us-ascii?Q?oH5ZCgnVO6NvCEmDdUfM2PzGnV/wil74OSZPYEmjoB4lPY7hphnphwi3j5OW?= =?us-ascii?Q?Sy4AUzj7TTALW7tKRfQd2UFseTjIb4ljvb2F9TSJ5Tai+KMbhEEl0G5Gnasl?= =?us-ascii?Q?bg1jdtwjNPlcfvVtN6a3yg4lXFegWj5DM/k+VAxZREZ0xbNXJCxaCTBsB9qa?= =?us-ascii?Q?I/wQpHd+tcHngQs+pK6ndbJv2F/yDqV7Uv9NbA9hR1tn1lMIhOsKz6o+xmcA?= =?us-ascii?Q?Wqf51OjqWPm0BJFL7Tn8T5FkYtIYB2tsca83yPFjLD4MDg4OI0YIwdVwgdJC?= =?us-ascii?Q?KLbruwCks/Ti3feyk0cAtLcAX5oVdP9DHt6/J7PLN8HWbJKZzt31ayysMoy9?= =?us-ascii?Q?XltMsrQMQFCWml99z7JaFKrFePuhi+nSs3DxdOQW9yVlW/e/4vYZU/haiLgY?= =?us-ascii?Q?HLS6Ln3JUdBMxaWPmdpEj8SGC3P+m6i9sVphAvt/KsCgEXsX+/iL381kbhIE?= =?us-ascii?Q?CQbZRZac0x5deOevNMnzwkWHewYUbbIrvXhJY8tcRYyaow0w/UtnoqrJ7itf?= =?us-ascii?Q?AldV79TXjZX59oMHdneknBxEFJxO0rLuazTxM+g0ESwVywzvTWVW6Udiwm6/?= =?us-ascii?Q?ztuWbImYz86tdgEL9+tnC6W2gMfLUCODV0/B+hCCjvdRHgHbFSM5P+jUwPI8?= =?us-ascii?Q?G4lf7LB9go0wPpSjAnHxr6GAwX4o+kCooDa2DXMaS9Gna2A3ZAPQEd7SnUFv?= =?us-ascii?Q?ZQqzobSMqzhvQuDoey+uDEUB/UtgsErD1CHc0apkAxzdU0Fbpy4w47KiHTjv?= =?us-ascii?Q?bydW3Q+31wmbelSD2vAo0j45MrYfKbG3jst7s6cTrAKvT471pVgY9cmOrTn6?= =?us-ascii?Q?AsqkjyqWgClb+1fAtmPA1GGaim6lMrcZxMT/LhE8G6hi3U61qmOZTS7ftFgm?= =?us-ascii?Q?iQc3B+edet4alojo/1e97e0VWFgdtc9e+M5IuQtMurVru+vfGPVdCShcqfmm?= =?us-ascii?Q?7Juif+szOhNOfCvJ2hJan0BsEw0KYiMSVNx+70csvaECHKhMDb2hhKWyeI35?= =?us-ascii?Q?KkM6fF3G3JZFEpWLcTw3Whje0gfRIOAtIcXKpmlFaSv0ZQsS9w3nzV4KbzQh?= =?us-ascii?Q?nocyShz8bFpVZ+pXNExw=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN1AFFO11HUB034; 5:50CEU5gd+AHkRq7FvKfXGQ2yA4XMLLp6y1UiwYNXwZrYNYs9BYy7EvkS9ZAtHk2A2WZt6Q+ONlK4OvX61WWb24YdPkT7Fa8V8czXOxAps0854YNsuqQe8uu0G4Tn5sq4wcTKPimVCecF2nEkg5Oj1Q==; 24:gSxRiy+Tf/2Nxb9ndW1QIhXmx9upB7H7tpEOPpJs8krrfrK60URlZuKUOSpJianmp79NQ6OCCONM1jzQfMJS5tLkmMY6+E5m26tXMepVDgE= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2015 07:21:26.7724 (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.83]; Helo=[xsj-pvapsmtpgw01] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1AFFO11HUB034 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