From patchwork Sun Dec 17 05:11:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877013 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=NIOa12n7; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:40f1:3f00::1; helo=sy.mirrors.kernel.org; envelope-from=linux-pci+bounces-1103-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org [IPv6:2604:1380:40f1:3f00::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB192P8Hz23ns for ; Sun, 17 Dec 2023 16:13:01 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id E1F96B228E8 for ; Sun, 17 Dec 2023 05:13:00 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 56CF91863; Sun, 17 Dec 2023 05:12:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="NIOa12n7" X-Original-To: linux-pci@vger.kernel.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2067.outbound.protection.outlook.com [40.107.247.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3901A139C; Sun, 17 Dec 2023 05:12:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XPdXdxyg93NWmP8RfVevCk2WIsN0KD8GhWNuIw05tFOkwDeI3XNK73KivHTkjybo78+nPEqthzue+TBftN5w3pa+ZWtPlifucMpMsGcvMjB/PD5oM67BEcjM62++CxW//AxvoyXctwRTG0/sYEsbQs1S4QTTU13GlLlumKxrMgf2/jIaCbtk/fiz+CsDIXdTVhucAOalldXeXgLX9iJB0sjTexfXK1O+259ndwfvOGIKQRYvEPJmCQcvtbTZoypTx9DemuglGm+jlA5OYDh8oB1G4LP3AG+rP8dycCbXFveYHp39dIz0WRsxFf7xziBcXqsbMFwMWChVSCwQw9zPzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=OYgkWGTzhe8+TRNsiCpu3kyIeAmjvzoNn4lspQELU5E=; b=GDxmtPJtdQF6soz+yQVo7MiH5Ec6bIsiHFzSkrxM1LG5Mt7lb5OrVEeKSFFPi0/A1Pb/Vooyklq5V0LmcZwvH1+0X2GvoZMZaOBvZocyW5Xeyg7etKrl1gO6CeTrd9UZ9Rt1JlS95OqP9t18mf004KJow7nrC7rASmQn/VxwS2j6clWMOZlZ18WVa6r0DE6ubvW4rOlQCWcNEyswviI1jERDp+QMUL5T5ljJ0EIu0dc0UegPfcfiMuLl4V0Q2rnDXRpyMtk75vkLjjybmNnJ0GvMQ+cAIA8NELpYunk6i97UKwa5Egj9vCHLZiAJpvH92RneXXVzlfQ90EoljFa9zQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OYgkWGTzhe8+TRNsiCpu3kyIeAmjvzoNn4lspQELU5E=; b=NIOa12n7f/NcgJefzOwtqUDTTvgvAIAHDl4h83il28x1WXbJZynyF5JR7kPFcCl7uGbxWFdqygXFGrDQFl6LObnU4M+08CZRvPwdGpz6rvdyVOFv5eJyciwy6Xwv58TsiDSpSqXmiKWFOhBrRRqcwIYDD1G5ZN/l0E3NGixuIsE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:12:40 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:12:40 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 01/15] PCI: imx6: Simplify clock handling by using bulk_clk_*() function Date: Sun, 17 Dec 2023 00:11:56 -0500 Message-Id: <20231217051210.754832-2-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: d7428790-92c9-4d9a-b92f-08dbfebecaf5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Yk0nyvj5Fe+dAQv7WJbMQjEo6S0wgjPMM9nJTD1xWzUhTS6c/hTC9NZNXfod5K1SHDcPni09tsaApeJPYyTNOW1FGHGwNin9IXPcOPMDXOQQmSfDt8pbxBHSkqIv1LOkLc5L0QzYSLtGaaMl9phZchMlo1VPj/M/8kxb4Gs1hXpc7y9M9oKdUkkzWfn/f1j+ZPMWg25wTgD0Z/bXE/DdIaMX2lgYrryrkCp4goj/QrDl+QL2FGPkLkTxryaesWmY0UowCBZLzZZrtV2VGyzXklROFoUWiw2UFQFTdWJNG+HLbMDpgNYKSK+1cIKqmKN/aWvMxMvKuK6IfBZdLfOSMjbYAeOJWtEr7DaOXK9DZ0JiFaEd1Y1EUl5QDiOpER+rxHCaqX5jU741UIBfcJkRBnfDN4npyiae34oMiJx7PCCN5smBgTXY/IETiiv1H7DceTsfEH9x3lg6DOhJrr3vFL/xbU3h8OuXvIG/XCst+w+Y+b2jxPFHfxMqpTSyi76MfWHfRH2txK7mvzgjfNu/4Au+ky7bd4/aE/Y8smgY2VfT7zf3ORMB0uiikvq4D4/OfD1yPNwvwyoGvsm2nPlHHcBeIz7WarKMilgXO0RM5U5R+lrUVveuhfW90MnM1GXz X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6666004)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: B857CR2NBQKsHkQ8KDW9Cq3Jo3WWVwfHwbv1AYffEiH+MHxhvcmoteUnWlAK1RMbzihDDZtRzHRCCxKF06HYyBDd5awV0fxNolsFVxL8hbQYLIDlfDWCt3Vnd9wMrFfQ2/KUsTdR5XhWbeF5TsFQtEybCVkPGKojhKgLkyQnKND8nOSC0vVFQ0hsKWNezKWDIYOxWBhw/B+xmLiSD6Z82Qrcn2H46LrSxXxmLebkxcziFN1LmyR0O8k/b926Y2ey9Ie2vdaAixs3dzFOn+HXQJHVqDzMBxAWRUZN0ElZerDdsbcahj/pOI6kKRTfPUU6r1eRGuCldYMtaulSEjvdhIZrP9Xass0rxKuK48nnA5bfgH4/WsggP/xfy1LGA3ogtCupaNYwZGC3aNMjjb1KRpqnJcQno/YO3pRAJyrL5I6g4EMb36pVRV/jOBgnD+W3qVG3kxPyjhJB+CqhJx2EEjxS7xyLK1mifKohvGlkp+ecMbylnNg1/0waEusmDtIADFlNJQwzWsi7lwFIu5hGO3OjI/6bp5mumo4BLvozFgITSHuC6zLHeKMdjfmHuBb//ULacANpskF2BM5vE/GdmRLceDlTKjkeWzWdpzCFJObdvn784BwoLVCOu2iPIPrCls4IlQ9xUmi5cDPeJ7I8kG/U9d/NdPadNtDQNq77+JlvL0ttR0nOx4aoNLILX0fG+DgdA2MQwDS0JLdU1aYRml7m7621fgH66Ycc8jLjp6I0QQ2vW9Bi+RhbysFyaml3I//n6y709Cofi6HxjmxxkH1Q/8u9cinOSUkCDWsSTe/+zJLKZmdVrrACXWzYt8OtwnV2NsIIdWWjiRm98jLfg/hUh9d3jy3SozlJ6Qxw+wY5cPDgUCkuyOgMQxIvgcey6VqUnpgwcPYsvcX9wn/Igx4YN4A5bsmuxznzmDfkbR6S6Mhy3WAssGBZpsbOeWbNluNbWOuH8IRhJqQ2HCAFlg21oTS+g12bx7zitfrdfzPb5W+wScm4o66Ld/nj94QJkZi90q9ULAK3SVwAEcfTNMqBeN733KJ65WblGymFw8cYML9BYsRXkODSPtiS9UmbkWdYOsNCRvoLspiSrIpdlqeXTpG4F4/OsPLoz4p7TmTkV4tHoPwwqacg5xKwwTjZoPhEH6Du8taNp3Xvxqq5p+ritN1OumBlHXpVHuWk96hgpngxdanQLWbKrCB2pVtIApapBlWbMGxXQtBaTOA9V9QmKCBtDLQnIqrwBwkgGBwO7vO2lC+Y6Ujkl6HPEXLHtLKP6NGjAVNscUhjlCWy2f7Zg6hGE77Ns0nqcl7+CC2P2p0Ucw8d6/td3Li7s7JptM2yPXNgfWv9q5eLrij+htGzO7ApVi7+qbT8Fkt0yJms6avqrNkBgekmSX8hMjELqNHki0RYw13jOTKi1kA9MIdFpNt8VlDyt++tanPeNQr0bGwFrEiIZD2F21QuljyLClHFZxiVgASylrhv28lGIa3U6z9Xcf5C2SEnXc8cy/0pwRMvOpv4j98vf9lIJXxacPSLKDnh7hPxiGjJkm58TpMRgni4a1XQOmcRN/LYgl8= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7428790-92c9-4d9a-b92f-08dbfebecaf5 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:12:40.8523 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: WNStehkinXDRkKe7bHU2lVFvP40aLcvBpD3z6S5qMl0fdR58RKT27LsIQbDlXJwUhpThsSBKfJ6MmHdOqfsAsQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 Refactors the clock handling logic in the imx6 PCI driver by adding clk_names[] define in drvdata . Simplifies the code and makes it more maintainable, as future additions of SOC support will only require straightforward changes. Signed-off-by: Frank Li --- Notes: Change from v3 to v4 - using clk_bulk_*() API Change from v1 to v3 - none drivers/pci/controller/dwc/pci-imx6.c | 128 ++++++++------------------ 1 file changed, 38 insertions(+), 90 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 74703362aeec7..2086214345e9a 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -61,12 +61,15 @@ enum imx6_pcie_variants { #define IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE BIT(1) #define IMX6_PCIE_FLAG_SUPPORTS_SUSPEND BIT(2) +#define IMX6_PCIE_MAX_CLKS 6 + struct imx6_pcie_drvdata { enum imx6_pcie_variants variant; enum dw_pcie_device_mode mode; u32 flags; int dbi_length; const char *gpr; + const char *clk_names[IMX6_PCIE_MAX_CLKS]; }; struct imx6_pcie { @@ -74,11 +77,8 @@ struct imx6_pcie { int reset_gpio; bool gpio_active_high; bool link_is_up; - struct clk *pcie_bus; - struct clk *pcie_phy; - struct clk *pcie_inbound_axi; - struct clk *pcie; - struct clk *pcie_aux; + struct clk_bulk_data clks[IMX6_PCIE_MAX_CLKS]; + u32 clks_cnt; struct regmap *iomuxc_gpr; u16 msi_ctrl; u32 controller_id; @@ -407,13 +407,18 @@ static void imx7d_pcie_wait_for_phy_pll_lock(struct imx6_pcie *imx6_pcie) static int imx6_setup_phy_mpll(struct imx6_pcie *imx6_pcie) { - unsigned long phy_rate = clk_get_rate(imx6_pcie->pcie_phy); + unsigned long phy_rate = 0; int mult, div; u16 val; + int i; if (!(imx6_pcie->drvdata->flags & IMX6_PCIE_FLAG_IMX6_PHY)) return 0; + for (i = 0; i < imx6_pcie->clks_cnt; i++) + if (strncmp(imx6_pcie->clks[i].id, "pcie_phy", 8) == 0) + phy_rate = clk_get_rate(imx6_pcie->clks[i].clk); + switch (phy_rate) { case 125000000: /* @@ -550,19 +555,11 @@ static int imx6_pcie_attach_pd(struct device *dev) static int imx6_pcie_enable_ref_clk(struct imx6_pcie *imx6_pcie) { - struct dw_pcie *pci = imx6_pcie->pci; - struct device *dev = pci->dev; unsigned int offset; int ret = 0; switch (imx6_pcie->drvdata->variant) { case IMX6SX: - ret = clk_prepare_enable(imx6_pcie->pcie_inbound_axi); - if (ret) { - dev_err(dev, "unable to enable pcie_axi clock\n"); - break; - } - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, IMX6SX_GPR12_PCIE_TEST_POWERDOWN, 0); break; @@ -589,12 +586,6 @@ static int imx6_pcie_enable_ref_clk(struct imx6_pcie *imx6_pcie) case IMX8MQ_EP: case IMX8MP: case IMX8MP_EP: - ret = clk_prepare_enable(imx6_pcie->pcie_aux); - if (ret) { - dev_err(dev, "unable to enable pcie_aux clock\n"); - break; - } - offset = imx6_pcie_grp_offset(imx6_pcie); /* * Set the over ride low and enabled @@ -615,9 +606,6 @@ static int imx6_pcie_enable_ref_clk(struct imx6_pcie *imx6_pcie) static void imx6_pcie_disable_ref_clk(struct imx6_pcie *imx6_pcie) { switch (imx6_pcie->drvdata->variant) { - case IMX6SX: - clk_disable_unprepare(imx6_pcie->pcie_inbound_axi); - break; case IMX6QP: case IMX6Q: regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, @@ -631,14 +619,6 @@ static void imx6_pcie_disable_ref_clk(struct imx6_pcie *imx6_pcie) IMX7D_GPR12_PCIE_PHY_REFCLK_SEL, IMX7D_GPR12_PCIE_PHY_REFCLK_SEL); break; - case IMX8MM: - case IMX8MM_EP: - case IMX8MQ: - case IMX8MQ_EP: - case IMX8MP: - case IMX8MP_EP: - clk_disable_unprepare(imx6_pcie->pcie_aux); - break; default: break; } @@ -650,23 +630,9 @@ static int imx6_pcie_clk_enable(struct imx6_pcie *imx6_pcie) struct device *dev = pci->dev; int ret; - ret = clk_prepare_enable(imx6_pcie->pcie_phy); - if (ret) { - dev_err(dev, "unable to enable pcie_phy clock\n"); + ret = clk_bulk_prepare_enable(imx6_pcie->clks_cnt, imx6_pcie->clks); + if (ret) return ret; - } - - ret = clk_prepare_enable(imx6_pcie->pcie_bus); - if (ret) { - dev_err(dev, "unable to enable pcie_bus clock\n"); - goto err_pcie_bus; - } - - ret = clk_prepare_enable(imx6_pcie->pcie); - if (ret) { - dev_err(dev, "unable to enable pcie clock\n"); - goto err_pcie; - } ret = imx6_pcie_enable_ref_clk(imx6_pcie); if (ret) { @@ -679,11 +645,7 @@ static int imx6_pcie_clk_enable(struct imx6_pcie *imx6_pcie) return 0; err_ref_clk: - clk_disable_unprepare(imx6_pcie->pcie); -err_pcie: - clk_disable_unprepare(imx6_pcie->pcie_bus); -err_pcie_bus: - clk_disable_unprepare(imx6_pcie->pcie_phy); + clk_bulk_disable_unprepare(imx6_pcie->clks_cnt, imx6_pcie->clks); return ret; } @@ -691,9 +653,7 @@ static int imx6_pcie_clk_enable(struct imx6_pcie *imx6_pcie) static void imx6_pcie_clk_disable(struct imx6_pcie *imx6_pcie) { imx6_pcie_disable_ref_clk(imx6_pcie); - clk_disable_unprepare(imx6_pcie->pcie); - clk_disable_unprepare(imx6_pcie->pcie_bus); - clk_disable_unprepare(imx6_pcie->pcie_phy); + clk_bulk_disable_unprepare(imx6_pcie->clks_cnt, imx6_pcie->clks); } static void imx6_pcie_assert_core_reset(struct imx6_pcie *imx6_pcie) @@ -1305,32 +1265,19 @@ static int imx6_pcie_probe(struct platform_device *pdev) return imx6_pcie->reset_gpio; } - /* Fetch clocks */ - imx6_pcie->pcie_bus = devm_clk_get(dev, "pcie_bus"); - if (IS_ERR(imx6_pcie->pcie_bus)) - return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_bus), - "pcie_bus clock source missing or invalid\n"); + while (imx6_pcie->drvdata->clk_names[imx6_pcie->clks_cnt]) { + int i = imx6_pcie->clks_cnt; - imx6_pcie->pcie = devm_clk_get(dev, "pcie"); - if (IS_ERR(imx6_pcie->pcie)) - return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie), - "pcie clock source missing or invalid\n"); + imx6_pcie->clks[i].id = imx6_pcie->drvdata->clk_names[i]; + imx6_pcie->clks_cnt++; + } + + /* Fetch clocks */ + ret = devm_clk_bulk_get(dev, imx6_pcie->clks_cnt, imx6_pcie->clks); + if (ret) + return ret; switch (imx6_pcie->drvdata->variant) { - case IMX6SX: - imx6_pcie->pcie_inbound_axi = devm_clk_get(dev, - "pcie_inbound_axi"); - if (IS_ERR(imx6_pcie->pcie_inbound_axi)) - return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_inbound_axi), - "pcie_inbound_axi clock missing or invalid\n"); - break; - case IMX8MQ: - case IMX8MQ_EP: - imx6_pcie->pcie_aux = devm_clk_get(dev, "pcie_aux"); - if (IS_ERR(imx6_pcie->pcie_aux)) - return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_aux), - "pcie_aux clock source missing or invalid\n"); - fallthrough; case IMX7D: if (dbi_base->start == IMX8MQ_PCIE2_BASE_ADDR) imx6_pcie->controller_id = 1; @@ -1353,10 +1300,6 @@ static int imx6_pcie_probe(struct platform_device *pdev) case IMX8MM_EP: case IMX8MP: case IMX8MP_EP: - imx6_pcie->pcie_aux = devm_clk_get(dev, "pcie_aux"); - if (IS_ERR(imx6_pcie->pcie_aux)) - return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_aux), - "pcie_aux clock source missing or invalid\n"); imx6_pcie->apps_reset = devm_reset_control_get_exclusive(dev, "apps"); if (IS_ERR(imx6_pcie->apps_reset)) @@ -1372,14 +1315,6 @@ static int imx6_pcie_probe(struct platform_device *pdev) default: break; } - /* Don't fetch the pcie_phy clock, if it has abstract PHY driver */ - if (imx6_pcie->phy == NULL) { - imx6_pcie->pcie_phy = devm_clk_get(dev, "pcie_phy"); - if (IS_ERR(imx6_pcie->pcie_phy)) - return dev_err_probe(dev, PTR_ERR(imx6_pcie->pcie_phy), - "pcie_phy clock source missing or invalid\n"); - } - /* Grab turnoff reset */ imx6_pcie->turnoff_reset = devm_reset_control_get_optional_exclusive(dev, "turnoff"); @@ -1470,6 +1405,9 @@ static void imx6_pcie_shutdown(struct platform_device *pdev) imx6_pcie_assert_core_reset(imx6_pcie); } +#define IMX6_CLKS_COMMON "pcie_bus", "pcie" +#define IMX6_CLKS_NO_PHYDRV IMX6_CLKS_COMMON, "pcie_phy" + static const struct imx6_pcie_drvdata drvdata[] = { [IMX6Q] = { .variant = IMX6Q, @@ -1477,6 +1415,7 @@ static const struct imx6_pcie_drvdata drvdata[] = { IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE, .dbi_length = 0x200, .gpr = "fsl,imx6q-iomuxc-gpr", + .clk_names = {IMX6_CLKS_NO_PHYDRV}, }, [IMX6SX] = { .variant = IMX6SX, @@ -1484,6 +1423,7 @@ static const struct imx6_pcie_drvdata drvdata[] = { IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE | IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, .gpr = "fsl,imx6q-iomuxc-gpr", + .clk_names = {IMX6_CLKS_NO_PHYDRV, "pcie_inbound_axi"}, }, [IMX6QP] = { .variant = IMX6QP, @@ -1492,40 +1432,48 @@ static const struct imx6_pcie_drvdata drvdata[] = { IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, .dbi_length = 0x200, .gpr = "fsl,imx6q-iomuxc-gpr", + .clk_names = {IMX6_CLKS_NO_PHYDRV}, }, [IMX7D] = { .variant = IMX7D, .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, .gpr = "fsl,imx7d-iomuxc-gpr", + .clk_names = {IMX6_CLKS_NO_PHYDRV}, }, [IMX8MQ] = { .variant = IMX8MQ, .gpr = "fsl,imx8mq-iomuxc-gpr", + .clk_names = {IMX6_CLKS_NO_PHYDRV, "pcie_aux"}, }, [IMX8MM] = { .variant = IMX8MM, .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, .gpr = "fsl,imx8mm-iomuxc-gpr", + .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, }, [IMX8MP] = { .variant = IMX8MP, .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, .gpr = "fsl,imx8mp-iomuxc-gpr", + .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, }, [IMX8MQ_EP] = { .variant = IMX8MQ_EP, .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mq-iomuxc-gpr", + .clk_names = {IMX6_CLKS_NO_PHYDRV, "pcie_aux"}, }, [IMX8MM_EP] = { .variant = IMX8MM_EP, .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mm-iomuxc-gpr", + .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, }, [IMX8MP_EP] = { .variant = IMX8MP_EP, .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mp-iomuxc-gpr", + .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, }, }; From patchwork Sun Dec 17 05:11:57 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877014 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=g/ade2iC; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45e3:2400::1; helo=sv.mirrors.kernel.org; envelope-from=linux-pci+bounces-1104-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [IPv6:2604:1380:45e3:2400::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB1b1G2xz23ns for ; Sun, 17 Dec 2023 16:13:23 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 7A6B32839D1 for ; Sun, 17 Dec 2023 05:13:21 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 3AD8BA40; Sun, 17 Dec 2023 05:12:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="g/ade2iC" X-Original-To: linux-pci@vger.kernel.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2084.outbound.protection.outlook.com [40.107.247.84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6FA6623C2; Sun, 17 Dec 2023 05:12:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aFV1MOWVd+o7AW21bOepRF2zDI1UgIVnaNpGoY12+NWxS7ioMQGWbWHloz/W6Mp3h4Cvxa11Zl9+nrEAwoevJfTb6FGHSTjFXM4IYABeGP8ApcsHOk0bWH8R/v1p02fWzwbJ0u31SFE4a7ZcdvEHyRfJtVow2JTkDpxllOhZm0unaOT4/goWv9y7ReIIDhLM33tVvDwChnaPL8SYPap9j0bKkjxs5KGyFM9QRfOuHGBPOe6S89jLMgtfc0tuWjDHmwzTRmfzalGw9L63jF29mfaZkks1V0VHHPJWaOlaXtNA28eMjTN4RTkusLSdOVUfxsg1I+w8R06e5ZoUt492uA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=RihIXivSmGuSTmPuPKrGg7/Iy6cYq+hMDfd4TZX4boU=; b=X6S+aKB0TFWMRMkMgPsoSoT0HeTAuYFxN9aMOiORa+2nESuXSM5jI24pBex4xChkosGhkd6zysQw30jHVEObVHt5LHDV/yhV3O9SaxyVKaZOol/1KqSjGL9Y7+FiGKr1ivkgDW0mV0h5BSzkif7xJQCGXarsBS9XmiV762ZktTlixfnCnzZawjq9ij44fMVm3LRFeWWeNAC1okV7xrq/yJ+iPIeqamMj2r6afdN47EKI2MZHFoZXWpHqQeuJW/C9PwjYFFx0N6c5BAKm/1Nm0wCweCzR0aTs62Pm6H83mAKAOKB/NfBlOavbI3TyrPaIHf3oaK3mAprJELWbR9cCrA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RihIXivSmGuSTmPuPKrGg7/Iy6cYq+hMDfd4TZX4boU=; b=g/ade2iCpOFtMD7tSdwk4YsyTZJZGmRPokke0B2+Tqh1akIbJxNdo03doAjyqYhEV5uQSM8omMaNsyCbo0WEcXEWLIyh+cD91Jc1W53aiXvY8RfaU5lBSOGStkrs88YwXjxvtcaUTXOuN5PFzCJxRW5kQtLPs7yyCVs3vOoHB9A= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:12:45 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:12:45 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 02/15] PCI: imx6: Simplify phy handling by using by using IMX6_PCIE_FLAG_HAS_PHY Date: Sun, 17 Dec 2023 00:11:57 -0500 Message-Id: <20231217051210.754832-3-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: d75b788b-a14b-47e4-1db0-08dbfebece06 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Vozx2Xk8psWxW7cFd03uAZeibEI8zk6AUBTmntFAJi0ym2Y40eAfe6EhrcNlscWT6cH2ymFaQTsIm/i2OMMqI1cn5WkB7LacU7fOtDk3Cx5dH0J8ynF9Jkycu/LgFbdLamnvjxliRwO+x/pm+HihZxAZwueCAkIyqVJ38XS3F0kE5p5FWUMSGj4JIKEyTnvLybH2ozsaCTwZt4ooSgqzFOYo4DPhzKfkdKHq3CPQEb6kcQCYVsnf/TMpTZGr1RCCq70W64XuzC833pN+vLtnudrMXpzu3UAWRHslRusHNLtGKYCQCy2CBrOLDcsMh2DwWmIZ4zfE5yRKVIQryPJ1tCBGiUU+Ngr2SYW3wABtnClXWP+kBEZ15xOfZ8kuniMYgb+FtYJsmu01KSWUfmcAZYlUxgdQnNgIn1FNGSdOidId+RSL1lK8QNmaWoC72BqB968+KqQjhYRCrLbLcWZtPtlU5m1A4RXOzyjJQfNOsTfO18ZMHG9osv5MGsQ1VZtyQvSSBKKFIhKVc4RZ4g8vuUzaJdJMR/GqLQYZSPiYaE7tiA7568WV0wEgXrXPlIdJlCpmB1oZHCOjP1N0mm9uaBhwgy4BQQgPPshV+xzXx5/8TRLM4EOQIGuG5o7WA66A X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6666004)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: DI28Cqy3Ybo+22MIEJspsy3yZalrjMbH8L8ObhV9VOdbXiO2irnZx3ukAfX8yxoRJOWLo9oKg0d/MweLlk49VB/aNmZ59edmP+rn/iBA2BgAHi9Sbu2XBGfY/kFueqQ4Qch7LahAqHGklL04aRGYHrr/C0RjlbX/5ayPOwGonKCMxCwYRMT2YCAAu6u/GBRMIUFql9MXTF+mp2ejTjyi23FU3fGjJN6e7nMXwPq2LA3fTwCDse9Hzfz8+D13clzZXWN9jg1EjtMYuBCB2yKMkMCNeWvTs5OANeLo/waHGh/zahCdWahMOJFxpA4bTNpV21Djz7lJnhsocq5x4K0gpl1ltxtdOG1FZW5GYlwKW8lEHevgZUI7aiMMgkQbE87eqmMGbDso08TKEVJdc4J+Zgq4btAAOfXa5zvlOFJC7ETAnbNi3Zw4dBNeqvcccJTDYcBDC5okMcH8ugzbAiesj0AGLGEVoE28KDBjP2K3bhJeFOTvygs2om6uR9kytQqFGQn75Ec0SakFM+4uxvu3ZNqql2CwmxHRDt3ZA3pYddId8yEf3E18TuS79xP4Vc6v+qHHuqTon2sB9llA6rNretBvnrIKSmU/9DfKXdwWYT03K/LwgkN2sqeddXcsvaE9CDIHLGutPUZg7CoJYue1NRsMlmlEBSB1pbniJNrJ4DNFxHk3sp6zrW5nSEb79XzL20VY/0bXa7Ozr39ErsMdxNnelSkYzUkfsiUj8Y+H6be8PnOCHAciqAU+0m0us8M5PX1T+6Jv+sWz+rxlLHBMx1Rt24y3KxZvBaP0TCMP6fQMfcO7UDigEhBb+6P/gksfcXOXyrWcbqnqv8SainxyDtFsJ+HW4k614bbJsofFzZnRd/UvMKiiHIh9Ha5ap++lIQF579yYB+E9Pl1bcCtHMMmhSh91tlsre9q2yqClqrUrISNVI1RIMq8+ExX7Qfumarla3SVh5Wb592bsiXnALyg03LAHYCG9guGBbKKcywh0hP1GqEms9a8HRmoClAVH6DBGWGRVsBX7QHpwH3H09+fjt8zrdT4SuXcmSo3l+Akh5Qc/pruRG4k6fy4qmqPInlORvvxBx1/AiWmjxp9loAffB+ObZOollSmDVML/UgaemW7p7od2aVh2pLhOKMBGvJxf3/+O2lN2WWJ6UitPiWHrvXWhf713O29HREQJRUR0IhRD+KS3QEZWM9GYq75Gst/ScqRF9lq/aGBisQOg//44WEXqq0BQJHff+XCqNy3NqLm3EJ39P1uwv5HelKLZM2XJw0/UXTkRh0TBaVyIs2Qk3+dVcxjtRZFRupnaViQNzhYCl2k2lPyC+3wAjJAgljon+O0AIrWTMdBb3j82TAfuY7RV3d2C0ZrbQhEyBrwt262sHhsDT3l5s80lqQbpMus5t1/z13nG1BTYR7PdKcpHWtvpkr14DsOwFhgXGTapEFM2XkS3yBobnD09TQIx2ZgoBWbOuHfO8m9vf0P6U7QqaJ/pNHyQvg3fSk+C9Dw2O84Dg0JmgPsnYt4N6QcKn9WWYdSY4JoOP47Z6C13FNQ1aaGqJhJMR5zLJyEtf/w= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: d75b788b-a14b-47e4-1db0-08dbfebece06 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:12:45.8472 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: sEZgPxl2h3y91tcIZUMPDx6P3XS/gg2kTGa2SIfyIQbA0WVT3f4IvlXaT95cbmlIWzJlubXFan/sdD6MM4C1iw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 Refactors the phy handling logic in the imx6 PCI driver by adding IMX6_PCIE_FLAG_HAS_PHY bitmask define for drvdata::flags. The drvdata::flags and a bitmask ensures a cleaner and more scalable switch-case structure for handling phy. Signed-off-by: Frank Li --- Notes: Change from v1 to v3: - none drivers/pci/controller/dwc/pci-imx6.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 2086214345e9a..91ba26a4b4c3d 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -60,6 +60,9 @@ enum imx6_pcie_variants { #define IMX6_PCIE_FLAG_IMX6_PHY BIT(0) #define IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE BIT(1) #define IMX6_PCIE_FLAG_SUPPORTS_SUSPEND BIT(2) +#define IMX6_PCIE_FLAG_HAS_PHY BIT(3) + +#define imx6_check_flag(pci, val) (pci->drvdata->flags & val) #define IMX6_PCIE_MAX_CLKS 6 @@ -1277,6 +1280,13 @@ static int imx6_pcie_probe(struct platform_device *pdev) if (ret) return ret; + if (imx6_check_flag(imx6_pcie, IMX6_PCIE_FLAG_HAS_PHY)) { + imx6_pcie->phy = devm_phy_get(dev, "pcie-phy"); + if (IS_ERR(imx6_pcie->phy)) + return dev_err_probe(dev, PTR_ERR(imx6_pcie->phy), + "failed to get pcie phy\n"); + } + switch (imx6_pcie->drvdata->variant) { case IMX7D: if (dbi_base->start == IMX8MQ_PCIE2_BASE_ADDR) @@ -1306,11 +1316,6 @@ static int imx6_pcie_probe(struct platform_device *pdev) return dev_err_probe(dev, PTR_ERR(imx6_pcie->apps_reset), "failed to get pcie apps reset control\n"); - imx6_pcie->phy = devm_phy_get(dev, "pcie-phy"); - if (IS_ERR(imx6_pcie->phy)) - return dev_err_probe(dev, PTR_ERR(imx6_pcie->phy), - "failed to get pcie phy\n"); - break; default: break; @@ -1447,13 +1452,15 @@ static const struct imx6_pcie_drvdata drvdata[] = { }, [IMX8MM] = { .variant = IMX8MM, - .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, + .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | + IMX6_PCIE_FLAG_HAS_PHY, .gpr = "fsl,imx8mm-iomuxc-gpr", .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, }, [IMX8MP] = { .variant = IMX8MP, - .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, + .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | + IMX6_PCIE_FLAG_HAS_PHY, .gpr = "fsl,imx8mp-iomuxc-gpr", .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, }, @@ -1465,12 +1472,14 @@ static const struct imx6_pcie_drvdata drvdata[] = { }, [IMX8MM_EP] = { .variant = IMX8MM_EP, + .flags = IMX6_PCIE_FLAG_HAS_PHY, .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mm-iomuxc-gpr", .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, }, [IMX8MP_EP] = { .variant = IMX8MP_EP, + .flags = IMX6_PCIE_FLAG_HAS_PHY, .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mp-iomuxc-gpr", .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, From patchwork Sun Dec 17 05:11:58 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877015 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=JRHNoUAo; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45e3:2400::1; helo=sv.mirrors.kernel.org; envelope-from=linux-pci+bounces-1105-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org [IPv6:2604:1380:45e3:2400::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB1x74qJz23ns for ; Sun, 17 Dec 2023 16:13:41 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id BBCDD283AB8 for ; Sun, 17 Dec 2023 05:13:40 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 959E817F8; Sun, 17 Dec 2023 05:12:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="JRHNoUAo" X-Original-To: linux-pci@vger.kernel.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2075.outbound.protection.outlook.com [40.107.247.75]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 72F0517EB; Sun, 17 Dec 2023 05:12:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YATzOA98h4BmpuYwv4w24BwfbLlaiAn862WgEcKdU1U2bE27YVr5LY7BMXiZ364X8D6fH5Krm2SC/sMvbJMS3I/J+NXVktL6kt7HWyfp3HcgWOc5oU/lmLy7cqyTN0tUAfo8vR8M3Td+pHFxXvyiqNsKXYnN7RXyhKEcX+X1cXoV+m2HtE1r5uAuM+YdVNMOtUTiNjUse7ZOUwhe0kWMjIlwl84VgnOqvg/IxldgIsek1x02Bq3qOwG2+nh9kY/2rV7IBYNxjmurH5K420dsTho2MCPFXs1DOpV8nEHhX0CSSNytLLTNW/Rodpa77W9oiRh1jihthc95Cw2lEkGCDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dCc1yfBlk9+ifAPTT3hvp+9Icvwv4GLYdp1MDbDbVfo=; b=BRt6uj+qZYXc6VIUn50hoLvDYNxASRVC1ByuFWk2RyGaiyBNGGc9U0GIoY2ykSBafvr2o7hfxiiTM/NUOHqV6/7t/0TDKR1K64a7UfvGHvx78Yc0J5CY0PwDRu999K6ZaRdja8SwAH1QO6fzO/Anr8Um7kvPKqZi8JN7Bx2FXS6JosJTTOekgM8G3+XWRkptzd23zuA4gjn8yObkdF+eOC39bFYW7P7rO7nsq+1R6DiCeEWDdi6wkBQ+AA0ddzKWOTP8NfWocBl9tyYeAPjV9OOrMTXKymmBqYVVmmmV3ZRb0iMipVmqaPV2BQ+gtq8yClDlq6ewNwdFWt54KMe45w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dCc1yfBlk9+ifAPTT3hvp+9Icvwv4GLYdp1MDbDbVfo=; b=JRHNoUAoUXtcdoUFAxXRVGCHBThiK4kqIDZFJOEr/kmFQUbZ/93aY3r95w1Ar7rX4hF2VamkYAeuHBFDXTXek8nqa2iM9WIvCPv9XSM/t48JrgZZ4nadhtXKpt51eMWtGaMNcIy3J3LtF68cxJM90tKSqi92AoXhsCS3iyQM2aY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:12:50 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:12:50 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 03/15] PCI: imx6: Simplify reset handling by using by using *_FLAG_HAS_*_RESET Date: Sun, 17 Dec 2023 00:11:58 -0500 Message-Id: <20231217051210.754832-4-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: b38736bc-4fd2-43b8-0d18-08dbfebed101 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dCGiAuQj93IxrRT+jwuzq7zMTZIYedUDEGzGQWN/S5XaQWXq2HphJJR8qnTZKBxOSvUVm8KMvA941rPnYpdvr8BgqI+46uU+1h90qw0+5OYQRsHN7EgE6a0wOKPougWIk1RFoxcH4S9+yUyKIqRkYB09V0l6ur+M+G1W6w9qftN5MzibSYoU73zr3Ezy+sGB9/nh/eBjQQOHr/3UojZsRxe3g4UMBYXSPWBOezviv4mR6lJFBsZ3wwSq1JNt0h5dYkL4H5Ya2qA3th+jdlb11evQaFWTyqdVnyg9JdlFDibArk8JOQg/mIFI2nG/o3gBPyNIYnuflMeqNQ8jUg0fdCTfrRz0tKxRZDAl6yYjpfKexLvqYRvp1bw0VhhCF26JoEHhVc6O49QRAfeVcnPCU8+59eExY3lrw5WR9Wjj0nXWG7J/9rWLS8OlLFJ9GB8diWkfoNXiwfp8YRxUfMUT/BNLHq7ciyDk28UCediTdvTcgT2iKknK4gXZa7JtCohmlFh4cImKi8nat0iz+wbV6HMB+VczHAoKTQG+707Z9sqC86iw+VYOCQMIHfHfm0F+SWlzPpXiGcgFoVLihO/5V5dRgjMQ9DAfRLvkvF7XuxxY3gpfSNyFSr8z33Al9/yE X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Bjj4qTPeITTMaGgX5UufndUxXpo5VUuKyzsWQ3A2sxgklRVqSS9i2aBvyHUgMmScQcsSV63gosbjmF6WWMuA/PMBHxAKn969xfijwftgce8vgOffX9nYj8X0hGRy0LHy0AeNTegf09uMw7J9XneAGH1JnJRm72LrFJqcO4iWXtOuHvekAVJQX9WSlrAje/T9ROx7e73rRI06dffFDp5AmLpGCCtEdbJ08ANS04gEnsT+3lG6Bw194qax8InRilv9Gn3/2eb6UVbDdI7zHLCuIcKBvd7Ygefht3aPErnNBoKL8KV7YUrZ5x3S5qdWgHDNtXQlQ2UqqutQLTBmtzjGXNugWZ1AU1Pq/fj1JvnLfsfqdLtwkDlO3eprpnLMSAm+wbnr/dpZEgcWXT34AYshLscxGBwjI/vBptt+NBYUlZR6l96uCdwWUcUoxNvMgssGbOu/6VHVUQiRxiSCHOY3j75ysBe6RZN2TPdCazuDH6bpHfDFnrtD0ELnFYz2NtXOACL9+Qj6rlZxV77eXeJ4LNqjGBqdqsiCfPiJTZeAGsH0SE/WpcVSr2XsaLB5o6Q8ktfK9mUpm8FNwyL8gq6j5Fgvc85AAacIGWVMtBvkwz4wQm3ttXBiM1cius5hxUXj6ug5vpbnIkX36GfoiWyxPRXCmBKcStpS7JMLFpLqRijn7TgZF1spOoHG4qpP/CL+cR8RXXBBBdtL+H/Mxj6sAMdE+ZvRM7lQ1QWnXGv0M59xRGlr/8YWSueG9b8zQG9mMTC6r2mcQDxnsQ5BjMvdq+TBb3PKJ6jtBSCf6gTZGn34uouqV8s2qaLdkVu7fdSAIvcplg9OwQrTu2jmJ0j266MwV4pGJT6RkaF5Nh/i/n6UpY4s9opxNGP2IFFC7IMuySKuIA65joUlKtKVpAN2upk+AHamKdS3cxyCOmKgKH9j7p8+lXIGVHNv8h7K6O2WAfi1pyBbgQ4mFsz0cxG+CXWWpOQHRM3x0xL/LPGYcHvDGIvg9u1eIqLPFgrbt9Bnhar7jwliygKgoPCTMc1R9H2WeSl5Ag9hEM/st/so2eIdcUDUsqBhJApYPwTRn/MYMpX19x/89T306w54syWZu/34/aN0uZiH3HLFoPBIYIruJJOcydzBlwBxtoOQoMBNsCn3EA1xjKf2TJQhnLDW03zaWWOiaG76ZQ0nai7BxQBEpalZRoeOzHmBhdfX1jxGCIFdFNXmNdKoxZhr59d1THE1VstWqXXJ4hNUMUiwLZQbFJdN0phjm/eB+UmTqCG/qHlaUd2z16752selIBZEsSCE5ioMm6DRXoOEh5CBgssLvkfkK41Am8uNtXVay6386dXifkwPZMVaGfNvhHewH1J8zJoWfg6eQrHMchcLdy0No6tHfvm5F5/VaoNcfskKnEEJ+yAh9VZE/5KTfLkpOTE4Ve74Mj5v6yoGP2BhZGL21ZxJAROw5A1voKMfq8Eh4JUWv1R8EiC+FWkLx610FAj8ftt6yGchmtTdXNp+SQeDg4DcLK36u8Jb6uPYkooG87w6dxgekugKWNqDQg4sFbhEu7GQwR2uZSgAd/0q2TQ= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b38736bc-4fd2-43b8-0d18-08dbfebed101 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:12:50.8330 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +X+aGZ9RU/8LX1luRRGbhitDUAsDR9q1/IdUH34+OT5pjddZ26KIRmu6DsjMu1zeMVK8JcYlNuZFkRNNKRHiCw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 Refactors the reset handling logic in the imx6 PCI driver by adding IMX6_PCIE_FLAG_HAS_*_RESET bitmask define for drvdata::flags. The drvdata::flags and a bitmask ensures a cleaner and more scalable switch-case structure for handling reset. Reviewed-by: Philipp Zabel Signed-off-by: Frank Li Reviewed-by: Manivannan Sadhasivam --- Notes: Change from v2 to v3: - add Philipp's Reviewed-by tag Change from v1 to v2: - remove condition check before reset_control_(de)assert() because it is none ops if a NULL pointer pass down. - still keep condition check at probe to help identify dts file mismatch problem. Change from v1 to v2: - remove condition check before reset_control_(de)assert() because it is none ops if a NULL pointer pass down. - still keep condition check at probe to help identify dts file mismatch problem. drivers/pci/controller/dwc/pci-imx6.c | 108 ++++++++++---------------- 1 file changed, 41 insertions(+), 67 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 91ba26a4b4c3d..c1fb38a2ebeb6 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -61,6 +61,8 @@ enum imx6_pcie_variants { #define IMX6_PCIE_FLAG_IMX6_SPEED_CHANGE BIT(1) #define IMX6_PCIE_FLAG_SUPPORTS_SUSPEND BIT(2) #define IMX6_PCIE_FLAG_HAS_PHY BIT(3) +#define IMX6_PCIE_FLAG_HAS_APP_RESET BIT(4) +#define IMX6_PCIE_FLAG_HAS_PHY_RESET BIT(5) #define imx6_check_flag(pci, val) (pci->drvdata->flags & val) @@ -661,18 +663,10 @@ static void imx6_pcie_clk_disable(struct imx6_pcie *imx6_pcie) static void imx6_pcie_assert_core_reset(struct imx6_pcie *imx6_pcie) { + reset_control_assert(imx6_pcie->pciephy_reset); + reset_control_assert(imx6_pcie->apps_reset); + switch (imx6_pcie->drvdata->variant) { - case IMX7D: - case IMX8MQ: - case IMX8MQ_EP: - reset_control_assert(imx6_pcie->pciephy_reset); - fallthrough; - case IMX8MM: - case IMX8MM_EP: - case IMX8MP: - case IMX8MP_EP: - reset_control_assert(imx6_pcie->apps_reset); - break; case IMX6SX: regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, IMX6SX_GPR12_PCIE_TEST_POWERDOWN, @@ -693,6 +687,8 @@ static void imx6_pcie_assert_core_reset(struct imx6_pcie *imx6_pcie) regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR1, IMX6Q_GPR1_PCIE_REF_CLK_EN, 0 << 16); break; + default: + break; } /* Some boards don't have PCIe reset GPIO. */ @@ -706,14 +702,10 @@ static int imx6_pcie_deassert_core_reset(struct imx6_pcie *imx6_pcie) struct dw_pcie *pci = imx6_pcie->pci; struct device *dev = pci->dev; + reset_control_deassert(imx6_pcie->pciephy_reset); + switch (imx6_pcie->drvdata->variant) { - case IMX8MQ: - case IMX8MQ_EP: - reset_control_deassert(imx6_pcie->pciephy_reset); - break; case IMX7D: - reset_control_deassert(imx6_pcie->pciephy_reset); - /* Workaround for ERR010728, failure of PCI-e PLL VCO to * oscillate, especially when cold. This turns off "Duty-cycle * Corrector" and other mysterious undocumented things. @@ -745,11 +737,7 @@ static int imx6_pcie_deassert_core_reset(struct imx6_pcie *imx6_pcie) usleep_range(200, 500); break; - case IMX6Q: /* Nothing to do */ - case IMX8MM: - case IMX8MM_EP: - case IMX8MP: - case IMX8MP_EP: + default: break; } @@ -796,16 +784,11 @@ static void imx6_pcie_ltssm_enable(struct device *dev) IMX6Q_GPR12_PCIE_CTL_2, IMX6Q_GPR12_PCIE_CTL_2); break; - case IMX7D: - case IMX8MQ: - case IMX8MQ_EP: - case IMX8MM: - case IMX8MM_EP: - case IMX8MP: - case IMX8MP_EP: - reset_control_deassert(imx6_pcie->apps_reset); + default: break; } + + reset_control_deassert(imx6_pcie->apps_reset); } static void imx6_pcie_ltssm_disable(struct device *dev) @@ -819,16 +802,11 @@ static void imx6_pcie_ltssm_disable(struct device *dev) regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, IMX6Q_GPR12_PCIE_CTL_2, 0); break; - case IMX7D: - case IMX8MQ: - case IMX8MQ_EP: - case IMX8MM: - case IMX8MM_EP: - case IMX8MP: - case IMX8MP_EP: - reset_control_assert(imx6_pcie->apps_reset); + default: break; } + + reset_control_assert(imx6_pcie->apps_reset); } static int imx6_pcie_start_link(struct dw_pcie *pci) @@ -1287,36 +1265,24 @@ static int imx6_pcie_probe(struct platform_device *pdev) "failed to get pcie phy\n"); } - switch (imx6_pcie->drvdata->variant) { - case IMX7D: - if (dbi_base->start == IMX8MQ_PCIE2_BASE_ADDR) - imx6_pcie->controller_id = 1; - - imx6_pcie->pciephy_reset = devm_reset_control_get_exclusive(dev, - "pciephy"); - if (IS_ERR(imx6_pcie->pciephy_reset)) { - dev_err(dev, "Failed to get PCIEPHY reset control\n"); - return PTR_ERR(imx6_pcie->pciephy_reset); - } - - imx6_pcie->apps_reset = devm_reset_control_get_exclusive(dev, - "apps"); - if (IS_ERR(imx6_pcie->apps_reset)) { - dev_err(dev, "Failed to get PCIE APPS reset control\n"); - return PTR_ERR(imx6_pcie->apps_reset); - } - break; - case IMX8MM: - case IMX8MM_EP: - case IMX8MP: - case IMX8MP_EP: - imx6_pcie->apps_reset = devm_reset_control_get_exclusive(dev, - "apps"); + if (imx6_check_flag(imx6_pcie, IMX6_PCIE_FLAG_HAS_APP_RESET)) { + imx6_pcie->apps_reset = devm_reset_control_get_exclusive(dev, "apps"); if (IS_ERR(imx6_pcie->apps_reset)) return dev_err_probe(dev, PTR_ERR(imx6_pcie->apps_reset), "failed to get pcie apps reset control\n"); + } - break; + if (imx6_check_flag(imx6_pcie, IMX6_PCIE_FLAG_HAS_PHY_RESET)) { + imx6_pcie->pciephy_reset = devm_reset_control_get_exclusive(dev, "pciephy"); + if (IS_ERR(imx6_pcie->pciephy_reset)) + return dev_err_probe(dev, PTR_ERR(imx6_pcie->pciephy_reset), + "Failed to get PCIEPHY reset control\n"); + } + + switch (imx6_pcie->drvdata->variant) { + case IMX7D: + if (dbi_base->start == IMX8MQ_PCIE2_BASE_ADDR) + imx6_pcie->controller_id = 1; default: break; } @@ -1441,31 +1407,39 @@ static const struct imx6_pcie_drvdata drvdata[] = { }, [IMX7D] = { .variant = IMX7D, - .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, + .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | + IMX6_PCIE_FLAG_HAS_APP_RESET | + IMX6_PCIE_FLAG_HAS_PHY_RESET, .gpr = "fsl,imx7d-iomuxc-gpr", .clk_names = {IMX6_CLKS_NO_PHYDRV}, }, [IMX8MQ] = { .variant = IMX8MQ, + .flags = IMX6_PCIE_FLAG_HAS_APP_RESET | + IMX6_PCIE_FLAG_HAS_PHY_RESET, .gpr = "fsl,imx8mq-iomuxc-gpr", .clk_names = {IMX6_CLKS_NO_PHYDRV, "pcie_aux"}, }, [IMX8MM] = { .variant = IMX8MM, .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | - IMX6_PCIE_FLAG_HAS_PHY, + IMX6_PCIE_FLAG_HAS_PHY | + IMX6_PCIE_FLAG_HAS_APP_RESET, .gpr = "fsl,imx8mm-iomuxc-gpr", .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, }, [IMX8MP] = { .variant = IMX8MP, .flags = IMX6_PCIE_FLAG_SUPPORTS_SUSPEND | - IMX6_PCIE_FLAG_HAS_PHY, + IMX6_PCIE_FLAG_HAS_PHY | + IMX6_PCIE_FLAG_HAS_APP_RESET, .gpr = "fsl,imx8mp-iomuxc-gpr", .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, }, [IMX8MQ_EP] = { .variant = IMX8MQ_EP, + .flags = IMX6_PCIE_FLAG_HAS_PHY | + IMX6_PCIE_FLAG_HAS_PHY_RESET, .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mq-iomuxc-gpr", .clk_names = {IMX6_CLKS_NO_PHYDRV, "pcie_aux"}, From patchwork Sun Dec 17 05:11:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877016 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=kRjZZ8ZA; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45d1:ec00::1; helo=ny.mirrors.kernel.org; envelope-from=linux-pci+bounces-1106-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org [IPv6:2604:1380:45d1:ec00::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB2K6Xx8z23ns for ; Sun, 17 Dec 2023 16:14:01 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 8497D1C21954 for ; Sun, 17 Dec 2023 05:13:59 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9BEAA17F6; Sun, 17 Dec 2023 05:13:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="kRjZZ8ZA" X-Original-To: linux-pci@vger.kernel.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2058.outbound.protection.outlook.com [40.107.7.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BA1205396; Sun, 17 Dec 2023 05:12:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oPab8BXt2f2FsiGgexleeMjgPAJN77lBnCkuLf0YUjomc9xSbo51oXh7QMoci0vGlWDmMKCVKhQM27fTxfnYF1kyB9SDwpK/7lypeeC65zYEq66vv/gUirvzoxCBvpGXgxMx7D4dRAo7pVOnqeqnI6avNv4R0W8GxI62FxbhYTYgcgZRlBmvljfsaOEnwPLU7YvYlqLwz8JAKSr6Gk8LO3HHVcBkm93C+Hjs04ccAE2KZxNw59MFkkVyG0ciSinFI1o7AiF6BPv5KCWAr74b8qq/PGJcZeFV8V5lYV49t4wANqaEGx8Ojq/R/G89Y3pxSEPkwGcyogKLLFDRkl+FfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Y+OyrxOterLF5TTnxpzEaPhKfuFvMf6YfVEIZYVks7A=; b=Zfol0vCDuFsBndXSqVl5NRGW9/KtqE6jesY+XmOcJlLQl1ILMgbWpzCzEfZLE2IbWDVVldizifv5p3z/ufNa1eOjH765nmJm01ruU+PP+TB1eV6zd7rHrjki8xoHaLj1wVYW/95uwJEXxysLdQxq3IuORGXVg06GwKxoJXKkdcprxP51OnnBEjcZVh9pz/kcan1mSJWIVKpRz5k4UOsYzS4+5jjSgit0dDFGkxN52UwFE96IhO4+cO5ofxZyXCe8SMFjLCfjxE/qELXln/03knLGgQF41r92z4r9f7MO6X/AoFqJHsCMYEEv4QmnZ9r0K7cVciZSvdx6wZwTeadIkg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Y+OyrxOterLF5TTnxpzEaPhKfuFvMf6YfVEIZYVks7A=; b=kRjZZ8ZAFZ65ScBB1s/y2LuqIfHD6zSn33nuFiUs4iVYyoI1LByq/6cWgmDHh+Ruc92p4f0YPjdrqJm9xt5Tl+SHmhMXrtqUj9nL6eFjUnvr+LG9ws106FOBSh0ziS2MT+MPfZpHIUqXY4xO+SVnynrrrxIGlTSKqueP+QKDSxg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:12:56 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:12:56 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 04/15] PCI: imx6: Using "linux,pci-domain" as slot ID Date: Sun, 17 Dec 2023 00:11:59 -0500 Message-Id: <20231217051210.754832-5-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: 033c5254-2f27-4389-fcb5-08dbfebed3fb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 5Y5oDli3TnLnc3RHGbbyXYTKqicxHXll8caQDBa06tKjjSMrvwXjJ2JuMH5CQWCV5TwFhVlWmhF/yLyZLTAK/BRtB6AptonZsERGJAWUKwCX6xSmkwbNUzUVqWfZu1/x4zPVwTCgKw6Ox6f4K2KUmK1Xhdt86GPdCqk0oafbvLePhqImrOGsCYBou0BCOO/VgtW8s29n8mmY0lk/TzFnqyVp7eptp/mKvbJQDmx+BsiUrvL3xm/QOs2u/57J7oF72aYW8lVff1oRC1vniF7zmhF5V8QRQ3QmnTRMonw2RWhN6JJQchhkTh4JdFyVxjQxdy7sOLmmFxNzivIeRdZeqFT6i9C2wrBQEAmbqlojd1TTaNsX4v2+TBmkbZ2mZ3OysfOVQ84YmiT48j8BCCJMv1xZmpsCHmBZoUO+OOsUqAYLUa2iohUky2zrY+KQ+DfJu1VNSJi4rtfiLCHRUbFREQ55TiCPJ60GvrHFZaZzExSGVkdtO2hLjkbc8f2tDlCUj/Jq5kzQFzavcork+/sMvHgaMeYIBlMiYr54urS1eQP0FMrSwwku+hLSa8YH3wy9gR9b9+oHAm+hIE7PUXtWX/3wv23pw5xIZ4VRO5K2CM1iP5HVlXIsUlXkA6xjs2uL X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: fLdr+2yO9FfW//1WNcFaTwArQLozhJd8e0MfMmxGefg/0pFGOHUwecxAFeg5gohu68gcYj5/1HvUBTMBaKYGzAjRFsaJnbMZ/oDkm8t3F9LWGAszkG9JulYVMk55lhXEmGlfgNO65a+O/nz/h82Tk3Gyr5pAlwrw0LAsDuyos/gc8vjnsuH9P1b2rP/mVQHWpAwS4dHPa+NhoXH6B/pyb3C3yADdly7bLJngQLPeS8xJkMWU3OZFOUkNDOEpuWeusYp/Og50mUsYAEnToYopelB5Z4G5a+cYcYbbfS33i5gpQ+wwRzXSNycoi0+n8w4guP0CtAQUQu4kC9B371MpU98fzDY2NmvxbdWmOn+BbL20hqORsfvTvGLoWbQFSgqdc2Qc7nf//K7FnKCOHoS4vO4lQ5PdmNd3NStxU4I9aTY6pGZdyImG/VRFi46VXCFLBOioMfLSsaRwixDWKZQNr2ZVsHNmnPJ7s+ViSaLXl1Qqxs7qOeNossyOxrhMdzc52it3UsUubrT3l50jMKVfjCYHum1iTC9j5s6vRAixAMgDBUfsmVBM14pr7m/P3Sp/i4G5IMhIDbDbE3oGbjHI6YL6FAqYFGh2P8ieaQ7HX0kHJbNBrSwBCca060rvPAx9KdfPGibZ/RPyxLsqxoxPOnUZXdWFtsh1/aKcdCZS5G44VXZV9GvlfBBA1eb2MyLBCNxTgmnt9fHtk3EJ4isWzu70FrIU1+oqBhJq6bGx4geTqWlyQ04ewBctrGsrCd9w59RsQO+9kxnMWDqdd9gEbW8jVllKV2bjExm7SAUEYc4iJFbL/egv3jd0x7T0JmrqO6/sO1zIkOfVr5bDSDSaBjq+/DKlUoMAM+7knQAZPN2pu2qHK8YAmQmpRNLzNNxFi5dsMRo/aJ6qijx10Yd1d4uMx3kWj3HWyisodLulCi5F8wxYkY07sOaM7/rui5UAsxCBTMBZiI+wlTeGZf5Rqw/qNbMr2+1zodYj3H/7TSQreRyFEjY2zB9Lfo8GXc+rLVn8CpVQk+2WwXMgQnmWs7yyArngKjQl9nqc9MG+PCltmDNpuJB0eX1WU9z7O7rs1oLU3jIUuM2X/WPh8DNhTttQKDcy1laUXHK1gNwpWoFqGIUJptK+q47Q9n+9J1xP9HKLbG6KktRwfaXs9wZ30Dm2iIoAP8p+DTlUw9L5GbVhwlhbuWYJS9WIUNzDTWTUFv909Z8mjGxQOZj+m5hkBSu/sRmmgZeMSAx8HlRHGBeJk1gPYpTVnQCXU9jxS7+JoTOyfjlR+hI5k0filJuaN9VeU60j6LS9ScU4nd5HKt7KiwwUjdlVmlsjOuNfpGgq1Wp55h9buXK11/swsHIEb6Mqb3G/4KAs0LXNXSed3cVjthQDjQdwSoHX+/579EthPG6yskI6mURcSS2CSw3fyn5yPT50Zvr9rPEntbzlImmZtEBJLQEIQvbJRRu9u1Jyvv9+xruxwQ2xJKC/13LdkD6XWhQa9ze9OS6MkAr3PcUrpDRvoD9ijeydlMmL19CacbbkFIrStzPujMguuPUNg7Wd/Y2+E0gQpEF1PZzgqMs= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 033c5254-2f27-4389-fcb5-08dbfebed3fb X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:12:55.9923 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Mp1a4uON7Yop1B6p2R7rcZ/ejC69B2AFV+rw9vgmz5+DDH6O1MuuJYrMrgIlzQ4F6OlBccQKiRxruTjkup9RyQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 Avoid use get slot id by compared with register physical address. If there are more than 2 slots, compared logic will become complex. "linux,pci-domain" already exist at dts since first commit: commit (9e65987b9584d arm64: dts: imx8mp: Add iMX8MP PCIe support). So it is safe to remove compare basic address code: ... if (dbi_base->start == IMX8MQ_PCIE2_BASE_ADDR) imx6_pcie->controller_id = 1; ... Signed-off-by: Frank Li --- Notes: Change from v3 to v4 - remove compare basic address logic Change from v2 to v3 - none Change from v1 to v2 - fix of_get_pci_domain_nr return value check logic drivers/pci/controller/dwc/pci-imx6.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index c1fb38a2ebeb6..7145947e21d92 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -33,6 +33,7 @@ #include #include +#include "../../pci.h" #include "pcie-designware.h" #define IMX8MQ_GPR_PCIE_REF_USE_PAD BIT(9) @@ -40,7 +41,6 @@ #define IMX8MQ_GPR_PCIE_CLK_REQ_OVERRIDE BIT(11) #define IMX8MQ_GPR_PCIE_VREG_BYPASS BIT(12) #define IMX8MQ_GPR12_PCIE2_CTRL_DEVICE_TYPE GENMASK(11, 8) -#define IMX8MQ_PCIE2_BASE_ADDR 0x33c00000 #define to_imx6_pcie(x) dev_get_drvdata((x)->dev) @@ -1279,13 +1279,11 @@ static int imx6_pcie_probe(struct platform_device *pdev) "Failed to get PCIEPHY reset control\n"); } - switch (imx6_pcie->drvdata->variant) { - case IMX7D: - if (dbi_base->start == IMX8MQ_PCIE2_BASE_ADDR) - imx6_pcie->controller_id = 1; - default: - break; - } + /* Using linux,pci-domain as PCI slot id */ + imx6_pcie->controller_id = of_get_pci_domain_nr(node); + /* If there are not "linux,pci-domain" in dts file, means only 1 controller */ + if (imx6_pcie->controller_id < 0) + imx6_pcie->controller_id = 0; /* Grab turnoff reset */ imx6_pcie->turnoff_reset = devm_reset_control_get_optional_exclusive(dev, "turnoff"); From patchwork Sun Dec 17 05:12:00 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877017 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=W1zS8xXV; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-pci+bounces-1107-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB2j5PjNz23ns for ; Sun, 17 Dec 2023 16:14:21 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 38BF41F223CE for ; Sun, 17 Dec 2023 05:14:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id AC3001C10; Sun, 17 Dec 2023 05:13:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="W1zS8xXV" X-Original-To: linux-pci@vger.kernel.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2074.outbound.protection.outlook.com [40.107.247.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9F4615CB5; Sun, 17 Dec 2023 05:13:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZAzyNm6I6fRLjfn/d4/cMjmc83VW01oQZ0jG5d+gdgaSx35UXtV8ztCZ8MX5RaQABTAPTeKo97tzQzzduS34WRkPotyx5K7gDWocgE8uj21UXF7U25d+SdE8TabE9Vtv3SXBUlhYaP6LL6gcyz7/5K2br+tcQw20JlrNZ9N0fgFJOlA8KWA4ojmdk6jMiUA8SO9pPmLx7KSVPDYLrSF1H//yJdPq4VVlJYJoE89Yjw15Q0mBqqKeu2xkUVF3aqkl94CEGICw5igF8x7P9K721ih8JcLNmzJl5cRlAd6/3SogwxoLGwEn9ljsrxWYAETzSTmmrOhDak+0CSiKLxtpxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=S1CpsWVIAA8RLlbctTciyTq1qYk8tHuA+opMjAr6h4E=; b=WbAX7Bq2JL78dd7EfZAbvkRYGdTgloSerKEZAU+muA8ZJTEIBqf0hL9M62kQn+DBx3AkYlDKzaTSgpXwGkvAuWl03/irCxRnKJh6pp32jiIsdZIkiXBmokq6HaiYZA3HNfjaFi7IJR0dCcpQhPzK2neEzYimdtRVDTLFc+oANK8QTMrNYW1PfEMpa9k7elNrmKtrrV/QZ4COztnhEazkEwGQy8skqZnYM8f38IMN3Bisk45MT/5E3R9f4Cvr8M/m55+D6CTwmBjYbCtN6r2bLBzaLiVdDeP3UpteHpurm9JwkHo9ls+X2EpSn2Kh4/s+lbNcwHjiuALV7r2Xl4bGVg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=S1CpsWVIAA8RLlbctTciyTq1qYk8tHuA+opMjAr6h4E=; b=W1zS8xXVqnCxJcMYRYfE+Z+E8GeLDr37F+sAaBqmeCACaWXSVKIf5ayc95ArbDLMnF1/MYxD6ZBhnh9sQLUt7aS1zVBYpjQg2uXYwoCg2IM099oKw9cDXxZoHUi+1Is08kTvbuwezJj0vRUjMYWWwSnfp8QnnFFoOgOYmrt7Ghw= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:13:01 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:13:01 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 05/15] PCI: imx6: Simplify ltssm_enable() by using ltssm_off and ltssm_mask Date: Sun, 17 Dec 2023 00:12:00 -0500 Message-Id: <20231217051210.754832-6-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: fd9dc01f-d1b1-4ea6-c3cf-08dbfebed70e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: X9RXp3nJDl6MHc+NFxCavKX3sdX11vQXwG3sgUVUkfFt/O2v+L3+e/mM6KpiKIdQk3va5eEYnl9gZ6NpCQVEcZbDSgkPEwpcLMre4b2XD8Q1bJE0Ea/x0iXa6HSv6RDYro+yORygOvaXST1JlFq/WV7+DUuPdnw0X0IalqIhRauFpHKJXzNjs28zvWpPWrPcwLsJouE3Eta4obTAyC3jcsGFzOyOw9VKsQa/hs2ubJuFxKZLaOmokiFhyecfUVvP+1pvBcTcTQjQKGKH8/y+Caf05kVIhY2RPDDjqOCWyfrW69RmZWTVux2QGIILjl6yOCDOoXr2KcNiHLJWfEU/9i1u2ODG7M75sQHT4kZ6nRzwK+buFBsVf7skTCQca1EQyueKSanX8v2Ea41qx6cq2hbHkJqoHZ655jCEfDZndHwPXfmOPUFEKF0ubhMjuuEiuBuJFUYZYssrM6vccfbh8U9St3BaoyTdRlW9HHxcsdva0URkNQD8HQyVIqj6mkchVsZ8k6w+cK9miPZlRUwprwzkcsRuO/JZixXwfxAd1y0+o65UPWlVfu8MSYMXVYc2cvWedgwhcmrbm15oyDCXRd0MyR7NKTkuY1tGup+1cPyRXxk2ahzzkB55GyR8A148 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ISI61kaIXUiBdve1vPOh9g47lHUb3BKjyeq/VeJ19Ioiv+CGWbYkcoQtgDomc7JA5NSlPMCRBy6kXZ/PCTld578NlPTl+4BRkxNNOKvYJQzM4ldyjj5NIRGOUyMcBAKXsN+UE7UwYMy5zyL5wEE93iHVEnnW74ccnRM1+U+a4cK0IBYQccHSMrnLhPxKcFv9fFWIzz+SMVn7YXT8wpopXa/sZ6h8aC7vsjde9gECRjU7uGm2kF4apJCHPlsgs12Ys9vNO2iw+HnLPzoUlq9sRPNVoUUIXRNiTg6AgEevzVq63mRExhjxERt3LELfK/yFHNaoyc5dAKobQ3yKYYCimga1CltiUj7wF6qMyGcF59bXqL9kL9NAXwqya7shI10RM5jw6putYxIPX4c5HVZ6rgwMSuhALNsSzTq5reOPie3O9Nx+Pb0LbxAqkh0/pZd9DrVZtp6gOXMx9SidK/BWI6PR5UcYDyEJIOL+MVfBhv316cnHWVTsfhamyF6CyBogzwIg2Xl+Uay4rkKtvIY3F3PXRoWDNK5y+zIN0PsjcAiBuE0JyFLNxK8rbpZYIA7EyAWzE90qoeMLSqTGhRRPPQHaEZ+h05yHy1vEXc4+56oc4xfecZD58cuy2jlmL2GQro4yZTRDZTIpzKyFatmcA3EiaXAcEqirI1/H8iDb4JFmrBVhcBm+zu/ilZ64RBe15iNP16vqA95GaMUltRimqqCzT8xKwmfy/BBcWP5y/SqzkJHgpYSeXzCuspmHg0TQkVccvcL/bLy8GSC8y7Gz+M58p8BKW2fTa650cqv3FiUOj54Cf7I72yJo6qkQSHPcBPqHsLUtOFkJWtdhVr9j5TOFTZffheF6koXjPh4x2v/WIIgLDtcNPAabUlfnwEq/0jAaiWqrZidHX3cUCNMVhAMuTw5YDR6GQR4KT4V99Rg13mYG4o9inWLxC347aGAA36w8pZ0jZ3qPqvrXeSz5Vz/3Q+sjwavH0iCVkYva+23oAqkzrCVxvi0A7RP6s9x5fDm3s3MsZf/vyD5Ygh438FXZtG76qO43mAy4glb7FEPB2jXzlOnW6joESEQOzKuLLIyBxcMumo1200ZfVGkOiNzIof0+K3pzi7kKT8EYIevVpeMMsZTQ3YT7Uiz6sE3AefTLRiI3puERWT1gGJvBAfnn82/X4S4Z1pKzNOoHW8KH+X4m0aZVU5DOyDf/r+ohdR/c0HO57NbcSrtE9a3rl3EUaCClebVe8I+jG5ztXDsYJtW+r8ZmcaRXd6VmzZeYhQ0S0ZNcBrHPtZypCjprLW+dxNGYLkJa2lhzl9NmZYuec896/EUjHuSDS/p9Y0CQrFIk15kF7dSh3x2k4Oll+nSDGPh1Wc7nPlMkJCnq2Y43WwrQ/vonpnSsE9z0+BfQgTvNIXfZOyDQ6xEg40eIl96tQJ/pv14dG6dwyzOtf6ZxHGP8ckez9cw0acr+QiTKn+M+biGOo5R645N1iGmw3+F6MfMhHgUGupe4RqfmQC23xMcSfqQrOiT6upRx+TFg/wlxha6Ft/8gjIgynQiHaKnfrNdwLNEKO+V0kt8tSN4= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd9dc01f-d1b1-4ea6-c3cf-08dbfebed70e X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:13:00.9907 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: fWR5JdLsV9uk/vegjqUzcdyyC4Rm7QPYOoM3UN4RYOwlBGIcJzres/jY2lht3Im1gxZHU/IZhQF3FGJhh3ddqQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 Add drvdata::ltssm_off and drvdata::ltssm_mask to simple imx6_pcie_ltssm_enable(disable)() logic. Signed-off-by: Frank Li --- Notes: Change from v1 to v3 - none drivers/pci/controller/dwc/pci-imx6.c | 37 ++++++++++++--------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 7145947e21d92..79d892836a24d 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -75,6 +75,8 @@ struct imx6_pcie_drvdata { int dbi_length; const char *gpr; const char *clk_names[IMX6_PCIE_MAX_CLKS]; + const u32 ltssm_off; + const u32 ltssm_mask; }; struct imx6_pcie { @@ -775,18 +777,11 @@ static int imx6_pcie_wait_for_speed_change(struct imx6_pcie *imx6_pcie) static void imx6_pcie_ltssm_enable(struct device *dev) { struct imx6_pcie *imx6_pcie = dev_get_drvdata(dev); + const struct imx6_pcie_drvdata *drvdata = imx6_pcie->drvdata; - switch (imx6_pcie->drvdata->variant) { - case IMX6Q: - case IMX6SX: - case IMX6QP: - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, - IMX6Q_GPR12_PCIE_CTL_2, - IMX6Q_GPR12_PCIE_CTL_2); - break; - default: - break; - } + if (drvdata->ltssm_mask) + regmap_update_bits(imx6_pcie->iomuxc_gpr, drvdata->ltssm_off, drvdata->ltssm_mask, + drvdata->ltssm_mask); reset_control_deassert(imx6_pcie->apps_reset); } @@ -794,17 +789,11 @@ static void imx6_pcie_ltssm_enable(struct device *dev) static void imx6_pcie_ltssm_disable(struct device *dev) { struct imx6_pcie *imx6_pcie = dev_get_drvdata(dev); + const struct imx6_pcie_drvdata *drvdata = imx6_pcie->drvdata; - switch (imx6_pcie->drvdata->variant) { - case IMX6Q: - case IMX6SX: - case IMX6QP: - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, - IMX6Q_GPR12_PCIE_CTL_2, 0); - break; - default: - break; - } + if (drvdata->ltssm_mask) + regmap_update_bits(imx6_pcie->iomuxc_gpr, drvdata->ltssm_off, + drvdata->ltssm_mask, 0); reset_control_assert(imx6_pcie->apps_reset); } @@ -1385,6 +1374,8 @@ static const struct imx6_pcie_drvdata drvdata[] = { .dbi_length = 0x200, .gpr = "fsl,imx6q-iomuxc-gpr", .clk_names = {IMX6_CLKS_NO_PHYDRV}, + .ltssm_off = IOMUXC_GPR12, + .ltssm_mask = IMX6Q_GPR12_PCIE_CTL_2, }, [IMX6SX] = { .variant = IMX6SX, @@ -1393,6 +1384,8 @@ static const struct imx6_pcie_drvdata drvdata[] = { IMX6_PCIE_FLAG_SUPPORTS_SUSPEND, .gpr = "fsl,imx6q-iomuxc-gpr", .clk_names = {IMX6_CLKS_NO_PHYDRV, "pcie_inbound_axi"}, + .ltssm_off = IOMUXC_GPR12, + .ltssm_mask = IMX6Q_GPR12_PCIE_CTL_2, }, [IMX6QP] = { .variant = IMX6QP, @@ -1402,6 +1395,8 @@ static const struct imx6_pcie_drvdata drvdata[] = { .dbi_length = 0x200, .gpr = "fsl,imx6q-iomuxc-gpr", .clk_names = {IMX6_CLKS_NO_PHYDRV}, + .ltssm_off = IOMUXC_GPR12, + .ltssm_mask = IMX6Q_GPR12_PCIE_CTL_2, }, [IMX7D] = { .variant = IMX7D, From patchwork Sun Dec 17 05:12:01 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877018 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=rBP3h62c; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:40f1:3f00::1; helo=sy.mirrors.kernel.org; envelope-from=linux-pci+bounces-1108-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org [IPv6:2604:1380:40f1:3f00::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB324GC3z23ns for ; Sun, 17 Dec 2023 16:14:38 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 68D08B22CB9 for ; Sun, 17 Dec 2023 05:14:37 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 93833186A; Sun, 17 Dec 2023 05:13:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="rBP3h62c" X-Original-To: linux-pci@vger.kernel.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2043.outbound.protection.outlook.com [40.107.247.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 870C163C6; Sun, 17 Dec 2023 05:13:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LCCLyWVBfBPlS9OOBM157IbaO71acVFzkBwUkEvIDsYo3hauWyn3hGe18s0mgxYH2u7AVHuEjIOEX3eOHgAJ7XY7uluXAAeqFJckNEJTBF5WRaxu4BXeQda1OcDx7TYNqlm4bBBMQyJF2+4/gDyRRd5FmEGKeD5wajo0Gm1pR9cXgCSpF+3y1e+G3D8YD39rgBrM23VIBU+Ig0rtUPhx7xC9nb4lBTNS+7UrC/ct6wqcG9wvAXwhcoZCk2/9+9vvf4jdDanemsGTAzWHN6EuQmxKV8MwTWxazkTUvbzj+A5+Ce+0JfLgoqUq9t87fUZw9vEtfNh3i3wfXdNIzJTsKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=eB11NI1qXqqPhHBqs/kCSIO7/DMqbjZIrUyJuD4IQlw=; b=U1BnHJ4omNq+7wXEe114WnKdJNOXggLfkSTvD+V0mAQo+blr1lC4foFA+CeTqUKugI0CRVzM34EXMUVNLrOeDd66WMDxhFU+v7zEjMTzkfwfQG5MISvKNUMhsPy87MzAzUQIFrQ1pCkbFY9xmkoZh6FGkX10ul5/xSBLsqmj6Ze9eiKRHzEaVxrGDhAY0Z5GAFSgy5m1iASuHNqlH9KnDMyEvH34lAl0u895DmjTErt2yi0L93zL5AhR/3Gi1AoKCo4A5tXNB2TKOHXvJQwXARl7KJ4J5hIkRtKj4jbpelzHJUyJcPyB7t9GaITQ8+c1otYK8k9gUTP7rN+34czQoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=eB11NI1qXqqPhHBqs/kCSIO7/DMqbjZIrUyJuD4IQlw=; b=rBP3h62cOarlVBu414trgzAtTZ47FHUpULANnNlylEjgp5uoj7qTVSmM0JK8PUeWB1vFnMlSb2NJNUIbsf9XHwdxfzBX1P9m3akxN22mwM+/8r3sEnRL2W6lt/ij/neR1As+vInzGEWvECP8C20JQ6Sm5EWyXcjl0DYITjN568E= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:13:06 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:13:06 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 06/15] PCI: imx6: Simplify configure_type() by using mode_off and mode_mask Date: Sun, 17 Dec 2023 00:12:01 -0500 Message-Id: <20231217051210.754832-7-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: 2b3cff2f-d75c-4b5e-5122-08dbfebeda07 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Zy0avh1Hpr+SXbxOt5OcR8hhM8pl1H3aPwYF3P3Got20XCHEVgneQWqgL9jbwZQ4PYeAxA/F6R6yMiWwPL4Au86GVf2wbpAmQLq7+gej6nQUuqLLj90fjE49Ks83tWp1r9eZBb3QpJ51QACyiwgBVeo61w5ekUQiC6/yt6Q6Dq8nuivpBy+GxRsq8yLY2GRc3TlzHxEbII52uztdzGG62DNMGyH5kCP3m4Jcjee4butFaLAwqSsr6RpW9KoOXnVQa+PQVjFQlp4Wr7FxUwzhx1t/zmiRwLquPOhX5zdJsgnxYVeEbjoXOqXLWMCY5kfYhbaHCaWqDrpSRSkqMcU8iPsqMiHa0Ibi7UnEWznY2mB69iSaAnjwPuOktfOukua6+XOPRrALXvAPVuYqJjh91eHMOzSkqaxLgf3JvfuKwBZ3Ly/wsdjASy+REZdhMoQdHys5NXT7Ya+2zS9Z81stzJzKDtN9ZYXgZDkTrWwPU4tZg133mZxKZ/mS/ibS2oBhke1Hpt4sCy6037mqjnuo11i6NG7zPxLQfi7vaWo14pMRuhhlGLAtDIT9gEAfVyNiDsu7V/auR+dIcRFDtGUrIWN0MYWyv9LAtQ5E+gZuN2mIcFN8gUySmJH1cZy2xKkI X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6666004)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: xWkuCUWKtf/GWsLZxHH40RN1IOY5T1nOLmaIauTPa5PhbsWvBEIBizrpuHpVlU03g/xAO5YLK7q/yOtc88jZro+BqKS36aNRLXTWfORY6BuBOLD+n+402pd3OakPPp+uK+wLrMPjQCmux4hqVDDa4vgGQbc7aSvHCAgUmOl8q7uCTAAe75pikSwOaMpFy8XZAG72MHDUM0cbkswzLd+AE+NWkMONH6W8BY2/Gtg8Sn5nR/lisUK2n5RMgg11wRUcZYxDWqYeE1NMRIHfxs0MQzuC2uefjNg7MgGfkU6NC6VYuHIk5jXKoDWYTp1/goA8v9uuw5uzu6GHRtdi0wfiQ9mXQxz7WtEjM/xp2lSxPfj5m9HLRhmaHUHnmDm6p5ag0hqVmWG94HHgakw0HrrjOWhVfR74jMQa8HeqCKGR9OEKM6lb2p+qhK0i6pSGMxmX+wpcewh3s4ikEjwthFE3a2hJRaVc0vs7JckjBiumDTNcRIpuhinnJse//nciAw7LV7/xbxTqoPZjfLrABsQrlZ+j2/XX1i00LdEATawEloHDZFcYeDbtonNEVXgTWR/13o7PVYmcIx83QpZU7KxBChdzXG1pq+K9bFQKu7o59P97NAg6SbA155TW0J9KAgTW3dd39tW+6b/lar8Tx7igsPV62hRYtSCTRnwd6ToekA7B2FTiL1qduBe+83t1gdYTAhQcviSbv2yMUjorIgptl2aI6OCNNt5v+yWPDcE+DYa9r2TNCtQlCjqy1sSGGkWbkhO4tJ+vd37IsxQ0soIekwA8hv6ww3XCWbsCy89C1Or3H1yrd+5E2GiQlh7SFBURY9lVs7G90cfRc18zyavT2gK4OW4EtGV67VM0nXutKB4HO+xHjKWWZmzihh/LhEvqWl2aKF7rpr3o9EzBLxjSyVMhN2iE7CLpYu60xielWQ5o7kLkyFIzME6B3n6uVAxO0fvl/i2P4TZ7mz6Lf7fpRdjpGZ+MacTXZxELXh6XekybFWGRtMFlNBj6PayxgPZSeOYX7wkpfjpG8HPIEdSOYjszY99utmgHazkg4/nYdnAnjyfeQwyuq/QZo4byPD4YJ07/Uly2N0scEPsX6NvNH0ItCT2YZePOW0U+GYSHBwlqDNiSxgYuhodLjPkNkjUwe36L80dzjTrGBuDkf8i5nat7PRvmxr5F2aIvxIYZ0HysbLqKfXLgz4yp/dmj/NB0OnFChTEBA0cfzLRLrsTayZ7wdvgGn1CZpiYCDT/PZJg4yzWneVHNcfGMGUwznh//8TCCWJXDDxrpxUEHEHPy5BuFCupF0fL3NOLkv7wais5XIFO7MPQGT5dSKHvSi9v/bbRYUtOBJC21PGN+GEi3JajQ+j5n2pB/CHk/Bl3COHrpLVXVbVRkd3Z0xvXOBjLgikxHAoydkbV+/zJjzERQxoNjSIjFOpQ8HOe8XbvhW3ynFPMw3/eWNBal5vKLpJcCZyIQ65VmmQBMT7aDb+6VF136n16fb5m8RfNnQTNOhwloRGhofC1jZctTINDwEZIrAoSjCPwfFUBFJSc4MNiYyxN1HLfsuZgMFpi0efuu/TM= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2b3cff2f-d75c-4b5e-5122-08dbfebeda07 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:13:05.9739 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OhP0o7eswezm3obNtrP9xjIZQA5TOdcbGgBBnTKhyJqhyvcaPLqXo8D7ZJIeVO0eVGGkuExn+rwu/QGbOZhNHA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 Add drvdata::mode_off and drvdata::mode_mask to simple imx6_pcie_configure_type() logic. Signed-off-by: Frank Li --- Notes: Change from v2 to v3 - none Change from v1 to v2 - use ffs() to fixe build error. drivers/pci/controller/dwc/pci-imx6.c | 60 ++++++++++++++++++--------- 1 file changed, 40 insertions(+), 20 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 79d892836a24d..49b98593326f9 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -68,6 +68,7 @@ enum imx6_pcie_variants { #define IMX6_PCIE_MAX_CLKS 6 +#define IMX6_PCIE_MAX_INSTANCES 2 struct imx6_pcie_drvdata { enum imx6_pcie_variants variant; enum dw_pcie_device_mode mode; @@ -77,6 +78,8 @@ struct imx6_pcie_drvdata { const char *clk_names[IMX6_PCIE_MAX_CLKS]; const u32 ltssm_off; const u32 ltssm_mask; + const u32 mode_off[IMX6_PCIE_MAX_INSTANCES]; + const u32 mode_mask[IMX6_PCIE_MAX_INSTANCES]; }; struct imx6_pcie { @@ -174,32 +177,25 @@ static unsigned int imx6_pcie_grp_offset(const struct imx6_pcie *imx6_pcie) static void imx6_pcie_configure_type(struct imx6_pcie *imx6_pcie) { - unsigned int mask, val, mode; + const struct imx6_pcie_drvdata *drvdata = imx6_pcie->drvdata; + unsigned int mask, val, mode, id; - if (imx6_pcie->drvdata->mode == DW_PCIE_EP_TYPE) + if (drvdata->mode == DW_PCIE_EP_TYPE) mode = PCI_EXP_TYPE_ENDPOINT; else mode = PCI_EXP_TYPE_ROOT_PORT; - switch (imx6_pcie->drvdata->variant) { - case IMX8MQ: - case IMX8MQ_EP: - if (imx6_pcie->controller_id == 1) { - mask = IMX8MQ_GPR12_PCIE2_CTRL_DEVICE_TYPE; - val = FIELD_PREP(IMX8MQ_GPR12_PCIE2_CTRL_DEVICE_TYPE, - mode); - } else { - mask = IMX6Q_GPR12_DEVICE_TYPE; - val = FIELD_PREP(IMX6Q_GPR12_DEVICE_TYPE, mode); - } - break; - default: - mask = IMX6Q_GPR12_DEVICE_TYPE; - val = FIELD_PREP(IMX6Q_GPR12_DEVICE_TYPE, mode); - break; - } + id = imx6_pcie->controller_id; + + /* If mode_mask[id] is zero, means each controller have its individual gpr */ + if (!drvdata->mode_mask[id]) + id = 0; + + mask = drvdata->mode_mask[id]; + /* FIELD_PREP mask have been constant */ + val = mode << (ffs(mask) - 1); - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, mask, val); + regmap_update_bits(imx6_pcie->iomuxc_gpr, drvdata->mode_off[id], mask, val); } static int pcie_phy_poll_ack(struct imx6_pcie *imx6_pcie, bool exp_val) @@ -1376,6 +1372,8 @@ static const struct imx6_pcie_drvdata drvdata[] = { .clk_names = {IMX6_CLKS_NO_PHYDRV}, .ltssm_off = IOMUXC_GPR12, .ltssm_mask = IMX6Q_GPR12_PCIE_CTL_2, + .mode_off[0] = IOMUXC_GPR12, + .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, }, [IMX6SX] = { .variant = IMX6SX, @@ -1386,6 +1384,8 @@ static const struct imx6_pcie_drvdata drvdata[] = { .clk_names = {IMX6_CLKS_NO_PHYDRV, "pcie_inbound_axi"}, .ltssm_off = IOMUXC_GPR12, .ltssm_mask = IMX6Q_GPR12_PCIE_CTL_2, + .mode_off[0] = IOMUXC_GPR12, + .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, }, [IMX6QP] = { .variant = IMX6QP, @@ -1397,6 +1397,8 @@ static const struct imx6_pcie_drvdata drvdata[] = { .clk_names = {IMX6_CLKS_NO_PHYDRV}, .ltssm_off = IOMUXC_GPR12, .ltssm_mask = IMX6Q_GPR12_PCIE_CTL_2, + .mode_off[0] = IOMUXC_GPR12, + .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, }, [IMX7D] = { .variant = IMX7D, @@ -1405,6 +1407,8 @@ static const struct imx6_pcie_drvdata drvdata[] = { IMX6_PCIE_FLAG_HAS_PHY_RESET, .gpr = "fsl,imx7d-iomuxc-gpr", .clk_names = {IMX6_CLKS_NO_PHYDRV}, + .mode_off[0] = IOMUXC_GPR12, + .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, }, [IMX8MQ] = { .variant = IMX8MQ, @@ -1412,6 +1416,10 @@ static const struct imx6_pcie_drvdata drvdata[] = { IMX6_PCIE_FLAG_HAS_PHY_RESET, .gpr = "fsl,imx8mq-iomuxc-gpr", .clk_names = {IMX6_CLKS_NO_PHYDRV, "pcie_aux"}, + .mode_off[0] = IOMUXC_GPR12, + .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, + .mode_off[1] = IOMUXC_GPR12, + .mode_mask[1] = IMX8MQ_GPR12_PCIE2_CTRL_DEVICE_TYPE, }, [IMX8MM] = { .variant = IMX8MM, @@ -1420,6 +1428,8 @@ static const struct imx6_pcie_drvdata drvdata[] = { IMX6_PCIE_FLAG_HAS_APP_RESET, .gpr = "fsl,imx8mm-iomuxc-gpr", .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, + .mode_off[0] = IOMUXC_GPR12, + .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, }, [IMX8MP] = { .variant = IMX8MP, @@ -1428,6 +1438,8 @@ static const struct imx6_pcie_drvdata drvdata[] = { IMX6_PCIE_FLAG_HAS_APP_RESET, .gpr = "fsl,imx8mp-iomuxc-gpr", .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, + .mode_off[0] = IOMUXC_GPR12, + .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, }, [IMX8MQ_EP] = { .variant = IMX8MQ_EP, @@ -1436,6 +1448,10 @@ static const struct imx6_pcie_drvdata drvdata[] = { .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mq-iomuxc-gpr", .clk_names = {IMX6_CLKS_NO_PHYDRV, "pcie_aux"}, + .mode_off[0] = IOMUXC_GPR12, + .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, + .mode_off[1] = IOMUXC_GPR12, + .mode_mask[1] = IMX8MQ_GPR12_PCIE2_CTRL_DEVICE_TYPE, }, [IMX8MM_EP] = { .variant = IMX8MM_EP, @@ -1443,6 +1459,8 @@ static const struct imx6_pcie_drvdata drvdata[] = { .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mm-iomuxc-gpr", .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, + .mode_off[0] = IOMUXC_GPR12, + .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, }, [IMX8MP_EP] = { .variant = IMX8MP_EP, @@ -1450,6 +1468,8 @@ static const struct imx6_pcie_drvdata drvdata[] = { .mode = DW_PCIE_EP_TYPE, .gpr = "fsl,imx8mp-iomuxc-gpr", .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, + .mode_off[0] = IOMUXC_GPR12, + .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, }, }; From patchwork Sun Dec 17 05:12:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877019 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=eI/m5Mbz; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-pci+bounces-1109-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB3S1LzDz23ns for ; Sun, 17 Dec 2023 16:15:00 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 4A4C61F222AD for ; Sun, 17 Dec 2023 05:14:57 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 9E8C61FC2; Sun, 17 Dec 2023 05:13:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="eI/m5Mbz" X-Original-To: linux-pci@vger.kernel.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2074.outbound.protection.outlook.com [40.107.247.74]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6E1E96FD5; Sun, 17 Dec 2023 05:13:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Lo2X/SUrKWLS//E4vRZNoFsxz0FSakjf4eqSqUmq1CH9gALJSPXWIpnTApSUHdR8MXy97rOtWb6e0gtBPs3V6NHXnpeL7C6c95iIkpCfs8by6+zznkIrycPEYWEduxlamB1WnWl2LqHX3uWhVRnkOsYEbchQfBcL8HPLinZ6TQkeu+yaYTuW96MHwLX7uesZ9ht+PDnrjX8Yj83z8OrmhttFOtzTdy0HNt3Spo6rXZykGxhv0nv5AwYQSRXXPkfbik0oT4mWAt3h3Av/FYXEKr6iO6BX9g67VPWKJ1Yp9xSLIbg1/jSsjw42Bx5DFxziJPkbNxT6DZn5kqUjLdFYJA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=YRxDg/NAomMTqlX4Z6UfbpXvvgHB9ysSIKqAg9Pte2Y=; b=U9Z050JFCcU+acMnmWmIiYGPle/74JXxqOJNoAmfInesVJ8ANswj/N7+TZVgtzDE/8GqacJmkOVq1qI/KMcAB237ZgbyfUKqMZ8d9mlbbs9yeTMmOY7Sg5+qMTnZTyp0CRJn/ZuPvic64bAp/6IkL/i2K/ijPCve1kqxBHQjOPHqC9F56ZqT7XWq7w3ibADdEtT64iu0YJJuEIqRTps3i7LNoK1RXWcz/7tKaCiedVzMCzlBFXJ4H4lP1OLJIt1OH5l2iYwVTCV5pQ4i0u/ScTAL3vAfz1/VD3kQ1vMZsYyc8Gdd9+45E43AVxoIvJ3PcUb2TWmQlgdu2sW+sCPprQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YRxDg/NAomMTqlX4Z6UfbpXvvgHB9ysSIKqAg9Pte2Y=; b=eI/m5MbzQmCzi02F9vgWQgG67Qo7KyVkQb2+cwwPICIEew9JKVcJZ4tZwc52FayplAL5LEckYMTP+fWthHt51TWB7LzHM/kZM+4qbfmkHe1brtQS1peGXG/WLtrN5nZdXYaid5leJSf+AIFFj70uVPkBQxZrQG9kZxnF+2elNYo= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:13:11 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:13:11 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 07/15] PCI: imx6: Simplify switch-case logic by involve init_phy callback Date: Sun, 17 Dec 2023 00:12:02 -0500 Message-Id: <20231217051210.754832-8-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: efcce15b-430d-46a3-053d-08dbfebedd07 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 49PPkxHTp+bvX5SIWIR2U6RqtHtr2MFnWEtSJcbDwguXUjI5rgQRyXkB/VcM8BOzUpiJazjonxkV01V02O7XMhtEgs8XZtprY0YPTyg4VaMk8D9lJW8GpLGMW5gOEQIbs6+6QC7Akmk+xqxTg5MhwvQm3SRFiYLnIPM+yqwrRo7oOeXmLBJGmVvAJ9g7kqmJH1HI0527P3tA9UGxrR536iSyJOZNVqGA26AwzsgfM1dfP4krZmWLZWONP6L2hzIYUtOFVqIt6mWU345VITAgNa+hh9IhW/UQZGOLLoJudUYIhj75G/KBK4cQKq+i8KsZ8eHSBeuiLHhoY2AHFHqo4I9heRo0O/zME6LuHjuMBXZp9j2/QzI/2fQ0JgDmmtBNvxIaYoegJH4wVMMk3mlenxtVduAvenggu1yDZQLOvcbM68DiMLexObU1q1meDUW68p9HkXeG85xW9X3xRHkPLGIapgo+GdorzTsfulif0xSdHPFzq1ed5KeKieDsm1GMN9DsCjZBtFu4x98cevktjkeTvmGKryoCPhgIQ4L6Xmy4JzeFdkG5JgASUIbCFords5ieOQxj2+UvZAwaiOxdMIbV+ugTg4qiFnuSkZ6/BctiqdQICSC8hF2fGxX9mDMLwr19yMnAm5dcJdyDx+uaQfkNo6dd3O5uv2gbpWyjdtA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(230273577357003)(230173577357003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6666004)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UmyZkS2l+H6Zu4eSXx8SujlHoXHC3ERbcEtmMc3P6Qepk4nTodcdVUc+QFvpIp5yvG+fDuG62fzZI6XPCvR4+W8Y8h/aFs9SjJd3zex2NzWYRUr9KGJFSoXnQGfj8vOG8T34PmB6IkQAbpa0dQhIqhx4F4FZ/r8i/4smRi6+35KgN6UpsRsP/LK5zwagIoeQ7XVMyiwJ7YiUSHBZ2aUUPJpbHl7Oo9+tIfI1eXiY+o/gITr7l7TL/JlPRrsP2gAUkDM99g6G5r2fqusSjF9+rg/haOENAgBDXiN44bqQSTuYRQS/hY3gPPqIquVawDywJfM4/erT/UWwmMsRFT3+mNIJ9NhvGHHc1OLofNrsD9IcMRTRc+6k15D3HgYC4G5E8c05DHitF31f0Va2ESk5Y4K4faSVtN9kuGs+dovdC4di8Ax1oC+HK44hePkP4ji+yia8FWqJlwkQHy+yjnHA/Ywy8mYbBcu+UBgFdtI6osJg1r3/2weyv7geEFrngWJxW7YB4mKHj23xOpGHZfMxtWvIATUu0q8eB8C4DT3m57ib2zT9P2PFPke7/llbo85pXUbUUT2z/jSrBQCx0YYyBhqD7M7kqwMvnNbRHc+CUd2YfwdfU5cL3DZyrwiIKuHsG7nC7XZneNLRzKAKG1HqiF7HAZEo0gs8mjpZolkIBQiph2Uq1cZ/jrs81NKdQznbpl2hCVzf+iL5fblAu5SVqFwd3tJXJmfXSPKD3p8C1329GBffPMoIRhG+GHRApsC+p0v9HiDE+xsP26T3sEgzv7gg6ryNjSjbMBWz48xcMEFwy/8GW5S9crqi2DxtV1V0IVxY+PERp6g5TO2PJfC/HPVIKH2bxo6EUsW6O41tPqu7WP4YQdDsWNM+zh+JDsMmkGuPaNs8nrCtyvU7MaSTHW3OJvY0/Ryeg91kzLnykK0dtyQkIFQNzl4NS1RoTUNAWtI7US3NP8AFFTrk3uhfCDJ0lgCf/Gz/OKFOykevPAwYrDvCI/zz256pHu3zjJlxql9ymcLOWwCscoT6J/cXFb0E2PDQPqjHu/z1X0sikmi2YkYdu4Cxtq0hNs6y1jI6LgMjgSJCreg9mhms/TveO6iCbXiUeGM5bdEPZxjNgjqeD06SDLeppUjupFNRQ/h0TXx/aBxNPXC+yOo/8FmPlQ3x+vCWUw1luYeD3UqDdezRko8SPB68cHqSKEmssyfazPV7M7U/kdy/sYzHeoudcqwfLpOYvk2qpoemAxv290O1TMTXh7Re6V4BoqmKpxtf/Qqd1evtAEM8V8m7er87+MDn1i/AW/jqz+OmZ0ugeYHwzjBXZ6sPYuCItob1gSDhfPnhEgdMMw+f6ib1OAM5NmSqSj1u066bKYgvxjq6HODtb1tdoPHN+x5swJHprnRoWi5QlrQFfwipNULpzpAYTGBpUKk9MwkQiDGZAqfcLfXWNvVmHDuAeGigAXb5FEo3ta+zeAf+HPJwCq4cxE3ctgQHYfJwIFXCFumAcVlGWSQXG5iUdJD8CAts43A3yE88z12mULMtqdQ0EvkM7j6vrdGUEwCDfuvpo53Yj1e1C8k= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: efcce15b-430d-46a3-053d-08dbfebedd07 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:13:11.0151 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 19QJKApGx6fo0H/s9qg9FWGNW1JzQkOvdxyhSAuvqhO1FLPO/8u59s7ZIaoMxsH4ibWAHH44AXBPlEtTGUA4Eg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 Add drvdata::init_phy() callback function, so difference SOC choose difference callback function to simple switch-case logic. Signed-off-by: Frank Li --- Notes: change from v1 to v4: - none drivers/pci/controller/dwc/pci-imx6.c | 135 ++++++++++++++------------ 1 file changed, 71 insertions(+), 64 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 49b98593326f9..02da650aa55ee 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -69,6 +69,9 @@ enum imx6_pcie_variants { #define IMX6_PCIE_MAX_CLKS 6 #define IMX6_PCIE_MAX_INSTANCES 2 + +struct imx6_pcie; + struct imx6_pcie_drvdata { enum imx6_pcie_variants variant; enum dw_pcie_device_mode mode; @@ -80,6 +83,7 @@ struct imx6_pcie_drvdata { const u32 ltssm_mask; const u32 mode_off[IMX6_PCIE_MAX_INSTANCES]; const u32 mode_mask[IMX6_PCIE_MAX_INSTANCES]; + int (*init_phy)(struct imx6_pcie *pcie); }; struct imx6_pcie { @@ -323,76 +327,69 @@ static int pcie_phy_write(struct imx6_pcie *imx6_pcie, int addr, u16 data) return 0; } -static void imx6_pcie_init_phy(struct imx6_pcie *imx6_pcie) +static int imx8mq_pcie_init_phy(struct imx6_pcie *imx6_pcie) { - switch (imx6_pcie->drvdata->variant) { - case IMX8MM: - case IMX8MM_EP: - case IMX8MP: - case IMX8MP_EP: - /* - * The PHY initialization had been done in the PHY - * driver, break here directly. - */ - break; - case IMX8MQ: - case IMX8MQ_EP: - /* - * TODO: Currently this code assumes external - * oscillator is being used - */ + /* + * TODO: Currently this code assumes external + * oscillator is being used + */ + regmap_update_bits(imx6_pcie->iomuxc_gpr, + imx6_pcie_grp_offset(imx6_pcie), + IMX8MQ_GPR_PCIE_REF_USE_PAD, + IMX8MQ_GPR_PCIE_REF_USE_PAD); + /* + * Regarding the datasheet, the PCIE_VPH is suggested + * to be 1.8V. If the PCIE_VPH is supplied by 3.3V, the + * VREG_BYPASS should be cleared to zero. + */ + if (imx6_pcie->vph && regulator_get_voltage(imx6_pcie->vph) > 3000000) regmap_update_bits(imx6_pcie->iomuxc_gpr, imx6_pcie_grp_offset(imx6_pcie), - IMX8MQ_GPR_PCIE_REF_USE_PAD, - IMX8MQ_GPR_PCIE_REF_USE_PAD); - /* - * Regarding the datasheet, the PCIE_VPH is suggested - * to be 1.8V. If the PCIE_VPH is supplied by 3.3V, the - * VREG_BYPASS should be cleared to zero. - */ - if (imx6_pcie->vph && - regulator_get_voltage(imx6_pcie->vph) > 3000000) - regmap_update_bits(imx6_pcie->iomuxc_gpr, - imx6_pcie_grp_offset(imx6_pcie), - IMX8MQ_GPR_PCIE_VREG_BYPASS, - 0); - break; - case IMX7D: - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, + IMX8MQ_GPR_PCIE_VREG_BYPASS, + 0); + + return 0; +} + +static int imx7d_pcie_init_phy(struct imx6_pcie *imx6_pcie) +{ + return regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, IMX7D_GPR12_PCIE_PHY_REFCLK_SEL, 0); - break; - case IMX6SX: - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, - IMX6SX_GPR12_PCIE_RX_EQ_MASK, - IMX6SX_GPR12_PCIE_RX_EQ_2); - fallthrough; - default: - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, +} + +static int imx6_pcie_init_phy(struct imx6_pcie *imx6_pcie) +{ + regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, IMX6Q_GPR12_PCIE_CTL_2, 0 << 10); - /* configure constant input signal to the pcie ctrl and phy */ - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, - IMX6Q_GPR12_LOS_LEVEL, 9 << 4); - - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, - IMX6Q_GPR8_TX_DEEMPH_GEN1, - imx6_pcie->tx_deemph_gen1 << 0); - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, - IMX6Q_GPR8_TX_DEEMPH_GEN2_3P5DB, - imx6_pcie->tx_deemph_gen2_3p5db << 6); - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, - IMX6Q_GPR8_TX_DEEMPH_GEN2_6DB, - imx6_pcie->tx_deemph_gen2_6db << 12); - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, - IMX6Q_GPR8_TX_SWING_FULL, - imx6_pcie->tx_swing_full << 18); - regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, - IMX6Q_GPR8_TX_SWING_LOW, - imx6_pcie->tx_swing_low << 25); - break; - } + /* configure constant input signal to the pcie ctrl and phy */ + regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, + IMX6Q_GPR12_LOS_LEVEL, 9 << 4); + + regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, + IMX6Q_GPR8_TX_DEEMPH_GEN1, + imx6_pcie->tx_deemph_gen1 << 0); + regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, + IMX6Q_GPR8_TX_DEEMPH_GEN2_3P5DB, + imx6_pcie->tx_deemph_gen2_3p5db << 6); + regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, + IMX6Q_GPR8_TX_DEEMPH_GEN2_6DB, + imx6_pcie->tx_deemph_gen2_6db << 12); + regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, + IMX6Q_GPR8_TX_SWING_FULL, + imx6_pcie->tx_swing_full << 18); + regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR8, + IMX6Q_GPR8_TX_SWING_LOW, + imx6_pcie->tx_swing_low << 25); + return 0; +} - imx6_pcie_configure_type(imx6_pcie); +static int imx6sx_pcie_init_phy(struct imx6_pcie *imx6_pcie) +{ + regmap_update_bits(imx6_pcie->iomuxc_gpr, IOMUXC_GPR12, + IMX6SX_GPR12_PCIE_RX_EQ_MASK, IMX6SX_GPR12_PCIE_RX_EQ_2); + + return imx6_pcie_init_phy(imx6_pcie); } static void imx7d_pcie_wait_for_phy_pll_lock(struct imx6_pcie *imx6_pcie) @@ -903,7 +900,11 @@ static int imx6_pcie_host_init(struct dw_pcie_rp *pp) } imx6_pcie_assert_core_reset(imx6_pcie); - imx6_pcie_init_phy(imx6_pcie); + + if (imx6_pcie->drvdata->init_phy) + imx6_pcie->drvdata->init_phy(imx6_pcie); + + imx6_pcie_configure_type(imx6_pcie); ret = imx6_pcie_clk_enable(imx6_pcie); if (ret) { @@ -1374,6 +1375,7 @@ static const struct imx6_pcie_drvdata drvdata[] = { .ltssm_mask = IMX6Q_GPR12_PCIE_CTL_2, .mode_off[0] = IOMUXC_GPR12, .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, + .init_phy = imx6_pcie_init_phy, }, [IMX6SX] = { .variant = IMX6SX, @@ -1386,6 +1388,7 @@ static const struct imx6_pcie_drvdata drvdata[] = { .ltssm_mask = IMX6Q_GPR12_PCIE_CTL_2, .mode_off[0] = IOMUXC_GPR12, .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, + .init_phy = imx6sx_pcie_init_phy, }, [IMX6QP] = { .variant = IMX6QP, @@ -1399,6 +1402,7 @@ static const struct imx6_pcie_drvdata drvdata[] = { .ltssm_mask = IMX6Q_GPR12_PCIE_CTL_2, .mode_off[0] = IOMUXC_GPR12, .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, + .init_phy = imx6_pcie_init_phy, }, [IMX7D] = { .variant = IMX7D, @@ -1409,6 +1413,7 @@ static const struct imx6_pcie_drvdata drvdata[] = { .clk_names = {IMX6_CLKS_NO_PHYDRV}, .mode_off[0] = IOMUXC_GPR12, .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, + .init_phy = imx7d_pcie_init_phy, }, [IMX8MQ] = { .variant = IMX8MQ, @@ -1420,6 +1425,7 @@ static const struct imx6_pcie_drvdata drvdata[] = { .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, .mode_off[1] = IOMUXC_GPR12, .mode_mask[1] = IMX8MQ_GPR12_PCIE2_CTRL_DEVICE_TYPE, + .init_phy = imx8mq_pcie_init_phy, }, [IMX8MM] = { .variant = IMX8MM, @@ -1452,6 +1458,7 @@ static const struct imx6_pcie_drvdata drvdata[] = { .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, .mode_off[1] = IOMUXC_GPR12, .mode_mask[1] = IMX8MQ_GPR12_PCIE2_CTRL_DEVICE_TYPE, + .init_phy = imx8mq_pcie_init_phy, }, [IMX8MM_EP] = { .variant = IMX8MM_EP, From patchwork Sun Dec 17 05:12:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877020 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=ru7Md7WF; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45d1:ec00::1; helo=ny.mirrors.kernel.org; envelope-from=linux-pci+bounces-1110-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org [IPv6:2604:1380:45d1:ec00::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB3m6F8pz1ySd for ; Sun, 17 Dec 2023 16:15:16 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 0D3231C21971 for ; Sun, 17 Dec 2023 05:15:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id F0DCD20EE; Sun, 17 Dec 2023 05:13:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="ru7Md7WF" X-Original-To: linux-pci@vger.kernel.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2079.outbound.protection.outlook.com [40.107.7.79]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE68779F4; Sun, 17 Dec 2023 05:13:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LZolYISi3RhD83eYET0CpauMtbSt2rZIOvFmyhCA5yehs1gwgGcUl6eLQAWGQHJDsrW4aIflai+CkaraP4QYwVqN/aMmrckM6N4UYTKmWzesCTujghL892InyAv6nQHQvdQIuHv0vSCUg5YzHHLYmhxpkxENyY2pf6SGD4SEw2K7E1eYSVMQALNxduW1zX1qaNq0iNQZ05t24EySRPcO/YYWnnO/Jhfj6ak3wRZMtvU2hs9BuLsSPQBo7m2luEwfb0vV/TXv+nnyXcYcIIXGHRb2WsDS2WueCAs3dKwZSuOgYLWV/51IlbFfnJRXSoP1nOe2ao23xnWGMEW7yAo4dA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rch8vWPNO6T/sZoCRhQP+K7IUpFwNwWNFEzzp58beFU=; b=Q1kfcEQzZmYELoBvqicy9bCCxw9pDh9NLOfazP7pUp0Brh2XDuc+EkRNArncNrrrDYbngA/riAKi6q7PnpunhmwGAfEKoa5GrlLB8L9WW4f1NevWNN8TKtIgEhpP40EqcRloVLW8iJr8VUs/AGSic6ViSfNcEnD+vGIr11qNhTCUCTatKyAjcUGDGZlljvUDJJyyx7Fl+8Pyz8S4+IG7eqACPQ9KyL3KYaPpQoTJjimBhlikmWqeDFk41yRwfWMh1ApHsn5NSAIkQrs7IC/DHLo6WGLv0IvG/RX0M/oaq2e3RqcYqBX6Y4qNk8ulYDRys7g6gUjLt5xmoBug3tj/Ew== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=rch8vWPNO6T/sZoCRhQP+K7IUpFwNwWNFEzzp58beFU=; b=ru7Md7WFxMRhRIaJ8HCgpIBCm6LtLC7RUR/So9Qp/rPXDeVkToXUzXJk0+pyfViNMPnb4pvCA2+Ia/jMFmm0jzOkaaJQwVzdoX8/QPxfxht/Q62ZP38rGIHqv9XSOVVFZ39XTwoI86Y4nMDN8BOWW5wSPndadFHoqR6/slkn27o= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:13:16 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:13:16 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 08/15] dt-bindings: imx6q-pcie: Clean up irrationality clocks check Date: Sun, 17 Dec 2023 00:12:03 -0500 Message-Id: <20231217051210.754832-9-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: df04bc62-8a17-4fc9-5713-08dbfebee004 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nYbRkzMwlcotG/7FoieYYAjXesvv6zwQVvgZPRPapUqE20XeGT9ZDXD05VQ3qHKaJjIkqTHNEI/F5ekzwtd0yJwclmwykdXxdo/iaFjvGusmlEjqFVG1LOvti6bmxs1qjPS9pPQqjjb8QfBVTEvXk/ZkIvtNJMXpvduN8GOxn7suydlNcw9hry53c6LLQBIsp+h0ECi6fXMJFa9R0aprgfjLbah7cWd1hGG7D3uZh//xeQrtXKSqcZSSbuPKicfRxTR4r1sUCxcZhiBoAmDvrSWRSYckMmDnPbxDrq5/dkchfO7+NHP0jT4GzjjYTui9gNR2XbnpK6FVZDYrCmau3iq9oguMH924aJcgyBqLQark2VqorGQkcmhuFZm8AjrSiHzMC+o5Vc3IENrXC/dVly42byzdSjEt1c9tXCH9UN+beMX+vHDyJGWr8PfQvUhxwybkG5rV3n1RtpPqxC5XKkFacYP7kmHOU32rifKsKLF74NittHmyNh8KYOUKbD2ilnODnMK5VJPjfUuua9k0Mmjuvb8n2IdHqYZSayofEcdYJF/x8Z8G/9hHpUKUdVbxsd5yISRCkNobMWz1wOaXLAIBEfuk+hZPhIxZJo1/VVLtAGhrmD6lK7ezWpC4SPxkxronr8VPkaz7TZrUcs71tQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6666004)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(4744005)(5660300002)(32563001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: A2GBd67Vx60flz3izmMWNNHejlmjTqDspOwD3kJyf4fRnPSj0XrH8XZbg5ovQvwojG90QDQcpAUuzPHIiAXpFhXC34OrE9ex4Ljn4TU3D3OOewQ3HW1vbXj1Na9IuH46W1U539viufePAWCMIMW89OHmxW4eiVFTGRPboH6JakiyLe9XvdE88u/Zrin6gpwilS65+mt7bFnVMhTXKtUzLXWQpBHn/An0xvy2YiOcVFxhOwIDR4DacUKxb1f1yWxn6hOCJ4su4x07fFoq6/mVM6KQscJu9b3zI97jKpjHPWiTbkCFR/O+AEbisdutjKgtDvztM8mC70xMi0HXf7Bnsblz2wl+1DFJrAOqP34CITYZv0a1FGyHHJloqIK9QZIWNLBC4GKuQlBHiEi3XpP01CNZE8COaV2HJXZBRwi6lJG5PAyQUFy1Dxd1Flp87asb59PIawYUKZQy3XI3u2Q2GsJfrtmPIhU9UWO5ws9YVsQEsH+Ij5ESioATvffk1c8wFSM4ADIx7SJicaXuIPQ+1zeuJjx0MAAkaCEyyFVEf1Yiebz1sF6viZkEqBoKO6sMcGq3jOYPVIyuNrHYHSWm4Yte/jqJH9edNIDGEYG4wHZWTvAaPBJgeMndCgilbXhuOYawiHAo10ts6fsQBv/SXM1sY3B1fm0kfXBX1HynwGUBcfbIvoH8zpmXbHaYbGUpnvWcVBjh3R/nJmHrc217K8HYwjk1905q5Ug82gyRxOjAL+eN8geJJuk22o8Ma6YNhYFVN0rNtcCweQ2VSp9zovBgh1VIVDgZVMoxHBzvDXk/rKEXPbHYMBedH4jdnQ3PLW3aQYfUi+5sALswtHjT8MyeRNN6MyqlGpqVfc5W/dQfbunRT1VqyitVjIiMOgRT1aF3e+/MZ8PC6R7KW9mb4M0xz6uUklRlTT+mjxxDPCmMsvye0J6JWEsYiopSwGoJYzdZrxgCZzypYOLCHcozw/tQpvgytxF7XuxKpK16mCy+83nIW62Cm9Vb3uh8Ek4645NW14NZLNTnHcA3P4dw946tdrj0Ak1kFnmexlDRUv6Fu4318cHGiNtN2tl4oFwU28AHeLFqjzmvTa8R0DuqcG1UDAdoNVEBEdf/1mmm6Mn+nKAbmew2Mlyc5sgCQyAOn4Hv9xKrEaUuX0YuRgrVt9sC6+c+kLwhyhPzn004SkI5HzPlT7ltRJYZPUvIGnIuFJkDHMZTr3uPk2CYOzLfVjMTgM05S7ey/wU6a1hu640ehDF8j+CZ0x82Xs/oJ5LuEcmBkOsRUmQoXkn+umjAr+GIDegNN1qXTbQXkT6oBguO4SkTJN/8fN3EAM84MQONR7XLd5BOTMxYz5qPbRF0lZI+e5A7S7Omyj4XBCNEf1M8aWzXXxI9Hq+HgDUeHexmbE3tbS7+PyLqjCxDKbHrpPdL8Aq3tuGJMCBUoBgdrROh6v0qDk3YXL/0Yph3EfK8hohzCV6dvo8VJoxma2fnIrWQHPEXMGo3LEGURWzwX4pzeE3/JeChhzd4dZ1bvfTwp4EFkNF23R0FxBMYtc7ZWU58shzmEOCe9vlQGyewP0g= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: df04bc62-8a17-4fc9-5713-08dbfebee004 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:13:16.1499 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: kNNhvL2HtDrYDn/E+EoFIXZmk59Qn1wGyhKWuvzYQ4mYEnntRtMdSofGnQbwjP/5yd5HvItdNRFkxGFLR6zkEg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 There are clocks and clock-names restriction for difference compatible string. So needn't irrationality check again for clock's miniItems and maxItems. Signed-off-by: Frank Li --- Notes: Change from v1 to v4 - new patch at v4 .../bindings/pci/fsl,imx6q-pcie-common.yaml | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml index d91b639ae7ae7..0c50487a3866d 100644 --- a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml +++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml @@ -150,22 +150,6 @@ allOf: - {} - const: pcie_phy - const: pcie_aux - - if: - properties: - compatible: - not: - contains: - enum: - - fsl,imx6sx-pcie - - fsl,imx8mq-pcie - - fsl,imx6sx-pcie-ep - - fsl,imx8mq-pcie-ep - then: - properties: - clocks: - maxItems: 3 - clock-names: - maxItems: 3 - if: properties: From patchwork Sun Dec 17 05:12:04 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877022 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=rz/zbAYH; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:40f1:3f00::1; helo=sy.mirrors.kernel.org; envelope-from=linux-pci+bounces-1111-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org [IPv6:2604:1380:40f1:3f00::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB4629T6z1ySd for ; Sun, 17 Dec 2023 16:15:34 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id D6084B227FA for ; Sun, 17 Dec 2023 05:15:33 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id CE929EDD; Sun, 17 Dec 2023 05:13:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="rz/zbAYH" X-Original-To: linux-pci@vger.kernel.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2056.outbound.protection.outlook.com [40.107.247.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0F26DDB2; Sun, 17 Dec 2023 05:13:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JVjgXvvOzOOGyuQiqxjUL/uDuGVswYR4zp1/0ysNgV7XwZjTfcsJeh5arRUxFWn3/oRAy/SM+cQKRgx8wGZfZK2yPpDQovrkOThdJDmJLA8Q8GtRmqT1Nn2BrIOjS7MJ4LsmFn7JgLOh1ErkhHxO77OUAy7opmJX/+fPpn5tgdE7DcI9iHzQqr0KB4uU/UInPOX76X6YCUOOcb0eJHDf8bMCFPYebjORK2Si35slYhqMSYfuG/82XJlPKSxewWtnRcfTiVeE+sYbD9oNv7uYt1CwZPc9pzJwJe4RiB72HCeNCNRHWC8nfqpkIoknx0Jsh5ZGIgzalLaupPkLnzsBPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=SmtgByDRNPfCKKNXh0SEj3Kr+Ca6Bx85HwWLkF4eGss=; b=g8IV1bRT7BV0dS9JDH8XtpgGm/Xc3KWAi4NZmZaMeozodcAsgKbDV32wMvFeHYIyfCjM7uWjGn9kuRhzg+SbwKQr06YSIqd2j7LMctM0p221V0856Yz3j2l8QsIr2m5VrFhw82TkkMD+DtOys4dVSVj9OzAYFMb3ohs0NIxLBJEy4QZ+p3l11UJ+rSBxncPRR+nX9oZB7h4msQ4so7Sa9FLtm9mN7Wi21UTkyLNf3GlYq01ip1jDAW33HowpggkZknvPYY+Nx2o7Oc9/2b1vOdVaYv4FRyUn8q/7UBP3iUrmxS51ty26P3WTKzOxlqJ3XKylHXhVJCwltC1joHVutg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=SmtgByDRNPfCKKNXh0SEj3Kr+Ca6Bx85HwWLkF4eGss=; b=rz/zbAYHq2ccJW6InY0DWkKAwyZvepW+6iRJwKgKno8KxjcMUgYPpgf/HhqocvncIYpwSWhXkGOFkLIPT/pfl2mUXFhGUK491x1YUHsg5/ae9RO2BRhAigftALH8xExctfS8JXDE4DVrmzoBpaVjF2M4Ylz4gReL4zT6QlrCjMc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:13:21 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:13:21 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 09/15] dt-bindings: imx6q-pcie: remove reg and reg-name Date: Sun, 17 Dec 2023 00:12:04 -0500 Message-Id: <20231217051210.754832-10-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: ab871466-296a-4938-f6e3-08dbfebee30f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xBlrV3iWyt2j8b2cp8mw4koMgxisZfWxjDWNbMUfq3oTpVJ31lOQ9/PD2Uj6i8aEQkryDkcc0N9qqm1KVKDad4wbvTCzWUlOVYotpNzbhAFeR2I/jeDWVqxt3MfuEWruaARO7dKPVfL0eZ3QqhDY3pDWCkGslg4wuCJLZ2EtHWu7/V3ZeF9XGhhbajfNakcVOXROb9S+KwVnE2Fj8Z/8nXmS3cRJwK7ihRPs9f6FMpWM3G7K/lDn7lWYBwcpvLuoYU/FHIDdIOVM24Sbe1aYSDhDAUPcr3G2toHfV+eD9FdThgN5j9UDCs8zP/S2e0kYHJMRyHtqK025HXFAyKCylUY+xOcsyakY4pjPDNuyw9R2UmU+ZTYMi1tGko8mFhn2hApQTHDCEqAQemuu3pU4N/VvDQghlqcOa8LvYvpqe+N1uZIx3xOZSQaOvRhZ5tVYmAAvLjimliHc4DgiHR72aTwA/Wy8+9Dd6JIvyDZVCptWFvyS5myicCT+lsSUHkzYnXDfuw6MGVLtifYgbAAIIMs/LysUVdfNPQkSuRTuiBdNGlHpE4W0hT1VXCGD7l55vNAtnLm1Il2jogfs6QzKOKSDJpjg1ysyaH7tGHHv4ploUwfa/yL0bpbjCPAC3uQKveuBMJX1y635VR5Wd9KqWQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6666004)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(4744005)(5660300002)(32563001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WbirPrrsYWG/G3zyQ21NBA4df2GFlsz7IfHmiHJNlJUHhL1X/HlRGu4OIJAbIAimvuLhu09ckDnLxWScfVlBjvQpkWLH7sYY0/v11U8lF71BiTf2YcGR3OWxghxgxhvhOFQ5F5uLN1Lsz5AcjBZmx+afPUTOnkAH7mWc2+CN2HnsQfyYpK57ow8VzxWX2QlWouyKBEs3xX/RcpOIYTlT2VvrEMaSYYxHoXHceWJ400LSnKS/yCJfZGRdyrDjCj4Pya0TxOoqoMxhHDfqOxtxFgDwKlG1eR/E6dfFzjW0uHxwK28+xgjkDP1UlDux86cFW566zs4pDM/3t9FN2l+erta/UtcgoE37IhYC3lJ3YzgLVtEr/6hUU6V18bS/Un4i2zxXLQX6IMqkjp73ZggqZjS7lt0ql/nw4c0M88qlJKAPHtoEp8gdeSwmwyeV8sewVd4cWOXvVhffw+uwzVE3dGgUQ+JBefEMzFGypycbB8f2w/+U8RSkjxCDC6yl5rIi4bWcplpW5QCNahpsN0xw3S1mYCqPqbq/gpJ3WHzgBx2YzRaC0W6o024wn9ki/Xoim7nGBmEvPJ0mK4DvaaSjFNvKwOLk1BcRHcfsl8tAfhar3xKfiUNr/v74Bly8ChcZ5FwvVOUFJJ/K5wLZHxWfijF3C8BIgYV+jRNtysNcHgLA8gZamSyoYRv9zpKKaykfZ/YaGjFFEIwsWLxVWsEHEaAEa+IdyW4NYpLQRBfUpFoPRqZZn+StWIb0RgX25/3YtgQqXVwtO2XZP3v9WiHdW5mqVMJNFdG8s/+NmTTmz6P0Dwf9MwNn55OKhdePsyNqC9FvnZYaBwNkVAptyu14Ew6xHUzYfSgJI/coBXNVpJXi0doKBzYlR4a77C++aMqZNUxfLNHUawARk8z5dOuTKd6sLN94T2gO6LGc2dAIApTjU3RYRlUTCY2buFrCgDoX5xY91YemCG+7kRsm0buUDqxss83J5FyxXp50BYXuVesiXBzsZ5+nMm1adzf+PQmLOBzIDbgZV8q4gYRb2jNMsW/bbmHIPdQ2BajpNqAEH8VHqt/rX9WVro8bk6ic8SHuGaPMB5BRUAQke060VjylLylL71YRg+hERqHXcPcfd7xEPi4yI8lmFzWT4Xivv+6sQBJROj9bJbBrkhq+KwnVWA5lmOhXXyn+iFXK74zNJIza2/N4bcImSDyWUElEO+JTSjGc9J4uiU+ORHnc5ZA9jrZZy0VeWsbSebKpK7BoukW/EaKC9sRIcE/D3BP94GHulfbOPFQrs5Oh8IOL0DKgYEfmYiZessTB/tWHCiRqYfINp1cJinDHTY8JlFD0ypQYTidiez7OuYQqk4hM4NO8g9B+boqXK4fJSd8QDwRCxukroZjWQdhTOS4TVlPqryTea5eUQ+OEqScTcn9X1co1yRXXB/ANB16a7yVMi6d8ZTlOeLHC1AlWPEUX8uiQF8+DEVBW9hy81o7AVcm2ORLiI3JznJvDgsv586a8bVSLCYmopV5iErF0WYanfoGB0BaDlS8gudcyDl9D2I6JJAMBx5lvKeDbph05wmaNCCcn4wY= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ab871466-296a-4938-f6e3-08dbfebee30f X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:13:21.2849 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 8JK1SL0F+WSGKzaxEvKGZEuIsvo9CY+ZnIxCn3Kowsv6WFivennJ+pDdR2z7LlvtTBzjkIjfi7K1ybSsjvFxxA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 snps,dw-pcie.yaml already have reg and reg-name information. Needn't duplciate here. Signed-off-by: Frank Li Acked-by: Rob Herring --- Notes: Change from v1 to v4: - new patch at v4 .../devicetree/bindings/pci/fsl,imx6q-pcie.yaml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml index 81bbb8728f0f9..f20d4f0e3cb6c 100644 --- a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml +++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml @@ -30,16 +30,6 @@ properties: - fsl,imx8mm-pcie - fsl,imx8mp-pcie - reg: - items: - - description: Data Bus Interface (DBI) registers. - - description: PCIe configuration space region. - - reg-names: - items: - - const: dbi - - const: config - clocks: minItems: 3 items: From patchwork Sun Dec 17 05:12:05 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877024 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=kpejR8QC; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=147.75.48.161; helo=sy.mirrors.kernel.org; envelope-from=linux-pci+bounces-1112-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from sy.mirrors.kernel.org (sy.mirrors.kernel.org [147.75.48.161]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB4V0qcPz1ySd for ; Sun, 17 Dec 2023 16:15:53 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sy.mirrors.kernel.org (Postfix) with ESMTPS id 3984EB20E19 for ; Sun, 17 Dec 2023 05:15:53 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 031F42571; Sun, 17 Dec 2023 05:13:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="kpejR8QC" X-Original-To: linux-pci@vger.kernel.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2080.outbound.protection.outlook.com [40.107.247.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B95AEE568; Sun, 17 Dec 2023 05:13:28 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Fu+8fTbWxFMtRCQGCUr0AP4+eoqgiPDnmJemWGRl40XFXwfB5OPxuYaVjU6/3jVMO4FOHkAeBxvI4TGTZHVMDHV3EA+AhDuzHycTu5BEETxoH0IoqPR85QMPrcA8wa3j2oCmNsy8lFvh1piRpoPzNEi914ELi650oNVk0Ih1AR36oSZtXYCBK6hN0OskS9moDt06XIl5vowk5Y0JtKiqpH3zNi0CKlkslRSymvmTiPrU7e40EkltP4JEzODIFVbv1Qjd/BgvnqZSt/t1ThCV5cP8mR20VEfwXhqQglhzdNF27xVxqA+XxKE7jkwYu3C6pCft0sGEJ0mrptMUMpD6SA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=GAw8RuZhlOT5aM2Yp0dohN6qVaLHq76nw4HwyEKP1Zk=; b=VF2AFOffBsLMqroa5QtYxvtEtyBIK0jcIgwIXqnKgN4j3nJEcwxu64LhsBNYRYWKp/Kq3UgPOMPnUK0PVBXAwB8MvkuOKSw+RSNKFWGmBRI5JnmGpn2Mz0cw8kO1wSKOVCX7rBOmPDPNVvUZJBQyg24Rc02Nwi3z8HeRlKfSJAosnWGRtgsIhuUDNQjjYJFuHsHOnoAWLJgfpXOymNvMQa1OctdtDEtJ25Ua9++5tbAth+abhQolF0I7IoVEzm5jgcqAARHP4ynUZ71v1WK5dno49ToDh39K9b3SiYZ0VNvVZ5kKhulkCQgGNhWqCzg5u7BWAAYj1EPwOUaMTEL1Og== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=GAw8RuZhlOT5aM2Yp0dohN6qVaLHq76nw4HwyEKP1Zk=; b=kpejR8QCT1PAuePfun0m4Y0m70ShEkwuXDUpGh/S/mjziaK7w0myp19RwQ/dovfpb5WQ5Ud1bpfGrKSYpa0mOGUhTnqNsfFwIh/vlNZDtpZn7jRJuSDvvdNRfAeBLj9TQYk6QWp1VvSiKVgytW94G9MBCjQUEC6iuK2FYnw23ps= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:13:26 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:13:26 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 10/15] dt-bindings: imx6q-pcie: Add imx95 pcie compatible string Date: Sun, 17 Dec 2023 00:12:05 -0500 Message-Id: <20231217051210.754832-11-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: 24da473f-d3cb-44dc-f956-08dbfebee61d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nXmDFehi15U+5D1/5uRWLgRKhenzknbTjbASeLir3wj9A/oqkS7ZArKfmqQVnjN1ohY6UThVPFSLgSm/nqoSGs3xVCpFmcUD8y9m0WErH/ZHhcp2E09ihekfvhMDQ0Gk7OXDUDXItCbMHIOOTPIXAfk98CSuOxr99lTJaL4duVH3+rKBOF7dYxyMUybwH6Qvpt1NAuAc9Aqo7fTHU3JxPUVI/sTaUzoWeVghHA4cfMR447kJxQ05X+Afn7AFmtE60+bF/oz2lug/csfLaEgPbIl7p2HS1+uwv6/TbwR5rEOZZfO0bk/0QNSGSh6Ha6On9LEmEQwonS/T0lSiMvFQeDj6IzO8Pd4ocVjtb1JMlhjyNY9U180Cr4MhOJsOoKHD/s0l5zwvWk7rfkgS5DUedNLKJlIo4oVriYAPFEkg6PV8p+BfrRja42+p6BviZl/HsJUpsSFVzms4FcDV5fESoXoXqqR8Qjpc/HURoOAvUAPMqVR+xfTuYZZHZpsWUyitm0EdgDKnvvbOgEQ5184K+Fx2NsY/Wyyjun7pCXgGJWrDZJDZrs8Tbtqb6cQ/jM/lyS/C1EWYIoowK0pAfTaTbX0EKlmr0p9ulF55juTQ7ED3eU6jyf+bT6RnMiasGAFt2poeOW8f9ip6ZeZmPhAUxg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6666004)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(5660300002)(32563001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vMblpH04cnhG5hGNvi2ptnt5wjT0HNm3A20RMhV3DkLbUbssL3Vknw1cYz+sYESX7uPX1GZgMHr2CNXfAzi0SYLcCMoIR+Uo32E7qjxq2iN/tVYf9rKakisiJUT4fAHH/hMCg659DrrrLQ5RzmL3aEYpZEijSMisfxaejjVT7w71cCO3Hdw7KoBR1s/df8W8w+hQk+niieTMJEuTJJYVE2UOeLmOkl8yWMq4P/CNIaeCjiercsBLIyZ7iaE/q30SzfmE3WrIexnLRNdaPhKFE7aVh7hjx6iYe4NwjfsubbhuSgyVGlcvBgbTWFlRnMF/lnzQfy+LGk4XZpxk8Lp4Z2Ojt6Q3EdrzOpmFssHAK/NreREKNdJL6rKatXijSE9alidLDibOh3qE8U0j0kepSzROy9AYJVx1svdkFzxltxtG8AUQjRZqynjQPpSZuKzrSGMa6YoAWj/AmbALCR71tDvEvYnZq7buglGTX8baFq5deiSm/kn2M3QayShTLbHaD+hlhk6kdDWVCXtM4Y/Cr/4zXtKLE/l8aU+yo6BGl7uZcp1wL3Z3qCckL9eGeC2oaPGrz9epBdy5dCPEoqoPMFhpumRHskTQ+19tSrQB5Zy3YNKkZwVug5WS2hgA4eZUAAozYyUG4kkd7KK3mnKSibniPGVABB0Ivj4vR1eu51Amytehncrxnou8Y+a37zZvP2HS2eKwx/TBhaGZJApNnQCKQjL5t0hDXmrIUbP9+uoqROsYZjS7KEbQ622z/jiQTb1LIXSrW8YCVjWupTa2D56pPEy+jja/s7u+/XsHGTHLh0/J6nlWck6mQx8ZutJWeA2+QHrpo1wQhxcSxRPh1PPMzucOxy/yqNPnmV+hYFlp0XcDS0LX4HCuGl+J59NFgK2DCLVQ4CVJGO6t5nTxkrEdCq19Zu9tTcUIjFote0D9UOX+kgCHFFOhuX1p8lzx/0r8B0aiZDRP7AM1erlc9zQYAHo3wckhvKtg+JPE0ItM/HrbeugcB01hZYItWbjkWWgI6Fj8a7tVVs1x74ctDGMSVZQQG94MBzMm4EqlyEb1mCF03RP/B6N8OGjcZBYcvLLbJRiDN2YcwfV3dZCwdRaQg4ez96ODzilnE9N3lSBEuEZjwi4I0FX73hdnOit/iKO1Gx2Y/qy/+gqy9YiXm3PhQPDYSZlVryPaJal0QTzOHvziYkOsMJju7VuqQWk22CNNM8i7noWwvi0XCfCAqXWHZGfpP5mwqyymbhEYums/9tLQFFxEOP8h9K2JKuBStOU+IG61Pj3eSctWjNpGfjvcezJG7mKtJqClxHJWRtHGc1W3gcawD5g8qoMj1f81ABjWVYtuqHZjRBPKlarfshRzGPUOa+q/JxVl5BI4m+QW3LAhzMSWloVaZDUIjk6r9yvp2TUzTObU2t7vVwWDoFS6TWNhAdcNd07R2g0OE2krZPO+LCaguqN26HTzBtXygpLxBQWAOulC5O2FpaCtTV7MIb1vuo0C9YuoEypjzKC3CnVj8ptZu3hzX2UNWX3k/PCvDEzU0JitqZ2GlZNri4e0ZjN0YEv2OPxJnilrIDk= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24da473f-d3cb-44dc-f956-08dbfebee61d X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:13:26.2668 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Vx5c//P9RZ3KBkbGQWEROuIE5H1SD48Wcf9mAadFJtIPCTYUc8UF++SDS1bQDxcaiSXCRrhe9ej9dOsoMXAhIw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 From: Richard Zhu Add i.MX95 PCIe "fsl,imx95-pcie" compatible string. Add "atu" and "app" to reg-names. Signed-off-by: Richard Zhu --- Notes: Change from v2 to v3 - Remove krzy's ACK tag - Add condition check for imx95, which required more reg-names then old platform, so need Krzy review again, Change from v1 to v2 - add Krzy's ACK tag .../bindings/pci/fsl,imx6q-pcie-common.yaml | 1 + .../bindings/pci/fsl,imx6q-pcie.yaml | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml index 0c50487a3866d..a8b34f58f8f49 100644 --- a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml +++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-common.yaml @@ -207,6 +207,7 @@ allOf: - fsl,imx6sx-pcie - fsl,imx6q-pcie - fsl,imx6qp-pcie + - fsl,imx95-pcie - fsl,imx6sx-pcie-ep - fsl,imx6q-pcie-ep - fsl,imx6qp-pcie-ep diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml index f20d4f0e3cb6c..8633c622bd178 100644 --- a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml +++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.yaml @@ -29,6 +29,7 @@ properties: - fsl,imx8mq-pcie - fsl,imx8mm-pcie - fsl,imx8mp-pcie + - fsl,imx95-pcie clocks: minItems: 3 @@ -80,6 +81,22 @@ required: allOf: - $ref: /schemas/pci/snps,dw-pcie.yaml# - $ref: /schemas/pci/fsl,imx6q-pcie-common.yaml# + - if: + properties: + compatible: + enum: + - fsl,imx95-pcie + then: + properties: + reg: + minItems: 4 + reg-names: + items: + - const: dbi + - const: atu + - const: app + - const: config + - if: properties: compatible: @@ -101,6 +118,7 @@ allOf: compatible: enum: - fsl,imx8mq-pcie + - fsl,imx95-pcie then: properties: clocks: From patchwork Sun Dec 17 05:12:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877026 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=BJLMBd6o; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45d1:ec00::1; helo=ny.mirrors.kernel.org; envelope-from=linux-pci+bounces-1113-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org [IPv6:2604:1380:45d1:ec00::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB4q3rFxz1ySd for ; Sun, 17 Dec 2023 16:16:11 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id A99501C20CDB for ; Sun, 17 Dec 2023 05:16:09 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 0A61E1863; Sun, 17 Dec 2023 05:13:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="BJLMBd6o" X-Original-To: linux-pci@vger.kernel.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2089.outbound.protection.outlook.com [40.107.247.89]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F3ED8F9D7; Sun, 17 Dec 2023 05:13:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Tb44rV/e/LSoWmqMEvN7cFMEf7KgAdwB0peH+gL4DqG5EgN8SUWkSxf/HiU+e/XQsjvw9b3Xe1BR5OBXVtMsAIXzaYb7yQt6OOLhyG8oC4Zzm5wuInAR6pTzj3Kfv5uRysBKdOL2c8oS2w9PnSbY6JBncTkPnoy64jxqDV9za5znyXQGRw7H3GeVpO+Rqhs1UYaOpuZq+gHlYSbcmxR/a6Msr6enRtteltyQ2IuIIoZO52l2KPEHnuvYGZ2ioq8qfhrbaXEDgpY03Tu7TJp5+X6mWexij81XHkCCQeAo1xRRiuT1g4+VABzBoowdmoN60Kkx1to42QRz5JzdVj/m6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+lH9XKua1yFSuVuY1tilgXJFmUjpUWTKlp3s728XLZ8=; b=jrwDfho2VLGzgyjKb2gV1sc1Ane9raFtyrD4xquWzYJ0BWZ+f+UZBZxiwXK9nHTjnqg3KNfrBS6sF2mg0EfldJRrQTwYmrmJf+CJpB1+htAXcEO0adt5V2k6qab8D8E0bw1WhhKMzyN0bGr5VvcCLowwVGRQHam5uGaASc5Fo39252REE2PB/iGbH4uLcIdkyWErla4hRvRYLLQh5RZ/pzVc1rnpqV5edaelN/v6+JFfYkOjQT7wKy5EsBQFfAFRC791cshGqDf2BB3+CQOsY4Zrfg/TpKPypKIizJy2+IXx9r2kBSg8GDpO2TCCUIaEGaj6yQwAzDet/RWGq+wQIg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+lH9XKua1yFSuVuY1tilgXJFmUjpUWTKlp3s728XLZ8=; b=BJLMBd6obO58Qk1E62Wxm8r1/GvC8FskQWRNs4VDqGXbg1w21hO/XBYfPMv3J0JnSgTDIVoXfC6SWOOseIGR8dv2MC1XjRdQ0YNOtz5Uuq1FjKiAFwSHnxy12W+xZWwVSLMl/IW5PyTuQlxj+MLn5bkCG3uS3MmFc/JSWk4qGHc= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:13:31 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:13:31 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 11/15] PCI: imx6: Add iMX95 PCIe support Date: Sun, 17 Dec 2023 00:12:06 -0500 Message-Id: <20231217051210.754832-12-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: e27b8bd7-9378-4d30-8669-08dbfebee916 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HiUCUDYZUzh1mpMpitgrjmgvBNY8dh2HkJsVPS60KilNVxFIIQleyZwE29hX/nnv/n+tHKEzaNgOj4seUkyLQcauP46lzKTtEPddSplkOVHde+DUGdC92ds2igShcfGvbQXaX4UbdSFoWnilM+g6fowrhhgtpaIpIwCs22O+3OatNQpLoaMJpkJh3iOU5vdBxVhOA1C7GFp45xSW762MyUIi9aJP3E7shO12stryXqcQoMkOzw8ekSWHX3THN5Y4qJvo5mAuzFLs1xtgrUqrScxgVDyWga0dCQgwg6+ecBzuVbt9czVA7RtihxHmicCM4Osv58zn3LV+9ISX0NlahZJHpBgva/XmL6lTH82GtgS4yjq4S+3fW/94ZKQPNqQfzvMGxxE+1Z40BIQRb+iTOaXSGBGhLxt2IoBxTo0oXFOZvObHDYzyViGo5eyJIzDezkT9GVW8PfgAbg+jn2cq8PgTRdDrQwxC6jnzQVPlk13FuFCwAw5b8ddKlmKYChxAwbkZIGalh8XxGYjOzsUpN39vZogacRwwRrv9nIFIUKmHH+54EznuKlmN0t3tzHnJjxFpyDqkEu0rd/W7whSA7AbWrxUZx4LfntNf4Rn7EhZrKrWqhDsgcUNYHtWsaeCr X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6666004)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: PxKNWCxINofeN2JhK6usfgxq3+9viMOGG/teCrOkQAUkujs2NHcbRjJ8OfKtn0Q1Tzsfn4rDuY0I1Hu7dzxNjd6XsqGJV34yFDM6JDxDgDL+w3sy149xPvink7yTStrJ+LagktrZ+ahBzAvXunibKTKR+2dRJMS/YqeaxsO9us1bDUWe3xTUoHpNdNFaTljfa1mH1Wq479AK4wADWh41oDw+gOhcTmZCKGzTtTBZAkBDNWJDC17E66IFw91oTBMwSdyvPU/NNZGnrdrVzTmjq3IcOUbeHD+eWWRelARh13RD2HgKXWxNo9XuvZL6HnSs237PvyEwiPRBUlrG3piYVHclEE2ernAEdg1wYjLcOLrcI7Z9E/W0VFYh709Hl/GzrXQfJwfpBkJZkNCf7CjwN/E29OSCVqDQR4HcnM2zMHnTE4OA/oUhRUBEOx2FYqlkxeAdFPVlA1oNLxIpD4XiTIUUfnTJLTFJM6ZM0WqNqB+nPsHuN5EqMprTrYRxp5o9YerY/8sQ2blr0CgRpqTGAfaYdUWfew45QrkXJTGWkjl48yz4W3la8OS1Q8dSsWxH6ZP1dTvl3EZ99OT4YNpY1J6CYIR8OXJzRWejkfGsxv/Q9RUCvtniHvZi26SxpVtVlfcI3Fng2VCMde/NQLRfOCy16+qoM0QAJfDhLxP2NJmqU1BLk2wMCc6nP8zbsiYJfyk+Ub3mjOGdKdzIm2pWyb81pzRrg5diA+KPusWflvy2Tx6y0xGRBbGwGYrfh+xXlkVfEX6JZ0kTX8Uu2FZikRVvmiJqptq8StQ4sjaOsKDGzMRELHZ38bJPqehSHAR5bgyRoBxjKNDJQTKXzZpgUNzQDZpt8n6Vj3gSynkd/LwfYfD0136dFIbC2qxXaUsf1sJWEypFaXgczbn/h95Y4n0CtSEGvkcgeOATkIW7uM9MVL2MzECYteEI5t2F/uyxXkJgbnCqpUJVVYYNL17WLKe/fsq2UqZ3I7KpDY6mnfbls+cBURk25xw9lZ2pE4DRutL1Smw0I7FG4xBs12nK5CydpV405pKfsm3e/w8wQuzMT58G2FONA/tJVekgZloA8z9KeQXL6D08TztrRyW7hneNNKCsVnqgvr9SUQK4k/cbSbweXD1zwAELGqxuPJHLi5shf9yG9c/v11D8Yw0IUS2ZNEzTvD0i3b9oT3KLcIFcSQt1u7kpOObC/6w49wlfrTNLzmbVVVo77RoVbrr248TspE/lTrYAOWVCBZ9N/5LI5exl/WvBCU7ji0qfPSkt/08crFIq0+qM26lEi4nwefTZqHTKwSTvhNGYsd9whLp/HY1+GxnGT294Ae/aDl6dHQWqZSl8/ZTLvPnBUTpnScM3sD6esSqd7T2hRwrxKwkwPQieidvRi/b7U5zw1BtMRczJj4hotg1Db+2V3m0MBvEF2+o9RUnFYqpmF8nZ1785JXwFgUe1Nhhb4VHCTOo1BYFccDJQSwWWueUjnrST5H9kcsJuI+/m/H9EdENS24ju3vKigR3M1iEmrzQlGQ9OL9kyTHjWZIaWiTHL8rVwjr2LLnp4cvzvl43o210MGYM= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e27b8bd7-9378-4d30-8669-08dbfebee916 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:13:31.2629 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: rM29cS29gHlT7z5Ca5lebTsfUSnrPn8T3y3bKDsdgmsvfrj6p0PLdKT1J93L6nOES+JIK+kmTGgqiXU9u62fGA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 Add iMX95 PCIe basic root complex function support. Signed-off-by: Frank Li --- Notes: Change from v1 to v3 - none drivers/pci/controller/dwc/pci-imx6.c | 90 +++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 5 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 02da650aa55ee..324c62cecfa5f 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -42,6 +42,25 @@ #define IMX8MQ_GPR_PCIE_VREG_BYPASS BIT(12) #define IMX8MQ_GPR12_PCIE2_CTRL_DEVICE_TYPE GENMASK(11, 8) +#define IMX95_PCIE_PHY_GEN_CTRL 0x0 +#define IMX95_PCIE_REF_USE_PAD BIT(17) + +#define IMX95_PCIE_PHY_MPLLA_CTRL 0x10 +#define IMX95_PCIE_PHY_MPLL_STATE BIT(30) + +#define IMX95_PCIE_SS_RW_REG_0 0xf0 +#define IMX95_PCIE_REF_CLKEN BIT(23) +#define IMX95_PCIE_PHY_CR_PARA_SEL BIT(9) + +#define IMX95_PE0_GEN_CTRL_1 0x1050 +#define IMX95_PCIE_DEVICE_TYPE GENMASK(3, 0) + +#define IMX95_PE0_GEN_CTRL_3 0x1058 +#define IMX95_PCIE_LTSSM_EN BIT(0) + +#define IMX95_PE0_PM_STS 0x1064 +#define IMX95_PCIE_PM_LINKST_IN_L2 BIT(14) + #define to_imx6_pcie(x) dev_get_drvdata((x)->dev) enum imx6_pcie_variants { @@ -52,6 +71,7 @@ enum imx6_pcie_variants { IMX8MQ, IMX8MM, IMX8MP, + IMX95, IMX8MQ_EP, IMX8MM_EP, IMX8MP_EP, @@ -63,6 +83,7 @@ enum imx6_pcie_variants { #define IMX6_PCIE_FLAG_HAS_PHY BIT(3) #define IMX6_PCIE_FLAG_HAS_APP_RESET BIT(4) #define IMX6_PCIE_FLAG_HAS_PHY_RESET BIT(5) +#define IMX6_PCIE_FLAG_HAS_SERDES BIT(6) #define imx6_check_flag(pci, val) (pci->drvdata->flags & val) @@ -179,6 +200,24 @@ static unsigned int imx6_pcie_grp_offset(const struct imx6_pcie *imx6_pcie) return imx6_pcie->controller_id == 1 ? IOMUXC_GPR16 : IOMUXC_GPR14; } +static int imx95_pcie_init_phy(struct imx6_pcie *imx6_pcie) +{ + regmap_update_bits(imx6_pcie->iomuxc_gpr, + IMX95_PCIE_SS_RW_REG_0, + IMX95_PCIE_PHY_CR_PARA_SEL, + IMX95_PCIE_PHY_CR_PARA_SEL); + + regmap_update_bits(imx6_pcie->iomuxc_gpr, + IMX95_PCIE_PHY_GEN_CTRL, + IMX95_PCIE_REF_USE_PAD, 0); + regmap_update_bits(imx6_pcie->iomuxc_gpr, + IMX95_PCIE_SS_RW_REG_0, + IMX95_PCIE_REF_CLKEN, + IMX95_PCIE_REF_CLKEN); + + return 0; +} + static void imx6_pcie_configure_type(struct imx6_pcie *imx6_pcie) { const struct imx6_pcie_drvdata *drvdata = imx6_pcie->drvdata; @@ -579,6 +618,7 @@ static int imx6_pcie_enable_ref_clk(struct imx6_pcie *imx6_pcie) IMX6Q_GPR1_PCIE_REF_CLK_EN, 1 << 16); break; case IMX7D: + case IMX95: break; case IMX8MM: case IMX8MM_EP: @@ -696,10 +736,19 @@ static int imx6_pcie_deassert_core_reset(struct imx6_pcie *imx6_pcie) { struct dw_pcie *pci = imx6_pcie->pci; struct device *dev = pci->dev; + u32 val; reset_control_deassert(imx6_pcie->pciephy_reset); switch (imx6_pcie->drvdata->variant) { + case IMX95: + /* Polling the MPLL_STATE */ + if (regmap_read_poll_timeout(imx6_pcie->iomuxc_gpr, + IMX95_PCIE_PHY_MPLLA_CTRL, val, + val & IMX95_PCIE_PHY_MPLL_STATE, + 10, 10000)) + dev_err(dev, "PCIe PLL lock timeout\n"); + break; case IMX7D: /* Workaround for ERR010728, failure of PCI-e PLL VCO to * oscillate, especially when cold. This turns off "Duty-cycle @@ -1278,12 +1327,32 @@ static int imx6_pcie_probe(struct platform_device *pdev) return PTR_ERR(imx6_pcie->turnoff_reset); } + if (imx6_pcie->drvdata->gpr) { /* Grab GPR config register range */ - imx6_pcie->iomuxc_gpr = - syscon_regmap_lookup_by_compatible(imx6_pcie->drvdata->gpr); - if (IS_ERR(imx6_pcie->iomuxc_gpr)) { - dev_err(dev, "unable to find iomuxc registers\n"); - return PTR_ERR(imx6_pcie->iomuxc_gpr); + imx6_pcie->iomuxc_gpr = + syscon_regmap_lookup_by_compatible(imx6_pcie->drvdata->gpr); + if (IS_ERR(imx6_pcie->iomuxc_gpr)) + return dev_err_probe(dev, PTR_ERR(imx6_pcie->iomuxc_gpr), + "unable to find iomuxc registers\n"); + } + + if (imx6_check_flag(imx6_pcie, IMX6_PCIE_FLAG_HAS_SERDES)) { + void __iomem *off = devm_platform_ioremap_resource_byname(pdev, "app"); + + if (IS_ERR(off)) + return dev_err_probe(dev, PTR_ERR(off), + "unable to find serdes registers\n"); + + static struct regmap_config regmap_config = { + .reg_bits = 32, + .val_bits = 32, + .reg_stride = 4, + }; + + imx6_pcie->iomuxc_gpr = devm_regmap_init_mmio(dev, off, ®map_config); + if (IS_ERR(imx6_pcie->iomuxc_gpr)) + return dev_err_probe(dev, PTR_ERR(imx6_pcie->iomuxc_gpr), + "unable to find iomuxc registers\n"); } /* Grab PCIe PHY Tx Settings */ @@ -1447,6 +1516,16 @@ static const struct imx6_pcie_drvdata drvdata[] = { .mode_off[0] = IOMUXC_GPR12, .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, }, + [IMX95] = { + .variant = IMX95, + .flags = IMX6_PCIE_FLAG_HAS_SERDES, + .clk_names = {IMX6_CLKS_NO_PHYDRV, "pcie_aux"}, + .ltssm_off = IMX95_PE0_GEN_CTRL_3, + .ltssm_mask = IMX95_PCIE_LTSSM_EN, + .mode_off[0] = IMX95_PE0_GEN_CTRL_1, + .mode_mask[0] = IMX95_PCIE_DEVICE_TYPE, + .init_phy = imx95_pcie_init_phy, + }, [IMX8MQ_EP] = { .variant = IMX8MQ_EP, .flags = IMX6_PCIE_FLAG_HAS_PHY | @@ -1488,6 +1567,7 @@ static const struct of_device_id imx6_pcie_of_match[] = { { .compatible = "fsl,imx8mq-pcie", .data = &drvdata[IMX8MQ], }, { .compatible = "fsl,imx8mm-pcie", .data = &drvdata[IMX8MM], }, { .compatible = "fsl,imx8mp-pcie", .data = &drvdata[IMX8MP], }, + { .compatible = "fsl,imx95-pcie", .data = &drvdata[IMX95], }, { .compatible = "fsl,imx8mq-pcie-ep", .data = &drvdata[IMX8MQ_EP], }, { .compatible = "fsl,imx8mm-pcie-ep", .data = &drvdata[IMX8MM_EP], }, { .compatible = "fsl,imx8mp-pcie-ep", .data = &drvdata[IMX8MP_EP], }, From patchwork Sun Dec 17 05:12:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877027 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=Ojdznu8P; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=147.75.80.249; helo=am.mirrors.kernel.org; envelope-from=linux-pci+bounces-1114-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [147.75.80.249]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB5D5gdWz1ySd for ; Sun, 17 Dec 2023 16:16:32 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 9C7121F224BB for ; Sun, 17 Dec 2023 05:16:29 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 170DE15CE; Sun, 17 Dec 2023 05:13:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="Ojdznu8P" X-Original-To: linux-pci@vger.kernel.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2047.outbound.protection.outlook.com [40.107.7.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 54528101F0; Sun, 17 Dec 2023 05:13:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BxkOq7GVpxbbAWhDl0i/Q1bdK7vY5pnM/AzKLriypux/aOMFcGcVFAK5wru/+QYeaWeMoDFQ6sFElc8SiNnVX88tnVA/LXqAedXlc3LYRus/bnrWp46gHU7DjhFs5ZzYTs16MyE8kosOE4ivr6rVMh0Kh2ajQfDE19wWamVDuxU7BqBf6zx3exxvlv/KDMMxOxdbyMpMlviXI2yYW+l55nVfr+OrZNEzqsP2ICII6pR8pr0TjIv8wJdvt5QSCE1Ge5WnA7+7mSkMmDXF9sHQcfpEK7AZWyj930c3o60mRflQtAJaEKVHK96rdcFu45gyGk+Z8GK4VN1rNAvUVIoL+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=huxzAgtOfR8eufcHlwd/FrJVMvnlcg7jp5zNfrc5qrM=; b=JjgvEn3BWdZKn7yLh5b6hJgRi1slA6f1JHR27q6RtaynVddUMWnFgDiWP6BUoSaB9YDbvvqzgeaY0+lbjHnd3MDJ3yrJn/Zw9OJVrj09IzpYUEwOjptWWp2rPFv1FXAsM2n0J+xGXLoGSaeozml16+FHSHLapLUTlwKTvLZxQRXZlYvNd3cECRSCBgQFlsqG2N7umebdcl45Bhqt/AGifyAPja6kl69UsT3GE8i2zy01uFsLC9p9UpCJXsTb8+shtvIxT+DxmfVbSaWUgH3vK3YlEN/v3ZxoZKeSqid3lpTRLtNsMZv+tti6Jbstyz74wZuHBgQK7Bj9tMb3lTwvXA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=huxzAgtOfR8eufcHlwd/FrJVMvnlcg7jp5zNfrc5qrM=; b=Ojdznu8PRfK/bk0MaoB2KFVlg67giuQ8P3N56RNmnOSkNdFtyiB4Pivkks7EDmnsmiXUvALo7mo0Te1ojAYomaiJ3JIu4qeb6GCxYxabgabuNkCcqLr/Vap5ey7j1qZxpFKzP19r/g58Z/B+P4q0LtwZf5yyoBsmu2XcqJYXylE= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:13:36 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:13:36 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 12/15] PCI: imx6: Clean up get addr_space code Date: Sun, 17 Dec 2023 00:12:07 -0500 Message-Id: <20231217051210.754832-13-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: 9e91e04a-d210-4959-9ced-08dbfebeec18 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Y2YDxLxjUMExj7DJPqfI2Fw0RmxNXHCDsf1wKoHYCr2S7uCUTkSgn/Hg5nkfvHaG7Prk5gq13Z4HV3rRK5Z5J8x5fU2WWQPfzkprbdTjvqZDzsuKypUkFtX0MgdfatJFQcmY3cY4wvQz3VBOQ76MP9gqEtTACJL/lgjhb2aT5Ij0idkPN25HGYuPaWKPV+BtooOZLmBCROvR8nP/RNL/BGCpzlC5kwDTKyvoacZb6QFd9qkC4Um0m54aPZ2rEMWX5VZzaWON1abcfDnRGEiJAX3eFOktKZZT2QdhtSrlOlJS490PnozQ+jfRkrkD1fmEWwzTT9rv7fHsBhgmyToLdEp7xHLw6k7hF/GJD35+dJeETHAn498+StAZ3aeaPldCYrpzvuK/A7ZqxULdH9PBc8KbYtNOHC8VulFcLVhwWKwCDcujjwe4dkjACuhCYGh6GFMVStuOgGSZDmRBk5LJTXQ4phW1uqrX/DM/+AK4kUKPJuKwnkvedVBsJaM8Qjc0TIo/TpYrfz3vA9pISSLB9arvxq7/bjo8uovqFUFYSK2U9PhvICfZkfMcSDIRaPZbwVocD4NOwUETmXsHJUnxyfI9MhYFf77ebS/B3oVJ8iLXFF6N1uZ3oPZSNuRX7jHJ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6666004)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: IJ3j7R+LR6ONaqVlybREoKWZAnkIzGsQT8Wcn+Fwuh5uuCfVnIEyD/W7ThRxZzxKSDQJ0mc2YIqSTZyD7JRyQHfCV7HSHIZBl4kRNtRyHd6c2F8fPNFIJbGPAA+ZXo0rTC3cuQ4jxj9KiIogufGnt6Vqa04S8KY0Jbl6cqMwG9Bt7WGCdnhSINVTTuS5j78fWFFvGQEfnMbvsqbMAl1Z10xqFW6thmFNuhmbioHeFy4bPPlHZO6r5Mvlrvh8AqgNvvI3XCV93DckRI3HD3SyZY7qASo86gqkHKdTUz8FIvs0aHImoJ1GjJtDsy4VDevkjGhtbhaHoRn+IPawL1UcO4ZOWsQYn2kOlUlP9VTx4Z69wrktBDNBz/YRADByK3adVxOv7Pi1Nm/C0421au++OPApNyy+c6ldGDDTy8PmG6oelKWLuSWyVx+fiNWQY5tHKDgmVDwuWQoYjQY+nX40UNn7U5ZrrYuiy0+fx95Ik6GaDb4H5DAPLma2rkT+52XQ4J6Q30UjuN+hmEmnObfck+DV5Bd92Qpe0pO5nfsASUl7HElX58Ho/yp8dAjRVdQhSx4LVlguZUy92CrdJ6RpKywjxN0v978gvxo3qrt2NXUg3zMlvERiwN09ADp+pJwQkkyt6CKL0BAtVXcMFxcFtqtwBNsUSOe//oGulMgT6HUz0ryesRbOOANYq21Aa5gSC2qpJya7yRb676c7mmgIOsFjxuyEWcNUqWuWHfuWU3bxhLSBFUxeCAGeLeFYJ6OG/sWz+FcR+m6jUPDfaOm9UMWMLD65ESfMcNb5YUK3gMkOVR7BuqmyG3YOZSvddFaxm1TiHrme0ZFA2dT3pDf7abICLucZRMQJ2odfQBemgt46q3fPCrB4CUdoU0RnVY5PuGQi+BpG7VCjwC7RCqxXE0mcBUW74tdV+ebi0I2jeInvYUzUpKpVQPln994yk99B65u6E4WtSIxSLxa7UYh50ibG047C7QuIZmVlY5HKqNVunTa9BjUwkkw47uBfwB3joVVSU7mhCaShiZ+Iq4s+quOfn7dROeqs2OEJW1f2JNeqOtu4MZW+hA4UCFmc9DfnLTcGGj/SkEAKjcnYdeMdL0sDBbs2U0T0LEn+H5vylMjf/8sXmdzzMZZTIS8qqPs4DGypFDnellpodpcCPo/+0nzMue9ZWnr0YC9QeKD95H2DujhnQu88XwMx3haibWxRybuJ3rur/uSttTfQWbNtg8bbaaMPfm1L/5dgFGkAsjtizgXuQ0N0WLcKRMA62WjvB/60i4px56B1x5cMP4qvYE5WhMFtDr9u3HdW9yzM34goPxW7nRlTZOe/0KHz62Tkzw90rmQSipKF22ltJ8+a+HkI2NJXj+OwQXIC65Sq/RtRV5+rwYBwGZLS+lRMLYVJsMlEV2gH0QSJxCn4IhOdslelctB5PLiYrnYoQI3DEz1Pn0wBnBtpjLm0BXZSwogD2+lkRbh2Muuuuh65vP8IKllVvm/oSRmuIczeK1w/xOQ0NpsUsLZN2bWA1Kxdax4++Z192eTAAh/sn+/q6M3UVcaQc6CCkDZgqvddL9h3C6c= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9e91e04a-d210-4959-9ced-08dbfebeec18 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:13:36.4830 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: wKsIdPfVxVdKMfq0RAGXISRzTrUYnqOA2rG4UiHjd6t4jCI5Mmp72kQMmDZJ7CUt6/v9R+dQUbxcc1uOdpDv6w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 The common dw_pcie_ep_init() already do the same thing. Needn't platform driver do it again. Signed-off-by: Frank Li --- Notes: Change from v1 to v3 - new patches drivers/pci/controller/dwc/pci-imx6.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 324c62cecfa5f..54b90f8576915 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -1080,7 +1080,6 @@ static int imx6_add_pcie_ep(struct imx6_pcie *imx6_pcie, int ret; unsigned int pcie_dbi2_offset; struct dw_pcie_ep *ep; - struct resource *res; struct dw_pcie *pci = imx6_pcie->pci; struct dw_pcie_rp *pp = &pci->pp; struct device *dev = pci->dev; @@ -1099,14 +1098,8 @@ static int imx6_add_pcie_ep(struct imx6_pcie *imx6_pcie, pcie_dbi2_offset = SZ_4K; break; } - pci->dbi_base2 = pci->dbi_base + pcie_dbi2_offset; - res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "addr_space"); - if (!res) - return -EINVAL; - ep->phys_base = res->start; - ep->addr_size = resource_size(res); - ep->page_size = SZ_64K; + pci->dbi_base2 = pci->dbi_base + pcie_dbi2_offset; ret = dw_pcie_ep_init(ep); if (ret) { From patchwork Sun Dec 17 05:12:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877028 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=RRG1Ti7R; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:45d1:ec00::1; helo=ny.mirrors.kernel.org; envelope-from=linux-pci+bounces-1115-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org [IPv6:2604:1380:45d1:ec00::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB5Y5xgtz1ySd for ; Sun, 17 Dec 2023 16:16:49 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 05B691C21AAB for ; Sun, 17 Dec 2023 05:16:48 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B3CC717E6; Sun, 17 Dec 2023 05:13:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="RRG1Ti7R" X-Original-To: linux-pci@vger.kernel.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2056.outbound.protection.outlook.com [40.107.247.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D8DFD1094B; Sun, 17 Dec 2023 05:13:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=W/s0gMTRqS6L0JWd+g+WRI7c4jhg8hWkXck2d0bBw/b2MilU3FYsnaZvnLsNoSB9h74REJeGck2lmdN9+Gzq2ccLi6JXiQ0/W5kkTdrpZPdDPRG42WBX9WSwgtR9M5znRWdk+8hUqO+FD+HHUQrgyOFin6wB8gArlJRXv0HE4igZsGD5QwSsbcyCUlQQu/BO1fPwsWZS+uyMWL1cuBE3C0VFTU5J9kW++1dWbk+kPt6LaXXzNe3amTyrUzf4V6SPL6I+kQtIOQ55eMi3PjJqhYDwEK4SfeUvg54ys4Z02Rn4xD3AXn7O1Ppq2d8xdfNM5I7mXFHNHayu5JLQ03f3mg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vaVaymDjBZxuN0yhhxY895cEC4CgIhCZBTzk2RtRaGk=; b=KVpfNIkQmeeLNu7N8dKpdegZdi2TSDZjv8IiCqf2HZCvSQJeUg9rytgjyhBfCHGVGln8ykdRQcPUhelNVoJa1IQd5PBr6H5lpmfq1UxFHS1hsjCHsIPPydKAIx/vI8/adbArbW5mFIYrLNClr3pqDtov9uk2IFYiT+TF1e8zpllbFts3v3UnPI9Ef1hIes+JoYkAGt+pu9S7STtd1iFT2s+p31M2IVfi1X5SW/5SuipwlR7Q2Cvm9MbthUBhOmcuZTG01FWPsIZVnhGbJDq//Ly+ffR+/fnzw4OZS4BFA/KRKadTy9hLnptlA7QzP0gnmeHyIPCG4Fycy4pIpKeXZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vaVaymDjBZxuN0yhhxY895cEC4CgIhCZBTzk2RtRaGk=; b=RRG1Ti7R2RVxIzv/JVT3ofjMG7RKXhXOvSkh06Kzv22+/pQtrT8PUieIRMHQVqoI0EfaE33Wm/7Ya2B0bKInnyW4EMk44wI/TtIx3SXaaPzy6K9v2m75jFVLHaswPddxepQ8dg42MnxsHk3NAKc2N8SswOD5Vadf1ac7h900CxY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:13:41 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:13:41 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 13/15] PCI: imx6: Add epc_features in imx6_pcie_drvdata Date: Sun, 17 Dec 2023 00:12:08 -0500 Message-Id: <20231217051210.754832-14-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: ccbbbbdb-b094-4bc0-6409-08dbfebeef2b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: FVVtuhI5wiieLW7u+D8A67s2q4uIzUiVKi93/BtPIQDcYmQRi0/4wGUn1tKhSo357lK7LYhKpU0vHZEKNGe4H0D7Wy+GIKLO8URfXUK8Aw0lHpMt+JOtf4MzDkrcj0jG9gp0K37MUgrs0hLJXVmbORN66h1g/ADdWRdmqek1cz9HfR5vOXVhmNCMS/BhMAuJ/QWzRWYdwXIuOhikASaGqJbXIQ7xObgSMmMdBHwmzIDUP8Z1VlW7x4rFwc809gOcAy/KxGp8IHaulh0R7QdB9OATsaKjQ2fdNFr3NcSgro7HqR+e0gxbeI2j6uSCK8XogSk66jtS9iyerJgVtePbW217bBnDxJxHrXx3JnDdQ6MaQi20e3RKeNz8CvN26CUEupj9wGue7LqywZiqH71G8V813DiLdovbaVwZBoG4bOAsKYT2J8Cq0re98zvcfjLsl2a/kP4RJx8Ww7RPrQvEB54Qd1GTJJJYO8wfqVsaJg1miV/dCDvdi7Jt+LGjpccAwbCMIMbSQSNqcVbGTTSQ06OcJlKupOCnnSeC8OD/qYydco9Nzw4ujIZ4c/azsrhe0URVbWjuGMggXr6WcKJPlte6ZZGG7dWRqaM68VO6bLXU0sBYl3sykiE7E1VgZ8nT X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6666004)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(5660300002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Gue2lDNCKXWiUkuBp2VhsXyqs/jmijfFrG8FhX3lD5irm+y4jTwfyT1rUmy2vH/uEuxjkB8PNn/gre+n9yr4Q//7e+cRJ2R943VRqD7CQEfmT23e60ylP8oSleqTn/UiwBdYfNBfGRX6Kyj7+UskFluVLVKeyXoECsuNUI3bcTEs1yAcZl1kpH2+f/pCvrtdzMBs6X+5NaI1jaSmolJwaOMFe0qUVfp4++PYqM07ugKJfyNkfZMa8d/h668qmSck3taBOXDkIqsw92y8m4MIeriQG21uMwkBFk3f8ZUU68UbO+7No0h9xeTGG/82iFRaWEgC1O0rioqVLiRGm/kUi/m12Nwv5inFSI+DH8Bk7rXR82irP2ymzy34hJKf+RzA0arXp2/ZeurJ8wyxJJjrpR+fMIacAA3qnJpiC1kUfEIsLo/V5Yh/WKjrbo3K8a2C7m8AHM0B6IW7wG833cVf1kgBMs2f+SCHfstGo0d/aNIDz2I/T4QTuCSLf6tJ3QYkYj/qEzBxxIAI9VBHolc1gEAnIncXTdp+9LlyH3eT6b+CBUv2Cs0fV8foYitiCfCNfm5DK1RJSoYot4W8oQlwOEvNbfab+yAXcqFC+IlqLCPNEOQvDPa1E83esHnhi6SswLFe3JxUGOxzNKA4PnWzMUBpiS4flw2uSXQII8Y6lP9BDWj6Bf5iI+ZSXf5OzrwWvpZDLlJ5Ik/DkJEwjxSZa3iARB6qHbGlA8hn2Lyol4KToso/OcHHqlgwhXuEphjF0D1L/hDxTNfRlH7fwyEyZwKzKHddJvnUsPtOzRlYLNHo0u1Rmzvqcz80y0koIx9KqEVvtQD1AbjyNVMZkADA08vzw3fIu8+AIbcFSVg8LX5pTMYanK/ECSvT1c9wfLVEPkV18ftLaLJ3YubGDwFx1TwtmEDkR9gonKrSZxBjL8dRn/kG6yokm1nCPoll4JK5McuijSDRM/yL0g1rOcKp2flI7dWBAt0ckW98xAf45xyQC0nVB+ONPGoEPKxfNzDSyMeE4CXjNsqyu+L1gnL4TGhFsf0ZwZQJno4fw3/rWe4yvlcM/Fst/uBptALyEvIK6YaAVeNWiKfoNaVcaOtCsF/Jig+V4Tzm7FUu5FjiBtZGas/61zuRENp46nZKTw6F8QBWscnNqta4z7LR0O89U2bbjqKJ3+dfENPvELIvD3KSldOEA8hYeYMJV404883SY91JtIuc5Fo+iRO8ugrQzruBM7nAsIYtSRf/YXPpxntxQvnUnAMuaJlwRow7yDb/9zsiIfVQBYfcbgJ+eyirYX618s3jbTCNEeetSbJyFUMWVOtdyXvTiHSppySLEu9p4rmG9wVgG/xW7lFZpkipPNFgGwUXoiglSlUy5eQoZoeR9n+6GS72+Z6wZA16x0R6xqYHQCJALX7QOnVnFsNvl5SpiNM/bt+3+dnZwAmmI9f0p2maluzimAbLD+fmGu9AMH9Kma3XMj/UAkVa5oTieqAGlfVF3vqAVLYcBinNR1IkJbH9epiV9LaF0cEmeaUbo+7+/qC1vdlo+lTrvQylbIEaaNxXkJl4KfdbkY3MJss= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ccbbbbdb-b094-4bc0-6409-08dbfebeef2b X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:13:41.4508 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OWUGO1xfTXJxji05gIvgf3bqmltgf83j3qV7d9XcRJwxbfg78LPg9bpQfmtL6SR7qwAxkNDczVMiOFOHpB4pkQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 The i.MX EP exhibits variations in epc_features among different EP configurations. This introduces the addition of epc_features in imx6_pcie_drvdata to accommodate these differences. It's important to note that there are no functional changes in this commit; instead, it lays the groundwork for supporting i.MX95 EP functions. Signed-off-by: Frank Li --- Notes: Change from v1 to v3 - new patch at v3 drivers/pci/controller/dwc/pci-imx6.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 54b90f8576915..8f7b1533e2869 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -104,6 +104,7 @@ struct imx6_pcie_drvdata { const u32 ltssm_mask; const u32 mode_off[IMX6_PCIE_MAX_INSTANCES]; const u32 mode_mask[IMX6_PCIE_MAX_INSTANCES]; + const struct pci_epc_features *epc_features; int (*init_phy)(struct imx6_pcie *pcie); }; @@ -1065,7 +1066,10 @@ static const struct pci_epc_features imx8m_pcie_epc_features = { static const struct pci_epc_features* imx6_pcie_ep_get_features(struct dw_pcie_ep *ep) { - return &imx8m_pcie_epc_features; + struct dw_pcie *pci = to_dw_pcie_from_ep(ep); + struct imx6_pcie *imx6_pcie = to_imx6_pcie(pci); + + return imx6_pcie->drvdata->epc_features; } static const struct dw_pcie_ep_ops pcie_ep_ops = { @@ -1530,6 +1534,7 @@ static const struct imx6_pcie_drvdata drvdata[] = { .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, .mode_off[1] = IOMUXC_GPR12, .mode_mask[1] = IMX8MQ_GPR12_PCIE2_CTRL_DEVICE_TYPE, + .epc_features = &imx8m_pcie_epc_features, .init_phy = imx8mq_pcie_init_phy, }, [IMX8MM_EP] = { @@ -1540,6 +1545,7 @@ static const struct imx6_pcie_drvdata drvdata[] = { .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, .mode_off[0] = IOMUXC_GPR12, .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, + .epc_features = &imx8m_pcie_epc_features, }, [IMX8MP_EP] = { .variant = IMX8MP_EP, @@ -1549,6 +1555,7 @@ static const struct imx6_pcie_drvdata drvdata[] = { .clk_names = {IMX6_CLKS_COMMON, "pcie_aux"}, .mode_off[0] = IOMUXC_GPR12, .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, + .epc_features = &imx8m_pcie_epc_features, }, }; From patchwork Sun Dec 17 05:12:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877030 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=lt/pn291; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=147.75.199.223; helo=ny.mirrors.kernel.org; envelope-from=linux-pci+bounces-1116-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org [147.75.199.223]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB5w5MR7z1ySd for ; Sun, 17 Dec 2023 16:17:08 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 612101C21ADE for ; Sun, 17 Dec 2023 05:17:06 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B091A3C2B; Sun, 17 Dec 2023 05:13:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="lt/pn291" X-Original-To: linux-pci@vger.kernel.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2088.outbound.protection.outlook.com [40.107.247.88]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D227A1097E; Sun, 17 Dec 2023 05:13:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GzWPt2c8OzduxJZW0hOBP06BN8FLiVWmMoEmBuuxHZ9t4BZpUv3eARXFuyypjIbpYRJZpT0uPjEh22Kb018yo38t3VIDDZMDUSJ4QzXfyc0xOGj9iY7QLwBxnYYFhXcqvNEi8eWn4hZ672JrkywB53mgqz7pnAmza2u3FAfM3gZlI8oYF4vRec+MgNpy+y2zWgGYQDQUpH8I4gC1VDNXIDUF2jz21AZXaseFH/8wzhgRpRh6Xl7US1CWCKhGpnVQr6nUFxyX6QQPP59PuML3MBEhw0MVMawAxLeT1a5kDYM/qA561jPlsLBn3ZHF78WfQUwnbexsm4M86AuZQ4Ya8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=63F9NxfXq3HmQYGZBPKTxEqddJisXBl3IIB1cnlRj6M=; b=C52CAR2HGOcHZKCqVjkCSfSmuhkddBoZdU+4w3s0ua2CrHzjw7zBd1KFjfIZCkaZ5hwiiWw1ek5lxqS+MAMOquFIeP6v/v6eMzYqjfU8R/Qy0sVh0TlzeSS5+rO71jummOnWwSdOYryQnqSybozy128bz9NnTEeLp//DLHtpDV9iek408MRU5nSbUkOyWvTJVChw8emBGfLDN5vIMJcC7GeEbAc8TFE2mUdkjrnsIeeiVlDtZwUWFfcIBJhT7DL35ADCBxodMmtljBt4+gCvNYA2FMoH5uGlhAwt/8m1+v7v5G0rpDUiL9mWA6EJwJHHhd/4rRZKNe7/CLWa3CD3nA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=63F9NxfXq3HmQYGZBPKTxEqddJisXBl3IIB1cnlRj6M=; b=lt/pn291ACq4zRotcITbAXiXxP1W4OzTOG2LFPuhd4593Jdu6DSoc6tesTFfmXFJreEZSPmHuwN8mFUqiqHUZq1scL5WGScL4gnrR6wgPZGLrJBhmod5RSFleWnbD5TKDOWKvA3GIhA9MH/W9nCsLQXqy5EywITNjJIpNxGLsZM= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by PAXPR04MB8174.eurprd04.prod.outlook.com (2603:10a6:102:1c4::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:13:46 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:13:46 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 14/15] dt-bindings: imx6q-pcie: Add iMX95 pcie endpoint compatible string Date: Sun, 17 Dec 2023 00:12:09 -0500 Message-Id: <20231217051210.754832-15-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|PAXPR04MB8174:EE_ X-MS-Office365-Filtering-Correlation-Id: 25ebefff-68dd-4507-538a-08dbfebef226 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yKzATpVmUoZlDvZHiiQVHjpr3ReLc7d9fSrq6TJ2yxL/OB8LKcP5BubqJUkUTsmEh4EyQNLg9VNFUKA7kEHNi9XJ5ydnaAFCoyNZiJ36NB4xeK2S3QPAs+GSOOqMMRRB1uBO0P21/qjjhv4rm0SgNU++d3kf8OlcQasnucod2/+BtL/Ykrep7VB3HR2oyquJ7fOy6Aa6lFnTTIOgFlhhSu3IZb6gLcRx72UlULEllyMcPn1Z/Or/YEBNM3k28rGgdj5KbfQCyy5vCy1/W1WblPXXQkmYDkFGcczR+13pCdh2Gx98CMMir41z+6kcGKjogtpyDM/L1ojHHIjFYCTqFHyNapufUtQlp1o4I32hXAZiRaxNK6GCOgLCk0aIU39SwnXCRmWIA2jDgdOd2Wkf8myKbvVKTequrKxD8flFVwSvQFGN2J/l7a3zpnQ7ouXioEi7LKHccstWA4T273Ws+lxuVOzOLiVFgPemFJzHBu4TRs+GWYd7S3jO6jeJtQVOvZSo5NdLgQZXAesmikh0/rJOWS8kYsrQXBD0n/N9FnCq2jszKUBLACEeipwGxk+URR30ft8/z178vUX4itSGRKd2w3bF2LeSii1HO2Gf7mC3TjcejpX2wjHTiZxwgcdjZG/m1YwKuPxxjL9NabrYXA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(376002)(366004)(136003)(396003)(39860400002)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(83380400001)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(2906002)(66476007)(66556008)(6916009)(6666004)(6512007)(6506007)(4326008)(8936002)(8676002)(66946007)(316002)(41300700001)(7416002)(5660300002)(32563001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: NO4mXsUw4A6lPUxrn/J0w46MWuEixTNhHPSAvWEf4dLFtXkfzHNde8iwBkbqfyVI4KvziYgFdfefLZDiIOvAQECAuxR6B6KDpCGObEmVTczIR3heggTzhdyR3G8+nUgjcuXlqRAhEFaZsy2CsDTgTVkMwAkpJjJHCn9Wj28bYhBnnMS9cBR9BpkmwMfYxKZkSTNKeiGDB3JgRW9RYLTfeLo6vaFCSw/ntxFKP4nqrhyozIgmSAf3cZN/Kki/2bSwaSl9BNZvJ38Hf+2hF7cVl3xN0Cmywwsp9gCUXX1EvKnKsFCe6XjRGgf5XmLHjvyxrp0vl4bD3EGgRwL20ZOxFx8MU5TChn7m1pKt479aRBFkBJQ0eD3NEI5PHyEJXxGTRIIKnXbaw6+oP+0aIPvG2BQZMoIkEwT1EJ6d7a3MB3PFI9V54tyRLOw3ve3u/VMcYe96buP8drgWSLvuNPcVYre4oHzgfZUrmYJ9bRO7N3MTG0QbeQ5OLUH1O1oq3WT0CrOiOUq8ZCPELfT+05+aIiCpmPolu+iMeXNLXRH/qhJl5Cnz4Hob3LlZ/0uGprnVuH1NfykIOjKM7hIIwvuNUKA/JNouRcHHb68q2/JYSwhuxd1js3YBCYm+tPWwd8Nxp5ISdngokSAgMai5SaxUCtVYjegjBzl9FyF/GtC6DRDPmyoxuQlbyOezKt5i4z0immBOu49NRHS69xch4/GnB7HGQLXu7eILeSNTbGF0i97wG2JN/pXNDcT0nNS3eaFqHDFgsxIoiO3VVE3JbXn/tVh4L8uTnlOKtad8vMQYRnLoUVNlFDWNegV/hIb812Dk3EUDriP71x8o8KuvJfmme3tYTUNwnPCC/0lTJumsN4Ke4apQK+7Kg64hEyMlabmPYLihHmmfZ2r/uld8NigELdTWtfaQuPA+1QMy93DebEkWurp7932G5jNoXpU/Ume/D6R9u/FmPsSmykwMDx8bC5SBKG5CIl8gltiV2hqc6Z1b9zyatNlkPXjlV2WqlHaErgCXqo6euIIh1IRX+wrs/Ifav5gLtgd5xd9NxvrTmKaJAjd6zafsmR7wr7tpfQX4y/R1QY98j2eqZhywjQx0vMXtLDdNJO22dv/6eseYSylMajYVL/WmYc9Jpx4BUE3D5f3tBWTh9beV4nsKslapT7rPanXuDZUV+oyygFiB/Mq4N+2/9dOmH5eX0TaUSaTuNFszKrd9mBuEMz1yRhCW1taEKNLWyJnZ9zAVITXc25CKbKx/wBmRtAvYq/exqvN6olQoNmf3jUXhgrEgjr4x5NhOS+an0gmCjLJDsNWW+M3yiKTmaXdhZWgAZiZNVusJnw/24cxMleU0lPshqsjDcqR4miEUeyz5YmxeswOu1n/R1pbmTz0G5e9pidrC1Qw1mS9h2HfaAgQraWyqhuwd5cu9EUFCgciC3J4mr847/iB5E5XbWj2WgojCPmQx/OlPoJrY05c40ESnWR348i/6jB9MKQ++XECKXbqFfJ9xhdgfL8nvyqojGlXUE6fBN5kWSyJYAaQW9xlcMF8EpdlHCKocS27e1wCazilojBwYEmk= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25ebefff-68dd-4507-538a-08dbfebef226 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:13:46.4491 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 3Zi4DUB+PngffQo7/qI+EdaoFfGLvFYak4Vx85fhA9uoLSlWfCwIjHVTj7qPUNi5fJmxtiEU6v1WmwsR7epicg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB8174 Add i.MX95 PCIe "fsl,imx95-pcie-ep" compatible string. Add reg-name: "atu", "dbi2", "dma" and "serdes". Signed-off-by: Frank Li --- Notes: Change from v1 to v3 - new patches at v3 .../bindings/pci/fsl,imx6q-pcie-ep.yaml | 52 ++++++++++++++++--- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml index ee155ed5f1811..be9ea77ce8548 100644 --- a/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml +++ b/Documentation/devicetree/bindings/pci/fsl,imx6q-pcie-ep.yaml @@ -22,14 +22,7 @@ properties: - fsl,imx8mm-pcie-ep - fsl,imx8mq-pcie-ep - fsl,imx8mp-pcie-ep - - reg: - minItems: 2 - - reg-names: - items: - - const: dbi - - const: addr_space + - fsl,imx95-pcie-ep clocks: minItems: 3 @@ -62,11 +55,46 @@ required: allOf: - $ref: /schemas/pci/snps,dw-pcie-ep.yaml# - $ref: /schemas/pci/fsl,imx6q-pcie-common.yaml# + - if: + properties: + compatible: + enum: + - fsl,imx8mm-pcie-ep + - fsl,imx8mq-pcie-ep + - fsl,imx8mp-pcie-ep + then: + properties: + reg: + minItems: 2 + reg-names: + items: + - const: dbi + - const: addr_space + + - if: + properties: + compatible: + enum: + - fsl,imx95-pcie-ep + then: + properties: + reg: + minItems: 6 + reg-names: + items: + - const: dbi + - const: atu + - const: dbi2 + - const: app + - const: dma + - const: addr_space + - if: properties: compatible: enum: - fsl,imx8mq-pcie-ep + - fsl,imx95-pcie-ep then: properties: clocks: @@ -87,6 +115,14 @@ allOf: - const: pcie_bus - const: pcie_aux + - if: + properties: + compatible: + enum: + - fsl,imx95-pcie-ep + then: + properties: + linux,pci-domain: true unevaluatedProperties: false From patchwork Sun Dec 17 05:12:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 1877031 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=nPZQtDVJ; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=2604:1380:4601:e00::3; helo=am.mirrors.kernel.org; envelope-from=linux-pci+bounces-1117-incoming=patchwork.ozlabs.org@vger.kernel.org; receiver=patchwork.ozlabs.org) Received: from am.mirrors.kernel.org (am.mirrors.kernel.org [IPv6:2604:1380:4601:e00::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4StB6H4BDhz23p9 for ; Sun, 17 Dec 2023 16:17:27 +1100 (AEDT) Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 1FF581F2254E for ; Sun, 17 Dec 2023 05:17:25 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 4701D3C2D; Sun, 17 Dec 2023 05:13:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=nxp.com header.i=@nxp.com header.b="nPZQtDVJ" X-Original-To: linux-pci@vger.kernel.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2070.outbound.protection.outlook.com [40.107.7.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8A18911711; Sun, 17 Dec 2023 05:13:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fMOdLqcSpJSkDHTXqXvyrlDcbQ1cUcjNT0z21s9OLicaHVzbm+Lf4JpA+xiMNYXZyVfC9frANjYz1dPcN6c4LlIwiDq7mNI7FFWjrcQD5G+ZCv29WiLJaTVtq4G+n3L7HdiKagnxg7DybG3iQ/vO5Cr0lTmIIeGAIC41WcFbCefbKVG/IwSthwmlSr8IlCEH41OPi2556r2K8x59YONQIkdpbKbAbRapcZHTLTu7VQsyhIKHOgWZNgWQdRxBvN5SbaBnuAkXqK2L4G0WSlaMk5/htuPXguChLOt7nC8hxRrdCbCJTjUFMi9ixIsYzJ9ChcSY3Lx8lvnOV1408nNhKw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=p+PVnIpfl/eWyOmIFEMJ7rJLgECVqXFQT4MO169xwno=; b=KPQyCjfq2Gu8L9DSwHlO118D5EcpC7LobDtl5bpMtS27HAZD3nopAe9/0f66oju//8c3nKlpZ1Z0u+V9++8dekRbliNtYvx1vPZ4Q85NeKjE+AILKY++EMLIMHA22EnHo3jAdnRbDVfYdpch8B1K2fWDoUSL+GP1KfC8ntvPD5ciB56y8jqLZAIAvwYADr9xQWoRHBudpTn9yUuZQqutn/hwYBW2IZt4oR9QlQnysTN2kivLz10iVWMxStq/M6e5B2oi4aHN2r3kd7B+04YelrpMswMfDNacaxyM/mpPLGANjRizGdrGuRmLh48SdzmWY3Yv6OEAsv0LepJcCj6Hkg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=p+PVnIpfl/eWyOmIFEMJ7rJLgECVqXFQT4MO169xwno=; b=nPZQtDVJSdBOxbnCqv5uiYUxDlxbVqaAF8cNvG8B9wpm2t/CayDQMN/RLbqOcjARIG2iT7jlXKZs+UV79HUCztEFOLV48ETfE0i+3OkHppywLZvxgwqlfnZpMe9P3sEwHlSXa1kiJZd6u0YVjJjQU4UUAjjLncPS/xqB5F0yS84= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) by AM9PR04MB8415.eurprd04.prod.outlook.com (2603:10a6:20b:3b5::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.36; Sun, 17 Dec 2023 05:13:51 +0000 Received: from AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40]) by AM6PR04MB4838.eurprd04.prod.outlook.com ([fe80::95f5:5118:258f:ee40%7]) with mapi id 15.20.7091.034; Sun, 17 Dec 2023 05:13:51 +0000 From: Frank Li To: krzysztof.kozlowski@linaro.org Cc: Frank.li@nxp.com, bhelgaas@google.com, conor+dt@kernel.org, devicetree@vger.kernel.org, festevam@gmail.com, helgaas@kernel.org, hongxing.zhu@nxp.com, imx@lists.linux.dev, kernel@pengutronix.de, krzysztof.kozlowski+dt@linaro.org, kw@linux.com, l.stach@pengutronix.de, linux-arm-kernel@lists.infradead.org, linux-imx@nxp.com, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, lpieralisi@kernel.org, manivannan.sadhasivam@linaro.org, robh@kernel.org, s.hauer@pengutronix.de, shawnguo@kernel.org Subject: [PATCH v4 15/15] PCI: imx6: Add iMX95 Endpoint (EP) function support Date: Sun, 17 Dec 2023 00:12:10 -0500 Message-Id: <20231217051210.754832-16-Frank.Li@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20231217051210.754832-1-Frank.Li@nxp.com> References: <20231217051210.754832-1-Frank.Li@nxp.com> X-ClientProxiedBy: BYAPR04CA0007.namprd04.prod.outlook.com (2603:10b6:a03:40::20) To AM6PR04MB4838.eurprd04.prod.outlook.com (2603:10a6:20b:4::16) Precedence: bulk X-Mailing-List: linux-pci@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM6PR04MB4838:EE_|AM9PR04MB8415:EE_ X-MS-Office365-Filtering-Correlation-Id: 6157824a-03da-421c-e0c0-08dbfebef51e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: oTGW6ENgUAF8M0VNsEY8Z8rnDeW/vkg9v2R/SyXqVDziru+QvhgiVcLKcLgbvobv0DCYYxE3RCwbzeHNUUci135IEW9ppMrxG61im8Y+DOlCWPjAUfk/iaqO15O4xNN/Au2Q65l+w2rxGDjY/4YwIm4ZUrKMq3LwXWXRKwUWGpWApt1NstfdQyzOcCp5UcKHfJIQmmncm9R+8vP5dv1kAcmeTQ5jvC9YLQmdzf9WHdE4h/YQTEQKeRV58Rmh7r3WLg14kGxWUlBqHa1HzFw7xn1iazikPtKKHGlF3kO3innE8oA1fWtKpAYRqP26v6IUa/lNgupC3I+J+vCL8tXVSNbUEMv8ZZ+2x0usCsD0CeLD/ukEaAVEbyX/hgW1tUlEo92EZxCrxu9I3eraDiiAjmz/kCcAG48Ruof+Bp5R2CiBL3oXuDfexxozDTExs6rrgyfBs9b/YB8/Y6TJaKXIeTjbrkhNADowmQ9ijutsHtmeRCikqGuuzUgQ7L1JVy8CAZLUZLyyeWVTwH4jrWbMAq6MWJ55VSmRnPghGwyPU0bFf414316agDu/PKJXkC6tzKSgRuCpKERzosMZ3Ns0TZFuETUpqJEAuLladka2GcPvdorAiG/x5RwQ3pwXCx2B X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB4838.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(366004)(376002)(39860400002)(346002)(396003)(230922051799003)(186009)(64100799003)(451199024)(1800799012)(38350700005)(86362001)(36756003)(38100700002)(26005)(52116002)(2616005)(1076003)(478600001)(6486002)(66556008)(66476007)(6916009)(6666004)(6512007)(6506007)(2906002)(8936002)(8676002)(4326008)(66946007)(316002)(5660300002)(7416002)(41300700001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: PmuLbqTbO/tLw5ild+I67jAo6lcTVw6Lj2EKbK5jT1bJtJXtIQ7blGHeMl9BwCC1NabzeXQKieCCQ/TCCxzvSeL0o5ZOsTjtv2vWImE25IIU8IizOTdnJkFDoQVBHvpuTIsqhwSX59H6g1A1/WekdPP8P1YIJSxgrOSPvKKSgC3X8EldBE/w4+17OMnFVWQGXUdXSsJShhPnubWL1vEIqtgwg+IDEfrO+x8kG3Ln5v4pcAmBb3KBIjCV1QBn4tlprgIlIM+IrGLD32nyZW2O1PEKtMGObGa0G4wONZk1jb3WYylV8AY0nHwnQJnRbFuzSfQAu1jzcwpxOBAviFEy+0d/+XVVa0rW7i4IbVMvQprch/UYU8JRoTlnRC/e3+mNYuYYyX3Ahm2rPlQOmJJJZ7Bt4biwbCUrZuysI5iLVWYUsdNiVrioWRFqhNnwsDmKBh4FCxuer/yEsCSE5uuZ06mNlBwBP3ssvW89CWNRD39gP8BsHepy4jw7Y1RJUPeNhEPz6nuKr03JqvZtp4jwucJeOgVoW8CSKV0yxZb0lJzKtNWGCSIBdem4aJB97i3l3k1OLed1V7ZXGqf46KjdlsABgD4Zae+y9q4E7VfeKRVoBxBH9fyyPqgKZP9yA5paY8zI117VajDqFh1diQdQZ3DxZbpZhOsW6Q6lNxHk8z5WUq0Kjxvj9IympIypC5HZBTxRHhs100qYOe7s52OHHLumraNEPb/0/4O6DtXnJIbJplcKiDiTht9bHXLd/oki/LC3S3JzZAMzEvwlASdxgsA0VDj+Ras3flJmA2QF+4e77jDDCwN7eJwWqbrGwfMKyfGc29uptu6IPuADZgCd6v7EA1VoUpA0bW3T8ZXXtZg0MbibRl/VHTbWbne5L+0lXrJdhpGPYopahFObeZY2pNaMzS16ri0uEtfuJAnsiIVz40Ve+SyAYEweTAZtuWY52o3WVw8GKTHJ/QaD7M5wcFoK1/dWWTyylJNUIZ5qY4EVI+sifvG2q4XWuV1IkDR9MS9/hr5na+uGfcoBWJchCR96F046KI+4ZEAB3ZU1737A+VkLH3bcfwRQPXGSvqKN9KYi+Qwy8G4PbLVpxO5uHG1ngtM6ThnD1EXLdOKJEFMbbGtUKKOYAdFLhOispBxWPGhm/Cu+RVe4GDnPXHw/IwsCCgQpq2PnFqx1+3+WeQHTbKFqyKM5j7kf/qfuu6WuCFEuYAdjm4kO2VxJy9PfIzQlozrYCheakkm6gYbpg23OppzKzUjZj2VCR6urLCXYKD7L6k4Sr8EtiAVhl+kr7UGhKp8FxwL4x0Sp1bB4WtVNZynaz25IYglL6NvC+wHmxRVf5KeffJIbLKTojOCsaSL7xPWGdrn4oSj/iQWiqr9ReKdtZsLebPQGeihnOasJNt3bY36yTMHFL9ShOwDGlAYbpP2cjK0AEah61PIvshOrxfW9YQj6qM6aV5IpT/ZoFv33Wk9SBHOS8VVtkYDHdIDqCz2NxTErmbboeDxCcjA4z9XW3GkY56cqPKVsRBkEEhTw2qUhz/17JM2Ejxyjont2Q6h80J/jcWER0ysFJk4= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6157824a-03da-421c-e0c0-08dbfebef51e X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB4838.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Dec 2023 05:13:51.4345 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: qX6K7oHs0JcuTweJhAKs5f1BVotjeRJObmZD2DEqE80dQk4hsbGUJtZPDth+AkWV3+JX49DRUQ1n1KDmgysnRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8415 Add iMX95 EP function support and add 64bit address support. Internal bus bridge for PCI support 64bit dma address in iMX95. So set call dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)). Signed-off-by: Frank Li --- Notes: Change from v3 to v4 - change align to 4k for imx95 Change from v1 to v3 - new patches at v3 drivers/pci/controller/dwc/pci-imx6.c | 45 +++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/drivers/pci/controller/dwc/pci-imx6.c b/drivers/pci/controller/dwc/pci-imx6.c index 8f7b1533e2869..5518c1b0d4fc1 100644 --- a/drivers/pci/controller/dwc/pci-imx6.c +++ b/drivers/pci/controller/dwc/pci-imx6.c @@ -75,6 +75,7 @@ enum imx6_pcie_variants { IMX8MQ_EP, IMX8MM_EP, IMX8MP_EP, + IMX95_EP, }; #define IMX6_PCIE_FLAG_IMX6_PHY BIT(0) @@ -84,6 +85,7 @@ enum imx6_pcie_variants { #define IMX6_PCIE_FLAG_HAS_APP_RESET BIT(4) #define IMX6_PCIE_FLAG_HAS_PHY_RESET BIT(5) #define IMX6_PCIE_FLAG_HAS_SERDES BIT(6) +#define IMX6_PCIE_FLAG_SUPPORT_64BIT BIT(7) #define imx6_check_flag(pci, val) (pci->drvdata->flags & val) @@ -620,6 +622,7 @@ static int imx6_pcie_enable_ref_clk(struct imx6_pcie *imx6_pcie) break; case IMX7D: case IMX95: + case IMX95_EP: break; case IMX8MM: case IMX8MM_EP: @@ -1063,6 +1066,23 @@ static const struct pci_epc_features imx8m_pcie_epc_features = { .align = SZ_64K, }; +/* + * BAR# | Default BAR enable | Default BAR Type | Default BAR Size | BAR Sizing Scheme + * ================================================================================================ + * BAR0 | Enable | 64-bit | 1 MB | Programmable Size + * BAR1 | Disable | 32-bit | 64 KB | Fixed Size + * | (BAR0 is 64-bit) | if BAR0 is 32-bit | | As Bar0 is 64bit + * BAR2 | Enable | 32-bit | 1 MB | Programmable Size + * BAR3 | Enable | 32-bit | 64 KB | Programmable Size + * BAR4 | Enable | 32-bit | 1M | Programmable Size + * BAR5 | Enable | 32-bit | 64 KB | Programmable Size + */ +static const struct pci_epc_features imx95_pcie_epc_features = { + .msi_capable = true, + .bar_fixed_size[1] = SZ_64K, + .align = SZ_4K, +}; + static const struct pci_epc_features* imx6_pcie_ep_get_features(struct dw_pcie_ep *ep) { @@ -1105,6 +1125,14 @@ static int imx6_add_pcie_ep(struct imx6_pcie *imx6_pcie, pci->dbi_base2 = pci->dbi_base + pcie_dbi2_offset; + /* + * db2 information should fetch from dtb file. dw_pcie_ep_init() can get dbi_base2 from + * "dbi2" if pci->dbi_base2 is NULL. All code related pcie_dbi2_offset should be removed + * after all dts added "dbi2" reg. + */ + if (imx6_pcie->drvdata->variant == IMX95_EP) + pci->dbi_base2 = NULL; + ret = dw_pcie_ep_init(ep); if (ret) { dev_err(dev, "failed to initialize endpoint\n"); @@ -1352,6 +1380,9 @@ static int imx6_pcie_probe(struct platform_device *pdev) "unable to find iomuxc registers\n"); } + if (imx6_check_flag(imx6_pcie, IMX6_PCIE_FLAG_SUPPORT_64BIT)) + dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64)); + /* Grab PCIe PHY Tx Settings */ if (of_property_read_u32(node, "fsl,tx-deemph-gen1", &imx6_pcie->tx_deemph_gen1)) @@ -1557,6 +1588,19 @@ static const struct imx6_pcie_drvdata drvdata[] = { .mode_mask[0] = IMX6Q_GPR12_DEVICE_TYPE, .epc_features = &imx8m_pcie_epc_features, }, + [IMX95_EP] = { + .variant = IMX95_EP, + .flags = IMX6_PCIE_FLAG_HAS_SERDES | + IMX6_PCIE_FLAG_SUPPORT_64BIT, + .clk_names = {IMX6_CLKS_NO_PHYDRV, "pcie_aux"}, + .ltssm_off = IMX95_PE0_GEN_CTRL_3, + .ltssm_mask = IMX95_PCIE_LTSSM_EN, + .mode_off[0] = IMX95_PE0_GEN_CTRL_1, + .mode_mask[0] = IMX95_PCIE_DEVICE_TYPE, + .init_phy = imx95_pcie_init_phy, + .epc_features = &imx95_pcie_epc_features, + .mode = DW_PCIE_EP_TYPE, + }, }; static const struct of_device_id imx6_pcie_of_match[] = { @@ -1571,6 +1615,7 @@ static const struct of_device_id imx6_pcie_of_match[] = { { .compatible = "fsl,imx8mq-pcie-ep", .data = &drvdata[IMX8MQ_EP], }, { .compatible = "fsl,imx8mm-pcie-ep", .data = &drvdata[IMX8MM_EP], }, { .compatible = "fsl,imx8mp-pcie-ep", .data = &drvdata[IMX8MP_EP], }, + { .compatible = "fsl,imx95-pcie-ep", .data = &drvdata[IMX95_EP], }, {}, };