From patchwork Sat Jul 31 21:35:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 12412717 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 27911C4338F for ; Sat, 31 Jul 2021 21:40:25 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E1E8060F48 for ; Sat, 31 Jul 2021 21:40:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org E1E8060F48 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=OO1HEW94XAUJTtTQJv3qgjbLFV4bvwl2rlCDRoOaF74=; b=vNFwo2aY3ss37C VorEHna6JthlRWOM+w5FVItdCSeNhGRkn0JJu43i8pwovXALZmDD6FDkuGpK060xyD2IQbzMUOsmi 25bcOulvynYTS3Zs5OjKe/Fmdjzna9QB515MhR84vw77jnsEgqLA7rXp2G77PYoJb52aQK+29IEyT +0RJ/BIi1sWBVRbQqRuXGWalCWioNepelCqpbU/4hVkYeFY0lUE8K8AUudAgm6dnwMRIjpKaBPVa3 wJdylSnzhZ6Z2+oT6e0C6t3f3MhGzYSLLwe36ICNg16Bx7qASgRXjUdJuVt6r9XJbCqH3dxmQ/9Dm J3NJsZiLGByL068izuzA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9wgL-00CJdF-FB; Sat, 31 Jul 2021 21:38:09 +0000 Received: from mail-lj1-x22a.google.com ([2a00:1450:4864:20::22a]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9wgH-00CJcH-Ly for linux-arm-kernel@lists.infradead.org; Sat, 31 Jul 2021 21:38:07 +0000 Received: by mail-lj1-x22a.google.com with SMTP id l17so18325477ljn.2 for ; Sat, 31 Jul 2021 14:38:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=W7qUFzW5XAPgMODU+xc+DKpwo9r3q77YftplfblNgVI=; b=mJCeppVmqjSBrvbTKMa2nnzoFAO1JLl8f0wUQlFYVG938UEEWVXNI77QIr5Kq/VTxE MN3DSwwHgXtZ+YtSb07xCtD4D1T/jw0uZSzTzcow8tqEe5HD55idiuKr0Gj5DVQJxoxI /68jDI+JQt3e7Dw4iVQlHIEnRkhioRSbdykQV6UZ6yScBhjlH6s7Ij4oBCCj27fCoox/ 1YzXf8V6SZWLV/I4yaPCSoETup9les5HBDuWHFqKtumK26v61uKr/4/8yWYl/Htv/q4f b/BXsKhyfjzqGWNTL+LSUcPUhJMuNUfpwDvZtabe1Lwkp5gzUHUQ8Y14JovSNVfqh87n oA7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=W7qUFzW5XAPgMODU+xc+DKpwo9r3q77YftplfblNgVI=; b=j2H82Apqy2Z6dFJFGJNlI/7pBunLnuYU7R+YqrquPVoBSDzg5Lv3P6poeQHxkPYKlV xOl1qK4TYI1TQNmRkUVpu9rQdkKzJTyplQO8vNRavpE5MDKJ+goe+LV5N8vwzyC2mCrk VzXDzoonLoq/tViP8/dM1ImwBccrln0wg8ZFmniaymypeMxM/XDL7R3bvqU4cMQ1Dlnr Q4WV58fWfuU2oCHsSNg+vpx4BB86tW5PvvQHt/twCZgVqXXweGEVXeOoU20zjubrIwyV DuAhXq3wYobStbgNVbfktlLLfAPZVIhoD3DUjfAnSTX0pe3kncYJYh0H0mLUQP4Dmmar h7mw== X-Gm-Message-State: AOAM533hRxwNs3FsHkSD2PHFixXxN8D9mvT17Z8dQ1pKMrkqRehbM4Xc 0OksbS45MqouHto4nEjgC83lQA== X-Google-Smtp-Source: ABdhPJyS4HS3DvVj5QrSFzJeYphjyLAko6m0p9h+LTFak+WRFXEe4fMouq8OyYtOEaMZtD+zLWd8IQ== X-Received: by 2002:a2e:2286:: with SMTP id i128mr6184963lji.260.1627767480260; Sat, 31 Jul 2021 14:38:00 -0700 (PDT) Received: from localhost.localdomain (c-fdcc225c.014-348-6c756e10.bbcust.telenor.se. [92.34.204.253]) by smtp.gmail.com with ESMTPSA id t17sm440430ljk.102.2021.07.31.14.37.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Jul 2021 14:37:59 -0700 (PDT) From: Linus Walleij To: Jens Axboe , linux-ide@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, Imre Kaloz , Krzysztof Halasa , Linus Walleij Subject: [PATCH 1/5 v2] pata: ixp4xx: Use local dev variable Date: Sat, 31 Jul 2021 23:35:51 +0200 Message-Id: <20210731213555.2965356-1-linus.walleij@linaro.org> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210731_143805_810221_6C337CB6 X-CRM114-Status: GOOD ( 12.92 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Let's simplify all &pdev->dev references by creating a local struct device *dev variable. Signed-off-by: Linus Walleij --- ChangeLog v1->v2: - No changes --- drivers/ata/pata_ixp4xx_cf.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/ata/pata_ixp4xx_cf.c b/drivers/ata/pata_ixp4xx_cf.c index 5881d64af943..23f0f7cacd52 100644 --- a/drivers/ata/pata_ixp4xx_cf.c +++ b/drivers/ata/pata_ixp4xx_cf.c @@ -139,6 +139,7 @@ static int ixp4xx_pata_probe(struct platform_device *pdev) struct resource *cs0, *cs1; struct ata_host *host; struct ata_port *ap; + struct device *dev = &pdev->dev; struct ixp4xx_pata_data *data = dev_get_platdata(&pdev->dev); int ret; int irq; @@ -150,17 +151,17 @@ static int ixp4xx_pata_probe(struct platform_device *pdev) return -EINVAL; /* allocate host */ - host = ata_host_alloc(&pdev->dev, 1); + host = ata_host_alloc(dev, 1); if (!host) return -ENOMEM; /* acquire resources and fill host */ - ret = dma_set_coherent_mask(&pdev->dev, DMA_BIT_MASK(32)); + ret = dma_set_coherent_mask(dev, DMA_BIT_MASK(32)); if (ret) return ret; - data->cs0 = devm_ioremap(&pdev->dev, cs0->start, 0x1000); - data->cs1 = devm_ioremap(&pdev->dev, cs1->start, 0x1000); + data->cs0 = devm_ioremap(dev, cs0->start, 0x1000); + data->cs1 = devm_ioremap(dev, cs1->start, 0x1000); if (!data->cs0 || !data->cs1) return -ENOMEM; @@ -185,7 +186,7 @@ static int ixp4xx_pata_probe(struct platform_device *pdev) ixp4xx_setup_port(ap, data, cs0->start, cs1->start); - ata_print_version_once(&pdev->dev, DRV_VERSION); + ata_print_version_once(dev, DRV_VERSION); /* activate host */ return ata_host_activate(host, irq, ata_sff_interrupt, 0, &ixp4xx_sht); From patchwork Sat Jul 31 21:35:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 12412719 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5FA9CC4338F for ; Sat, 31 Jul 2021 21:40:36 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2CDD460F39 for ; Sat, 31 Jul 2021 21:40:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 2CDD460F39 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=f6YGxXPpg2qw7fZsUv1WinB+ckvrbWH4gRwR3+gpGZo=; b=w4i1cIYB3TB3A9 7puF4s8clrADK+5rpiADsk6fT+Iv218hPMA8O8htJasGEBk9GYavTn9Jbe8hzONvqAnljDKLxK51P nTlp1rSgbYd6SgTNuolTQCZcJeb06OozwSUHFXHyYO58GiRk2UdEvBB9fNdROv6Js3Po1cad6LxCU veMuLN4bQi8l4DkAk/U/4Vc7sn/Jzxyx32i83y1yuhSEm1IhPud6CI2E5GpclPnknZjYQkedcG51A R+pvN3goU2Cd02zkX1+K/z6JYz9QBq/lDqsSbmU0PdrxCroOCarFGo3TeA3+W2lPVW+69xuoH8Uvy aJX1PjbhFNaBdDD7lxAA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9wgj-00CJfT-Pv; Sat, 31 Jul 2021 21:38:33 +0000 Received: from mail-lf1-x135.google.com ([2a00:1450:4864:20::135]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9wgf-00CJeJ-Sa for linux-arm-kernel@lists.infradead.org; Sat, 31 Jul 2021 21:38:31 +0000 Received: by mail-lf1-x135.google.com with SMTP id p38so10850238lfa.0 for ; Sat, 31 Jul 2021 14:38:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1s2gp+Z0A+42wMyMuLTufRoIAkb04D7YA7vr8UMT6UM=; b=zZ/g1t1osZgQctQuobiLT625UqjXeKdwYeXz22SbvpVDw1MpB7tnuq7Uj7XCuSFVDf 6PJ4Kg+mywE8RkEH5gC/oFfraLLlhQwAzUrSKwiNuA2W6VE/PdRhWGw99KOirVTy7Eh5 3VExEaeudIWXxaLdClUDXG6T9T8tKQbDY9m8ImCXbcpYOGqqIGMUS+ga6oKG/V1lpfmI mD7D4dpX0abjzLDCzUeNe3RbL8b4NLHv8nXJcU96p+kxMBvx12I4sipShBH73vrrIIFT A5tBHlDxpilsfBJEEFaIzcp9AGBhq0Tc7m2KpZrFB5YXwZhyxJMIEnbr1WSK1Wz9p02n iV5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1s2gp+Z0A+42wMyMuLTufRoIAkb04D7YA7vr8UMT6UM=; b=fW4x1lLZOHIaiRJlUiIcIC+HuIdO0vXeKHz51P5EhrYXWaM5EAEwv79SKw1OUS0e+k /Wr+5eUqq1PoDhiHekrAuyIA69lFxEo5PfBDJJ2g3J7iya5sKcegZzzA1NZUXsNk2fQQ jSTYPY2uo779UaRFzOq7QLTTGmyObCDeGsdM01UfgRDq5FSk22aP4v8qGXTbbjH8Ej8x eHUaUrq2BDJq8/ZBs7DOloP97UngrHtCY9+2m8whSNDjvOPaDR4pUkNvcAOh1gHvAkiM vrGSoszhupYKxhaHeuHLa9tFUzSW0ZJtXxz3d07qROTMNSYrzTXLkJJyTdZqJW/ALOGJ +T6Q== X-Gm-Message-State: AOAM533Vb0U+j9wpIt5yRTHV8hl7WPd2IRX5k2SApx9sPRZGk371C+ZV vLqnr/MIhVwl5MdyqGwVuOk4cQ== X-Google-Smtp-Source: ABdhPJwsHhKIULHtEBrNk92eDI/kXyQUBTX3ATT6nGpvZcj/b229z2rZHxG7PUKUCPOsk+3BkW7fBQ== X-Received: by 2002:ac2:4475:: with SMTP id y21mr6511257lfl.487.1627767508262; Sat, 31 Jul 2021 14:38:28 -0700 (PDT) Received: from localhost.localdomain (c-fdcc225c.014-348-6c756e10.bbcust.telenor.se. [92.34.204.253]) by smtp.gmail.com with ESMTPSA id t17sm440430ljk.102.2021.07.31.14.38.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Jul 2021 14:38:27 -0700 (PDT) From: Linus Walleij To: Jens Axboe , linux-ide@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, Imre Kaloz , Krzysztof Halasa , Linus Walleij Subject: [PATCH 2/5 v2] pata: ixp4xx: Use IS_ENABLED() to determine endianness Date: Sat, 31 Jul 2021 23:35:52 +0200 Message-Id: <20210731213555.2965356-2-linus.walleij@linaro.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210731213555.2965356-1-linus.walleij@linaro.org> References: <20210731213555.2965356-1-linus.walleij@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210731_143829_967523_74AB1049 X-CRM114-Status: GOOD ( 12.95 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Instead of an ARM-specific ifdef, use the global CPU config and if (IS_ENABLED()). Signed-off-by: Linus Walleij --- ChangeLog v1->v2: - No changes --- drivers/ata/pata_ixp4xx_cf.c | 45 ++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/drivers/ata/pata_ixp4xx_cf.c b/drivers/ata/pata_ixp4xx_cf.c index 23f0f7cacd52..bc5029d6525d 100644 --- a/drivers/ata/pata_ixp4xx_cf.c +++ b/drivers/ata/pata_ixp4xx_cf.c @@ -107,29 +107,28 @@ static void ixp4xx_setup_port(struct ata_port *ap, ata_sff_std_ports(ioaddr); -#ifndef __ARMEB__ - - /* adjust the addresses to handle the address swizzling of the - * ixp4xx in little endian mode. - */ - - *(unsigned long *)&ioaddr->data_addr ^= 0x02; - *(unsigned long *)&ioaddr->cmd_addr ^= 0x03; - *(unsigned long *)&ioaddr->altstatus_addr ^= 0x03; - *(unsigned long *)&ioaddr->ctl_addr ^= 0x03; - *(unsigned long *)&ioaddr->error_addr ^= 0x03; - *(unsigned long *)&ioaddr->feature_addr ^= 0x03; - *(unsigned long *)&ioaddr->nsect_addr ^= 0x03; - *(unsigned long *)&ioaddr->lbal_addr ^= 0x03; - *(unsigned long *)&ioaddr->lbam_addr ^= 0x03; - *(unsigned long *)&ioaddr->lbah_addr ^= 0x03; - *(unsigned long *)&ioaddr->device_addr ^= 0x03; - *(unsigned long *)&ioaddr->status_addr ^= 0x03; - *(unsigned long *)&ioaddr->command_addr ^= 0x03; - - raw_cmd ^= 0x03; - raw_ctl ^= 0x03; -#endif + if (!IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)) { + /* adjust the addresses to handle the address swizzling of the + * ixp4xx in little endian mode. + */ + + *(unsigned long *)&ioaddr->data_addr ^= 0x02; + *(unsigned long *)&ioaddr->cmd_addr ^= 0x03; + *(unsigned long *)&ioaddr->altstatus_addr ^= 0x03; + *(unsigned long *)&ioaddr->ctl_addr ^= 0x03; + *(unsigned long *)&ioaddr->error_addr ^= 0x03; + *(unsigned long *)&ioaddr->feature_addr ^= 0x03; + *(unsigned long *)&ioaddr->nsect_addr ^= 0x03; + *(unsigned long *)&ioaddr->lbal_addr ^= 0x03; + *(unsigned long *)&ioaddr->lbam_addr ^= 0x03; + *(unsigned long *)&ioaddr->lbah_addr ^= 0x03; + *(unsigned long *)&ioaddr->device_addr ^= 0x03; + *(unsigned long *)&ioaddr->status_addr ^= 0x03; + *(unsigned long *)&ioaddr->command_addr ^= 0x03; + + raw_cmd ^= 0x03; + raw_ctl ^= 0x03; + } ata_port_desc(ap, "cmd 0x%lx ctl 0x%lx", raw_cmd, raw_ctl); } From patchwork Sat Jul 31 21:35:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 12412721 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 367F9C4338F for ; Sat, 31 Jul 2021 21:40:44 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 0642860F39 for ; Sat, 31 Jul 2021 21:40:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 0642860F39 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=VhJmjnltfMPGX6ujH9kYQmhI0lPqaNlYyylXgRpxeik=; b=Gbc8z18BvM/RdP XjrdLYcl4Ai3MSS647r+8aLtewLiAcPuVdwVKmwzR5n9+0EapIcPd7dwaLdcsP1hlzVNTo3C2/khP OpRd30vRzITYnvmxRpQVbS9eX/aABqUnaynAoCzAM0mVcNkYHnhI8xiApIScM+KW6pn313kyvJlwt l7J3t/R/cYjPbEClam9WqQoWAaW+zra8/CH457tQW3s8kG8+PAYPNONs0dSgfZJL3kUC/UJZYgFQi y6vUzbH5cU5ICNswQgCdDCoXqvbm25lH11RfXJSB5zwWFz+S9iserO7TV5L1QIZOgAlAzMqFuJuFV JUrQQlIZbpCkXqcM83AQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9wgv-00CJi0-Sf; Sat, 31 Jul 2021 21:38:46 +0000 Received: from mail-lf1-x12e.google.com ([2a00:1450:4864:20::12e]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9wgh-00CJeZ-76 for linux-arm-kernel@lists.infradead.org; Sat, 31 Jul 2021 21:38:32 +0000 Received: by mail-lf1-x12e.google.com with SMTP id g13so25735134lfj.12 for ; Sat, 31 Jul 2021 14:38:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+0GzIHtzGfx+AK9NGP7g7Q/1Xsz9OothhNCL9dAODGo=; b=O2CPeAgt5ID99EyjbllsSN0lYyhLd7q5lNr2AAHIJbAPu9ZO+yCVX7yLJvnf8IhWoc bMo7y66sPqXHOCpwf+m2Lb40Z6xf9GKNMfcbRnGLS96bljQXbCREXfDkmZNAtc6z4wNz LYXtVt4uz7EOm8Iq11U/6CEYp+StvkFlekIWgQsZ8SIlkMv4bNVhUYmSVHjLOzAbk6Im /sHh1zPH/ueV4fKErFa+ZJJjcyiboYOOY7cBgXNc1JSJRhwwvhohLlRB3yRXnT2bv/YV 4bqKXX+QqO3Z41gzfEXR2pqGF+8bXOZmWLH7vdpNt2ny/60jC6qiMF/36dF3Qz31ycHL gzaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+0GzIHtzGfx+AK9NGP7g7Q/1Xsz9OothhNCL9dAODGo=; b=pDqM1MObTeeA4ulhkA0YvU64AvFMB8dYJM0ntvptGRg8tGBoj2l+pYFEjEAPcJU09O tD+WB6iuvGMNkKX5C7uH9f5DhhiGptqDmvOLMejvEsUxIO9qdyCGQSXKJMBaSgKko0NG fLvJE0hkR3I8523odaJmYrL9LvLaA29/vhchsDjxuEZbx5Ag3mq2AGDERvA8nzHgOYAJ sl9U22mcgAYS3aYn2/S5j8eYU2Bx1SKHgRnjV631OBle6FzHEbzT/vkgEUGoGNGQUpza SLr+sBAGGnZ/YlPKBn2HYwHxJTXEjlU0k23+A/hWYTMPM9mRnkBIZ3WlF4lMOwVxOY8l eMDw== X-Gm-Message-State: AOAM533JKRav63ccsZxGtcUKyt2NhQUA1KdeIgdPzBPKarXPRfnp88Vt SieAO0pLIVxCvRnHLBTA5zJ6PQ== X-Google-Smtp-Source: ABdhPJx4Pt0ZnByVyAjNZwrr0dSuXSNZg3oc8g+ZmZ8TLv5Y26Afyc9zF3BChvn2ba6go/IiR+t7zg== X-Received: by 2002:ac2:560d:: with SMTP id v13mr6776868lfd.518.1627767509615; Sat, 31 Jul 2021 14:38:29 -0700 (PDT) Received: from localhost.localdomain (c-fdcc225c.014-348-6c756e10.bbcust.telenor.se. [92.34.204.253]) by smtp.gmail.com with ESMTPSA id t17sm440430ljk.102.2021.07.31.14.38.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Jul 2021 14:38:29 -0700 (PDT) From: Linus Walleij To: Jens Axboe , linux-ide@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, Imre Kaloz , Krzysztof Halasa , Linus Walleij Subject: [PATCH 3/5 v2] pata: ixp4xx: Refer to cmd and ctl rather than csN Date: Sat, 31 Jul 2021 23:35:53 +0200 Message-Id: <20210731213555.2965356-3-linus.walleij@linaro.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210731213555.2965356-1-linus.walleij@linaro.org> References: <20210731213555.2965356-1-linus.walleij@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210731_143831_329866_403D03D9 X-CRM114-Status: GOOD ( 17.51 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The two "cs0" and "cs1" are "chip selects" but on some platforms such as GW2358 they are actually both in CS3 making this terminology very confusing. Call the addresses "cmd" and "ctl" after function instead. Signed-off-by: Linus Walleij --- ChangeLog v1->v2: - No changes --- drivers/ata/pata_ixp4xx_cf.c | 27 ++++++++++---------- include/linux/platform_data/pata_ixp4xx_cf.h | 4 +-- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/drivers/ata/pata_ixp4xx_cf.c b/drivers/ata/pata_ixp4xx_cf.c index bc5029d6525d..72d6d6f2ef99 100644 --- a/drivers/ata/pata_ixp4xx_cf.c +++ b/drivers/ata/pata_ixp4xx_cf.c @@ -95,15 +95,14 @@ static struct ata_port_operations ixp4xx_port_ops = { static void ixp4xx_setup_port(struct ata_port *ap, struct ixp4xx_pata_data *data, - unsigned long raw_cs0, unsigned long raw_cs1) + unsigned long raw_cmd, unsigned long raw_ctl) { struct ata_ioports *ioaddr = &ap->ioaddr; - unsigned long raw_cmd = raw_cs0; - unsigned long raw_ctl = raw_cs1 + 0x06; - ioaddr->cmd_addr = data->cs0; - ioaddr->altstatus_addr = data->cs1 + 0x06; - ioaddr->ctl_addr = data->cs1 + 0x06; + raw_ctl += 0x06; + ioaddr->cmd_addr = data->cmd; + ioaddr->altstatus_addr = data->ctl + 0x06; + ioaddr->ctl_addr = data->ctl + 0x06; ata_sff_std_ports(ioaddr); @@ -135,7 +134,7 @@ static void ixp4xx_setup_port(struct ata_port *ap, static int ixp4xx_pata_probe(struct platform_device *pdev) { - struct resource *cs0, *cs1; + struct resource *cmd, *ctl; struct ata_host *host; struct ata_port *ap; struct device *dev = &pdev->dev; @@ -143,10 +142,10 @@ static int ixp4xx_pata_probe(struct platform_device *pdev) int ret; int irq; - cs0 = platform_get_resource(pdev, IORESOURCE_MEM, 0); - cs1 = platform_get_resource(pdev, IORESOURCE_MEM, 1); + cmd = platform_get_resource(pdev, IORESOURCE_MEM, 0); + ctl = platform_get_resource(pdev, IORESOURCE_MEM, 1); - if (!cs0 || !cs1) + if (!cmd || !ctl) return -EINVAL; /* allocate host */ @@ -159,10 +158,10 @@ static int ixp4xx_pata_probe(struct platform_device *pdev) if (ret) return ret; - data->cs0 = devm_ioremap(dev, cs0->start, 0x1000); - data->cs1 = devm_ioremap(dev, cs1->start, 0x1000); + data->cmd = devm_ioremap(dev, cmd->start, 0x1000); + data->ctl = devm_ioremap(dev, ctl->start, 0x1000); - if (!data->cs0 || !data->cs1) + if (!data->cmd || !data->ctl) return -ENOMEM; irq = platform_get_irq(pdev, 0); @@ -183,7 +182,7 @@ static int ixp4xx_pata_probe(struct platform_device *pdev) ap->pio_mask = ATA_PIO4; ap->flags |= ATA_FLAG_NO_ATAPI; - ixp4xx_setup_port(ap, data, cs0->start, cs1->start); + ixp4xx_setup_port(ap, data, cmd->start, ctl->start); ata_print_version_once(dev, DRV_VERSION); diff --git a/include/linux/platform_data/pata_ixp4xx_cf.h b/include/linux/platform_data/pata_ixp4xx_cf.h index 601ba97fef57..e60fa41da4a5 100644 --- a/include/linux/platform_data/pata_ixp4xx_cf.h +++ b/include/linux/platform_data/pata_ixp4xx_cf.h @@ -14,8 +14,8 @@ struct ixp4xx_pata_data { volatile u32 *cs1_cfg; unsigned long cs0_bits; unsigned long cs1_bits; - void __iomem *cs0; - void __iomem *cs1; + void __iomem *cmd; + void __iomem *ctl; }; #endif From patchwork Sat Jul 31 21:35:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 12412723 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 52E32C4338F for ; Sat, 31 Jul 2021 21:40:49 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 24E1160F36 for ; Sat, 31 Jul 2021 21:40:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 24E1160F36 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Y+uff8bs/1UFfHMKhGA7TATz/1/TyaVh5K/1yxLlAIQ=; b=qiqCQ3ltnnnpoV cGYzoH9lSE8UCuf8yqtYZoDAL/PGN0EVAp3TqRrOoPxESvaQavpMZBgMxxtIqoyxcxSIAAdJ9jmkt DvELrpAuqd4OtDIm6TdiWVvXdrT+raNO2BF/+dluiWIuEJP6QvGUcafQemX/9m4CyLkdAODZsNsRA Pnv5hB2jB739TcAQnVs59CrhfAKUtgmFQ7k4VV4W3PtPnYRKCSpqoYSi3bhh/IdqPsgUquN/LXjCx m0Rc2AWkYC1HRN6iELiydZ4kxqL9FgIDr33UmJZg1pAIO+NSIA0uDj4Ec6lkGOEkA+6OyTsiSDz4X p0WssfFwNfof4wcqgFXQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9wh7-00CJjc-As; Sat, 31 Jul 2021 21:38:57 +0000 Received: from mail-lf1-x132.google.com ([2a00:1450:4864:20::132]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9wgi-00CJfH-OH for linux-arm-kernel@lists.infradead.org; Sat, 31 Jul 2021 21:38:34 +0000 Received: by mail-lf1-x132.google.com with SMTP id b6so2987632lff.10 for ; Sat, 31 Jul 2021 14:38:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=YVpV8/vvaY59r2A1osNnhfzz9lEm81RglXyawlMfFVs=; b=uwP00Qp0fTpTjjVrQ+JdVjl/XLYQC60YKVVorf0eEHF4HQbh4U08lHxJp/5EthwAn7 +2A3xL4PrhZHmczDE8NsbuZc9IZMA4+dT2qgYEndo9b3hoyv1vo7SVlhD5SiqxzXTVqt ur59AEo7oCCHcnJhW6wVsmYC7RIyFEiBNYYtQhU9975oJ+q1dz4A+5T9NWX9WFZxc7hb HOKH+cmb6BkxKwYiJYWYO7Dv82iMRTn1VRkH8hOc9WBpjXYz2wJP9WLD5+jp0MBI2t85 b77ohLQ9CBpiUuEFuuFuBuZY62cxU7JTA3CFBLiJp8fnwsnXE5pXLDUF3MDztHS31sqS AdUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=YVpV8/vvaY59r2A1osNnhfzz9lEm81RglXyawlMfFVs=; b=UqOHbxS+DDpdbhaVsVAibQJDa3N2TdFhv1M1Ipw7LHUyqLU03p3er56RZURLZmeNNR DuuNwpt61CMURatbgsrTg6fOqgOpAtSG45VpMQncQpfEPtyTdpvhaVm4NJ6OC31YwJ6a V2qfKNCeAMa/MuPm3NV2T4cVT0xUeBHkspgsfwFZJ1wESmq06uYBW148o8miypBfs7ca uStmHlm8tnUNBFNwgpdcr9V5+3+t5hi9eO9q1y2RnXn06hIO7XxrGsMP9puT/FYDHzle 5McY5EYipV6SZmZwuC3rkCDA+6fuxfs0f03vASCkgr//hG7hHAYZpCGJdYUlI+k0323N KEQg== X-Gm-Message-State: AOAM532on98E2wO1tGrP0n6Dm9AHlVo+GK5Av/6k19pkxSkNb5hZ36qY LR3BCfzbOFJuV7YmjjfhOOUKfw== X-Google-Smtp-Source: ABdhPJzLixD4oy8KuFmTMFF3ePfGpisk3L0YN6JPpCHxYJFkrunG0zDFmX8iZ2Nm3FRrmpW4V1PKZA== X-Received: by 2002:a05:6512:3691:: with SMTP id d17mr2718377lfs.222.1627767511146; Sat, 31 Jul 2021 14:38:31 -0700 (PDT) Received: from localhost.localdomain (c-fdcc225c.014-348-6c756e10.bbcust.telenor.se. [92.34.204.253]) by smtp.gmail.com with ESMTPSA id t17sm440430ljk.102.2021.07.31.14.38.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Jul 2021 14:38:30 -0700 (PDT) From: Linus Walleij To: Jens Axboe , linux-ide@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, Imre Kaloz , Krzysztof Halasa , Linus Walleij , devicetree@vger.kernel.org Subject: [PATCH 4/5 v2] pata: ixp4xx: Add DT bindings Date: Sat, 31 Jul 2021 23:35:54 +0200 Message-Id: <20210731213555.2965356-4-linus.walleij@linaro.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210731213555.2965356-1-linus.walleij@linaro.org> References: <20210731213555.2965356-1-linus.walleij@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210731_143832_880844_AA6F62D3 X-CRM114-Status: GOOD ( 15.48 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This adds device tree bindings for the Intel IXP4xx compact flash card interface. Cc: devicetree@vger.kernel.org Signed-off-by: Linus Walleij Reviewed-by: Rob Herring --- ChangeLog v1->v2: - Itemize the registers - Drop the epansion bus set-up to alleviate warnings --- .../ata/intel,ixp4xx-compact-flash.yaml | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 Documentation/devicetree/bindings/ata/intel,ixp4xx-compact-flash.yaml diff --git a/Documentation/devicetree/bindings/ata/intel,ixp4xx-compact-flash.yaml b/Documentation/devicetree/bindings/ata/intel,ixp4xx-compact-flash.yaml new file mode 100644 index 000000000000..52e18600ecff --- /dev/null +++ b/Documentation/devicetree/bindings/ata/intel,ixp4xx-compact-flash.yaml @@ -0,0 +1,61 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/ata/intel,ixp4xx-compact-flash.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Intel IXP4xx CompactFlash Card Controller + +maintainers: + - Linus Walleij + +description: | + The IXP4xx network processors have a CompactFlash interface that presents + a CompactFlash card to the system as a true IDE (parallel ATA) device. The + device is always connected to the expansion bus of the IXP4xx SoCs using one + or two chip select areas and address translating logic on the board. The + node must be placed inside a chip select node on the IXP4xx expansion bus. + +properties: + compatible: + const: intel,ixp4xx-compact-flash + + reg: + items: + - description: Command interface registers + - description: Control interface registers + + interrupts: + maxItems: 1 + +required: + - compatible + - reg + - interrupts + +allOf: + - $ref: pata-common.yaml# + +unevaluatedProperties: false + +examples: + - | + #include + + bus@c4000000 { + compatible = "intel,ixp43x-expansion-bus-controller", "syscon"; + reg = <0xc4000000 0x1000>; + native-endian; + #address-cells = <2>; + #size-cells = <1>; + ranges = <0 0x0 0x50000000 0x01000000>, <1 0x0 0x51000000 0x01000000>; + dma-ranges = <0 0x0 0x50000000 0x01000000>, <1 0x0 0x51000000 0x01000000>; + ide@1,0 { + compatible = "intel,ixp4xx-compact-flash"; + reg = <1 0x00000000 0x1000>, <1 0x00040000 0x1000>; + interrupt-parent = <&gpio0>; + interrupts = <12 IRQ_TYPE_EDGE_RISING>; + }; + }; + +... From patchwork Sat Jul 31 21:35:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 12412725 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.5 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 02515C4338F for ; Sat, 31 Jul 2021 21:40:52 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C349460F36 for ; Sat, 31 Jul 2021 21:40:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org C349460F36 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=KCkNfOLbZqHP87vv3/09fZjFP0zpp3hsQXm1zvwUJNE=; b=S3I68LKFN8OzWk 32vvSQLjLz8TtxNJkQT9TPa/qjSVcvmZ2PqzxOHiS7BrHgbtvJKxXWnqCVKDDMpiHDnIw3yBYaOx1 i5favQtbqtYeKDgdagW5O1oKHpX0vx9hMqY3pVnZBKYkuA+EqBdmwvTvvrLOHGvVdxxnyLHCxhfWl 4mnIirW51yjkZa62wcm1XRPQP/YPTkHPNFOObQ17UuquEjskUbewU1kry5hRiVBtQeMIMQqDrTnPm G6SIySeANRHg2fOInn8/iwNFPNuZr3aENElefYjl4B78XDLOHDHbdc+wsuxIZEcbrP/firwNlD0w0 6gJdMGAiVsOmpxCNFlzg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9whJ-00CJmP-Kz; Sat, 31 Jul 2021 21:39:09 +0000 Received: from mail-lf1-x12e.google.com ([2a00:1450:4864:20::12e]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m9wgj-00CJfv-Rl for linux-arm-kernel@lists.infradead.org; Sat, 31 Jul 2021 21:38:36 +0000 Received: by mail-lf1-x12e.google.com with SMTP id p38so10850438lfa.0 for ; Sat, 31 Jul 2021 14:38:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=aeCvB1GFE20ioOSSxzpCFWlBEAecV60boUEDAlnLwFc=; b=BdPMvmcpZ9hH5YOD1eTxx9yYBRG7e9mZ67RaZk73J8zfNaePdKtkf3ynLm/4Khv7Qj PTfIxePU9SV2+8JeTaMEGGZZRxLyT5fZmMgYsPsWm0RD22prlPl0tpXU5I/CwsF2PCqG KBz0fUw/HrIM47FkRDVwBGu3XxEBNakNJDvkzk5RA9MeKkXcCcCxSE2uJvUB7rILZBpC P9h8leFQcnnjiHYMrjeMjq6+yfEKrxc5tm/2cVyHEf8iVBEA/o+XYzs34jNwH5+gglwV w08EQqV0y5dSPVADUcduDoVt5QRcKYpo4C3TbfqdeojIfUn/SrxuKq0bn+6Wk+eIr739 2rUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=aeCvB1GFE20ioOSSxzpCFWlBEAecV60boUEDAlnLwFc=; b=Jrenyz8a1+nLLnoiyy7erPgnNOrg47cNK2tdTTs6n/LjqLgnEFrQ42ogqC7/mAYRFU WvzWOXu2+Y6FZXryMrBOsKCMsHI52Pac3HCa2T8vuVQH2+nt6Dra5t+qMW0rfinM04a7 ArVYLXnlvmZdFxRwoqmldIM3D/Vl36azHyNmPj5Tvu3tuXwCB1QelmlAodb6vmfUICtE QYuU2WGa9xDN5FSyi0aDQ959p39ta9B7QDl1Z6H1spqPswUP4EQWugQ/VHC4pRFOeCZp p86lMuv4ccHzhv/JUu7sCiUlaS8jMWN6rGqPfFb2BYlDcju6x6R5gt3rfL5tJoC3F2qp xMpw== X-Gm-Message-State: AOAM533m/H/Yt6LjRmIt2ATnfDY7c9AVu999Ohv1XkTA4tHsbS9vNXZP ITXQrgEbeRFad72TXvq5uzt+hw== X-Google-Smtp-Source: ABdhPJw6LNn+qe+pdJy3gyb9K6sZz23tbD0xOEYL1HqZGlMPeHJCyW7TDxnkvfU2ejQsKWzsKmQbwQ== X-Received: by 2002:a05:6512:b08:: with SMTP id w8mr6283251lfu.557.1627767512471; Sat, 31 Jul 2021 14:38:32 -0700 (PDT) Received: from localhost.localdomain (c-fdcc225c.014-348-6c756e10.bbcust.telenor.se. [92.34.204.253]) by smtp.gmail.com with ESMTPSA id t17sm440430ljk.102.2021.07.31.14.38.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 31 Jul 2021 14:38:32 -0700 (PDT) From: Linus Walleij To: Jens Axboe , linux-ide@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, Imre Kaloz , Krzysztof Halasa , Linus Walleij Subject: [PATCH 5/5 v2] pata: ixp4xx: Rewrite to use device tree Date: Sat, 31 Jul 2021 23:35:55 +0200 Message-Id: <20210731213555.2965356-5-linus.walleij@linaro.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210731213555.2965356-1-linus.walleij@linaro.org> References: <20210731213555.2965356-1-linus.walleij@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210731_143833_978503_93E29993 X-CRM114-Status: GOOD ( 30.68 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This rewrites the IXP4xx CF (IDE) libata driver to use the device tree exclusively to look up its resources: - Probe exclusively from the device tree and look up all resources from there. - Allocate a local state container with devres and pass this around in .private_data. - Initialize with struct ata_port_info. - Use the .set_piomode() callback instead of the much wider .set_mode(), we only support PIO after all. - Bump driver version number from 0.2 to 1.0 to reflect this wider change. - Get a handle on the expansion bus syscon regmap to alter the timings on the chip select. - Put in the more elaborate timing adjustment code for PIO0 to PIO4 in 8 and 16bit mode from the downstream OpenWrt patch. The board file initialization path and platform data include is dropped because the board files will be deleted at the same time as this patch is merged. The platform data file is not deleted right now so as not to conflict with the removal of board files. Signed-off-by: Linus Walleij --- ChangeLog v1->v2: - No changes --- drivers/ata/pata_ixp4xx_cf.c | 201 +++++++++++++++++++++++++++-------- 1 file changed, 154 insertions(+), 47 deletions(-) diff --git a/drivers/ata/pata_ixp4xx_cf.c b/drivers/ata/pata_ixp4xx_cf.c index 72d6d6f2ef99..99c63087c8ae 100644 --- a/drivers/ata/pata_ixp4xx_cf.c +++ b/drivers/ata/pata_ixp4xx_cf.c @@ -13,45 +13,134 @@ */ #include +#include #include #include #include #include -#include +#include #include #define DRV_NAME "pata_ixp4xx_cf" -#define DRV_VERSION "0.2" +#define DRV_VERSION "1.0" -static int ixp4xx_set_mode(struct ata_link *link, struct ata_device **error) +struct ixp4xx_pata { + struct ata_host *host; + struct regmap *rmap; + u32 cmd_csreg; + void __iomem *cmd; + void __iomem *ctl; +}; + +#define IXP4XX_EXP_TIMING_STRIDE 0x04 +/* The timings for the chipselect is in bits 29..16 */ +#define IXP4XX_EXP_T1_T5_MASK GENMASK(29, 16) +#define IXP4XX_EXP_PIO_0_8 0x0a470000 +#define IXP4XX_EXP_PIO_1_8 0x06430000 +#define IXP4XX_EXP_PIO_2_8 0x02410000 +#define IXP4XX_EXP_PIO_3_8 0x00820000 +#define IXP4XX_EXP_PIO_4_8 0x00400000 +#define IXP4XX_EXP_PIO_0_16 0x29640000 +#define IXP4XX_EXP_PIO_1_16 0x05030000 +#define IXP4XX_EXP_PIO_2_16 0x00b20000 +#define IXP4XX_EXP_PIO_3_16 0x00820000 +#define IXP4XX_EXP_PIO_4_16 0x00400000 +#define IXP4XX_EXP_BW_MASK (BIT(6)|BIT(0)) +#define IXP4XX_EXP_BYTE_RD16 BIT(6) /* Byte reads on half-word devices */ +#define IXP4XX_EXP_BYTE_EN BIT(0) /* Use 8bit data bus if set */ + +static void ixp4xx_set_8bit_timing(struct ixp4xx_pata *ixpp, u8 pio_mode) +{ + switch (pio_mode) { + case XFER_PIO_0: + regmap_update_bits(ixpp->rmap, ixpp->cmd_csreg, + IXP4XX_EXP_T1_T5_MASK, IXP4XX_EXP_PIO_0_8); + break; + case XFER_PIO_1: + regmap_update_bits(ixpp->rmap, ixpp->cmd_csreg, + IXP4XX_EXP_T1_T5_MASK, IXP4XX_EXP_PIO_1_8); + break; + case XFER_PIO_2: + regmap_update_bits(ixpp->rmap, ixpp->cmd_csreg, + IXP4XX_EXP_T1_T5_MASK, IXP4XX_EXP_PIO_2_8); + break; + case XFER_PIO_3: + regmap_update_bits(ixpp->rmap, ixpp->cmd_csreg, + IXP4XX_EXP_T1_T5_MASK, IXP4XX_EXP_PIO_3_8); + break; + case XFER_PIO_4: + regmap_update_bits(ixpp->rmap, ixpp->cmd_csreg, + IXP4XX_EXP_T1_T5_MASK, IXP4XX_EXP_PIO_4_8); + break; + default: + break; + } + regmap_update_bits(ixpp->rmap, ixpp->cmd_csreg, + IXP4XX_EXP_BW_MASK, IXP4XX_EXP_BYTE_RD16|IXP4XX_EXP_BYTE_EN); +} + +static void ixp4xx_set_16bit_timing(struct ixp4xx_pata *ixpp, u8 pio_mode) { - struct ata_device *dev; - - ata_for_each_dev(dev, link, ENABLED) { - ata_dev_info(dev, "configured for PIO0\n"); - dev->pio_mode = XFER_PIO_0; - dev->xfer_mode = XFER_PIO_0; - dev->xfer_shift = ATA_SHIFT_PIO; - dev->flags |= ATA_DFLAG_PIO; + switch (pio_mode){ + case XFER_PIO_0: + regmap_update_bits(ixpp->rmap, ixpp->cmd_csreg, + IXP4XX_EXP_T1_T5_MASK, IXP4XX_EXP_PIO_0_16); + break; + case XFER_PIO_1: + regmap_update_bits(ixpp->rmap, ixpp->cmd_csreg, + IXP4XX_EXP_T1_T5_MASK, IXP4XX_EXP_PIO_1_16); + break; + case XFER_PIO_2: + regmap_update_bits(ixpp->rmap, ixpp->cmd_csreg, + IXP4XX_EXP_T1_T5_MASK, IXP4XX_EXP_PIO_2_16); + break; + case XFER_PIO_3: + regmap_update_bits(ixpp->rmap, ixpp->cmd_csreg, + IXP4XX_EXP_T1_T5_MASK, IXP4XX_EXP_PIO_3_16); + break; + case XFER_PIO_4: + regmap_update_bits(ixpp->rmap, ixpp->cmd_csreg, + IXP4XX_EXP_T1_T5_MASK, IXP4XX_EXP_PIO_4_16); + break; + default: + break; } - return 0; + regmap_update_bits(ixpp->rmap, ixpp->cmd_csreg, + IXP4XX_EXP_BW_MASK, IXP4XX_EXP_BYTE_RD16); } +/* This sets up the timing on the chipselect CMD accordingly */ +static void ixp4xx_set_piomode(struct ata_port *ap, struct ata_device *adev) +{ + struct ixp4xx_pata *ixpp = ap->host->private_data; + + ata_dev_printk(adev, KERN_INFO, "configured for PIO%d 8bit\n", + adev->pio_mode - XFER_PIO_0); + ixp4xx_set_8bit_timing(ixpp, adev->pio_mode); +} + + static unsigned int ixp4xx_mmio_data_xfer(struct ata_queued_cmd *qc, - unsigned char *buf, unsigned int buflen, int rw) + unsigned char *buf, unsigned int buflen, int rw) { unsigned int i; unsigned int words = buflen >> 1; u16 *buf16 = (u16 *) buf; + struct ata_device *adev = qc->dev; struct ata_port *ap = qc->dev->link->ap; void __iomem *mmio = ap->ioaddr.data_addr; - struct ixp4xx_pata_data *data = dev_get_platdata(ap->host->dev); + struct ixp4xx_pata *ixpp = ap->host->private_data; + unsigned long flags; + + ata_dev_printk(adev, KERN_DEBUG, "%s %d bytes\n", (rw == READ) ? "READ" : "WRITE", + buflen); + spin_lock_irqsave(ap->lock, flags); /* set the expansion bus in 16bit mode and restore * 8 bit mode after the transaction. */ - *data->cs0_cfg &= ~(0x01); - udelay(100); + ixp4xx_set_16bit_timing(ixpp, adev->pio_mode); + udelay(5); /* Transfer multiple of 2 bytes */ if (rw == READ) @@ -76,8 +165,10 @@ static unsigned int ixp4xx_mmio_data_xfer(struct ata_queued_cmd *qc, words++; } - udelay(100); - *data->cs0_cfg |= 0x01; + ixp4xx_set_8bit_timing(ixpp, adev->pio_mode); + udelay(5); + + spin_unlock_irqrestore(ap->lock, flags); return words << 1; } @@ -90,19 +181,25 @@ static struct ata_port_operations ixp4xx_port_ops = { .inherits = &ata_sff_port_ops, .sff_data_xfer = ixp4xx_mmio_data_xfer, .cable_detect = ata_cable_40wire, - .set_mode = ixp4xx_set_mode, + .set_piomode = ixp4xx_set_piomode, +}; + +static struct ata_port_info ixp4xx_port_info = { + .flags = ATA_FLAG_NO_ATAPI, + .pio_mask = ATA_PIO4, + .port_ops = &ixp4xx_port_ops, }; static void ixp4xx_setup_port(struct ata_port *ap, - struct ixp4xx_pata_data *data, + struct ixp4xx_pata *ixpp, unsigned long raw_cmd, unsigned long raw_ctl) { struct ata_ioports *ioaddr = &ap->ioaddr; raw_ctl += 0x06; - ioaddr->cmd_addr = data->cmd; - ioaddr->altstatus_addr = data->ctl + 0x06; - ioaddr->ctl_addr = data->ctl + 0x06; + ioaddr->cmd_addr = ixpp->cmd; + ioaddr->altstatus_addr = ixpp->ctl + 0x06; + ioaddr->ctl_addr = ixpp->ctl + 0x06; ata_sff_std_ports(ioaddr); @@ -135,10 +232,12 @@ static void ixp4xx_setup_port(struct ata_port *ap, static int ixp4xx_pata_probe(struct platform_device *pdev) { struct resource *cmd, *ctl; - struct ata_host *host; - struct ata_port *ap; + struct ata_port_info pi = ixp4xx_port_info; + const struct ata_port_info *ppi[] = { &pi, NULL }; struct device *dev = &pdev->dev; - struct ixp4xx_pata_data *data = dev_get_platdata(&pdev->dev); + struct device_node *np = dev->of_node; + struct ixp4xx_pata *ixpp; + u32 csindex; int ret; int irq; @@ -148,20 +247,32 @@ static int ixp4xx_pata_probe(struct platform_device *pdev) if (!cmd || !ctl) return -EINVAL; - /* allocate host */ - host = ata_host_alloc(dev, 1); - if (!host) + ixpp = devm_kzalloc(dev, sizeof(*ixpp), GFP_KERNEL); + if (!ixpp) + return -ENOMEM; + + ixpp->rmap = syscon_node_to_regmap(np->parent); + if (IS_ERR(ixpp->rmap)) + return dev_err_probe(dev, PTR_ERR(ixpp->rmap), "no regmap\n"); + /* Inspect our address to figure out what chipselect the CMD is on */ + ret = of_property_read_u32_index(np, "reg", 0, &csindex); + if (ret) + return dev_err_probe(dev, ret, "can't inspect CMD address\n"); + dev_info(dev, "using CS%d for PIO timing configuration\n", csindex); + ixpp->cmd_csreg = csindex * IXP4XX_EXP_TIMING_STRIDE; + + ixpp->host = ata_host_alloc_pinfo(dev, ppi, 1); + if (!ixpp->host) return -ENOMEM; + ixpp->host->private_data = ixpp; - /* acquire resources and fill host */ ret = dma_set_coherent_mask(dev, DMA_BIT_MASK(32)); if (ret) return ret; - data->cmd = devm_ioremap(dev, cmd->start, 0x1000); - data->ctl = devm_ioremap(dev, ctl->start, 0x1000); - - if (!data->cmd || !data->ctl) + ixpp->cmd = devm_ioremap_resource(dev, cmd); + ixpp->ctl = devm_ioremap_resource(dev, ctl); + if (IS_ERR(ixpp->cmd) || IS_ERR(ixpp->ctl)) return -ENOMEM; irq = platform_get_irq(pdev, 0); @@ -172,27 +283,23 @@ static int ixp4xx_pata_probe(struct platform_device *pdev) else return -EINVAL; - /* Setup expansion bus chip selects */ - *data->cs0_cfg = data->cs0_bits; - *data->cs1_cfg = data->cs1_bits; - - ap = host->ports[0]; - - ap->ops = &ixp4xx_port_ops; - ap->pio_mask = ATA_PIO4; - ap->flags |= ATA_FLAG_NO_ATAPI; - - ixp4xx_setup_port(ap, data, cmd->start, ctl->start); + /* Just one port to set up */ + ixp4xx_setup_port(ixpp->host->ports[0], ixpp, cmd->start, ctl->start); ata_print_version_once(dev, DRV_VERSION); - /* activate host */ - return ata_host_activate(host, irq, ata_sff_interrupt, 0, &ixp4xx_sht); + return ata_host_activate(ixpp->host, irq, ata_sff_interrupt, 0, &ixp4xx_sht); } +static const struct of_device_id ixp4xx_pata_of_match[] = { + { .compatible = "intel,ixp4xx-compact-flash", }, + { }, +}; + static struct platform_driver ixp4xx_pata_platform_driver = { .driver = { .name = DRV_NAME, + .of_match_table = ixp4xx_pata_of_match, }, .probe = ixp4xx_pata_probe, .remove = ata_platform_remove_one,