From patchwork Wed Aug 21 13:35:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1150848 X-Patchwork-Delegate: lukma@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="L9bJ2EzD"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 46D7vZ5jFXz9s3Z for ; Wed, 21 Aug 2019 23:35:20 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 7AF33C21FFA; Wed, 21 Aug 2019 13:35:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 1AA54C21F62; Wed, 21 Aug 2019 13:35:08 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 6883EC21F77; Wed, 21 Aug 2019 13:35:06 +0000 (UTC) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40070.outbound.protection.outlook.com [40.107.4.70]) by lists.denx.de (Postfix) with ESMTPS id EF9C0C21F29 for ; Wed, 21 Aug 2019 13:35:05 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CzRyoxLZFkXo+Rrtt1QsY4bB8WEv3NXgKUtLaRix686dmecGEvhsW3J/acZ/FyvmKseF0oUpZUgrRP1n5VpNImwpL0lc5/iiD/vhgZe2q96zfftoZFdggGpq8vybPFtANLPzbBmHIKyFP6yiFEQU+byHhVo8NLiMzCMcPJcdzwE6pecIAA4XGm5D3lF1bn6FDx1K9XhjkAwhgb9V86xgGYu3bLbyHw6UY6+hFaDT2YfWAzACZ6FnJsRtMEIGpGKr2R8JPeU+Fy+z8zFWdwl7b9thxjNlAAcBFulm2wntnxctTIENlOeTLnecFBz30JEIHrpiCj8OLGUQuVTT8DQZGw== 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-SenderADCheck; bh=bBi6fqrKI8lwCc+mAaA21BJwx5BfguKZXXAHTHhzevA=; b=B7lmen/65XbvAxXpMQc92WPU+MB5XrcDpZizxMhJ+SWtKy4s87VigfYoFohawyB2le6kEm9AVKTCr3ZnZu4mIp/xngqvGLkNIO4sZ9Y6v3nkjdZ6EjsPSdF5nTz7dkXk0ZZLk1H3Q4LG3uNYZC+JEHZ/JUJw0oEtXo1WkQpHItZZIvLQv4s6A0kCtFtgytOgHoFBqC69ObttEnfYApEOnvbyqDtEzNYkiReaz5YPUc6jg/V/02MifggtrAm3yLTUe2gJr1k055N3NDDCmI/kkIvWIAg2HG/TycVWSZYiqxzuE4igp3Rvgnw7Z1kvesQRDj3TRAghp19OSspX0Rm7tQ== 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=bBi6fqrKI8lwCc+mAaA21BJwx5BfguKZXXAHTHhzevA=; b=L9bJ2EzDmxHh/AtGwIIcpkDNUpc6+HNmrn+FMcgs6M/4NfvcncLRjmT5OdjqaHMA14H7IGvqdOSw/HjXwfj96maa8XLgzzpXN2RCOji5OaF/+GEjliZ6b7AwHpyRga2HF9qnH/Sp2cin3+Lc5efrN3VCI9C9grdM25NRcrkP+Gs= Received: from AM0PR04MB4481.eurprd04.prod.outlook.com (52.135.147.15) by AM0PR04MB4484.eurprd04.prod.outlook.com (52.135.146.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2178.16; Wed, 21 Aug 2019 13:35:04 +0000 Received: from AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::5d98:e1f4:aa72:16b4]) by AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::5d98:e1f4:aa72:16b4%4]) with mapi id 15.20.2178.018; Wed, 21 Aug 2019 13:35:04 +0000 From: Peng Fan To: "lukma@denx.de" Thread-Topic: [PATCH V3 1/4] clk: introduce enable_count Thread-Index: AQHVWCU8Ez0AwjQIn0iH5c3fsTW/UA== Date: Wed, 21 Aug 2019 13:35:03 +0000 Message-ID: <20190821135056.27052-1-peng.fan@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.16.4 x-clientproxiedby: HK0P153CA0017.APCP153.PROD.OUTLOOK.COM (2603:1096:203:18::29) To AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) authentication-results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.71] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 859cf5c8-8074-486b-c677-08d7263c5f42 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM0PR04MB4484; x-ms-traffictypediagnostic: AM0PR04MB4484: x-ms-exchange-purlcount: 1 x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:529; x-forefront-prvs: 0136C1DDA4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(366004)(346002)(136003)(39860400002)(376002)(199004)(189003)(64756008)(26005)(81156014)(14454004)(66446008)(4326008)(66556008)(2351001)(66066001)(6116002)(966005)(1076003)(5660300002)(3846002)(6512007)(6486002)(6436002)(8676002)(25786009)(50226002)(66476007)(7416002)(54906003)(316002)(6306002)(8936002)(5640700003)(81166006)(7736002)(186003)(86362001)(99286004)(476003)(2616005)(36756003)(66946007)(2906002)(6916009)(486006)(52116002)(44832011)(71200400001)(6506007)(102836004)(2501003)(71190400001)(1730700003)(53936002)(305945005)(478600001)(386003)(256004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB4484; H:AM0PR04MB4481.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: ZLdGdSMmKv0J5svSPhCyHFEtw2a9Hvgzs5SZ75rvd2dopWLrGBrhKdkMsqhorulbeMxdtU0tyL2NGqxnZjeINTGN57wGezatRf9BGw9H5AnII/hlBonglTds73IQs/OiM9C+626jFb0xNpBsCRlwpDybYEYDm2z7i5tJhOVk6RSuQnr1uXpztosHsq1PkXqX1MVB2xczXFDgYsX61ATsrUlo8nxBh4ppQC9g8dNnjqAks83bylSapshfNVkHfs2Eyq4BVCDbo3C27z/CRDoo3Lw6GR+sX93v0YjY4WsXzxTOSGWGf07cOcBWuMG/dlgo3z3eS94uBxHqP2kMP6YnhjzfNQY8Y5xkwMOkgC84DoWnH80gxzpXtYGU3FandMamZgLZMsbXdfgKz8VFSGyBCgLkXmSBtJZMWhA066PXdmg= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 859cf5c8-8074-486b-c677-08d7263c5f42 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2019 13:35:04.2204 (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: NHy/d9dfY+yDR22+2BnHgYzVXHyJLfg+f/eBK9wspXjkwGn2TaZESRkv5W8qW4CbcGlsIbH52Fua/tPEXdurgA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4484 Cc: "marex@denx.de" , "u-boot@lists.denx.de" , "mbrugger@suse.com" , dl-uboot-imx Subject: [U-Boot] [PATCH V3 1/4] clk: introduce enable_count X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" As what Linux Kernel 5.3.0 provides when enable/disable clk, there is an enable_count in clk_core_disable/enable. Introduce enable_count to track the clk enable/disable count when clk_enable/disable for CCF. And Initialize enable_count to 0 when register the clk. And clk tree dump with enable_count will be supported, it will be easy for us to check the clk status with enable_count Signed-off-by: Peng Fan Reviewed-by: Simon Glass --- V3: None CI: https://travis-ci.org/MrVan/u-boot/builds/574753709 V2: Improve commit log Rename enable_cnt to enable_count following Linux Kernel drivers/clk/clk.c | 1 + drivers/clk/clk_fixed_rate.c | 1 + include/clk.h | 1 + 3 files changed, 3 insertions(+) diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 39b3087067..1cf9987f6c 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -40,6 +40,7 @@ int clk_register(struct clk *clk, const char *drv_name, return ret; } + clk->enable_count = 0; /* Store back pointer to clk from udevice */ clk->dev->uclass_priv = clk; diff --git a/drivers/clk/clk_fixed_rate.c b/drivers/clk/clk_fixed_rate.c index 08cce0d79b..f51126793e 100644 --- a/drivers/clk/clk_fixed_rate.c +++ b/drivers/clk/clk_fixed_rate.c @@ -27,6 +27,7 @@ static int clk_fixed_rate_ofdata_to_platdata(struct udevice *dev) /* Make fixed rate clock accessible from higher level struct clk */ dev->uclass_priv = clk; clk->dev = dev; + clk->enable_count = 0; return 0; } diff --git a/include/clk.h b/include/clk.h index 3ca2796b57..18b2e3ca54 100644 --- a/include/clk.h +++ b/include/clk.h @@ -61,6 +61,7 @@ struct clk { struct udevice *dev; long long rate; /* in HZ */ u32 flags; + int enable_count; /* * Written by of_xlate. In the future, we might add more fields here. */ From patchwork Wed Aug 21 13:35:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1150849 X-Patchwork-Delegate: lukma@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="jGb1U9H7"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 46D7wJ5Yzmz9sBp for ; Wed, 21 Aug 2019 23:36:00 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id B9CCFC21FE3; Wed, 21 Aug 2019 13:35:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id B4A36C21FFA; Wed, 21 Aug 2019 13:35:24 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 63A66C22007; Wed, 21 Aug 2019 13:35:14 +0000 (UTC) Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-eopbgr150081.outbound.protection.outlook.com [40.107.15.81]) by lists.denx.de (Postfix) with ESMTPS id 320B8C21FFA for ; Wed, 21 Aug 2019 13:35:11 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EtxOjNiKv4ap+6013qzEZTiQIg1nnXN9qcqsoqFughrAtliPb3DCmzdZgL1bbzuUo4q/HeUodtEPyiA+2YZpfzcOokZ48rlJZsHYWRVGCP1FbD47d69KFz0zUw6ayQvTF7gj/7tv8jsm6GPNWBSVNI7bUPq96nlj/e6uulexiCQYpToPcMPm3qSFX0Q/deNdAyYadNQI/YAtwYlnXe0WcCZBeVfxdm34+VjhCrxpdTyxZvE6f6J/6ZHjIudqlNm6Hq0QZMzlfTiX3/Y/uKT+woRFsIzMr1DYGHbgGNICfH+akIX2eRfq4JcJLeWcE8roSoJxMf1kssvm9xAAEtowcA== 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-SenderADCheck; bh=l/wGq9TItFm8IZE8srN/enUNv7+3Bj0n0XyS4rIeg70=; b=ab14xQDrOC7cH5PpUm2hDyZkIb4UI9bjN9mFcwJZP5M3wdNswi1ZeavhrGdHREJvh8nZ0bc61crweongCjTjAFtIeRTIIbSOEj6WV4f3vs/mJBJe6YijVwCIWbeGB+GuJpRXTo0dxO1Gcd5ZZh4J3w6tQtsrqCBZPxJO2Aljcp3hUHJrJzGujD8P0l0giKMmgtA84IuGXtDRxs3+q3ZloEbBoXKkHWobXsvcKiCGb8UNe1VWzjLsJQB4m+zLjC46Cwf/8a83ksTX9UlrvXKjzggSZAUCEYkg9aQMokUjGbGbxOwAz4pm6kZR2eIYe9PQdDDmrUSzWpxOHut8CpncaA== 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=l/wGq9TItFm8IZE8srN/enUNv7+3Bj0n0XyS4rIeg70=; b=jGb1U9H7zzJ0Pr/mS/D3ggrSUdA98/o677OBdG/XneTLsM4ZxR9EgvN80ublX2jFqsHMyPkrkfB0ym5mzZBuy8NhgXunu7Yt9FRsr0xYlK+Bx0Eqj69NCjguyMAvDKV7faQ+d9umEVTM8AF11iHb4z20wg2C34XUHK9RPmsMw7Y= Received: from AM0PR04MB4481.eurprd04.prod.outlook.com (52.135.147.15) by AM0PR04MB5617.eurprd04.prod.outlook.com (20.178.117.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2178.16; Wed, 21 Aug 2019 13:35:09 +0000 Received: from AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::5d98:e1f4:aa72:16b4]) by AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::5d98:e1f4:aa72:16b4%4]) with mapi id 15.20.2178.018; Wed, 21 Aug 2019 13:35:09 +0000 From: Peng Fan To: "lukma@denx.de" Thread-Topic: [PATCH V3 2/4] clk: prograte clk enable/disable to parent Thread-Index: AQHVWCVA8Pc8qNkS60ipsvPjaPhJeQ== Date: Wed, 21 Aug 2019 13:35:09 +0000 Message-ID: <20190821135056.27052-2-peng.fan@nxp.com> References: <20190821135056.27052-1-peng.fan@nxp.com> In-Reply-To: <20190821135056.27052-1-peng.fan@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.16.4 x-clientproxiedby: HK0P153CA0017.APCP153.PROD.OUTLOOK.COM (2603:1096:203:18::29) To AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) authentication-results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.71] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 46b688c2-5c75-4122-5933-08d7263c62b6 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM0PR04MB5617; x-ms-traffictypediagnostic: AM0PR04MB5617: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:16; x-forefront-prvs: 0136C1DDA4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(366004)(396003)(346002)(376002)(39860400002)(189003)(199004)(14454004)(476003)(76176011)(478600001)(71200400001)(99286004)(81166006)(25786009)(66556008)(14444005)(256004)(66446008)(64756008)(6486002)(66946007)(102836004)(8936002)(81156014)(71190400001)(66476007)(6512007)(5640700003)(50226002)(4326008)(6436002)(446003)(186003)(2351001)(5660300002)(2616005)(6916009)(53936002)(2501003)(6506007)(66066001)(8676002)(7416002)(386003)(2906002)(44832011)(11346002)(1076003)(1730700003)(26005)(54906003)(86362001)(36756003)(52116002)(486006)(305945005)(7736002)(316002)(6116002)(3846002); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB5617; H:AM0PR04MB4481.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: CM0CpyL08c0horE1UoRgc8LjvnsX2r+LH4rT/yIKvo1kGzZ7c7Zbsj79UQSCXV6IOZ3RsYHnseHdmu/5MJ6XpUyTbCvD/A0Er+sTeBRgfYJd9Q0cOHZXr1h9iQjvZpWRTkzYcliq1zQX5S0q4VilmbFsu/mvQg/xalEyZ+ER11OFfjvABGJDTLfXboRdEB3Ls9QRPX7OJ+L5pBzucS8E2t0+CHto30oDtkgENkM3aKA+nGIDs4y0eMBMxXNKjbUoi1xiCk6n6g5V7sCJnPiIjsktFBoobLHwQRA2DicoRZ8EaJchbZvQSrL/vnEtCKiwNsMZZpTz7qUuA0nIwAH5zwgyGQk5HxzwT+c0Ho42MlFg+f/cZf2vGcaXnMmBum1BZmFsvRDqWKVtAXavb0ZGNoPTWpHpUnGi14OdoIM3dyA= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 46b688c2-5c75-4122-5933-08d7263c62b6 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2019 13:35:09.4344 (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: kaTxn8MNORIQM2mhRWK8+dQodiBbNVa96Y6U1uxlVsIKgt4JRaHQoKttDiijpD2r5fVvgMjryMPNuLUCWOz9OA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB5617 Cc: "marex@denx.de" , "u-boot@lists.denx.de" , "mbrugger@suse.com" , dl-uboot-imx Subject: [U-Boot] [PATCH V3 2/4] clk: prograte clk enable/disable to parent X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" On i.MX8MM, thinking such as clk path OSC->PLL->PLL GATE->CCM ROOT->CCGR GATE->Device Only enabling CCGR GATE is not enough, we also need to enable PLL GATE to make sure the clk path work. So when enabling CCGR GATE, we could prograte to enabling PLL GATE to make life easier. Signed-off-by: Peng Fan --- V3: None V2: Improve commit log Check enable_count when enable/disable to avoid touch hardware following Linux drivers/clk/clk-uclass.c | 77 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 71 insertions(+), 6 deletions(-) diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index c66b6f3c4e..64c181f4ad 100644 --- a/drivers/clk/clk-uclass.c +++ b/drivers/clk/clk-uclass.c @@ -449,13 +449,45 @@ int clk_set_parent(struct clk *clk, struct clk *parent) int clk_enable(struct clk *clk) { const struct clk_ops *ops = clk_dev_ops(clk->dev); + struct clk *clkp = NULL; + int ret; debug("%s(clk=%p)\n", __func__, clk); - if (!ops->enable) - return -ENOSYS; + if (CONFIG_IS_ENABLED(CLK_CCF)) { + /* Take id 0 as a non-valid clk, such as dummy */ + if (clk->id && !clk_get_by_id(clk->id, &clkp)) { + if (clkp->enable_count) { + clkp->enable_count++; + return 0; + } + if (clkp->dev->parent && + device_get_uclass_id(clkp->dev) == UCLASS_CLK) { + ret = clk_enable(dev_get_clk_ptr(clkp->dev->parent)); + if (ret) { + printf("Enable %s failed\n", + clkp->dev->parent->name); + return ret; + } + } + } - return ops->enable(clk); + if (ops->enable) { + ret = ops->enable(clk); + if (ret) { + printf("Enable %s failed\n", clk->dev->name); + return ret; + } + } + if (clkp) + clkp->enable_count++; + } else { + if (!ops->enable) + return -ENOSYS; + return ops->enable(clk); + } + + return 0; } int clk_enable_bulk(struct clk_bulk *bulk) @@ -474,13 +506,46 @@ int clk_enable_bulk(struct clk_bulk *bulk) int clk_disable(struct clk *clk) { const struct clk_ops *ops = clk_dev_ops(clk->dev); + struct clk *clkp = NULL; + int ret; debug("%s(clk=%p)\n", __func__, clk); - if (!ops->disable) - return -ENOSYS; + if (CONFIG_IS_ENABLED(CLK_CCF)) { + if (clk->id && !clk_get_by_id(clk->id, &clkp)) { + if (clkp->enable_count == 0) { + printf("clk %s already disabled\n", + clkp->dev->name); + return 0; + } - return ops->disable(clk); + if (--clkp->enable_count > 0) + return 0; + } + + if (ops->disable) { + ret = ops->disable(clk); + if (ret) + return ret; + } + + if (clkp && clkp->dev->parent && + device_get_uclass_id(clkp->dev) == UCLASS_CLK) { + ret = clk_disable(dev_get_clk_ptr(clkp->dev->parent)); + if (ret) { + printf("Disable %s failed\n", + clkp->dev->parent->name); + return ret; + } + } + } else { + if (!ops->disable) + return -ENOSYS; + + return ops->disable(clk); + } + + return 0; } int clk_disable_bulk(struct clk_bulk *bulk) From patchwork Wed Aug 21 13:35:14 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1150850 X-Patchwork-Delegate: lukma@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="IAM/1TAx"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 46D7wJ2yVSz9s3Z for ; Wed, 21 Aug 2019 23:35:59 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 7E9EDC21FE0; Wed, 21 Aug 2019 13:35:38 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 73969C21FFA; Wed, 21 Aug 2019 13:35:30 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D8CB1C21FFD; Wed, 21 Aug 2019 13:35:18 +0000 (UTC) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40074.outbound.protection.outlook.com [40.107.4.74]) by lists.denx.de (Postfix) with ESMTPS id DD384C21FFD for ; Wed, 21 Aug 2019 13:35:15 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ji6b6cWgv6KTMqo/0s9Mv4H2Im99a3GJ39gF4ggW17h8L1SBmi0BODsWaocCLb+CotWvbbWS/lai8psfl0tnbHDmhTqmvSivDJMzIrg19yu3CCRAwmG/cQl+BqdijT1H0yFxiZxH6TiLxCueP6lnAPk4vR4WxiR8d97Dr9O/JSFNRDlRQV6bQFN9cVs5lpovXeHA3pICem2zDz0f6kkBuExocCQ0dRcz8V25Eo/0Eceh6gw+3RRY7yQ5FBNxZiZbEFVrkacwahT4PajGZD4/9DfP8LDoWFZ4AfBPGym32wjC3/lUozL7WNHbS3+y+PNNvJcCXGKFtlLdnnruzZutaw== 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-SenderADCheck; bh=WYDmhDzNC0WN5dteC3BGkwUkdEgQdo5lPiJS76sjd4g=; b=g11SXvAN+ajhI0yqk7q0VOkZ6b5Wd57Lun7aWk8SeYJ+9+j1yzpoADJMjRcalTLlCD72z+9wCGTbdUsCXskgyescN8veHZWAGEIdv2rwzbPEpSb8IhzdD+YOUxBuOLIHcAr5//Ykr/599a3jA1gg3U1lZmc6yWAmxj3RKTmSjSQoptr8mI+WkX4m17bTW8ehiSc1L+2zWrs7fKlJ1B8aAopaXCge6yr6HRk1GDLODZ/ZKO+WIJ7R57tcnWyJs6b+i79xIawRyBXJO5WE+Xf37rRDXlK4jzfwNFOqVUfqRcWQzOOxo8+9AFzOWlYVeRRSL6eAFe9Ke/CYxhDnV2LEwQ== 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=WYDmhDzNC0WN5dteC3BGkwUkdEgQdo5lPiJS76sjd4g=; b=IAM/1TAxjm6amTJIPNZfnSVVJAHeZPsBG81o20RetiGXLKNn0/m/eF+SlhnVUMxYgCo9rIgvNJ+pRA6jL36lB/ANcJjHN1croSITRxNbA8nRZLtZdmeZjbkC1SsiPRHVWbF4tVxGYAwPRLIBe40kikZdMiADI16TniOcAlZPzUQ= Received: from AM0PR04MB4481.eurprd04.prod.outlook.com (52.135.147.15) by AM0PR04MB4484.eurprd04.prod.outlook.com (52.135.146.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2178.16; Wed, 21 Aug 2019 13:35:14 +0000 Received: from AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::5d98:e1f4:aa72:16b4]) by AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::5d98:e1f4:aa72:16b4%4]) with mapi id 15.20.2178.018; Wed, 21 Aug 2019 13:35:14 +0000 From: Peng Fan To: "lukma@denx.de" Thread-Topic: [PATCH V3 3/4] clk: support clk tree dump Thread-Index: AQHVWCVDPCUJRheZrEuJq6ryHwuLkg== Date: Wed, 21 Aug 2019 13:35:14 +0000 Message-ID: <20190821135056.27052-3-peng.fan@nxp.com> References: <20190821135056.27052-1-peng.fan@nxp.com> In-Reply-To: <20190821135056.27052-1-peng.fan@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.16.4 x-clientproxiedby: HK0P153CA0017.APCP153.PROD.OUTLOOK.COM (2603:1096:203:18::29) To AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) authentication-results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.71] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b35f1275-12b9-4bcd-4218-08d7263c65be x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM0PR04MB4484; x-ms-traffictypediagnostic: AM0PR04MB4484: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:121; x-forefront-prvs: 0136C1DDA4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(366004)(346002)(136003)(39860400002)(376002)(199004)(189003)(64756008)(26005)(81156014)(14454004)(66446008)(4326008)(66556008)(2351001)(66066001)(76176011)(6116002)(1076003)(5660300002)(3846002)(6512007)(6486002)(6436002)(8676002)(25786009)(50226002)(66476007)(7416002)(54906003)(316002)(8936002)(5640700003)(81166006)(14444005)(7736002)(186003)(86362001)(99286004)(446003)(476003)(11346002)(2616005)(36756003)(66946007)(2906002)(6916009)(486006)(52116002)(44832011)(71200400001)(6506007)(102836004)(2501003)(71190400001)(1730700003)(53936002)(305945005)(478600001)(386003)(256004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB4484; H:AM0PR04MB4481.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: BdF/S+uHWCBLgHdCuLo6QFOa8gZ5HsVbN/Vf6imN1ZenigKrGS2DI8qYTGVo1//o5vuqdz8hyvsQlDOhDM2gQYWPyth6QRqCB3zYL8xDFS/jNSwJlkWcRerYrqpU/lq9UPicPf00qFCKnd7GJFwZ2MoFqQ9yvlKBoTLg2uY7raXwsmYXieOTHoVomUQcdyf2NJwLQa4dIH5AW8n5tBevi0w4doYXjGnpi6Tq716QOR02U+htKEZR5rFZ2t+e7B8C3MjjO2nOXCrs3LtznDD0ti0CgvFEonlUrI7aI1rr3XlTrcwZqhiWVa/3bHVZrwYyyVgd0HkE+0xaPz2vWWukw+ZuPr2SbJctqXDEdhHsQbgjCgwQjlxm3aPj1+K0gHOXV7zp4TsfEuwNeyn2m7ZDXXQYvbj9+z8DA8UT0gU3EYg= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b35f1275-12b9-4bcd-4218-08d7263c65be X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2019 13:35:14.6303 (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: EEaiggZ051nKpMXM60yYjH2X2oSoYajOnVmlrCE0kUyMANok0NgwDWzhW+cc2h6rHUNxy7WH5NFywBzdBjbfew== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4484 Cc: "marex@denx.de" , "u-boot@lists.denx.de" , "mbrugger@suse.com" , dl-uboot-imx Subject: [U-Boot] [PATCH V3 3/4] clk: support clk tree dump X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" The previous code only dump the clk list. This patch is to support clk tree dump, and also dump the enable_cnt. The code used in patch is similar to dm_dump_all, but the code here only filter out the UCLASS_CLK devices. On i.MX8MM, Partial output: u-boot=> clk dump Rate Usecnt Name ------------------------------------------ 24000000 0 |-- clock-osc-24m 24000000 0 | |-- dram_pll_ref_sel 750000000 0 | | `-- dram_pll 750000000 0 | | `-- dram_pll_bypass 750000000 0 | | `-- dram_pll_out 24000000 0 | |-- arm_pll_ref_sel 1200000000 0 | | `-- arm_pll 1200000000 0 | | `-- arm_pll_bypass 1200000000 0 | | `-- arm_pll_out 1200000000 0 | | `-- arm_a53_src 1200000000 0 | | `-- arm_a53_cg 1200000000 0 | | `-- arm_a53_div 24000000 4 | |-- sys_pll1_ref_sel 800000000 4 | | `-- sys_pll1 800000000 4 | | `-- sys_pll1_bypass 800000000 4 | | `-- sys_pll1_out 40000000 0 | | |-- sys_pll1_40m Signed-off-by: Peng Fan --- V3: Fix build break for some platforms V2: Improve commit log cmd/clk.c | 79 +++++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 49 insertions(+), 30 deletions(-) diff --git a/cmd/clk.c b/cmd/clk.c index 5402c87de7..74ad868500 100644 --- a/cmd/clk.c +++ b/cmd/clk.c @@ -7,51 +7,70 @@ #include #if defined(CONFIG_DM) && defined(CONFIG_CLK) #include +#include +#include #include +#include #endif -int __weak soc_clk_dump(void) -{ #if defined(CONFIG_DM) && defined(CONFIG_CLK) - struct udevice *dev; - struct uclass *uc; - struct clk clk; - int ret; - ulong rate; - - /* Device addresses start at 1 */ - ret = uclass_get(UCLASS_CLK, &uc); - if (ret) - return ret; - - uclass_foreach_dev(dev, uc) { - memset(&clk, 0, sizeof(clk)); - ret = device_probe(dev); - if (ret) - goto noclk; +static void show_clks(struct udevice *dev, int depth, int last_flag) +{ + int i, is_last; + struct udevice *child; + struct clk *clkp; + u32 rate; + + clkp = dev_get_clk_ptr(dev); + if (device_get_uclass_id(dev) == UCLASS_CLK && clkp) { + rate = clk_get_rate(clkp); + + printf(" %-12u %8d ", rate, clkp->enable_count); + + for (i = depth; i >= 0; i--) { + is_last = (last_flag >> i) & 1; + if (i) { + if (is_last) + printf(" "); + else + printf("| "); + } else { + if (is_last) + printf("`-- "); + else + printf("|-- "); + } + } - ret = clk_request(dev, &clk); - if (ret) - goto noclk; + printf("%s\n", dev->name); + } - rate = clk_get_rate(&clk); - clk_free(&clk); + list_for_each_entry(child, &dev->child_head, sibling_node) { + is_last = list_is_last(&child->sibling_node, &dev->child_head); + show_clks(child, depth + 1, (last_flag << 1) | is_last); + } +} - if (rate == -ENODEV) - goto noclk; +int __weak soc_clk_dump(void) +{ + struct udevice *root; - printf("%-30.30s : %lu Hz\n", dev->name, rate); - continue; - noclk: - printf("%-30.30s : ? Hz\n", dev->name); + root = dm_root(); + if (root) { + printf(" Rate Usecnt Name\n"); + printf("------------------------------------------\n"); + show_clks(root, -1, 0); } return 0; +} #else +int __weak soc_clk_dump(void) +{ puts("Not implemented\n"); return 1; -#endif } +#endif static int do_clk_dump(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) From patchwork Wed Aug 21 13:35:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1150851 X-Patchwork-Delegate: lukma@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="U2CrgBTP"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 46D7ww1JV6z9s3Z for ; Wed, 21 Aug 2019 23:36:31 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id B17F6C22018; Wed, 21 Aug 2019 13:35:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=SPF_HELO_PASS, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 484DAC21FE3; Wed, 21 Aug 2019 13:35:45 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id EE510C21F77; Wed, 21 Aug 2019 13:35:21 +0000 (UTC) Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40074.outbound.protection.outlook.com [40.107.4.74]) by lists.denx.de (Postfix) with ESMTPS id DCA8AC22009 for ; Wed, 21 Aug 2019 13:35:20 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hZeH24QYelsr0j36r4ZzvQvkSBVAIBBditdZdcv1v8L+8KmJRKmPsTCn2I01tvstm9RTwpm1v1VjDILIN1b3xn6nFEjQY6ilrI7D1FufQTm0kBiVg3xPnt8jXEtFOlKWh1htpwVchry7HWeSQhGaiCCVR7+KtX0WghoZoIriGO6vFdR0VAZAqxEZhml0DiH7gMtJ+dQZJLEjL6J9lEcNwnH1IShQ+HMIpvLkFIQHoaNhQIbJWFVc8gDc6GY91Of3Hgx61lwgp0kAO73lYAluWbCY+SpJ+1pTM6ImmYFa/SLHb2denaQgXMTelA+4zxttTo558Qlz2yr20F50HO1dOw== 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-SenderADCheck; bh=NR7vj6YeEvTBRrR0B04vmebSlFRibeu6CeU08tpNxJ4=; b=ZaWpOl+Kw+bGo9nVnZZXp0b4ve2rWTj9djLe6+ZgFeRjhKTlVSzYHLuiCP24zkbiI7xSaf33tYjBFUyn4AmG1zr1DFJ34t/KvIQ7SciSgW00MW/ljjymKfyjCoO744FQ34tf60r8X7wHz0gz7P5Iwgy1WhA2cflJO/JlbprNc9UmbuCA1TR3Kd9Nsr9N7ColDQx0jvDTydCOqAnp48OEzTwYAKlEenW+lVBKgMNPs4CgOtoul1OB6VOhlwBlqpcEjg30bf0IIXx0kOmxvMwCJk7uJTfwoLR1AT6Ko1yEuNwpYL89yUDxLE7zaMcXLrpf2V2ScfYkUsQ/NIqOYzrUug== 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=NR7vj6YeEvTBRrR0B04vmebSlFRibeu6CeU08tpNxJ4=; b=U2CrgBTPGBZ54qcqQxLXzzup3tFbCacxUiCQoHHGxg+8+/X9BM6CnxcCTmJhzyy9/iBBca7PJH3OqUQffemH830/o8Fi0jRWob1GOuEnnZ/Dfvn7HpaXWWPhjRWp+p6xaWvCXa8bNFpw7Q3Iw+Y8avm7dOg72diGD5kyHeYfHwg= Received: from AM0PR04MB4481.eurprd04.prod.outlook.com (52.135.147.15) by AM0PR04MB4484.eurprd04.prod.outlook.com (52.135.146.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2178.16; Wed, 21 Aug 2019 13:35:19 +0000 Received: from AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::5d98:e1f4:aa72:16b4]) by AM0PR04MB4481.eurprd04.prod.outlook.com ([fe80::5d98:e1f4:aa72:16b4%4]) with mapi id 15.20.2178.018; Wed, 21 Aug 2019 13:35:19 +0000 From: Peng Fan To: "lukma@denx.de" Thread-Topic: [PATCH V3 4/4] sandbox: clk: add clk enable/disable test code Thread-Index: AQHVWCVG7/IUd82FT0WGA5MyxRRwLA== Date: Wed, 21 Aug 2019 13:35:19 +0000 Message-ID: <20190821135056.27052-4-peng.fan@nxp.com> References: <20190821135056.27052-1-peng.fan@nxp.com> In-Reply-To: <20190821135056.27052-1-peng.fan@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.16.4 x-clientproxiedby: HK0P153CA0017.APCP153.PROD.OUTLOOK.COM (2603:1096:203:18::29) To AM0PR04MB4481.eurprd04.prod.outlook.com (2603:10a6:208:70::15) authentication-results: spf=none (sender IP is ) smtp.mailfrom=peng.fan@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.71] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 05606f70-8054-4d6d-772a-08d7263c68e1 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM0PR04MB4484; x-ms-traffictypediagnostic: AM0PR04MB4484: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1332; x-forefront-prvs: 0136C1DDA4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(366004)(346002)(136003)(39860400002)(376002)(199004)(189003)(64756008)(26005)(81156014)(14454004)(66446008)(4326008)(66556008)(2351001)(66066001)(76176011)(6116002)(1076003)(5660300002)(3846002)(6512007)(6486002)(6436002)(8676002)(25786009)(50226002)(66476007)(7416002)(54906003)(316002)(8936002)(5640700003)(81166006)(7736002)(186003)(86362001)(99286004)(446003)(476003)(11346002)(2616005)(36756003)(66946007)(2906002)(6916009)(486006)(52116002)(44832011)(71200400001)(6506007)(102836004)(2501003)(71190400001)(1730700003)(53936002)(305945005)(478600001)(386003)(256004); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR04MB4484; H:AM0PR04MB4481.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 1so2nJXw558leyGuXhl/Vgywejwf7bq0MUAVQC4tc5rJOqicOBgVThZcVSwO+VoWkN+kZ9UeD86WPstBWD5O/2IdbMxUKdsVb2lKpBs1A/VQZJK8fn/Qs3aD5hbI3mMRcOfjHWu5inOEgmUq3q5w5avB00UjDUref23LypWE6a72YAZjo567HcS6BUJbmzYAq0AZrHTbjrUzQz7DEzErT76pSGeE/ezixQ6+DVV7C/at2W4AHdRaPHRq98mhVeWi2v9eMpY4Chz80/xii5VFrpYDFhIhNYQS0u3NDG2JDC7mQr7UpwtBJy6rHceis0sK2l6/luuFu3uVlC9wQeqcB4OTkjNU3jo46RVA9p26UYPcO/sg9C1gpdAZv1T7wbcp+kEGdcgAtDgNBOa+3R04+mA5mlEkNE2Sy75DiW9hZ2g= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 05606f70-8054-4d6d-772a-08d7263c68e1 X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Aug 2019 13:35:19.8042 (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: PZ0ZwiJZIv1vF5fy5qg8TOPQb7Bv2wvGZIeK+ngrdnfj08uONSwVzmf3PZBZgPiOipnd1bYQbOup2/Fcwfpo5g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB4484 Cc: "marex@denx.de" , "u-boot@lists.denx.de" , "mbrugger@suse.com" , dl-uboot-imx Subject: [U-Boot] [PATCH V3 4/4] sandbox: clk: add clk enable/disable test code X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Since we added clk enable_count and prograte clk child enabling operation to clk parent, so add a new function sandbox_clk_enable_count to get enable_count for test usage. And add test code to get the enable_count after we enable/disable the device clk. Signed-off-by: Peng Fan Reviewed-by: Simon Glass --- V3: Fix build for sandbox V2: New Patch drivers/clk/clk_sandbox_ccf.c | 15 +++++++++++++++ include/sandbox-clk.h | 3 +++ test/dm/clk_ccf.c | 28 ++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/drivers/clk/clk_sandbox_ccf.c b/drivers/clk/clk_sandbox_ccf.c index e126f18d8e..9fa27229e1 100644 --- a/drivers/clk/clk_sandbox_ccf.c +++ b/drivers/clk/clk_sandbox_ccf.c @@ -25,6 +25,18 @@ struct clk_pllv3 { u32 div_shift; }; +int sandbox_clk_enable_count(struct clk *clk) +{ + struct clk *clkp = NULL; + int ret; + + ret = clk_get_by_id(clk->id, &clkp); + if (ret) + return 0; + + return clkp->enable_count; +} + static ulong clk_pllv3_get_rate(struct clk *clk) { unsigned long parent_rate = clk_get_parent_rate(clk); @@ -254,6 +266,9 @@ static int sandbox_clk_ccf_probe(struct udevice *dev) sandbox_clk_composite("i2c", i2c_sels, ARRAY_SIZE(i2c_sels), ®, 0)); + clk_dm(SANDBOX_CLK_I2C_ROOT, + sandbox_clk_gate2("i2c_root", "i2c", base + 0x7c, 0)); + return 0; } diff --git a/include/sandbox-clk.h b/include/sandbox-clk.h index f449de1364..296cddfbb0 100644 --- a/include/sandbox-clk.h +++ b/include/sandbox-clk.h @@ -20,6 +20,7 @@ enum { SANDBOX_CLK_USDHC1_SEL, SANDBOX_CLK_USDHC2_SEL, SANDBOX_CLK_I2C, + SANDBOX_CLK_I2C_ROOT, }; enum sandbox_pllv3_type { @@ -74,4 +75,6 @@ static inline struct clk *sandbox_clk_mux(const char *name, void __iomem *reg, width, 0); } +int sandbox_clk_enable_count(struct clk *clk); + #endif /* __SANDBOX_CLK_H__ */ diff --git a/test/dm/clk_ccf.c b/test/dm/clk_ccf.c index bbc4b500e8..ae3a4d8a76 100644 --- a/test/dm/clk_ccf.c +++ b/test/dm/clk_ccf.c @@ -64,6 +64,34 @@ static int dm_test_clk_ccf(struct unit_test_state *uts) rate = clk_get_rate(clk); ut_asserteq(rate, 60000000); +#if CONFIG_IS_ENABLED(CLK_CCF) + /* Test clk tree enable/disable */ + ret = clk_get_by_id(SANDBOX_CLK_I2C_ROOT, &clk); + ut_assertok(ret); + ut_asserteq_str("i2c_root", clk->dev->name); + + ret = clk_enable(clk); + ut_assertok(ret); + + ret = sandbox_clk_enable_count(clk); + ut_asserteq(ret, 1); + + ret = clk_get_by_id(SANDBOX_CLK_I2C, &pclk); + ut_assertok(ret); + + ret = sandbox_clk_enable_count(pclk); + ut_asserteq(ret, 1); + + ret = clk_disable(clk); + ut_assertok(ret); + + ret = sandbox_clk_enable_count(clk); + ut_asserteq(ret, 0); + + ret = sandbox_clk_enable_count(pclk); + ut_asserteq(ret, 0); +#endif + return 1; }