From patchwork Sun May 5 06:18:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anson Huang X-Patchwork-Id: 10930063 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 68F341515 for ; Sun, 5 May 2019 06:19:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 547A3285C5 for ; Sun, 5 May 2019 06:19:06 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 48A9A285D1; Sun, 5 May 2019 06:19:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id E9C9F285C5 for ; Sun, 5 May 2019 06:19:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=fKT9cs0DDuCixunQrQn9uDyHHQJGkStJRQQ9WxOu47o=; b=svHFyI66PpGBKw 1PO4x+RzSs53d7To13hhH26RobcFqqAdipDWZs1TwzXvGdWnv9Eqq9leXef90g1MF2DZYX1TVW9v2 lkk4kLqlseL7FbfUnMtsRX44/KIZquXd85+uDS+t8fOXl9aIRFBxu12JyTJSwueOOFxfyFKtW7bPZ q6fN7xAq2oPc5o7S3T0yb6cwaLCEFQVJn0gGbQQsNqrjA0R0Nnjs7Awc2yGk5TXYtpsytQpreE9EI hAg/yWFNRUDifzyYNTZIsCA+rtR9oeyMGE05/TpC7PaPAGLhUBsR7B4PAGhqI7DmiOlcjU+bUWWO+ dLncugwH8Zt1Zo6eC7iQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1hNAUH-0005Qo-Ow; Sun, 05 May 2019 06:19:01 +0000 Received: from mail-eopbgr80048.outbound.protection.outlook.com ([40.107.8.48] helo=EUR04-VI1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1hNAUF-0005Pu-7r for linux-arm-kernel@lists.infradead.org; Sun, 05 May 2019 06:19:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Jy5klBXohqkhr/d8PTb5lbUr957CztOnm8TydtplmXc=; b=kcbKRt5RikDnzoVSNepczO3ZbnRKy1U4oNMfnbANAVLH5xJG1YuaIlwFYByJOOqne6bosHzYngMSxkLK+67XonT2YhIhAhxRl/rn6W6y6tZCK0nXU054BkjDeMyLyJEx4hLRCDkFSErD7JXfpvPkgowpOjxCFlxg2Rwjc9epOoc= Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com (52.134.72.18) by DB3PR0402MB3947.eurprd04.prod.outlook.com (52.134.67.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1856.12; Sun, 5 May 2019 06:18:48 +0000 Received: from DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::e8ca:4f6b:e43:c170]) by DB3PR0402MB3916.eurprd04.prod.outlook.com ([fe80::e8ca:4f6b:e43:c170%3]) with mapi id 15.20.1856.012; Sun, 5 May 2019 06:18:48 +0000 From: Anson Huang To: "mturquette@baylibre.com" , "sboyd@kernel.org" , "shawnguo@kernel.org" , "s.hauer@pengutronix.de" , "kernel@pengutronix.de" , "festevam@gmail.com" , "l.stach@pengutronix.de" , Aisheng Dong , "pp@emlix.com" , "tiny.windzz@gmail.com" , "colin.didier@devialet.com" , "robh@kernel.org" , Jacky Bai , Leonard Crestez , "hofrat@osadl.org" , "michael@amarulasolutions.com" , "stefan@agner.ch" , Abel Vesa , "linux-clk@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" Subject: [PATCH 1/2] clk: imx: Add common API for masking MMDC handshake Thread-Topic: [PATCH 1/2] clk: imx: Add common API for masking MMDC handshake Thread-Index: AQHVAwpmnCdleDO3TECDUWrDtJQRdA== Date: Sun, 5 May 2019 06:18:48 +0000 Message-ID: <1557036830-13567-1-git-send-email-Anson.Huang@nxp.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.7.4 x-clientproxiedby: HK0P153CA0001.APCP153.PROD.OUTLOOK.COM (2603:1096:203:18::13) To DB3PR0402MB3916.eurprd04.prod.outlook.com (2603:10a6:8:10::18) authentication-results: spf=none (sender IP is ) smtp.mailfrom=anson.huang@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [119.31.174.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b243de87-7dfc-4576-7ca2-08d6d12188a5 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020); SRVR:DB3PR0402MB3947; x-ms-traffictypediagnostic: DB3PR0402MB3947: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2803; x-forefront-prvs: 00286C0CA6 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(376002)(136003)(346002)(396003)(366004)(39860400002)(199004)(189003)(486006)(36756003)(7736002)(186003)(7416002)(52116002)(110136005)(2616005)(476003)(14444005)(99286004)(256004)(50226002)(86362001)(81166006)(5660300002)(8676002)(81156014)(2906002)(71200400001)(71190400001)(102836004)(26005)(305945005)(8936002)(6506007)(386003)(73956011)(66946007)(66476007)(66556008)(64756008)(66446008)(2201001)(6436002)(316002)(3846002)(53936002)(478600001)(6116002)(6512007)(25786009)(14454004)(68736007)(6486002)(4326008)(2501003)(66066001)(921003)(1121003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0402MB3947; H:DB3PR0402MB3916.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: cfz+p+Rnr7SZz1pkphfJTmI7JU1YeEXV6iSEP3G9WSOG2QwD0nJ8Y/+OkkcFmpFLxLFQom2cEeOw+usPoz75gbN9vgeUkaU7abyiRa+AhVogbNHF6C1GLyZW/h3OVUrHCzv5mOsXHof5kU8FOUEvtGKbQ7JjJYqcB1oXWIfcJyu9xObbGuk0ppfEEcVEHGrg7Xhz5jQt3Ncc3p2SDWuiC6JoVe59B478y1bi5DEf6a5zmdieoewfSovZot7RomT1GoDJ4hJr/RMKhsGtAKgYB77wKaOiMJnPYTgjs8AInPO7bicayu6hIlQyuIfPKxcPCOB9vBu2hbCk2SzZ1zdIpcnmZD332Y67M/H6kHuipOZn5qRh5rUKXSoKjtjq8gIAH2KhdhJTaTm0GujUgtiHCfXSNEYN8AewG5IRab+j370= MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b243de87-7dfc-4576-7ca2-08d6d12188a5 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 May 2019 06:18:48.1530 (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-Transport-CrossTenantHeadersStamped: DB3PR0402MB3947 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190504_231859_285849_494F853F X-CRM114-Status: UNSURE ( 9.66 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: dl-linux-imx Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP All i.MX6 SoCs need to mask unused MMDC channel's handshake for low power modes, this patch provides common API for masking the MMDC channel passed from caller. Signed-off-by: Anson Huang Reviewed-by: Dong Aisheng --- drivers/clk/imx/clk.c | 14 ++++++++++++++ drivers/clk/imx/clk.h | 1 + 2 files changed, 15 insertions(+) diff --git a/drivers/clk/imx/clk.c b/drivers/clk/imx/clk.c index 1efed86..6f9bcee 100644 --- a/drivers/clk/imx/clk.c +++ b/drivers/clk/imx/clk.c @@ -6,8 +6,22 @@ #include #include "clk.h" +#define CCM_CCDR 0x4 +#define CCDR_MMDC_CH0_MASK BIT(17) +#define CCDR_MMDC_CH1_MASK BIT(16) + DEFINE_SPINLOCK(imx_ccm_lock); +void __init imx_mmdc_mask_handshake(void __iomem *ccm_base, + unsigned int chn) +{ + unsigned int reg; + + reg = readl_relaxed(ccm_base + CCM_CCDR); + reg |= chn == 0 ? CCDR_MMDC_CH0_MASK : CCDR_MMDC_CH1_MASK; + writel_relaxed(reg, ccm_base + CCM_CCDR); +} + void __init imx_check_clocks(struct clk *clks[], unsigned int count) { unsigned i; diff --git a/drivers/clk/imx/clk.h b/drivers/clk/imx/clk.h index 8639a8f..6dcdc91 100644 --- a/drivers/clk/imx/clk.h +++ b/drivers/clk/imx/clk.h @@ -10,6 +10,7 @@ extern spinlock_t imx_ccm_lock; void imx_check_clocks(struct clk *clks[], unsigned int count); void imx_check_clk_hws(struct clk_hw *clks[], unsigned int count); void imx_register_uart_clocks(struct clk ** const clks[]); +void imx_mmdc_mask_handshake(void __iomem *ccm_base, unsigned int chn); extern void imx_cscmr1_fixup(u32 *val);