From patchwork Fri Mar 1 12:10:59 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?S=C3=B6ren_Moch?= X-Patchwork-Id: 1050143 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=web.de Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; secure) header.d=web.de header.i=@web.de header.b="kLtaYjsa"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 449pLn3MXHz9s3q for ; Fri, 1 Mar 2019 23:16:49 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 35D6AC21DCA; Fri, 1 Mar 2019 12:13:20 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 6B2B1C21E1D; Fri, 1 Mar 2019 12:11:29 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id EFA20C21E30; Fri, 1 Mar 2019 12:11:23 +0000 (UTC) Received: from mout.web.de (mout.web.de [212.227.15.3]) by lists.denx.de (Postfix) with ESMTPS id D1FE4C21C27 for ; Fri, 1 Mar 2019 12:11:19 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1551442276; bh=DrbPsXsbqSSvw44wW9z2UbsI/PD7cBYcpT0+YRbdVps=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=kLtaYjsa1QF2OORa4VlzUQn55FH62FgvRznHgqu4WN1vjbhSb0BZ9VSk/AtwNCR42 k21PhI8uybtI3MIVPryIsnyJpXLstdhUa0WVWDfKFn+9O2GA+Oq4jEgDWCA5OSby9W FlP8s13Ddg6aHUSzXfeXERtxZ+w0LfLmaNTZ+5Lw= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from localhost.localdomain ([89.15.236.239]) by smtp.web.de (mrweb002 [213.165.67.108]) with ESMTPSA (Nemesis) id 0MN47k-1gt7RE1HzM-006hFV; Fri, 01 Mar 2019 13:11:16 +0100 From: Soeren Moch To: Stefano Babic Date: Fri, 1 Mar 2019 13:10:59 +0100 Message-Id: <20190301121101.14163-9-smoch@web.de> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190301121101.14163-1-smoch@web.de> References: <20190301121101.14163-1-smoch@web.de> X-Provags-ID: V03:K1:9aYGENBSC2LtMWuufQ1t1edL5HHlzlCKtaAJgD/eIjfZ33mJYax HfTuADUGi/m2pbAWh0rn9zVaygXVvFSgltMHKV1zrGlVXB0Saa5ak6xd76UyBfgnVNnaxPb Eb+6j4JhD1JdjuNvtNtN4yceISGgLYKZ7nnM7IpMldrjwDe9Yf4zrmQlGl8GlVai2E9E/HU jhQFPdiRjrULWyM8nYDbA== X-UI-Out-Filterresults: notjunk:1; V03:K0:v0s/xwtSeso=:DdLw0DN3IZ0BJ/tSyF7eHH tyokFx22kTL7mr4iM27IJML4lIs/6ZE302yb8F1nLNN76MutLy0XEiT9yA20jAgkg17E2xa13 0Mex6KQQJCKncERA6RPzksbuVg8Rrs3kLhbCAYZhfOypRBakWocEUtlckYcSxF5Bd/2cbQU1m UxBx6Kxm0DanSYxh7hJe80jrZPQd1X3bkCyyuUgs1CDu8xI59mYTO65d5dOmSjBHEfm4Tc4sf iICV2nTWAqF8sWSyphZJp8BHAxCAKfXTKh+IOljIXP3v/vUljqT97tTgEE6/40nWSgHWDnJLV 6KzP54UD5OAmNKiZBt+7h1Cns3/CjKjxUL8Iv2xLjat74iq1JjCN8Ej6eLJdlOgFDhUoyPzVD FHxvKjw9aLunr6m/nE7CZ8KcpvNRCoFEKudLBX+F8vVxvjSGU4B3aMEeSJUr6SnnUcj6GSJYa VRM4TNlHjw1gt+3X2MsrhtwnqG6nAKbWCOS5e/daIZ+3A+Jirm4XQqm/QPiClwf9GrePB2ytM XRQWGeRXFeWrw1SzGvmd4x+bwkS77VjlE/KxCgjGCi6iLO6R3ieXwWdIkmVXxgm2tKllWpPJz 2bX8fluC8ZRrQHsq4dnxzvMrhwROvIPfga0MxMaODqt1VFNKdigSqM61oWoLXvJidEPcAepdg vvW/RLXG+eNe6+8FuI3tZfBIwe9R3V9WEK17qSFDwqXXzMUq/ZYamV9TuCAzV9Zk4NB/Jy9HV MFtWscor2n7Dzvglom9RJkA8Fr0NhDYGDDOUrxKGbrLJuuIxbjb6sr+jrSp0/CGJMb/hW20yy Y4xmh4D6sX7/jEu9ciqIq5CCUQgSA4AFk1EMyk+cjTkaAWPGNXpFkGndILit7PhK3NQghloUQ FHGprmgMghszmeqMGdsEH9tNJuUfKfp6g7wZqwaKpb/aTZV6F976w+NV/kt446 Cc: Nikita Kiryanov , u-boot@lists.denx.de, Soeren Moch , Marcel Ziswiler , Stefan Roese Subject: [U-Boot] [PATCH 08/10] ata: dwc_ahsata: Add ahci driver model support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Disable this support for cm_fx6 to avoid breakage. Signed-off-by: Soeren Moch --- It would be easy to add weak board_ahci_enable/disable functions which can be overwritten (e.g. in the cm_fx6 board file) to handle power enable/ disable on driver probe/remove. But I have no idea why this board needs these repeated probe/remove calls for the same sata device. In my tests on a tbs2910 board a sata harddisk is always recognized by a 'sata init' command, also without this probe loop. If this can be ironed out, we can remove the DWC_AHSATA_AHCI config option. Cc: Nikita Kiryanov Cc: Stefano Babic Cc: Fabio Estevam Cc: Marcel Ziswiler Cc: Stefan Roese Cc: Simon Glass Cc: u-boot@lists.denx.de --- configs/cm_fx6_defconfig | 1 + drivers/ata/Kconfig | 8 ++++++++ drivers/ata/dwc_ahsata.c | 24 ++++++++++++++++++++++++ 3 files changed, 33 insertions(+) -- 2.17.1 diff --git a/configs/cm_fx6_defconfig b/configs/cm_fx6_defconfig index c8d1e83111..1623357132 100644 --- a/configs/cm_fx6_defconfig +++ b/configs/cm_fx6_defconfig @@ -51,6 +51,7 @@ CONFIG_DEFAULT_DEVICE_TREE="imx6q-cm-fx6" CONFIG_ENV_IS_IN_SPI_FLASH=y CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y CONFIG_DWC_AHSATA=y +# CONFIG_DWC_AHSATA_AHCI is not set CONFIG_DM_KEYBOARD=y CONFIG_DM_MMC=y CONFIG_FSL_ESDHC=y diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index 49a056e941..d7818c2d68 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig @@ -66,6 +66,14 @@ config DWC_AHSATA Enable this driver to support the DWC AHSATA SATA controller found in i.MX5 and i.MX6 SoCs. +config DWC_AHSATA_AHCI + bool "Enable DWC AHSATA AHCI driver support" + depends on DWC_AHSATA + depends on AHCI + default y + help + Enable this option unless you need your private ahci implementation + config FSL_SATA bool "Enable Freescale SATA controller driver support" select LIBATA diff --git a/drivers/ata/dwc_ahsata.c b/drivers/ata/dwc_ahsata.c index 6fe5641dd9..afced8e7e3 100644 --- a/drivers/ata/dwc_ahsata.c +++ b/drivers/ata/dwc_ahsata.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include #include @@ -1020,6 +1021,9 @@ int dwc_ahsata_probe(struct udevice *dev) struct ahci_uc_priv *uc_priv = dev_get_uclass_priv(dev); int ret; +#if defined(CONFIG_MX6) + setup_sata(); +#endif uc_priv->host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | ATA_FLAG_MMIO | ATA_FLAG_PIO_DMA | ATA_FLAG_NO_ATAPI; uc_priv->mmio_base = (void __iomem *)dev_read_addr(dev); @@ -1067,4 +1071,24 @@ U_BOOT_DRIVER(dwc_ahsata_blk) = { .ops = &dwc_ahsata_blk_ops, }; +#if CONFIG_IS_ENABLED(DWC_AHSATA_AHCI) +struct ahci_ops dwc_ahsata_ahci_ops = { + .port_status = dwc_ahsata_port_status, + .reset = dwc_ahsata_bus_reset, + .scan = dwc_ahsata_scan, +}; + +static const struct udevice_id dwc_ahsata_ahci_ids[] = { + { .compatible = "fsl,imx6q-ahci" }, + { } +}; + +U_BOOT_DRIVER(dwc_ahsata_ahci) = { + .name = "dwc_ahsata_ahci", + .id = UCLASS_AHCI, + .of_match = dwc_ahsata_ahci_ids, + .ops = &dwc_ahsata_ahci_ops, + .probe = dwc_ahsata_probe, +}; +#endif #endif