From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 49C0EC433EF for ; Tue, 19 Oct 2021 22:27:55 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2194660F8F for ; Tue, 19 Oct 2021 22:27:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 2194660F8F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 21CAE807CD; Wed, 20 Oct 2021 00:27:51 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.b="m8XwsIA1"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 92FFB81725; Wed, 20 Oct 2021 00:27:48 +0200 (CEST) Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 88E808029E for ; Wed, 20 Oct 2021 00:27:38 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=jh80.chung@samsung.com Received: from epcas1p1.samsung.com (unknown [182.195.41.45]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20211019222733epoutp0343b1514e918db7702ef376de278d57ee~vjwfdwJPy0218602186epoutp03E for ; Tue, 19 Oct 2021 22:27:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20211019222733epoutp0343b1514e918db7702ef376de278d57ee~vjwfdwJPy0218602186epoutp03E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1634682453; bh=+ccIBTGaWDx29/soyUzz3ABBSWRlcdzrzhLTO1gtTyk=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=m8XwsIA1nws4cNSkUVDpW9Bv9AH1o86+tkEYbIY/WXKLqGt751M0gswxHdNNrs7sY S5xV65KQEy/4kqpAhrpzEhmYgI7/hP9aSCVJUICeMER1FUWDeJzAj6yPVrIGRLzToG Mb8wUD9T2hc/xjgAPP/+aTkOM31dagNnZyjsXlBU= Received: from epsnrtp4.localdomain (unknown [182.195.42.165]) by epcas1p4.samsung.com (KnoxPortal) with ESMTP id 20211019222733epcas1p483e353bca409f82cbd9f01546acf70de~vjwfLR_F-3113631136epcas1p4X; Tue, 19 Oct 2021 22:27:33 +0000 (GMT) Received: from epsmges1p3.samsung.com (unknown [182.195.38.232]) by epsnrtp4.localdomain (Postfix) with ESMTP id 4HYpJv1GDXz4x9Pq; Tue, 19 Oct 2021 22:27:27 +0000 (GMT) Received: from epcas1p3.samsung.com ( [182.195.41.47]) by epsmges1p3.samsung.com (Symantec Messaging Gateway) with SMTP id 95.98.09592.F464F616; Wed, 20 Oct 2021 07:27:27 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas1p4.samsung.com (KnoxPortal) with ESMTPA id 20211019222726epcas1p47412211bbdec073a91d6aae3a397a6b2~vjwZBEKua3127531275epcas1p4b; Tue, 19 Oct 2021 22:27:26 +0000 (GMT) Received: from epsmgms1p1new.samsung.com (unknown [182.195.42.41]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20211019222726epsmtrp1748bb0a71c9fc9e96cfc801aea0b05e3~vjwZAbLH60932709327epsmtrp1m; Tue, 19 Oct 2021 22:27:26 +0000 (GMT) X-AuditID: b6c32a37-2a5ff70000002578-c7-616f464ff8c0 Received: from epsmtip1.samsung.com ( [182.195.34.30]) by epsmgms1p1new.samsung.com (Symantec Messaging Gateway) with SMTP id 0F.15.08902.E464F616; Wed, 20 Oct 2021 07:27:26 +0900 (KST) Received: from [10.113.113.235] (unknown [10.113.113.235]) by epsmtip1.samsung.com (KnoxPortal) with ESMTPA id 20211019222726epsmtip1a7e913d736b35ed28abf41da1c89ce11~vjwYzrluP2539825398epsmtip1R; Tue, 19 Oct 2021 22:27:26 +0000 (GMT) Subject: Re: [PATCH v2] mmc: arm_pl180_mmci: Enable HWFC for specific versions of MCI To: Usama Arif , u-boot@lists.denx.de Cc: nd@arm.com, peng.fan@nxp.com, anders.dellien@arm.com From: Jaehoon Chung Message-ID: Date: Wed, 20 Oct 2021 07:28:10 +0900 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 MIME-Version: 1.0 In-Reply-To: <20211019144948.48955-1-usama.arif@arm.com> Content-Language: en-US Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpmk+LIzCtJLcpLzFFi42LZdlhTX9ffLT/R4HgDj8X23QUWZ5b3MFv8 WPWF1eLt3k52i7lPNjE5sHqsmbeG0ePsnR2MHhvf7WAKYI7KtslITUxJLVJIzUvOT8nMS7dV 8g6Od443NTMw1DW0tDBXUshLzE21VXLxCdB1y8wBWqmkUJaYUwoUCkgsLlbSt7Mpyi8tSVXI yC8usVVKLUjJKTAt0CtOzC0uzUvXy0stsTI0MDAyBSpMyM441LaXuaBVqGLjCf4Gxrd8XYyc HBICJhJPJ/xn7WLk4hAS2MEo8eTtQlaQhJDAJ0aJgx+YIBLfGCWOr3jOCtOx4PAkFojEXkaJ nwsfQTnvGSVubWxgA6kSFgiX+NK1lQnEFhGwlDiw4QgjiM0sYCFxaPZTdhCbTUBHYvu342A1 vAJ2Ejd2rmQBsVkEVCX2rfwHZosKREr8PbmLFaJGUOLkzCdgcU6gOV+PtbJBzBSXuPVkPhOE LS+x/e0cZpCDJAReskt0Pv3ADHG2i8SJi3sZIWxhiVfHt7BD2FISL/vboOxqiV3NZ6CaO4C+ 2dbEBJEwlti/dDKQzQG0QVNi/S59iLCixM7fc6Ee45N497WHFaREQoBXoqNNCKJEReLS65dM MKvuPvkPDUUPiYPnfrNNYFScheS1WUjemYXknVkIixcwsqxiFEstKM5NTy02LDCGR3Zyfu4m RnBq1DLfwTjt7Qe9Q4xMHIyHGCU4mJVEeI+15yUK8aYkVlalFuXHF5XmpBYfYjQFBvZEZinR 5Hxgcs4riTc0sTQwMTMyNrEwNDNUEueVFM1OFBJITyxJzU5NLUgtgulj4uCUamBiXOP+hXGf 1Oqkprs6R00ubyzweF18KC9A3u3ItoSCiEz21rPbLKvmbgjsl7mawtmk9k0u7Xny4hsNByPM i24c8Zmy6cUnwRSbEpt1dt379Oe8vVAhx/zkgJOuxle7kKh77TvWeoaE1ja0Sf4pu5t1g+Ho VpcLanPtg83UL6dLte3KZoxxjL/lf271/muJr/aEz1sr+3Bzosnjw993xrjU+16RmbVgT8/F LSeOHL6f7MvffFMsJmaOmOiZh3sl7E2fRSauWHzFz8PzVtdv2QMbfu7k0rVUWxN6p21pUCPb qhqtNdIOE9Z9z9t4fuOLivWLdM67ifYkfWor9zDq+phyXjZEyDDbmcvz6pK5vL1KLMUZiYZa zEXFiQAcoeOrFgQAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrELMWRmVeSWpSXmKPExsWy7bCSnK6fW36iwYcmTYvtuwsszizvYbb4 seoLq8XbvZ3sFnOfbGJyYPVYM28No8fZOzsYPTa+28EUwBzFZZOSmpNZllqkb5fAlXGobS9z QatQxcYT/A2Mb/m6GDk5JARMJBYcnsTSxcjFISSwm1HiwJ117BAJKYnPT6eydTFyANnCEocP F0PUvGWUuNPeyQhSIywQLjF5+QomEFtEwFLiwIYjYHFmAQuJQ7OfskM0dDNKNJ4+BDaUTUBH Yvu342ANvAJ2Ejd2rmQBsVkEVCX2rfwHZosKREo0ndjKBlEjKHFy5hOwOCfQ0K/HWtkgFqhL /Jl3iRnCFpe49WQ+E4QtL7H97RzmCYxCs5C0z0LSMgtJyywkLQsYWVYxSqYWFOem5xYbFhjm pZbrFSfmFpfmpesl5+duYgRHg5bmDsbtqz7oHWJk4mA8xCjBwawkwnusPS9RiDclsbIqtSg/ vqg0J7X4EKM0B4uSOO+FrpPxQgLpiSWp2ampBalFMFkmDk6pBqakI3+4bGLe7sw57Mz/5F9y kqqEf+vB+wWG6RdFGvzML6tkSU7J8gnnOyd57FPD+fbK5gWKHiKP31+1lng4Q+vHL66LS85/ a//56mNGUNorH/edLU9P8T/PvLKFb1Xtqq7d9nvfvlY8UpGfvafpyzWNhXk3/8X9NbaxLS2X +L5SRsRMY5FKG1NV55sPc+5FXL2UsMD+KVdyvmxS+4Pn+yYddNZy2Z3F7yKockesdlfxi9NP Px2XtJFbbam0gE9Grp2xTsI4+l+qwvtkbfWv71jkZ6Usysrc31/MZWEWuNqv6K22R8zUqNtG 93X9I8yvzlvLueOB+cp3H63nFqyeejnZ3PhQ5hnVA5LtHJOLGpRYijMSDbWYi4oTAaKoV0z1 AgAA X-CMS-MailID: 20211019222726epcas1p47412211bbdec073a91d6aae3a397a6b2 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-Sendblock-Type: SVC_REQ_APPROVE CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20211019144955epcas1p2838c1ec0ea51b2fd554e473ac2039960 References: <20211019144948.48955-1-usama.arif@arm.com> X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 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" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean On 10/19/21 11:49 PM, Usama Arif wrote: > There are 4 registers (PERIPHID{0-3}) that contain the ID of MCI. > For MMCs' with peripheral id 0x02041180 and 0x03041180, H/W flow control > needs to be enabled for multi block writes (MMC CMD 18). > > Signed-off-by: Usama Arif Reviewed-by: Jaehoon Chung Best Regards, Jaehoon Chung > --- > drivers/mmc/arm_pl180_mmci.c | 14 ++++++++++++++ > drivers/mmc/arm_pl180_mmci.h | 1 + > 2 files changed, 15 insertions(+) > > diff --git a/drivers/mmc/arm_pl180_mmci.c b/drivers/mmc/arm_pl180_mmci.c > index f99b5f997e..9c5d48e90c 100644 > --- a/drivers/mmc/arm_pl180_mmci.c > +++ b/drivers/mmc/arm_pl180_mmci.c > @@ -282,6 +282,14 @@ static int host_request(struct mmc *dev, > return result; > } > > +static int check_peripheral_id(struct pl180_mmc_host *host, u32 periph_id) > +{ > + return readl(&host->base->periph_id0) == (periph_id & 0xFF) && > + readl(&host->base->periph_id1) == ((periph_id >> 8) & 0xFF) && > + readl(&host->base->periph_id2) == ((periph_id >> 16) & 0xFF) && > + readl(&host->base->periph_id3) == ((periph_id >> 24) & 0xFF); > +} > + > static int host_set_ios(struct mmc *dev) > { > struct pl180_mmc_host *host = dev->priv; > @@ -337,6 +345,12 @@ static int host_set_ios(struct mmc *dev) > sdi_clkcr &= ~(SDI_CLKCR_WIDBUS_MASK); > sdi_clkcr |= buswidth; > } > + /* For MMCs' with peripheral id 0x02041180 and 0x03041180, H/W flow control > + * needs to be enabled for multi block writes (MMC CMD 18). > + */ > + if (check_peripheral_id(host, 0x02041180) || > + check_peripheral_id(host, 0x03041180)) > + sdi_clkcr |= SDI_CLKCR_HWFCEN; > > writel(sdi_clkcr, &host->base->clock); > udelay(CLK_CHANGE_DELAY); > diff --git a/drivers/mmc/arm_pl180_mmci.h b/drivers/mmc/arm_pl180_mmci.h > index 15c29beadb..fca15910a8 100644 > --- a/drivers/mmc/arm_pl180_mmci.h > +++ b/drivers/mmc/arm_pl180_mmci.h > @@ -43,6 +43,7 @@ > #define SDI_CLKCR_CLKEN 0x00000100 > #define SDI_CLKCR_PWRSAV 0x00000200 > #define SDI_CLKCR_BYPASS 0x00000400 > +#define SDI_CLKCR_HWFCEN 0x00001000 > #define SDI_CLKCR_WIDBUS_MASK 0x00001800 > #define SDI_CLKCR_WIDBUS_1 0x00000000 > #define SDI_CLKCR_WIDBUS_4 0x00000800 >