From patchwork Fri Sep 4 06:31:07 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: 514383 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 A4B75140216 for ; Fri, 4 Sep 2015 21:08:31 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 9A7B94B78E; Fri, 4 Sep 2015 13:08:25 +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 KG6w8GeWtCKa; Fri, 4 Sep 2015 13:08:25 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 1804A4B7BD; Fri, 4 Sep 2015 13:08:15 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 1D4754B6FC for ; Fri, 4 Sep 2015 08:31:28 +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 bn4eVFWKcY-p for ; Fri, 4 Sep 2015 08:31:28 +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-by2-obe.outbound.protection.outlook.com (mail-by2on0064.outbound.protection.outlook.com [207.46.100.64]) by theia.denx.de (Postfix) with ESMTPS id 17D9D4B6F3 for ; Fri, 4 Sep 2015 08:31:24 +0200 (CEST) Received: from BN1BFFO11FD011.protection.gbl (10.58.144.33) by BN1BFFO11HUB005.protection.gbl (10.58.144.152) with Microsoft SMTP Server (TLS) id 15.1.262.18; Fri, 4 Sep 2015 06:31:20 +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 BN1BFFO11FD011.mail.protection.outlook.com (10.58.144.74) with Microsoft SMTP Server (TLS) id 15.1.262.18 via Frontend Transport; Fri, 4 Sep 2015 06:31:20 +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 1ZXkWt-0008Gp-Bl; Thu, 03 Sep 2015 23:31:19 -0700 Received: from [127.0.0.1] (helo=localhost) by xsj-pvapsmtp01 with smtp (Exim 4.63) (envelope-from ) id 1ZXkWt-0001Ry-7S; Thu, 03 Sep 2015 23:31:19 -0700 Received: from xsj-pvapsmtp01 (xsj-mail.xilinx.com [149.199.38.66]) by xsj-smtp-dlp2.xlnx.xilinx.com (8.13.8/8.13.1) with ESMTP id t846Ukm4000686; Thu, 3 Sep 2015 23:30:46 -0700 Received: from [172.23.146.171] (helo=xhdl3763.xilinx.com) by xsj-pvapsmtp01 with esmtp (Exim 4.63) (envelope-from ) id 1ZXkWl-0001RE-Mr; Thu, 03 Sep 2015 23:31:12 -0700 Received: by xhdl3763.xilinx.com (Postfix, from userid 13899) id D56282CE04DE; Fri, 4 Sep 2015 12:01:10 +0530 (IST) From: Siva Durga Prasad Paladugu To: Date: Fri, 4 Sep 2015 12:01:07 +0530 Message-ID: <1441348268-18547-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; BN1BFFO11FD011; 1:IlHQl0U0/Ooe6fXogW8AX3evSmYLvW5g2g/5AJDAIxmYDSgPEacItx5OpA+ykwc6GTfBwXQI6BmaDtsnfJLiMPwIBphY5zqUNyRNAURdWPXDPR/Ttj304/Z1cdQUHsLuosdCAcMgDduBPN+taoL7rBGPQgJlS6acPLUK/Q7C2+OxKJqfc7Ypj4FgPDrZi3nj4Zar8g6MCr5J/ztv5YkFx8aLj41GRZL/LL47eVtzIZydpkJJVEXGNuVtYlgT3/60FOTXYEXW+mJLKn2hEclVM6mGw/1r0DuBEGglIiG0Umefi6jD8Z7bBaOXkkVpW/Vic6zD4Lc4bnClhoW3qabPll6lMAkqaboASj+0vhleg5D4txPusUF2ia+XERnjj8B5 X-Forefront-Antispam-Report: CIP:149.199.60.83; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(2980300002)(438002)(199003)(189002)(45336002)(46386002)(107886002)(110136002)(36756003)(5001960100002)(5001860100001)(5001830100001)(5003940100001)(64706001)(81156007)(92566002)(4001540100001)(33646002)(50466002)(48376002)(50226001)(47776003)(36386004)(19580395003)(19580405001)(86362001)(52956003)(50986999)(5007970100001)(62966003)(77156002)(6806004)(103686003)(63266004)(2351001)(106466001)(229853001)(87936001)(189998001)(46102003)(42186005)(107986001)(90966001)(4001430100001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1BFFO11HUB005; H:xsj-pvapsmtpgw01; FPR:; SPF:Pass; PTR:unknown-60-83.xilinx.com; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11HUB005; 2:UlzLMCkwpGVSZd71Yd+fEhH1b6f1UP0f7fbGt20lYbJoS7uMLwdL+Gg2cdeGtvctecFB8AGa0FjHG/OLFecIjLk9zrVKwMT2kgN0Ue5NakYhFHKaPGPTHJau3nZ126aqpbBUwKCsBwp/D702SO3acEYQOBFKTkx/YdflFzHbfRE=; 3:s8ZfMMcxrHkLSb5zQNU4p75vvpyBpl2y7R4pgmbGjdKVZk2KTsANNDzEq6yMoC772WG8bhYnGbe79jqsGmtltRf6cv6dfM8hm1bXl0dh0VfTVJkmMVNKIqrbI9Qq/B1lhScCVqeCoi2TzQPg63H2pUJ+79fWehRmcfxg9PwobZeAbOYQMmZu50rRY7u+09BhVXV47zb94/aoHVNasog9cR+aqa9LjVjRa7jR/qa2rj60HQPxzdYJhl9N9TENVPCXKPjEpFLF2kEda4yR1IxCGA==; 25:JKNSGp8XFT08HE/MAS5RuYw4g3kYt2Ajtlq4qPbi/Bmbp3G3yHugasgtuW6cUM6R4SXa7JkAsGef/rO4RDNa1wPTF35Z8Q/sTPKDUgqb52l6Eoi1r0qfIStpT1eYz0y4SMZuOQueHbV+EwiDp3wE62WpCLGqhAXn3lGuLtWvHs3/4vPuh5qPIY8nAFOh1DuV2T/q6ULnPxcVKJtI/pjveSo6KpvtQN92fT8Zq6gZp1DXJeeCefFPvKOSW2G9v3xjcz+fLZHLj3qsWoauPL4X3A== X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(8251501001); SRVR:BN1BFFO11HUB005; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11HUB005; 20:aS6KnPW9N1BCqDjvZKydMWXRMAagTKyPdf8P2sjg5dbkcAzD1BPcn48WbbogrVC6C/MENZTgFP2PAZYl8mfgNYbp4G4sTvaPdKkDxIwu7yGcwjJxLmUz0LVDsj+a5Ee4PKdKCcMj3xbgb2+CHtdC9NVM7OfwZwiEolaS01qk/5J5xTJcMuqNc2YEdK6aOZLmWRaND8Si1c1Zs/oJcwPETnigVCkm7IudjMrGSj7iPFmRKkZqBhZ6GU49EJ0Azqx5PqgdLjg8maukba+ylhUsoLgWYhVyMFOTi2S7QU63nR4vKSa/Ir6La2t5PnbidagRZdxBURx/29vqAsCFY5l/+3rxjhHtsbCm3WLkBtCBrjsPFjsyfqgvfjOjfGdIN+O5AAhcZnvjaY8CYXtKDNK0KZkqmkxqi8tJBlDDWPPoCaURSnDwjaLlz+baIr5eJ5uHfR7OYYr4iqjZNoSsrzMAvs/MQnyBaNmg6flSPUGNNYQn9LJj01sl9K/Pkjnl8GwT; 4:mu5uajUwQ1hFbbcvBIsG93q0dkJFZDfFx7O8k66g7Mq3mExdeF4oDtvP2XDvrgEHCr9V+XvYW7uM5Shf8d7btNZpFr/uAnItXFxmNF4dSh7sL2Z5Jxa8zktJ6X6atwgMbTuZqP+b5kHzNxRnvfRYzGpM1EGoIwp8UUT29NlRm64ITOq9zQxx0eTHRxdirblTYZpFjwd7UogFsvqo20Ued5WBvaH5AN+81koeqtWj88GHX5ZlUWhY1hozgzq92f8cEaiS37P1FB0OFm7T8bmRDZTf8tnNTYjY/B7ttUBOA3EHpQUP1jYd6MGpqF4tJ9jI 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:BN1BFFO11HUB005; BCL:0; PCL:0; RULEID:; SRVR:BN1BFFO11HUB005; X-Forefront-PRVS: 06891E23FB X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1BFFO11HUB005; 23:8ARUO+6wEjQazaYp3wKxMJVfzIRQQhVEZUYmFCj?= =?us-ascii?Q?SnPKLxgO7Zk+YbbN3DAkMF9zGQIe+cJUGzhaf5uVmxGxi5bq37fe3+VqQ4bd?= =?us-ascii?Q?IXXyNfOnVCMwjl8u07ZCa6cZaVMUTL3mRSP/nDFxeMGWzHGxMuE67XoCwpzJ?= =?us-ascii?Q?uUzqXgSAx5wbW4wmYW51CK9qSydqjoPHblq3SDeLQuRS0Qk62LWT4iN85mTJ?= =?us-ascii?Q?EF1xHeXa4toUwFwTwh94hkFbokp1djNboi7Ct6dDeJm463Ek7Ksleq8sHvI1?= =?us-ascii?Q?IFun6rpWdeplTtZYk8ZX54vUTV5ehJMjISXJudrSmtOnxYcqYLYjFpVlqcsP?= =?us-ascii?Q?vGvBSO2bYwOF6F/frgxthNt0B4/UwvyWwKLMsncz1Y0lLo45q8urTenHYpbe?= =?us-ascii?Q?MbC3qHEBKOdqaoamGC8nEN068689eZIOESmzGJE1C4MyXqo8ePEio4tMCqkc?= =?us-ascii?Q?GkB37AvqpUxPUfkxD4U+bgZMeB4f+xNiL22TGBLuaTSJaUOKYkHrwbrgtZgD?= =?us-ascii?Q?U8nGz7dyL9HP7vf3J8INSrKNkNp1FZ/QvGr94rlGG05TvA97Tr2zBUCRsENW?= =?us-ascii?Q?aaIPFwMvegwNcV5eBmx7AN5YiUsJFIvPWlpmJ4BRrH4d0W3KUUujLI7l11Ni?= =?us-ascii?Q?AtAmcq/tgpHATTtQIEw0kHU8TBCbXHrbyyLtHNIuqFP8BDIyCHRO9Yg/QVxR?= =?us-ascii?Q?hTH5ErmQdMXHjVwhcMWf03UR5E96fpQE7DUuPA0RIzFDfmi/60rxGR7KChUj?= =?us-ascii?Q?MJtbOcTcdI6ETnuw+6VH822Sac3fou8P3wv+mIsb7LQo+5/rnA4eyhA1FanV?= =?us-ascii?Q?ZPEJXFojnAd0R9pUsacNAl451xX+kBMDVjORQz5J/oAD3tTfRMz1hcERw+vH?= =?us-ascii?Q?yz/OHK1IQI1sqQDfGVOQUm/t3ywIrjDoj44mHNeFtnCcrelLyMNxn9h2hYjD?= =?us-ascii?Q?MVDiMdKCIQtTA8pHIvXi53gE1fBLghhksRjOESpFipRCmHsVePRcog+h8Dv5?= =?us-ascii?Q?ZtiXqP2y1u/U/IZXJf8odJAEIkPVVIdMSe0ydz8wjWSJFoY04vN1uzTz210j?= =?us-ascii?Q?9wUgWcO3X+Q6dWcMVkp21+pBG/9TgQreUQeAWbwtqXbYX++JcgsUEysBpG51?= =?us-ascii?Q?amBIRULKDKTlZKsC+2L5JfnYJu8t+lpZUbX2YefgtrL8tkgYr4cqXeU7Ioen?= =?us-ascii?Q?41Jjf4ipYQ9wEOon5ZenEaZE+1aVp469A/17L?= X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11HUB005; 5:GMOSzrOj9V3n7YWRv+b+AcZFwtcKuDB2tLEQUM+EZ+0ZlZCXkbQlJFOoOASdctUrfD94v+JOYdcj4BtrHlIr5y3q+H17w111a510OxiDLRkd8H7LA51vFyYVfRq01yS6YpB4KPK87fuoqHUgYPKJqw==; 24:dIrZSih23WDC0KzllBYIH9LtWVWeDN3jj14hzvtobBrFC9IBu8CBV58XD2kTmG2Ke8KIkWfldY4sKrS0qJVg09ZBeAPM0+BPwe8xbVcDIa0= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2015 06:31:20.2315 (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: BN1BFFO11HUB005 X-Mailman-Approved-At: Fri, 04 Sep 2015 13:08:07 +0200 Cc: marex@denx.de, Siva Durga Prasad Paladugu Subject: [U-Boot] [PATCH v4 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 v4: - Added sanity check for index as per review comment 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 | 148 ++++++++++++++++++++++++++++++++++++ include/configs/xilinx_zynqmp_ep.h | 2 + 3 files changed, 151 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..7c4a413 --- /dev/null +++ b/drivers/usb/host/xhci-zynqmp.c @@ -0,0 +1,148 @@ +/* + * 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; + + if (index < 0 || index >= ARRAY_SIZE(ctr_addr)) + return -EINVAL; + + 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