From patchwork Tue Nov 10 23:22:10 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jaehoon Chung X-Patchwork-Id: 1397845 X-Patchwork-Delegate: narmstrong@baylibre.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=samsung.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=samsung.com header.i=@samsung.com header.a=rsa-sha256 header.s=mail20170921 header.b=BZoegSIC; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4CW3n44v5Fz9sSf for ; Wed, 11 Nov 2020 10:22:48 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 438E8824FD; Wed, 11 Nov 2020 00:22:23 +0100 (CET) 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="BZoegSIC"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 88A5882518; Wed, 11 Nov 2020 00:22:15 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 108A4821A4 for ; Wed, 11 Nov 2020 00:22:10 +0100 (CET) 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 epcas1p3.samsung.com (unknown [182.195.41.47]) by mailout3.samsung.com (KnoxPortal) with ESMTP id 20201110232206epoutp0390daea28f458cc0f00f8376a4e3e29a7~GSPM352w21167111671epoutp03O for ; Tue, 10 Nov 2020 23:22:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20201110232206epoutp0390daea28f458cc0f00f8376a4e3e29a7~GSPM352w21167111671epoutp03O DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1605050526; bh=7Hv9czMQ0ozHJENHv4Fr4wdB5g1NrN34w3hy7WEY+hM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=BZoegSICsj3PnJoxuPb1Lj6OcxVV7TQZ3/0kQSfSrhkVNakaPTglR70MCxqB/X6QM it9WflVDrjn5MK1YVQIoZNWBmysNlnYIi/ZMjAdWoir5xY2AYlE1XnQnMsIA2f+ZTz yyQUiDxcaJ981XsNr7gZE0xUIp6T0xpX5Q+uNQsM= Received: from epsnrtp1.localdomain (unknown [182.195.42.162]) by epcas1p2.samsung.com (KnoxPortal) with ESMTP id 20201110232206epcas1p2fa0491d16ea965773a0574dc51598f2a~GSPMZj_pF0160101601epcas1p2d; Tue, 10 Nov 2020 23:22:06 +0000 (GMT) Received: from epsmges1p4.samsung.com (unknown [182.195.40.157]) by epsnrtp1.localdomain (Postfix) with ESMTP id 4CW3mC2wy1zMqYlx; Tue, 10 Nov 2020 23:22:03 +0000 (GMT) Received: from epcas1p3.samsung.com ( [182.195.41.47]) by epsmges1p4.samsung.com (Symantec Messaging Gateway) with SMTP id D1.DF.10463.4902BAF5; Wed, 11 Nov 2020 08:21:56 +0900 (KST) Received: from epsmtrp1.samsung.com (unknown [182.195.40.13]) by epcas1p4.samsung.com (KnoxPortal) with ESMTPA id 20201110232156epcas1p402119c8a7290210b2146911a5d5ac14b~GSPDByVtZ0548705487epcas1p4I; Tue, 10 Nov 2020 23:21:56 +0000 (GMT) Received: from epsmgms1p2.samsung.com (unknown [182.195.42.42]) by epsmtrp1.samsung.com (KnoxPortal) with ESMTP id 20201110232156epsmtrp1b619710b898e89f14fde2a6937924f1b~GSPDBQb2B0797307973epsmtrp1i; Tue, 10 Nov 2020 23:21:56 +0000 (GMT) X-AuditID: b6c32a38-efbff700000028df-88-5fab2094ee78 Received: from epsmtip2.samsung.com ( [182.195.34.31]) by epsmgms1p2.samsung.com (Symantec Messaging Gateway) with SMTP id C6.C7.08745.3902BAF5; Wed, 11 Nov 2020 08:21:56 +0900 (KST) Received: from jaehoon-DeskTop.10.32.193.11 (unknown [10.113.113.235]) by epsmtip2.samsung.com (KnoxPortal) with ESMTPA id 20201110232155epsmtip269033ac61b8826666295852744b80a81~GSPC3hdao0607406074epsmtip2i; Tue, 10 Nov 2020 23:21:55 +0000 (GMT) From: Jaehoon Chung To: u-boot@lists.denx.de Cc: u-boot-amlogic@groups.io, peng.fan@nxp.com, narmstrong@baylibre.com, Jaehoon Chung Subject: [PATCH v2 2/3] mmc: meson-gx: change clock phase value on SM1 SoCs Date: Wed, 11 Nov 2020 08:22:10 +0900 Message-Id: <20201110232211.3717-3-jh80.chung@samsung.com> X-Mailer: git-send-email 2.29.0 In-Reply-To: <20201110232211.3717-1-jh80.chung@samsung.com> MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpkk+LIzCtJLcpLzFFi42LZdlhTX3eKwup4g9UbZS1u/GpjtTjUF23x Y9UXVotJE36xWbzd28nuwOrx/kYru8f8zu9MHmfv7GD02PhuB5NH35ZVjAGsUdk2GamJKalF Cql5yfkpmXnptkrewfHO8aZmBoa6hpYW5koKeYm5qbZKLj4Bum6ZOUDLlRTKEnNKgUIBicXF Svp2NkX5pSWpChn5xSW2SqkFKTkFlgV6xYm5xaV56XrJ+blWhgYGRqZAhQnZGbd3f2Iv6JWo mNlX28D4QLiLkZNDQsBEorXnFHMXIxeHkMAORolvP2YxQTifGCUmf97LCuF8ZpRo3LyEBaZl /ezVUIldjBKnu9aygySEBH4zSjxYJAtiswnoSGz/dpwJxBYRkJD41X+VEcRmFiiUmP36C5gt LOAt0XTvIzOIzSKgKrF5zj2wBbwCVhK9P98yQyyTl/hzvwfI5uDgFLCW+Lo/GqJEUOLkzCcs ECPlJZq3zgZ7QULgFrvE6me3mCB6XSRmrT/FBmELS7w6voUdwpaSeNnfBmVXS+xqPgPV3MEo cWtbE1SzscT+pZOZQBYzC2hKrN+lDxFWlNj5ey7UL3wS7772sIKUSAjwSnS0CUGUqEhcev2S CWbV3Sf/WSFsD4lr+yazQMKtj1Hi1adTrBMYFWYh+WcWkn9mIWxewMi8ilEstaA4Nz212LDA BDmCNzGC06KWxQ7GuW8/6B1iZOJgPMQowcGsJMLL1LYqXog3JbGyKrUoP76oNCe1+BCjKTCw JzJLiSbnAxNzXkm8oamRsbGxhYmhmamhoZI47x/tjnghgfTEktTs1NSC1CKYPiYOTqkGJvuw PayexsUbUzg8Nsgcu2gSXlS7fIVLqGDf0j1FXmvPzZ9ioholGvGq7fJ/Ny6D+pw7uTULz4lp ibR5RE3RFzkxgdn0cfXS+0Znt91hc/1dti7MzsTrgI+DQnNsefFzzYkT7iypkzp5YuPVK/fT 5L79O3tHNV7p8idBc84H/lKrXNPDi35o8vTHbLVLO6VyX1i1fdqLHnc2w5W95msOxb1v1JfO 1/djeaokvLA4omLxvsvHJCfN3XettGlT8I0nhnf6BLPmLSp+dL5N8Flr7+ec/1+WNR5P6Aks P3Q03/s125W8v77Fe7cYB+cst5l9/O2DFebCLiqCFgsCBPgXRxeIbXg8Y8/ct4uXz95soMRS nJFoqMVcVJwIAGauQbsUBAAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrJLMWRmVeSWpSXmKPExsWy7bCSvO4UhdXxBm9aGC1u/GpjtTjUF23x Y9UXVotJE36xWbzd28nuwOrx/kYru8f8zu9MHmfv7GD02PhuB5NH35ZVjAGsUVw2Kak5mWWp Rfp2CVwZt3d/Yi/olaiY2VfbwPhAuIuRk0NCwERi/ezVrF2MXBxCAjsYJaY/nskIkZCS+Px0 KlsXIweQLSxx+HAxRM1PRok5z3+A1bAJ6Ehs/3acCcQWEZCQ+NV/lRGknlmgVOLGEhGQsLCA t0TTvY/MIDaLgKrE5jn3WEBsXgErid6fb5khVslL/LnfwwzSyilgLfF1fzRIWAioZMPvTewQ 5YISJ2c+AWtlBipv3jqbeQKjwCwkqVlIUgsYmVYxSqYWFOem5xYbFhjlpZbrFSfmFpfmpesl 5+duYgSHrpbWDsY9qz7oHWJk4mA8xCjBwawkwsvUtipeiDclsbIqtSg/vqg0J7X4EKM0B4uS OO/XWQvjhATSE0tSs1NTC1KLYLJMHJxSDUy151scL1ZfqNnS8uQ7Z/1TWd5H71Xl/b2/K64z WhSQvMtUMSv60xPjKq7vK6y2XYqW2rLx5z/uva4ff+1osrh0u/Hu3aI3Nu2vS93erq27KN68 eW33mzJJq7eBvLcSbQ9r2y9esOFnlNsNw+UBcaL7L7ptXb7xzIYCmeKSNbOt9e4FrPDdMOE1 58xFRk3nmareLvJs594vrXf869z6283Ppt7xnDTFNnfz18e/5S7MuffzpdYkWfEON/Zvv2Pm PtXbs0SJ9fWF/r45jPJtZYVnm1Z4FFbMcv0QY+TOVWufnTX5VJut1DembSqW7A3h3lW78+o2 XHW7+y/zS0jSEceCv1ZfHX/yfHgsdPdPTekMJZbijERDLeai4kQAGubezMwCAAA= X-CMS-MailID: 20201110232156epcas1p402119c8a7290210b2146911a5d5ac14b X-Msg-Generator: CA X-Sendblock-Type: SVC_REQ_APPROVE CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20201110232156epcas1p402119c8a7290210b2146911a5d5ac14b References: <20201110232211.3717-1-jh80.chung@samsung.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.102.3 at phobos.denx.de X-Virus-Status: Clean From: Neil Armstrong Amlogic SM1 SoCs doesn't work over 50MHz. When phase sets to 270', it's working fine over 50MHz on Amlogic SM1 SoCs. Since Other Amlogic SoCs doens't report an issue, phase value is using to 180' by default. To distinguish which value is used adds an u-boot only sm1 compatible. In future, it needs to find what value is a proper about each SoCs. Signed-off-by: Neil Armstrong Signed-off-by: Jaehoon Chung Tested-by: Anand Moon --- drivers/mmc/meson_gx_mmc.c | 27 +++++++++++++++++++++++---- drivers/mmc/meson_gx_mmc.h | 5 +++++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/meson_gx_mmc.c b/drivers/mmc/meson_gx_mmc.c index eedebb317b5f..a5e9ac5637b9 100644 --- a/drivers/mmc/meson_gx_mmc.c +++ b/drivers/mmc/meson_gx_mmc.c @@ -17,6 +17,14 @@ #include #include "meson_gx_mmc.h" +bool meson_gx_mmc_is_compatible(struct udevice *dev, + enum meson_gx_mmc_compatible family) +{ + enum meson_gx_mmc_compatible compat = dev_get_driver_data(dev); + + return compat == family; +} + static inline void *get_regbase(const struct mmc *mmc) { struct meson_mmc_platdata *pdata = mmc->priv; @@ -42,6 +50,8 @@ static void meson_mmc_config_clock(struct mmc *mmc) if (!mmc->clock) return; + /* TOFIX This should use the proper clock taken from DT */ + /* 1GHz / CLK_MAX_DIV = 15,9 MHz */ if (mmc->clock > 16000000) { clk = SD_EMMC_CLKSRC_DIV2; @@ -52,8 +62,16 @@ static void meson_mmc_config_clock(struct mmc *mmc) } clk_div = DIV_ROUND_UP(clk, mmc->clock); - /* 180 phase core clock */ - meson_mmc_clk |= CLK_CO_PHASE_180; + /* + * SM1 SoCs doesn't work fine over 50MHz with CLK_CO_PHASE_180 + * If CLK_CO_PHASE_270 is used, it's more stable than other. + * Other SoCs use CLK_CO_PHASE_180 by default. + * It needs to find what is a proper value about each SoCs. + */ + if (meson_gx_mmc_is_compatible(mmc->dev, MMC_COMPATIBLE_SM1)) + meson_mmc_clk |= CLK_CO_PHASE_270; + else + meson_mmc_clk |= CLK_CO_PHASE_180; /* 180 phase tx clock */ meson_mmc_clk |= CLK_TX_PHASE_000; @@ -308,8 +326,9 @@ int meson_mmc_bind(struct udevice *dev) } static const struct udevice_id meson_mmc_match[] = { - { .compatible = "amlogic,meson-gx-mmc" }, - { .compatible = "amlogic,meson-axg-mmc" }, + { .compatible = "amlogic,meson-gx-mmc", .data = MMC_COMPATIBLE_GX }, + { .compatible = "amlogic,meson-axg-mmc", .data = MMC_COMPATIBLE_GX }, + { .compatible = "amlogic,meson-sm1-mmc", .data = MMC_COMPATIBLE_SM1 }, { /* sentinel */ } }; diff --git a/drivers/mmc/meson_gx_mmc.h b/drivers/mmc/meson_gx_mmc.h index b4544b55628f..92aec5329f6e 100644 --- a/drivers/mmc/meson_gx_mmc.h +++ b/drivers/mmc/meson_gx_mmc.h @@ -9,6 +9,11 @@ #include #include +enum meson_gx_mmc_compatible { + MMC_COMPATIBLE_GX, + MMC_COMPATIBLE_SM1, +}; + #define SDIO_PORT_A 0 #define SDIO_PORT_B 1 #define SDIO_PORT_C 2