From patchwork Mon Jan 16 06:31:35 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jaehoon Chung X-Patchwork-Id: 9518079 X-Patchwork-Delegate: bhelgaas@google.com Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 36A216020B for ; Mon, 16 Jan 2017 06:31:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DE2EA28324 for ; Mon, 16 Jan 2017 06:31:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D2D1728342; Mon, 16 Jan 2017 06:31:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,RCVD_IN_DNSWL_HI autolearn=unavailable version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 186C02836D for ; Mon, 16 Jan 2017 06:31:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750981AbdAPGbs (ORCPT ); Mon, 16 Jan 2017 01:31:48 -0500 Received: from mailout4.samsung.com ([203.254.224.34]:48387 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750896AbdAPGbo (ORCPT ); Mon, 16 Jan 2017 01:31:44 -0500 Received: from epcas1p4.samsung.com (unknown [182.195.41.48]) by mailout4.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OJV002GR0ST6W20@mailout4.samsung.com>; Mon, 16 Jan 2017 15:31:41 +0900 (KST) Received: from epsmges5p3.samsung.com (unknown [182.195.40.69]) by epcas1p2.samsung.com (KnoxPortal) with ESMTP id 20170116063141epcas1p2edd097f19eb9ca1c817524e58046dd72~aLNCTnKQZ2838928389epcas1p2i; Mon, 16 Jan 2017 06:31:41 +0000 (GMT) Received: from epcas5p2.samsung.com ( [182.195.41.40]) by epsmges5p3.samsung.com (EPCPMTA) with SMTP id 1D.C0.10771.DC86C785; Mon, 16 Jan 2017 15:31:41 +0900 (KST) Received: from epcpsbgm2new.samsung.com (u27.gpu120.samsung.co.kr [203.254.230.27]) by epcas5p3.samsung.com (KnoxPortal) with ESMTP id 20170116063141epcas5p30c3b6fa57b7ef053dbe3755e1f44fd8c~aLNCCEZJq2708627086epcas5p3j; Mon, 16 Jan 2017 06:31:41 +0000 (GMT) X-AuditID: b6c32a2e-f79f46d000002a13-50-587c68cd5756 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2new.samsung.com (EPCPMTA) with SMTP id 79.55.26370.DC86C785; Mon, 16 Jan 2017 15:31:41 +0900 (KST) Received: from localhost.localdomain ([10.113.62.216]) by mmp2.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTPA id <0OJV00DGH0SSQ5A0@mmp2.samsung.com>; Mon, 16 Jan 2017 15:31:41 +0900 (KST) From: Jaehoon Chung To: linux-pci@vger.kernel.org Cc: bhelgaas@google.com, krzk@kernel.org, linux-kernel@vger.kernel.org, jingoohan1@gmail.com, javier@osg.samsung.com, kgene@kernel.org, linux-samsung-soc@vger.kernel.org, cpgs@samsung.com, Jaehoon Chung Subject: [PATCH V3 2/5] PCI: exynos: Replace the *_blk/*_phy/*_elb accessors Date: Mon, 16 Jan 2017 15:31:35 +0900 Message-id: <20170116063138.25805-3-jh80.chung@samsung.com> X-Mailer: git-send-email 2.10.2 In-reply-to: <20170116063138.25805-1-jh80.chung@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrIKsWRmVeSWpSXmKPExsWy7bCmhu7ZjJoIg7nfpS2WNGVYvDykafHm 7Romixu/2lgtVnyZyW7R//g1s8X58xvYLS7vmsNmcXbecTaLGef3MTlweeycdZfdY8GmUo9N qzrZPLb0A3l9W1YxenzeJBfAFpVqk5GamJJapJCal5yfkpmXbqvkHRzvHG9qZmCoa2hpYa6k kJeYm2qr5OIToOuWmQN0l5JCWWJOKVAoILG4WEnfzqYov7QkVSEjv7jEVina0NBIz9DAXM/I yEjPxDjWysgUqCQhNeP7q07mgmv5FctaJ7I0MD5K6GLk5JAQMJF4vPEXG4QtJnHh3nogm4tD SGApo8TzM3vYQRJCAu1MEhueOME0rDzxkwkiPodR4vUiWYiGH4wSTx72s4Ik2AR0JLZ/Ow5W JCIgK/Hx8h6wqcwCLxklfjY/B5sqLOAj8fT6QrDVLAKqEqtnvQJr4BWwljjyehYTxDZ5iYXn j4DZnAI2EpMPLGcGGSQh0M4ucf/OPKBBHECOrMSmA8wQ9S4SN+dehrKFJV4d38IOYUtL/F16 ixGit5tR4t+XjWwQTg+jxK2tq6G2GUvcf3APrJtZgE+i9/cTJogFvBIdbUIQpofEpu35ENWO Eic2gvwC8n0/o8Te482MExhlFjAyrGIUSy0ozk1PLTYtMNYrTswtLs1L10vOz93ECE5OWno7 GP8t8D7EKMDBqMTD22FZEyHEmlhWXJl7iFGCg1lJhHdiClCINyWxsiq1KD++qDQntfgQoykw nCYyS4km5wMTZ15JvKGJmaGJkSUQmhuaK4nzLqiwjhASSE8sSc1OTS1ILYLpY+LglGpg9O6p lO3hffXNLaqdK4hN/rzb691aN6oaJuZJnOpxiE6V89wppm55QMVLtyztfw/T4w89yfIWjf5L 7HU8zlavqjz0+iTfYW3exY4Hb2bdmBETrbSUNeb/rGO3j1q7mgnNN0++dPHO17TNpwqWhkQW PF9kxK99/vny+9b7yp1/zzrU4HO3d8FOJZbijERDLeai4kQAJgE6KmQDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrPLMWRmVeSWpSXmKPExsVy+t9jQd2zGTURBp/7uC2WNGVYvDykafHm 7Romixu/2lgtVnyZyW7R//g1s8X58xvYLS7vmsNmcXbecTaLGef3MTlweeycdZfdY8GmUo9N qzrZPLb0A3l9W1YxenzeJBfAFuVmk5GamJJapJCal5yfkpmXbqsUGuKma6GkkJeYm2qrFKHr GxKkpFCWmFMK5BkZoAEH5wD3YCV9uwS3jO+vOpkLruVXLGudyNLA+Cihi5GTQ0LARGLliZ9M ELaYxIV769m6GLk4hARmMUo8v/SNEcL5wSixdPIKNpAqNgEdie3fjoN1iAjISny8vAesg1ng JaNEx/kPLCAJYQEfiafXF4I1sAioSqye9QqsgVfAWuLI61lQ6+QlFp4/AmZzCthITD6wnBnE FgKq2d11nmkCI+8CRoZVjBKpBckFxUnpuUZ5qeV6xYm5xaV56XrJ+bmbGMGB/0x6B+PhXe6H GAU4GJV4eBfsqI4QYk0sK67MPcQowcGsJMI7MaUmQog3JbGyKrUoP76oNCe1+BCjKdBhE5ml RJPzgVGZVxJvaGJuYm5sYGFuaWlipCTO2zj7WbiQQHpiSWp2ampBahFMHxMHp1QDo/nvwHkr aqM2P7GK/nes+7jUa8sHiak+uz3aFFy6+Epz6g4sqVKXnZenkBKWU/Kqsla9evU7Wc99U+NO 8VXGCq+M701/9V+dM2U2704P48NnD0y2WdBwW/PhnGcvrZynTFrFJhlz4mlmuVnH+Tm8FUks f04nlf1mNNSccdPvwOlqxyLGiQsdlFiKMxINtZiLihMBdOqzDpICAAA= X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170116063141epcas5p30c3b6fa57b7ef053dbe3755e1f44fd8c X-Msg-Generator: CA X-Sender-IP: 203.254.230.27 X-Local-Sender: =?UTF-8?B?7KCV7J6s7ZuIG1RpemVuIFBsYXRmb3JtIExhYihTL1fshLw=?= =?UTF-8?B?7YSwKRvsgrzshLHsoITsnpAbUzUo7LGF7J6EKS/ssYXsnoQ=?= X-Global-Sender: =?UTF-8?B?SmFlaG9vbiBDaHVuZxtUaXplbiBQbGF0Zm9ybSBMYWIuG1Nh?= =?UTF-8?B?bXN1bmcgRWxlY3Ryb25pY3MbUzUvU2VuaW9yIEVuZ2luZWVy?= X-Sender-Code: =?UTF-8?B?QzEwG1NUQUYbQzEwVjgxMTE=?= CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-HopCount: 7 X-CMS-RootMailID: 20170116063141epcas5p30c3b6fa57b7ef053dbe3755e1f44fd8c X-RootMTR: 20170116063141epcas5p30c3b6fa57b7ef053dbe3755e1f44fd8c References: <20170116063138.25805-1-jh80.chung@samsung.com> Sender: linux-pci-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-pci@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP There is no reason to maintain *_blk/phy/elbi_* as register accessors. It can be replaced to one accessor for maintaining more easier. Signed-off-by: Jaehoon Chung Reviewed-by: Pankaj Dubey Acked-by: Krzysztof Kozlowski --- Changelog on V3: - Split from previous [PATCH V2 1/4] "PCI: exynos: replace to one register accessor from each accessors" Changelog on V2: - Changes the all pointer names as "ep" instead of "exynos_pcie" drivers/pci/host/pci-exynos.c | 184 +++++++++++++++++++----------------------- 1 file changed, 82 insertions(+), 102 deletions(-) diff --git a/drivers/pci/host/pci-exynos.c b/drivers/pci/host/pci-exynos.c index 2e99ff5..166881a 100644 --- a/drivers/pci/host/pci-exynos.c +++ b/drivers/pci/host/pci-exynos.c @@ -102,34 +102,14 @@ struct exynos_pcie { #define PCIE_PHY_TRSV3_PD_TSV (0x1 << 7) #define PCIE_PHY_TRSV3_LVCC 0x31c -static void exynos_elb_writel(struct exynos_pcie *ep, u32 val, u32 reg) +static void exynos_pcie_writel(void __iomem *base, u32 val, u32 reg) { - writel(val, ep->elbi_base + reg); + writel(val, base + reg); } -static u32 exynos_elb_readl(struct exynos_pcie *ep, u32 reg) +static u32 exynos_pcie_readl(void __iomem *base, u32 reg) { - return readl(ep->elbi_base + reg); -} - -static void exynos_phy_writel(struct exynos_pcie *ep, u32 val, u32 reg) -{ - writel(val, ep->phy_base + reg); -} - -static u32 exynos_phy_readl(struct exynos_pcie *ep, u32 reg) -{ - return readl(ep->phy_base + reg); -} - -static void exynos_blk_writel(struct exynos_pcie *ep, u32 val, u32 reg) -{ - writel(val, ep->block_base + reg); -} - -static u32 exynos_blk_readl(struct exynos_pcie *ep, u32 reg) -{ - return readl(ep->block_base + reg); + return readl(base + reg); } static void exynos_pcie_sideband_dbi_w_mode(struct exynos_pcie *ep, bool on) @@ -137,13 +117,13 @@ static void exynos_pcie_sideband_dbi_w_mode(struct exynos_pcie *ep, bool on) u32 val; if (on) { - val = exynos_elb_readl(ep, PCIE_ELBI_SLV_AWMISC); + val = exynos_pcie_readl(ep->elbi_base, PCIE_ELBI_SLV_AWMISC); val |= PCIE_ELBI_SLV_DBI_ENABLE; - exynos_elb_writel(ep, val, PCIE_ELBI_SLV_AWMISC); + exynos_pcie_writel(ep->elbi_base, val, PCIE_ELBI_SLV_AWMISC); } else { - val = exynos_elb_readl(ep, PCIE_ELBI_SLV_AWMISC); + val = exynos_pcie_readl(ep->elbi_base, PCIE_ELBI_SLV_AWMISC); val &= ~PCIE_ELBI_SLV_DBI_ENABLE; - exynos_elb_writel(ep, val, PCIE_ELBI_SLV_AWMISC); + exynos_pcie_writel(ep->elbi_base, val, PCIE_ELBI_SLV_AWMISC); } } @@ -152,13 +132,13 @@ static void exynos_pcie_sideband_dbi_r_mode(struct exynos_pcie *ep, bool on) u32 val; if (on) { - val = exynos_elb_readl(ep, PCIE_ELBI_SLV_ARMISC); + val = exynos_pcie_readl(ep->elbi_base, PCIE_ELBI_SLV_ARMISC); val |= PCIE_ELBI_SLV_DBI_ENABLE; - exynos_elb_writel(ep, val, PCIE_ELBI_SLV_ARMISC); + exynos_pcie_writel(ep->elbi_base, val, PCIE_ELBI_SLV_ARMISC); } else { - val = exynos_elb_readl(ep, PCIE_ELBI_SLV_ARMISC); + val = exynos_pcie_readl(ep->elbi_base, PCIE_ELBI_SLV_ARMISC); val &= ~PCIE_ELBI_SLV_DBI_ENABLE; - exynos_elb_writel(ep, val, PCIE_ELBI_SLV_ARMISC); + exynos_pcie_writel(ep->elbi_base, val, PCIE_ELBI_SLV_ARMISC); } } @@ -166,131 +146,131 @@ static void exynos_pcie_assert_core_reset(struct exynos_pcie *ep) { u32 val; - val = exynos_elb_readl(ep, PCIE_CORE_RESET); + val = exynos_pcie_readl(ep->elbi_base, PCIE_CORE_RESET); val &= ~PCIE_CORE_RESET_ENABLE; - exynos_elb_writel(ep, val, PCIE_CORE_RESET); - exynos_elb_writel(ep, 0, PCIE_PWR_RESET); - exynos_elb_writel(ep, 0, PCIE_STICKY_RESET); - exynos_elb_writel(ep, 0, PCIE_NONSTICKY_RESET); + exynos_pcie_writel(ep->elbi_base, val, PCIE_CORE_RESET); + exynos_pcie_writel(ep->elbi_base, 0, PCIE_PWR_RESET); + exynos_pcie_writel(ep->elbi_base, 0, PCIE_STICKY_RESET); + exynos_pcie_writel(ep->elbi_base, 0, PCIE_NONSTICKY_RESET); } static void exynos_pcie_deassert_core_reset(struct exynos_pcie *ep) { u32 val; - val = exynos_elb_readl(ep, PCIE_CORE_RESET); + val = exynos_pcie_readl(ep->elbi_base, PCIE_CORE_RESET); val |= PCIE_CORE_RESET_ENABLE; - exynos_elb_writel(ep, val, PCIE_CORE_RESET); - exynos_elb_writel(ep, 1, PCIE_STICKY_RESET); - exynos_elb_writel(ep, 1, PCIE_NONSTICKY_RESET); - exynos_elb_writel(ep, 1, PCIE_APP_INIT_RESET); - exynos_elb_writel(ep, 0, PCIE_APP_INIT_RESET); - exynos_blk_writel(ep, 1, PCIE_PHY_MAC_RESET); + exynos_pcie_writel(ep->elbi_base, val, PCIE_CORE_RESET); + exynos_pcie_writel(ep->elbi_base, 1, PCIE_STICKY_RESET); + exynos_pcie_writel(ep->elbi_base, 1, PCIE_NONSTICKY_RESET); + exynos_pcie_writel(ep->elbi_base, 1, PCIE_APP_INIT_RESET); + exynos_pcie_writel(ep->elbi_base, 0, PCIE_APP_INIT_RESET); + exynos_pcie_writel(ep->block_base, 1, PCIE_PHY_MAC_RESET); } static void exynos_pcie_assert_phy_reset(struct exynos_pcie *ep) { - exynos_blk_writel(ep, 0, PCIE_PHY_MAC_RESET); - exynos_blk_writel(ep, 1, PCIE_PHY_GLOBAL_RESET); + exynos_pcie_writel(ep->block_base, 0, PCIE_PHY_MAC_RESET); + exynos_pcie_writel(ep->block_base, 1, PCIE_PHY_GLOBAL_RESET); } static void exynos_pcie_deassert_phy_reset(struct exynos_pcie *ep) { - exynos_blk_writel(ep, 0, PCIE_PHY_GLOBAL_RESET); - exynos_elb_writel(ep, 1, PCIE_PWR_RESET); - exynos_blk_writel(ep, 0, PCIE_PHY_COMMON_RESET); - exynos_blk_writel(ep, 0, PCIE_PHY_CMN_REG); - exynos_blk_writel(ep, 0, PCIE_PHY_TRSVREG_RESET); - exynos_blk_writel(ep, 0, PCIE_PHY_TRSV_RESET); + exynos_pcie_writel(ep->block_base, 0, PCIE_PHY_GLOBAL_RESET); + exynos_pcie_writel(ep->elbi_base, 1, PCIE_PWR_RESET); + exynos_pcie_writel(ep->block_base, 0, PCIE_PHY_COMMON_RESET); + exynos_pcie_writel(ep->block_base, 0, PCIE_PHY_CMN_REG); + exynos_pcie_writel(ep->block_base, 0, PCIE_PHY_TRSVREG_RESET); + exynos_pcie_writel(ep->block_base, 0, PCIE_PHY_TRSV_RESET); } static void exynos_pcie_power_on_phy(struct exynos_pcie *ep) { u32 val; - val = exynos_phy_readl(ep, PCIE_PHY_COMMON_POWER); + val = exynos_pcie_readl(ep->phy_base, PCIE_PHY_COMMON_POWER); val &= ~PCIE_PHY_COMMON_PD_CMN; - exynos_phy_writel(ep, val, PCIE_PHY_COMMON_POWER); + exynos_pcie_writel(ep->phy_base, val, PCIE_PHY_COMMON_POWER); - val = exynos_phy_readl(ep, PCIE_PHY_TRSV0_POWER); + val = exynos_pcie_readl(ep->phy_base, PCIE_PHY_TRSV0_POWER); val &= ~PCIE_PHY_TRSV0_PD_TSV; - exynos_phy_writel(ep, val, PCIE_PHY_TRSV0_POWER); + exynos_pcie_writel(ep->phy_base, val, PCIE_PHY_TRSV0_POWER); - val = exynos_phy_readl(ep, PCIE_PHY_TRSV1_POWER); + val = exynos_pcie_readl(ep->phy_base, PCIE_PHY_TRSV1_POWER); val &= ~PCIE_PHY_TRSV1_PD_TSV; - exynos_phy_writel(ep, val, PCIE_PHY_TRSV1_POWER); + exynos_pcie_writel(ep->phy_base, val, PCIE_PHY_TRSV1_POWER); - val = exynos_phy_readl(ep, PCIE_PHY_TRSV2_POWER); + val = exynos_pcie_readl(ep->phy_base, PCIE_PHY_TRSV2_POWER); val &= ~PCIE_PHY_TRSV2_PD_TSV; - exynos_phy_writel(ep, val, PCIE_PHY_TRSV2_POWER); + exynos_pcie_writel(ep->phy_base, val, PCIE_PHY_TRSV2_POWER); - val = exynos_phy_readl(ep, PCIE_PHY_TRSV3_POWER); + val = exynos_pcie_readl(ep->phy_base, PCIE_PHY_TRSV3_POWER); val &= ~PCIE_PHY_TRSV3_PD_TSV; - exynos_phy_writel(ep, val, PCIE_PHY_TRSV3_POWER); + exynos_pcie_writel(ep->phy_base, val, PCIE_PHY_TRSV3_POWER); } static void exynos_pcie_power_off_phy(struct exynos_pcie *ep) { u32 val; - val = exynos_phy_readl(ep, PCIE_PHY_COMMON_POWER); + val = exynos_pcie_readl(ep->phy_base, PCIE_PHY_COMMON_POWER); val |= PCIE_PHY_COMMON_PD_CMN; - exynos_phy_writel(ep, val, PCIE_PHY_COMMON_POWER); + exynos_pcie_writel(ep->phy_base, val, PCIE_PHY_COMMON_POWER); - val = exynos_phy_readl(ep, PCIE_PHY_TRSV0_POWER); + val = exynos_pcie_readl(ep->phy_base, PCIE_PHY_TRSV0_POWER); val |= PCIE_PHY_TRSV0_PD_TSV; - exynos_phy_writel(ep, val, PCIE_PHY_TRSV0_POWER); + exynos_pcie_writel(ep->phy_base, val, PCIE_PHY_TRSV0_POWER); - val = exynos_phy_readl(ep, PCIE_PHY_TRSV1_POWER); + val = exynos_pcie_readl(ep->phy_base, PCIE_PHY_TRSV1_POWER); val |= PCIE_PHY_TRSV1_PD_TSV; - exynos_phy_writel(ep, val, PCIE_PHY_TRSV1_POWER); + exynos_pcie_writel(ep->phy_base, val, PCIE_PHY_TRSV1_POWER); - val = exynos_phy_readl(ep, PCIE_PHY_TRSV2_POWER); + val = exynos_pcie_readl(ep->phy_base, PCIE_PHY_TRSV2_POWER); val |= PCIE_PHY_TRSV2_PD_TSV; - exynos_phy_writel(ep, val, PCIE_PHY_TRSV2_POWER); + exynos_pcie_writel(ep->phy_base, val, PCIE_PHY_TRSV2_POWER); - val = exynos_phy_readl(ep, PCIE_PHY_TRSV3_POWER); + val = exynos_pcie_readl(ep->phy_base, PCIE_PHY_TRSV3_POWER); val |= PCIE_PHY_TRSV3_PD_TSV; - exynos_phy_writel(ep, val, PCIE_PHY_TRSV3_POWER); + exynos_pcie_writel(ep->phy_base, val, PCIE_PHY_TRSV3_POWER); } static void exynos_pcie_init_phy(struct exynos_pcie *ep) { /* DCC feedback control off */ - exynos_phy_writel(ep, 0x29, PCIE_PHY_DCC_FEEDBACK); + exynos_pcie_writel(ep->phy_base, 0x29, PCIE_PHY_DCC_FEEDBACK); /* set TX/RX impedance */ - exynos_phy_writel(ep, 0xd5, PCIE_PHY_IMPEDANCE); + exynos_pcie_writel(ep->phy_base, 0xd5, PCIE_PHY_IMPEDANCE); /* set 50Mhz PHY clock */ - exynos_phy_writel(ep, 0x14, PCIE_PHY_PLL_DIV_0); - exynos_phy_writel(ep, 0x12, PCIE_PHY_PLL_DIV_1); + exynos_pcie_writel(ep->phy_base, 0x14, PCIE_PHY_PLL_DIV_0); + exynos_pcie_writel(ep->phy_base, 0x12, PCIE_PHY_PLL_DIV_1); /* set TX Differential output for lane 0 */ - exynos_phy_writel(ep, 0x7f, PCIE_PHY_TRSV0_DRV_LVL); + exynos_pcie_writel(ep->phy_base, 0x7f, PCIE_PHY_TRSV0_DRV_LVL); /* set TX Pre-emphasis Level Control for lane 0 to minimum */ - exynos_phy_writel(ep, 0x0, PCIE_PHY_TRSV0_EMP_LVL); + exynos_pcie_writel(ep->phy_base, 0x0, PCIE_PHY_TRSV0_EMP_LVL); /* set RX clock and data recovery bandwidth */ - exynos_phy_writel(ep, 0xe7, PCIE_PHY_PLL_BIAS); - exynos_phy_writel(ep, 0x82, PCIE_PHY_TRSV0_RXCDR); - exynos_phy_writel(ep, 0x82, PCIE_PHY_TRSV1_RXCDR); - exynos_phy_writel(ep, 0x82, PCIE_PHY_TRSV2_RXCDR); - exynos_phy_writel(ep, 0x82, PCIE_PHY_TRSV3_RXCDR); + exynos_pcie_writel(ep->phy_base, 0xe7, PCIE_PHY_PLL_BIAS); + exynos_pcie_writel(ep->phy_base, 0x82, PCIE_PHY_TRSV0_RXCDR); + exynos_pcie_writel(ep->phy_base, 0x82, PCIE_PHY_TRSV1_RXCDR); + exynos_pcie_writel(ep->phy_base, 0x82, PCIE_PHY_TRSV2_RXCDR); + exynos_pcie_writel(ep->phy_base, 0x82, PCIE_PHY_TRSV3_RXCDR); /* change TX Pre-emphasis Level Control for lanes */ - exynos_phy_writel(ep, 0x39, PCIE_PHY_TRSV0_EMP_LVL); - exynos_phy_writel(ep, 0x39, PCIE_PHY_TRSV1_EMP_LVL); - exynos_phy_writel(ep, 0x39, PCIE_PHY_TRSV2_EMP_LVL); - exynos_phy_writel(ep, 0x39, PCIE_PHY_TRSV3_EMP_LVL); + exynos_pcie_writel(ep->phy_base, 0x39, PCIE_PHY_TRSV0_EMP_LVL); + exynos_pcie_writel(ep->phy_base, 0x39, PCIE_PHY_TRSV1_EMP_LVL); + exynos_pcie_writel(ep->phy_base, 0x39, PCIE_PHY_TRSV2_EMP_LVL); + exynos_pcie_writel(ep->phy_base, 0x39, PCIE_PHY_TRSV3_EMP_LVL); /* set LVCC */ - exynos_phy_writel(ep, 0x20, PCIE_PHY_TRSV0_LVCC); - exynos_phy_writel(ep, 0xa0, PCIE_PHY_TRSV1_LVCC); - exynos_phy_writel(ep, 0xa0, PCIE_PHY_TRSV2_LVCC); - exynos_phy_writel(ep, 0xa0, PCIE_PHY_TRSV3_LVCC); + exynos_pcie_writel(ep->phy_base, 0x20, PCIE_PHY_TRSV0_LVCC); + exynos_pcie_writel(ep->phy_base, 0xa0, PCIE_PHY_TRSV1_LVCC); + exynos_pcie_writel(ep->phy_base, 0xa0, PCIE_PHY_TRSV2_LVCC); + exynos_pcie_writel(ep->phy_base, 0xa0, PCIE_PHY_TRSV3_LVCC); } static void exynos_pcie_assert_reset(struct exynos_pcie *ep) @@ -321,24 +301,24 @@ static int exynos_pcie_establish_link(struct exynos_pcie *ep) exynos_pcie_init_phy(ep); /* pulse for common reset */ - exynos_blk_writel(ep, 1, PCIE_PHY_COMMON_RESET); + exynos_pcie_writel(ep->block_base, 1, PCIE_PHY_COMMON_RESET); udelay(500); - exynos_blk_writel(ep, 0, PCIE_PHY_COMMON_RESET); + exynos_pcie_writel(ep->block_base, 0, PCIE_PHY_COMMON_RESET); exynos_pcie_deassert_core_reset(ep); dw_pcie_setup_rc(pp); exynos_pcie_assert_reset(ep); /* assert LTSSM enable */ - exynos_elb_writel(ep, PCIE_ELBI_LTSSM_ENABLE, + exynos_pcie_writel(ep->elbi_base, PCIE_ELBI_LTSSM_ENABLE, PCIE_APP_LTSSM_ENABLE); /* check if the link is up or not */ if (!dw_pcie_wait_for_link(pp)) return 0; - while (exynos_phy_readl(ep, PCIE_PHY_PLL_LOCKED) == 0) { - val = exynos_blk_readl(ep, PCIE_PHY_PLL_LOCKED); + while (exynos_pcie_readl(ep->phy_base, PCIE_PHY_PLL_LOCKED) == 0) { + val = exynos_pcie_readl(ep->block_base, PCIE_PHY_PLL_LOCKED); dev_info(dev, "PLL Locked: 0x%x\n", val); } exynos_pcie_power_off_phy(ep); @@ -349,8 +329,8 @@ static void exynos_pcie_clear_irq_pulse(struct exynos_pcie *ep) { u32 val; - val = exynos_elb_readl(ep, PCIE_IRQ_PULSE); - exynos_elb_writel(ep, val, PCIE_IRQ_PULSE); + val = exynos_pcie_readl(ep->elbi_base, PCIE_IRQ_PULSE); + exynos_pcie_writel(ep->elbi_base, val, PCIE_IRQ_PULSE); } static void exynos_pcie_enable_irq_pulse(struct exynos_pcie *ep) @@ -360,7 +340,7 @@ static void exynos_pcie_enable_irq_pulse(struct exynos_pcie *ep) /* enable INTX interrupt */ val = IRQ_INTA_ASSERT | IRQ_INTB_ASSERT | IRQ_INTC_ASSERT | IRQ_INTD_ASSERT; - exynos_elb_writel(ep, val, PCIE_IRQ_EN_PULSE); + exynos_pcie_writel(ep->elbi_base, val, PCIE_IRQ_EN_PULSE); } static irqreturn_t exynos_pcie_irq_handler(int irq, void *arg) @@ -387,9 +367,9 @@ static void exynos_pcie_msi_init(struct exynos_pcie *ep) dw_pcie_msi_init(pp); /* enable MSI interrupt */ - val = exynos_elb_readl(ep, PCIE_IRQ_EN_LEVEL); + val = exynos_pcie_readl(ep->elbi_base, PCIE_IRQ_EN_LEVEL); val |= IRQ_MSI_ENABLE; - exynos_elb_writel(ep, val, PCIE_IRQ_EN_LEVEL); + exynos_pcie_writel(ep->elbi_base, val, PCIE_IRQ_EN_LEVEL); } static void exynos_pcie_enable_interrupts(struct exynos_pcie *ep) @@ -449,7 +429,7 @@ static int exynos_pcie_link_up(struct pcie_port *pp) struct exynos_pcie *ep = to_exynos_pcie(pp); u32 val; - val = exynos_elb_readl(ep, PCIE_ELBI_RDLH_LINKUP); + val = exynos_pcie_readl(ep->elbi_base, PCIE_ELBI_RDLH_LINKUP); if (val == PCIE_ELBI_LTSSM_ENABLE) return 1;