Received: by 2002:a05:6a10:9e8c:0:0:0:0 with SMTP id y12csp744855pxx; Mon, 26 Oct 2020 21:56:59 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzy+CxcvxNlhFidh7NOTkU4QNKhK0+z9jB6LRZWME+SvIiHpgjOjDw7JZHI/wnoOFG3CBTM X-Received: by 2002:aa7:c351:: with SMTP id j17mr413308edr.70.1603774619504; Mon, 26 Oct 2020 21:56:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1603774619; cv=none; d=google.com; s=arc-20160816; b=OdhVaI/4a7rz84g7pgj3KZTdTE5zM/uGNzglH4WkCjaijGphMbZVkaJNlVKTdpou0R lr6l/OhKkZ9JSp8ZTqYWZd3kRQF3gjWUjik+Fni/uISWYEm0wEy8uBeWu565+vDHDr8P t1usibNkknEmwM+u1PngCC7aZxvlSuxIj6UmRGt/cqsEkSbjTjxxKhbPwtn8bq2uDaeQ tKmrnB2r2ancscEoRC8Z1sDXBF22BrglAfb50o9S1m32VD8jEKph6rrjerawgUzTWzS5 VLmbKCCnYhgBG416+uuXKIIkzNgxZ/pcXO0fUlO865oTSX/FFECpAZnZcnpqBInzWQeH etpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=0MDlHhIFIsarVPmtAeFR+Lr8S1Q13UhPOtCx58d6KjE=; b=olRwd1dbLfloD3XMJMnKB3Vr9RiByWqP5ijmgt+Fs1mmM/C8u7PeYQzCrDJhIjTIau ZpBYzm5cT6tE2MxQqCCF4M5GDMR3RaUvmKl+PZUY6XPbZj6cAYaarizBL2hpYZCCJiCd yPRNvyrQa5D25YVHbBZjQkME5KVQodWysLmg1PZt19p7XXT2xxa7foQfOszOCTsnbHgb Fk2PsZfrTolVAxpbeB+Ty/jXLo8xOpMD+Thwzewz51Xxya/+gwz36bCmc1W4+pgpw2VL +ZurWuj+Qk9JmToq9F5NAhB45KD4BFugsegoLWwlOKmzwz/pOdBDXouygkoIv1urkccc PxNA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=GyCJH3Gn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id r17si130607eds.37.2020.10.26.21.56.12; Mon, 26 Oct 2020 21:56:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=GyCJH3Gn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1790437AbgJZSu0 (ORCPT + 99 others); Mon, 26 Oct 2020 14:50:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:42362 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1790428AbgJZSu0 (ORCPT ); Mon, 26 Oct 2020 14:50:26 -0400 Received: from mail-ot1-f50.google.com (mail-ot1-f50.google.com [209.85.210.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 0994E21D7B; Mon, 26 Oct 2020 18:50:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1603738225; bh=JEfVtUKlInYQ0fbZNP15BzK/44fyha6rG+E01FErsoI=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=GyCJH3GnwmV0wipG6wOYC3nVU3PlrHTgpXU3b1JWRJp1l0FOE90L9xOBL8S61nXxZ iC4n7KkeAbHn/P+OGGWGwPkHWtmnJhSXbcknOrj2NQ4R//G+jzlOhvILBcSqkgRNsw rx+5USq7aLTZvH667Fw5CP+JEf564NYUn0kSAHLc= Received: by mail-ot1-f50.google.com with SMTP id m22so8955228ots.4; Mon, 26 Oct 2020 11:50:25 -0700 (PDT) X-Gm-Message-State: AOAM531tPk2RAsgXaavrS92v5QaO7bcJnV7MzwG5gYNyUVia1tWHBI1W 7Mi+f2zJHqjtxfKESIdOd3ev/+rcRw+dlBGHkQ== X-Received: by 2002:a9d:62d1:: with SMTP id z17mr15766887otk.192.1603738224263; Mon, 26 Oct 2020 11:50:24 -0700 (PDT) MIME-Version: 1.0 References: <20201023075744.26200-1-m.szyprowski@samsung.com> <20201023075744.26200-5-m.szyprowski@samsung.com> In-Reply-To: <20201023075744.26200-5-m.szyprowski@samsung.com> From: Rob Herring Date: Mon, 26 Oct 2020 13:50:12 -0500 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2 4/6] phy: samsung: phy-exynos-pcie: rework driver to support Exynos5433 PCIe PHY To: Marek Szyprowski Cc: linux-samsung-soc , PCI , devicetree@vger.kernel.org, "linux-kernel@vger.kernel.org" , Jaehoon Chung , Jingoo Han , Krzysztof Kozlowski , Bjorn Helgaas , Lorenzo Pieralisi , Vinod Koul , Kishon Vijay Abraham I Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Oct 23, 2020 at 2:58 AM Marek Szyprowski wrote: > > From: Jaehoon Chung > > Exynos5440 SoC support has been dropped since commit 8c83315da1cf ("ARM: > dts: exynos: Remove Exynos5440"). Rework this driver to support PCIe PHY > variant found in the Exynos5433 SoCs. > > Signed-off-by: Jaehoon Chung > [mszyprow: reworked the driver to support only Exynos5433 variant, rebased > onto current kernel code, rewrote commit message] > Signed-off-by: Marek Szyprowski > Acked-by: Krzysztof Kozlowski > --- > drivers/phy/samsung/phy-exynos-pcie.c | 304 ++++++++++---------------- > 1 file changed, 112 insertions(+), 192 deletions(-) > > diff --git a/drivers/phy/samsung/phy-exynos-pcie.c b/drivers/phy/samsung/phy-exynos-pcie.c > index 7e28b1aea0d1..d91de323dd0e 100644 > --- a/drivers/phy/samsung/phy-exynos-pcie.c > +++ b/drivers/phy/samsung/phy-exynos-pcie.c > @@ -4,70 +4,41 @@ > * > * Phy provider for PCIe controller on Exynos SoC series > * > - * Copyright (C) 2017 Samsung Electronics Co., Ltd. > + * Copyright (C) 2017-2020 Samsung Electronics Co., Ltd. > * Jaehoon Chung > */ > > -#include > #include > -#include > -#include > #include > -#include > -#include > #include > #include > #include > #include > > -/* PCIe Purple registers */ > -#define PCIE_PHY_GLOBAL_RESET 0x000 > -#define PCIE_PHY_COMMON_RESET 0x004 > -#define PCIE_PHY_CMN_REG 0x008 > -#define PCIE_PHY_MAC_RESET 0x00c > -#define PCIE_PHY_PLL_LOCKED 0x010 > -#define PCIE_PHY_TRSVREG_RESET 0x020 > -#define PCIE_PHY_TRSV_RESET 0x024 > - > -/* PCIe PHY registers */ > -#define PCIE_PHY_IMPEDANCE 0x004 > -#define PCIE_PHY_PLL_DIV_0 0x008 > -#define PCIE_PHY_PLL_BIAS 0x00c > -#define PCIE_PHY_DCC_FEEDBACK 0x014 > -#define PCIE_PHY_PLL_DIV_1 0x05c > -#define PCIE_PHY_COMMON_POWER 0x064 > -#define PCIE_PHY_COMMON_PD_CMN BIT(3) > -#define PCIE_PHY_TRSV0_EMP_LVL 0x084 > -#define PCIE_PHY_TRSV0_DRV_LVL 0x088 > -#define PCIE_PHY_TRSV0_RXCDR 0x0ac > -#define PCIE_PHY_TRSV0_POWER 0x0c4 > -#define PCIE_PHY_TRSV0_PD_TSV BIT(7) > -#define PCIE_PHY_TRSV0_LVCC 0x0dc > -#define PCIE_PHY_TRSV1_EMP_LVL 0x144 > -#define PCIE_PHY_TRSV1_RXCDR 0x16c > -#define PCIE_PHY_TRSV1_POWER 0x184 > -#define PCIE_PHY_TRSV1_PD_TSV BIT(7) > -#define PCIE_PHY_TRSV1_LVCC 0x19c > -#define PCIE_PHY_TRSV2_EMP_LVL 0x204 > -#define PCIE_PHY_TRSV2_RXCDR 0x22c > -#define PCIE_PHY_TRSV2_POWER 0x244 > -#define PCIE_PHY_TRSV2_PD_TSV BIT(7) > -#define PCIE_PHY_TRSV2_LVCC 0x25c > -#define PCIE_PHY_TRSV3_EMP_LVL 0x2c4 > -#define PCIE_PHY_TRSV3_RXCDR 0x2ec > -#define PCIE_PHY_TRSV3_POWER 0x304 > -#define PCIE_PHY_TRSV3_PD_TSV BIT(7) > -#define PCIE_PHY_TRSV3_LVCC 0x31c > - > -struct exynos_pcie_phy_data { > - const struct phy_ops *ops; > -}; > +#define PCIE_PHY_OFFSET(x) ((x) * 0x4) > + > +/* Sysreg FSYS register offsets and bits for Exynos5433 */ > +#define PCIE_EXYNOS5433_PHY_MAC_RESET 0x0208 > +#define PCIE_MAC_RESET_MASK 0xFF > +#define PCIE_MAC_RESET BIT(4) > +#define PCIE_EXYNOS5433_PHY_L1SUB_CM_CON 0x1010 > +#define PCIE_REFCLK_GATING_EN BIT(0) > +#define PCIE_EXYNOS5433_PHY_COMMON_RESET 0x1020 > +#define PCIE_PHY_RESET BIT(0) > +#define PCIE_EXYNOS5433_PHY_GLOBAL_RESET 0x1040 > +#define PCIE_GLOBAL_RESET BIT(0) Resets, why is this block not a reset provider? > +#define PCIE_REFCLK BIT(1) > +#define PCIE_REFCLK_MASK 0x16 > +#define PCIE_APP_REQ_EXIT_L1_MODE BIT(5)