From patchwork Fri Nov 2 15:03:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992352 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="U7WSFhth"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mlhN3ptxzB4WZ for ; Sat, 3 Nov 2018 02:03:48 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 37BE1C22586; Fri, 2 Nov 2018 15:03:46 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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 B3297C22535; Fri, 2 Nov 2018 15:03:43 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id DC24CC22561; Fri, 2 Nov 2018 15:03:41 +0000 (UTC) Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by lists.denx.de (Postfix) with ESMTPS id CCBB6C22535 for ; Fri, 2 Nov 2018 15:03:40 +0000 (UTC) Received: by mail-wm1-f68.google.com with SMTP id l2-v6so2164293wmh.3 for ; Fri, 02 Nov 2018 08:03:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=RV3U3VwjfmPt7GkqAin2SgWrcqkMASKlKGLTqyucXN0=; b=U7WSFhthkzWMv+dN7DAMfDeZ4xLq59jgWHWTpjZnDYvxeB/zxmvNKoSLzFldzONSO4 wsyWo9sCSBTD8Q/eFAL6WILOnPDXnCeT0vJoZ1WVedwyxGNNE+ZAO5OYB57FfMY/YZP0 kSt23nBOzvpUP2pr/2iT41dxXP4s9tkPMTc9AZO9mq+A9yvx4SD/q77a1BgPutwADz9x wXyXKb/GGfS6/8IYannhmMbJ6oWXO20ZMTyQbqe2ATIrVJQTq4C4lq/Zu5hqaKltmIBs n+NoSHDOaMf3kII5qfWYasoN8PEYZkbCjkwSmv4ScyQMl+6YR6uX+caF9fPolphaX1gb HESA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=RV3U3VwjfmPt7GkqAin2SgWrcqkMASKlKGLTqyucXN0=; b=BIEDtcKacqamg34q65LqdlSNQkbzMfdYvft9Vjcvv6fU5aZAHygfC925Vl0vdO1FDC PbYw4/GdvtZhuwGm5Zni9uocgOTNRn+Je8hL0gTAgVGkk38+qwkrEl4BKBtQpdS/Bqlg VRJt0Q52eEE8Ii3AxUlZ7/w03Ju7yhKQUV45tjG6Vhd17pBhPu8jQa2p1W40JY24Kzs9 r9oH2qWOwDWvP3U3RU+KQZLqLENOGXUmta5IHygq5pWJf/t462GUXFnDrc0aK8BJhTqW oO9xbgJMaFgUBYPtR6W/LiBwzdonFZIuhtgKm58sO1T6NOk/q4lsdJ3VS3aUbLKby24M Qg+g== X-Gm-Message-State: AGRZ1gIQyTiu/BxeoXSGdxoV4pUF0kgtqZZ0fRCmhmb+GvCrAwkY74pi k4euC8gR/padFOhyRjxAoJnhhsZ1 X-Google-Smtp-Source: AJdET5csm3QyaLPZsqzXls4Yai5PhwpfjFXfTSEWKU24yT4WKWRnJGpqQUIyf8HpsnGYizRaPC/f7g== X-Received: by 2002:a1c:85c5:: with SMTP id h188-v6mr48687wmd.59.1541171019990; Fri, 02 Nov 2018 08:03:39 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.38 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:39 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:16 +0100 Message-Id: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 01/13] mmc: tmio: Simplify pinmux handling 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" The SD UHS SDR12, SDR25, SDR50, SDR104, DDR50 and MMC HS200, HS400 modes all use 1.8V signaling, while all the legacy modes use 3.3V signaling. While there are extra modes which use 1.2V signaling, the existing hardware does not support those. Simplify the pinmux such that 3.3V signaling implies legacy mode pinmux and the rest implies UHS mode pinmux. This prevents the massive case statement from growing further. Moreover, it fixes an edge case where during SD 1.8V switch, the bus mode is still set to default while the signaling is already set to 1.8V, which results in an attempt to communicate with a 1.8V card using pins in 3.3V mode and thus communication failure. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: No change V3: No change --- drivers/mmc/tmio-common.c | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c index 138de59470..5f927c6150 100644 --- a/drivers/mmc/tmio-common.c +++ b/drivers/mmc/tmio-common.c @@ -622,26 +622,10 @@ static void tmio_sd_set_pins(struct udevice *dev) #endif #ifdef CONFIG_PINCTRL - switch (mmc->selected_mode) { - case MMC_LEGACY: - case SD_LEGACY: - case MMC_HS: - case SD_HS: - case MMC_HS_52: - case MMC_DDR_52: - pinctrl_select_state(dev, "default"); - break; - case UHS_SDR12: - case UHS_SDR25: - case UHS_SDR50: - case UHS_DDR50: - case UHS_SDR104: - case MMC_HS_200: + if (mmc->signal_voltage == MMC_SIGNAL_VOLTAGE_180) pinctrl_select_state(dev, "state_uhs"); - break; - default: - break; - } + else + pinctrl_select_state(dev, "default"); #endif } From patchwork Fri Nov 2 15:03:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992354 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="XuqlMWB1"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mlkT4RK1zB4WZ for ; Sat, 3 Nov 2018 02:05:37 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 362B4C2258A; Fri, 2 Nov 2018 15:04:23 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, 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 64130C22584; Fri, 2 Nov 2018 15:03:45 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B1E6BC22561; Fri, 2 Nov 2018 15:03:43 +0000 (UTC) Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by lists.denx.de (Postfix) with ESMTPS id 91146C22535 for ; Fri, 2 Nov 2018 15:03:42 +0000 (UTC) Received: by mail-wm1-f66.google.com with SMTP id s10-v6so2250079wmc.5 for ; Fri, 02 Nov 2018 08:03:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=NizNQdiB2uSqLLa/Inqeeu5NFsnXxunJ++M1I21I+TE=; b=XuqlMWB1xAPhsbgxnaGaB560XYdKYyqaTXow6nequBswqWmEuhi2rwCQPomUnbYSnJ 2QZy9RoEcXPRzzCcaELzVJ08msSMZ+8vQrw4/+mhzmOHVz1F7ciJ9FumIglLSDhLj0Ij QMicK17tkyBKTOgSzqwoK+6bsKLBSehwV2SFpDYHAQKpWEptAelkHlItV9e3GL8H5sEs IpwaRYkfUzNZUuWyOk1J8nK29/zA4Z5zVJZX2U5DuahGjcyIfQPYG8getMQA8FRrmI50 5WRZsGeiI3ZCweYwGEn2fS7HUsxtKns3WyEeti9JjC89Zk678m2/cfyu7IOOjyRmtCJw 2/tA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=NizNQdiB2uSqLLa/Inqeeu5NFsnXxunJ++M1I21I+TE=; b=eUeJOhzM6+/6664GIoqxGr8JXUswZf4v2lVPY9m0Kiten3CoaOwPkZ0eAjdWO2EyXj EEpjkYVK6emS+xPuIy+NOw3b/m10nuMKl4mFEkmxyl+qOa0LwzB3uRnwHBuQw7cfn2SD Ph8mJpb2htDCIePQnlkH9YTEb4vQNIoswQV9xhlEW41TpaHxW6HN96MQxA+AL6yKEMNA imxcu6dcCcPXyWVYcQTYzMl/8hOHMUFWhl35QaI0GKfWBVALJKXB0UPWg6kMEOUhO2dz I1AUrXugU7Yhxn02QoDPME8CDkqboM4gkDGNn6hDdr7h3z4DukppRADY0I9zkqBDWvXb fYDg== X-Gm-Message-State: AGRZ1gKLVs/knGHeTq6Aw+9rscw2sbtJB1RjZJJirS+aMcLmqW2ifqBD zkyzjUp49tMdP8KRonhQqlu86Roa X-Google-Smtp-Source: AJdET5dE+9Nbnhx7U+FPy2rNJDFCkhMoiNPcYpbtN1pULsCnuerDvwtg8uJfac6ss2coT/zzHTbGvA== X-Received: by 2002:a1c:2846:: with SMTP id o67-v6mr72756wmo.60.1541171021780; Fri, 02 Nov 2018 08:03:41 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:40 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:17 +0100 Message-Id: <20181102150328.21972-2-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> References: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 02/13] mmc: tmio: Improve error handling 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Properly handle return values and abort operations when they are non-zero. This is a minor improvement, which fixes two remaining unchecked return values. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: No change V3: No change --- drivers/mmc/tmio-common.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c index 5f927c6150..f1ce019db5 100644 --- a/drivers/mmc/tmio-common.c +++ b/drivers/mmc/tmio-common.c @@ -498,6 +498,8 @@ int tmio_sd_send_cmd(struct udevice *dev, struct mmc_cmd *cmd, ret = tmio_sd_dma_xfer(dev, data); else ret = tmio_sd_pio_xfer(dev, data); + if (ret) + return ret; ret = tmio_sd_wait_for_irq(dev, TMIO_SD_INFO1, TMIO_SD_INFO1_CMP); @@ -505,9 +507,8 @@ int tmio_sd_send_cmd(struct udevice *dev, struct mmc_cmd *cmd, return ret; } - tmio_sd_wait_for_irq(dev, TMIO_SD_INFO2, TMIO_SD_INFO2_SCLKDIVEN); - - return ret; + return tmio_sd_wait_for_irq(dev, TMIO_SD_INFO2, + TMIO_SD_INFO2_SCLKDIVEN); } static int tmio_sd_set_bus_width(struct tmio_sd_priv *priv, From patchwork Fri Nov 2 15:03:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992353 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="CfNCH3Pr"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mljw6mLfzB4WZ for ; Sat, 3 Nov 2018 02:05:08 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 9C529C225A2; Fri, 2 Nov 2018 15:04:41 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, 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 18FDFC2259A; Fri, 2 Nov 2018 15:03:52 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id F0B1AC22597; Fri, 2 Nov 2018 15:03:48 +0000 (UTC) Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by lists.denx.de (Postfix) with ESMTPS id 0594FC22561 for ; Fri, 2 Nov 2018 15:03:44 +0000 (UTC) Received: by mail-wr1-f65.google.com with SMTP id u1-v6so2332101wrn.0 for ; Fri, 02 Nov 2018 08:03:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=X7jmHv5/0rdWhh346XwJ+LiTeFD5/Lw7iZobTo99gnY=; b=CfNCH3PrVNxYmKTw8RKPtjfybeDysRBDD5q9KzhBZUgMudruV/ffKt9UH33vKpp4Vi ivFiVRQ+Q773vxosiF//QxdmROIjq62xhYD3lr10qZHQaZletxzLO/fFMCCD6TuQjerf uJ7wTdhSkYJ38p8GsGOHAqlai9x7Xk+aFn7v8ACX4B7J14YLQcCnehcYStuedKOYMKG8 ueL91E/LYXIpXJ7jz40+u5zWyYyJVFq1v7swNUL5lAtr7mX1gI+ilp1oFnRRVnAK+wGv 3XE+etA83iK53Ow2kB5uuFfC+2L+iA6CGbUsa8Dzy3LnDsUdnGgVUHe72EQ795hEdIYP Z9Xg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=X7jmHv5/0rdWhh346XwJ+LiTeFD5/Lw7iZobTo99gnY=; b=V4MwyyZ2eiGypedKdiJJbxDPTAs25te7PJjMWiwbCrsawoRtJ/ac1IU+SPOg/AE5Gr sANCT7julVxJkGJ/hNWv5ebyTmcLHsMKPt3NOApJ+6YT5qEYebDTTSOGvj6GDxuDR/07 1medRMLfI+x+BcrHQwdKKR6oGFS1TfYVhcDopfgTI/AfCcIyGDVTcgydbrQNTqKi8ZUq DGTAvad0nF+ZnBX9mZzxNveDIsbYez/vOff2gEY6hcPN5UDAbSBTPrCRJ8ni2zV1LCLn 5G0TwCuckP0SvGzPyNirdpUY5f5TS86sy55DbZHLySWZlKqGSYbuzH9vW/L/Zf7vS9sR iO4w== X-Gm-Message-State: AGRZ1gIMGehLMll5w1WvdmhS9nxCA1oI1wSXMaFvqqNUBvOBjGkCdbwP XTqh4InSKDn7Ql04L2SXvywMvqf3 X-Google-Smtp-Source: AJdET5ePtz9V/YTpSc366PtsZ9IHZSocS0ibBRkCDXMyPgdFwB9qvJXtOv5O2ZDFpmpOw/Yc+JXqxQ== X-Received: by 2002:adf:b1db:: with SMTP id r27-v6mr10511200wra.95.1541171023192; Fri, 02 Nov 2018 08:03:43 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.41 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:42 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:18 +0100 Message-Id: <20181102150328.21972-3-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> References: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 03/13] mmc: tmio: Silence transfer errors when tuning 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" In case the controller performs card tuning, that is, sends MMC command 19 or 21, silence possible CRC error warning prints. The warnings are bound to happen, since the tuning will fail for some settings while searching for the optimal configuration of the bus and that is perfectly OK. This patch passes around the MMC command structure and adds check into tmio_sd_check_error() to avoid printing CRC error warning when the tuning happens. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: No change V3: No change --- drivers/mmc/tmio-common.c | 45 +++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c index f1ce019db5..785b654671 100644 --- a/drivers/mmc/tmio-common.c +++ b/drivers/mmc/tmio-common.c @@ -95,7 +95,7 @@ static void __dma_unmap_single(dma_addr_t addr, size_t size, invalidate_dcache_range(addr, addr + size); } -static int tmio_sd_check_error(struct udevice *dev) +static int tmio_sd_check_error(struct udevice *dev, struct mmc_cmd *cmd) { struct tmio_sd_priv *priv = dev_get_priv(dev); u32 info2 = tmio_sd_readl(priv, TMIO_SD_INFO2); @@ -116,7 +116,9 @@ static int tmio_sd_check_error(struct udevice *dev) if (info2 & (TMIO_SD_INFO2_ERR_END | TMIO_SD_INFO2_ERR_CRC | TMIO_SD_INFO2_ERR_IDX)) { - dev_err(dev, "communication out of sync\n"); + if ((cmd->cmdidx != MMC_CMD_SEND_TUNING_BLOCK) && + (cmd->cmdidx != MMC_CMD_SEND_TUNING_BLOCK_HS200)) + dev_err(dev, "communication out of sync\n"); return -EILSEQ; } @@ -129,8 +131,8 @@ static int tmio_sd_check_error(struct udevice *dev) return 0; } -static int tmio_sd_wait_for_irq(struct udevice *dev, unsigned int reg, - u32 flag) +static int tmio_sd_wait_for_irq(struct udevice *dev, struct mmc_cmd *cmd, + unsigned int reg, u32 flag) { struct tmio_sd_priv *priv = dev_get_priv(dev); long wait = 1000000; @@ -142,7 +144,7 @@ static int tmio_sd_wait_for_irq(struct udevice *dev, unsigned int reg, return -ETIMEDOUT; } - ret = tmio_sd_check_error(dev); + ret = tmio_sd_check_error(dev, cmd); if (ret) return ret; @@ -178,15 +180,15 @@ tmio_pio_read_fifo(64, q) tmio_pio_read_fifo(32, l) tmio_pio_read_fifo(16, w) -static int tmio_sd_pio_read_one_block(struct udevice *dev, char *pbuf, - uint blocksize) +static int tmio_sd_pio_read_one_block(struct udevice *dev, struct mmc_cmd *cmd, + char *pbuf, uint blocksize) { struct tmio_sd_priv *priv = dev_get_priv(dev); int ret; /* wait until the buffer is filled with data */ - ret = tmio_sd_wait_for_irq(dev, TMIO_SD_INFO2, - TMIO_SD_INFO2_BRE); + ret = tmio_sd_wait_for_irq(dev, cmd, TMIO_SD_INFO2, + TMIO_SD_INFO2_BRE); if (ret) return ret; @@ -231,15 +233,15 @@ tmio_pio_write_fifo(64, q) tmio_pio_write_fifo(32, l) tmio_pio_write_fifo(16, w) -static int tmio_sd_pio_write_one_block(struct udevice *dev, +static int tmio_sd_pio_write_one_block(struct udevice *dev, struct mmc_cmd *cmd, const char *pbuf, uint blocksize) { struct tmio_sd_priv *priv = dev_get_priv(dev); int ret; /* wait until the buffer becomes empty */ - ret = tmio_sd_wait_for_irq(dev, TMIO_SD_INFO2, - TMIO_SD_INFO2_BWE); + ret = tmio_sd_wait_for_irq(dev, cmd, TMIO_SD_INFO2, + TMIO_SD_INFO2_BWE); if (ret) return ret; @@ -255,7 +257,8 @@ static int tmio_sd_pio_write_one_block(struct udevice *dev, return 0; } -static int tmio_sd_pio_xfer(struct udevice *dev, struct mmc_data *data) +static int tmio_sd_pio_xfer(struct udevice *dev, struct mmc_cmd *cmd, + struct mmc_data *data) { const char *src = data->src; char *dest = data->dest; @@ -263,10 +266,10 @@ static int tmio_sd_pio_xfer(struct udevice *dev, struct mmc_data *data) for (i = 0; i < data->blocks; i++) { if (data->flags & MMC_DATA_READ) - ret = tmio_sd_pio_read_one_block(dev, dest, + ret = tmio_sd_pio_read_one_block(dev, cmd, dest, data->blocksize); else - ret = tmio_sd_pio_write_one_block(dev, src, + ret = tmio_sd_pio_write_one_block(dev, cmd, src, data->blocksize); if (ret) return ret; @@ -468,8 +471,8 @@ int tmio_sd_send_cmd(struct udevice *dev, struct mmc_cmd *cmd, cmd->cmdidx, tmp, cmd->cmdarg); tmio_sd_writel(priv, tmp, TMIO_SD_CMD); - ret = tmio_sd_wait_for_irq(dev, TMIO_SD_INFO1, - TMIO_SD_INFO1_RSP); + ret = tmio_sd_wait_for_irq(dev, cmd, TMIO_SD_INFO1, + TMIO_SD_INFO1_RSP); if (ret) return ret; @@ -497,17 +500,17 @@ int tmio_sd_send_cmd(struct udevice *dev, struct mmc_cmd *cmd, tmio_sd_addr_is_dmaable(data->src)) ret = tmio_sd_dma_xfer(dev, data); else - ret = tmio_sd_pio_xfer(dev, data); + ret = tmio_sd_pio_xfer(dev, cmd, data); if (ret) return ret; - ret = tmio_sd_wait_for_irq(dev, TMIO_SD_INFO1, - TMIO_SD_INFO1_CMP); + ret = tmio_sd_wait_for_irq(dev, cmd, TMIO_SD_INFO1, + TMIO_SD_INFO1_CMP); if (ret) return ret; } - return tmio_sd_wait_for_irq(dev, TMIO_SD_INFO2, + return tmio_sd_wait_for_irq(dev, cmd, TMIO_SD_INFO2, TMIO_SD_INFO2_SCLKDIVEN); } From patchwork Fri Nov 2 15:03:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992355 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="FqIIat/G"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mllB5q18zB4WZ for ; Sat, 3 Nov 2018 02:06:14 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 6A516C22564; Fri, 2 Nov 2018 15:05:00 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, 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 2A69BC225A2; Fri, 2 Nov 2018 15:03:56 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 16B11C2259B; Fri, 2 Nov 2018 15:03:50 +0000 (UTC) Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by lists.denx.de (Postfix) with ESMTPS id 59C4AC22583 for ; Fri, 2 Nov 2018 15:03:45 +0000 (UTC) Received: by mail-wm1-f66.google.com with SMTP id b203-v6so2155328wme.5 for ; Fri, 02 Nov 2018 08:03:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=qKHE2+seveFYpZhdex3WZhI2N5dsyBonKL2UkOd1gJk=; b=FqIIat/G2T+u8mB9z9dc+xYV72PCFVh8JsDITfPiWFI/6CNMG05p9TV7iRvcdhuXT3 QJwLCV2BwFgo68yNCnfI1if4/MHwghjYaEk0MPu+sUCaCiT8ZIbSg+l/e420GIfb083o /4OERuV8gjCet8RBmrr8nEtRhzS4ru1VeahCpK/VGTpQQAZwRaBPlZpIPueIJhrjWRZL FaUWb3m5CXsSHKfl1O9yD/3vURTy/d1wv9SBFCUyIE6Ws5CAm+5PawvNvLTVmHygDOCO v0Ft31pq9OhgRlzwWDhUhSVpZmmrO2u938syap3F7AoZiBvRjC4UX1xliGMJSYst1NkA f9Aw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=qKHE2+seveFYpZhdex3WZhI2N5dsyBonKL2UkOd1gJk=; b=iA2c+x1fwp08ovPyzvP9OPYGn44qL/nXJtNSYp4rxi45wm+fG3njOS1M8xKNzOm9qq E/dwPw6IwVpAKEg71+eAack+nocKi5q3T64A+x74aR2dKZQPZnq3cHl3WnMFz7sl4EH9 gI2mQIbrr2aNvpqUYS4JdnJU2JROSR8I7zCX9Plk48ziXoLqCSPjNKM4oIiN+SpzPXxm NtsX+fCkFziThq+sOYlDAjvzKKW1vLo00pc8Ksyd04GNPEtvKbMPyAXTrptjjORQMnTt 1HkFbiVlqyNHQQFiTEqojS0bsto17GbV1saKH7fGbN+SsKgZUk9ECNGUAKc3Y7udSZei 2Dzg== X-Gm-Message-State: AGRZ1gJlotzjwwZlsWRsXKeLPfdRyFkF2MZVXo8igqX5fJSB4cvB3Dtj XS2uN/WSV8vP29QurWylDl3A4+Pm X-Google-Smtp-Source: AJdET5dPCYyXqdktokY31+i/aJaAUGSU7BBWJ5IzVb8jq9hMuc227TseY+m7fpcfsY1rE2iPzIHyuQ== X-Received: by 2002:a1c:83cb:: with SMTP id f194-v6mr80219wmd.26.1541171024569; Fri, 02 Nov 2018 08:03:44 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:43 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:19 +0100 Message-Id: <20181102150328.21972-4-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> References: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 04/13] mmc: tmio: Configure clock before any other IOS 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Configure the clock settings before reconfiguring any other IO settings. This is required when the clock must be stopped before changing eg. the pin configuration or any of the other properties of the bus. Running the clock configuration first allows the MMC core to do just that. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: No change V3: No change --- drivers/mmc/tmio-common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c index 785b654671..2a73829d99 100644 --- a/drivers/mmc/tmio-common.c +++ b/drivers/mmc/tmio-common.c @@ -642,11 +642,11 @@ int tmio_sd_set_ios(struct udevice *dev) dev_dbg(dev, "clock %uHz, DDRmode %d, width %u\n", mmc->clock, mmc->ddr_mode, mmc->bus_width); + tmio_sd_set_clk_rate(priv, mmc); ret = tmio_sd_set_bus_width(priv, mmc); if (ret) return ret; tmio_sd_set_ddr_mode(priv, mmc); - tmio_sd_set_clk_rate(priv, mmc); tmio_sd_set_pins(dev); return 0; From patchwork Fri Nov 2 15:03:20 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992365 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="L29nDKsd"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mlsz618Lz9sCQ for ; Sat, 3 Nov 2018 02:12:07 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 83AF4C22593; Fri, 2 Nov 2018 15:05:33 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, 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 3F4F0C2257D; Fri, 2 Nov 2018 15:04:11 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 85472C22571; Fri, 2 Nov 2018 15:03:52 +0000 (UTC) Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by lists.denx.de (Postfix) with ESMTPS id ED108C22535 for ; Fri, 2 Nov 2018 15:03:46 +0000 (UTC) Received: by mail-wm1-f65.google.com with SMTP id p2-v6so2158311wmc.2 for ; Fri, 02 Nov 2018 08:03:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Y9F4/tKL4hcMmV3kQQFy2nww1K2rKO74kqcEQ37IUUc=; b=L29nDKsd6yi4k+hOTuVwa0QJw6K0CkhGpXAb+hzflevyMUWtcWfdljqX8aUZWNDfvx 5V62HArWjy0G5a+8lvTDOXdwmLU0OiWZwwuPlsuT3GiGV7gqAmLuiKgfhhb8GK2adN8N FPkG+hfFcnM8rrpT3jq7h3n3cqtPf8j2HHz1QxFmS3QsdEBpP9//UeHM7kotAHJjr7I1 wqJhkxCYMaFdQUzLXs0wis3g0+fzJTFO3cSjJq6CsWTorTQbvl8qJtfQfkZF7fuFqyRa WCpc8kUsmZeuXEzz6HnqqqTglE53sAYBmzuVXu8XrGGeHVPJo8sjNBAuLdj1F9cAkdmI ZslQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=Y9F4/tKL4hcMmV3kQQFy2nww1K2rKO74kqcEQ37IUUc=; b=ZrEnR+kJP49TtZbEkw/3ov/10j7/pEBihHesuVhjAgTpr3hT+zjlF40wbW4SBpGSGS MuqEt5CE46bJ5wz4QEi9hFev3Dab7vR3t5p+N/mEQWftbH6TYGsMEgAXp5w954ndA+XB bUx9FpgozmOrTISLeNlU7GSVC1fY33B58QbH3dlkbB+qcx9WYI+CwFIQwzQMNn8AKXWS p72RKMylRZJfPUa6LVm3G7nCHPgSbSWc4yBVu9wCD/6zm83sigMQMHuCRXF392yqR9Fs zRtoJibG+IAiUd03x/tQmrNDxnN/6sUtjeuhjyCNvu9TbN9S1oQ+Ji6sy+BYKvzWWrx4 vOnA== X-Gm-Message-State: AGRZ1gI3bNGue8fu1Pk5glgwATKwYQx1boAWJqph8H1UxuLXlntyS/XT CNydy0+bRYwXihOYZGFL03cKax/T X-Google-Smtp-Source: AJdET5cyFruaq4Rs+pqbCODchFBFqaWyibIWFqMzx47qpPceFMWhHs0UWdDRRXr/Dm2itCUcMENKFw== X-Received: by 2002:a1c:ee89:: with SMTP id j9-v6mr76349wmi.58.1541171025911; Fri, 02 Nov 2018 08:03:45 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:44 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:20 +0100 Message-Id: <20181102150328.21972-5-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> References: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 05/13] mmc: tmio: Preinitialize regulator to 3.3V 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Preinitialize the SD card signals regulator to 3.3V, which is the default post-reset setting, to be sure the regulator is set to a valid value. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: No change V3: No change --- drivers/mmc/tmio-common.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c index 2a73829d99..0eca83a0f4 100644 --- a/drivers/mmc/tmio-common.c +++ b/drivers/mmc/tmio-common.c @@ -720,6 +720,8 @@ int tmio_sd_probe(struct udevice *dev, u32 quirks) #ifdef CONFIG_DM_REGULATOR device_get_supply_regulator(dev, "vqmmc-supply", &priv->vqmmc_dev); + if (priv->vqmmc_dev) + regulator_set_value(priv->vqmmc_dev, 3300000); #endif ret = mmc_of_parse(dev, &plat->cfg); From patchwork Fri Nov 2 15:03:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992359 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="YQOWHY1f"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mlq83hXZz9sCQ for ; Sat, 3 Nov 2018 02:09:40 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 44591C225A7; Fri, 2 Nov 2018 15:06:27 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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 04657C225A9; Fri, 2 Nov 2018 15:04:15 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id D5643C22578; Fri, 2 Nov 2018 15:03:52 +0000 (UTC) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by lists.denx.de (Postfix) with ESMTPS id 51B20C2258A for ; Fri, 2 Nov 2018 15:03:48 +0000 (UTC) Received: by mail-wr1-f66.google.com with SMTP id i17-v6so2305394wre.7 for ; Fri, 02 Nov 2018 08:03:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=h5f1iruT+XQpWMX6PaDnIeVaYpkadwopgPply89ezcE=; b=YQOWHY1flVhqYQvXZyXUdb164Bu7cXOs7QsZc2IS2cZdUwOS9VJ8cB7TPhPJZnTmWv V66zMFix5KXM9BW94YFF+o1O5C72oGRFXopWKZIfpIovOUCR00x4Iq14wHORjDAN7I7b 9m56KLi6LjPICLRDf4IeoZni819Gg/ZS7+6gqiHmrtlCjFLQe8suso/gpb/pVKfm60Dw MySFNIufpPJaaQAy4VK3IBCiW/g5vcm5gD9FY741XiPC/gUFEso7qssqgCps2KhlZY27 Oea3BLC7leYbJPTZ8bwE1oo1oRfZ6t3MVl3o3woVYAFWdHFl5T3juBOiifHBbVATJLwa vOYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=h5f1iruT+XQpWMX6PaDnIeVaYpkadwopgPply89ezcE=; b=eOpwYIfi7UZ53LJ3fMc/l1VdD4Pcc5CBnivPnJo0n6KYkkzINWs//NMotpH/xNSw+Y fTmH1D+xzZq0m2LVkXGKUvNVnVICvLd6pxv9fAObcI2bSWuTB9JWx+npgaOqKfwCDq1K CgXjM8GJtoVR02wNZaRCdrhaoVGffp5q8gWFstFwQ/ViVBBYsyb8rjw7nyJ0SPXMPOMe ltn95YK/IbOI0HNaLqlhUPrTewLEwsRot0TUqvf/NXyWS7U4OZP0tHah6HAV0ZX1YHSS kPuVNDWseYiLCHvV4X1t8YSIgXzUuAw/EyNNC3uV/CyPlw/9kZL0wrzZAhpA/3V2J/Qh YUWw== X-Gm-Message-State: AGRZ1gLT46G+m3GUIc+M8mU4sfV6qHGalA3JR0nclprnR0yuoFwKOnWR NB35j2xPgumCa8Vin3GrWhJToiCJ X-Google-Smtp-Source: AJdET5fBuAxHVXHhh/dSCWktKAMOFjoB1fa4MfesqhIqBtil3P98hwgJFlPnBjjCR7fk0U2v10EoOg== X-Received: by 2002:adf:9ccb:: with SMTP id h11-v6mr10828853wre.322.1541171027475; Fri, 02 Nov 2018 08:03:47 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:46 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:21 +0100 Message-Id: <20181102150328.21972-6-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> References: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 06/13] mmc: tmio: Switch to clock framework 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Switch the driver to using clk_get_rate()/clk_set_rate() instead of caching the mclk frequency in it's private data. This is required on the SDHI variant of the controller, where the upstream mclk need to be adjusted when using UHS modes. Platforms which do not support clock framework or do not support it in eg. SPL default to 100 MHz clock. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: - Fix build on certain platforms using SPL without clock framework V3: - Turn clk_get_rate into a callback and fill it as needed on both renesas and socionext platforms --- drivers/mmc/renesas-sdhi.c | 21 +++++++++++++-------- drivers/mmc/tmio-common.c | 17 ++++++++++++++--- drivers/mmc/tmio-common.h | 5 ++++- drivers/mmc/uniphier-sd.c | 30 ++++++++++++++++++++---------- 4 files changed, 51 insertions(+), 22 deletions(-) diff --git a/drivers/mmc/renesas-sdhi.c b/drivers/mmc/renesas-sdhi.c index f8dc5f57ce..edb8e22d3c 100644 --- a/drivers/mmc/renesas-sdhi.c +++ b/drivers/mmc/renesas-sdhi.c @@ -328,15 +328,21 @@ static const struct udevice_id renesas_sdhi_match[] = { { /* sentinel */ } }; +static ulong renesas_sdhi_clk_get_rate(struct tmio_sd_priv *priv) +{ + return clk_get_rate(&priv->clk); +} + static int renesas_sdhi_probe(struct udevice *dev) { struct tmio_sd_priv *priv = dev_get_priv(dev); u32 quirks = dev_get_driver_data(dev); struct fdt_resource reg_res; - struct clk clk; DECLARE_GLOBAL_DATA_PTR; int ret; + priv->clk_get_rate = renesas_sdhi_clk_get_rate; + if (quirks == RENESAS_GEN2_QUIRKS) { ret = fdt_get_resource(gd->fdt_blob, dev_of_offset(dev), "reg", 0, ®_res); @@ -350,22 +356,21 @@ static int renesas_sdhi_probe(struct udevice *dev) quirks |= TMIO_SD_CAP_16BIT; } - ret = clk_get_by_index(dev, 0, &clk); + ret = clk_get_by_index(dev, 0, &priv->clk); if (ret < 0) { dev_err(dev, "failed to get host clock\n"); return ret; } /* set to max rate */ - priv->mclk = clk_set_rate(&clk, ULONG_MAX); - if (IS_ERR_VALUE(priv->mclk)) { + ret = clk_set_rate(&priv->clk, 200000000); + if (ret < 0) { dev_err(dev, "failed to set rate for host clock\n"); - clk_free(&clk); - return priv->mclk; + clk_free(&priv->clk); + return ret; } - ret = clk_enable(&clk); - clk_free(&clk); + ret = clk_enable(&priv->clk); if (ret) { dev_err(dev, "failed to enable host clock\n"); return ret; diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c index 0eca83a0f4..3ba2f07460 100644 --- a/drivers/mmc/tmio-common.c +++ b/drivers/mmc/tmio-common.c @@ -555,16 +555,24 @@ static void tmio_sd_set_ddr_mode(struct tmio_sd_priv *priv, tmio_sd_writel(priv, tmp, TMIO_SD_IF_MODE); } +static ulong tmio_sd_clk_get_rate(struct tmio_sd_priv *priv) +{ + return priv->clk_get_rate(priv); +} + static void tmio_sd_set_clk_rate(struct tmio_sd_priv *priv, struct mmc *mmc) { unsigned int divisor; u32 val, tmp; + ulong mclk; if (!mmc->clock) return; - divisor = DIV_ROUND_UP(priv->mclk, mmc->clock); + mclk = tmio_sd_clk_get_rate(priv); + + divisor = DIV_ROUND_UP(mclk, mmc->clock); if (divisor <= 1) val = (priv->caps & TMIO_SD_CAP_RCAR) ? @@ -708,6 +716,7 @@ int tmio_sd_probe(struct udevice *dev, u32 quirks) struct tmio_sd_priv *priv = dev_get_priv(dev); struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev); fdt_addr_t base; + ulong mclk; int ret; base = devfdt_get_addr(dev); @@ -750,10 +759,12 @@ int tmio_sd_probe(struct udevice *dev, u32 quirks) tmio_sd_host_init(priv); + mclk = tmio_sd_clk_get_rate(priv); + plat->cfg.voltages = MMC_VDD_165_195 | MMC_VDD_32_33 | MMC_VDD_33_34; - plat->cfg.f_min = priv->mclk / + plat->cfg.f_min = mclk / (priv->caps & TMIO_SD_CAP_DIV1024 ? 1024 : 512); - plat->cfg.f_max = priv->mclk; + plat->cfg.f_max = mclk; plat->cfg.b_max = U32_MAX; /* max value of TMIO_SD_SECCNT */ upriv->mmc = &plat->mmc; diff --git a/drivers/mmc/tmio-common.h b/drivers/mmc/tmio-common.h index 792b1ba5ae..6591c61c3c 100644 --- a/drivers/mmc/tmio-common.h +++ b/drivers/mmc/tmio-common.h @@ -117,7 +117,6 @@ struct tmio_sd_plat { struct tmio_sd_priv { void __iomem *regbase; - unsigned long mclk; unsigned int version; u32 caps; #define TMIO_SD_CAP_NONREMOVABLE BIT(0) /* Nonremovable e.g. eMMC */ @@ -133,6 +132,10 @@ struct tmio_sd_priv { #ifdef CONFIG_DM_REGULATOR struct udevice *vqmmc_dev; #endif +#if CONFIG_IS_ENABLED(CLK) + struct clk clk; +#endif + ulong (*clk_get_rate)(struct tmio_sd_priv *); }; int tmio_sd_send_cmd(struct udevice *dev, struct mmc_cmd *cmd, diff --git a/drivers/mmc/uniphier-sd.c b/drivers/mmc/uniphier-sd.c index 813c28494c..6539880ab5 100644 --- a/drivers/mmc/uniphier-sd.c +++ b/drivers/mmc/uniphier-sd.c @@ -31,35 +31,45 @@ static const struct udevice_id uniphier_sd_match[] = { { /* sentinel */ } }; +static ulong uniphier_sd_clk_get_rate(struct tmio_sd_priv *priv) +{ +#if CONFIG_IS_ENABLED(CLK) + return clk_get_rate(&priv->clk); +#elif CONFIG_SPL_BUILD + return 100000000; +#else + return 0; +#endif +} + static int uniphier_sd_probe(struct udevice *dev) { struct tmio_sd_priv *priv = dev_get_priv(dev); + + priv->clk_get_rate = uniphier_sd_clk_get_rate; + #ifndef CONFIG_SPL_BUILD - struct clk clk; int ret; - ret = clk_get_by_index(dev, 0, &clk); + ret = clk_get_by_index(dev, 0, &priv->clk); if (ret < 0) { dev_err(dev, "failed to get host clock\n"); return ret; } /* set to max rate */ - priv->mclk = clk_set_rate(&clk, ULONG_MAX); - if (IS_ERR_VALUE(priv->mclk)) { + ret = clk_set_rate(&priv->clk, ULONG_MAX); + if (ret < 0) { dev_err(dev, "failed to set rate for host clock\n"); - clk_free(&clk); - return priv->mclk; + clk_free(&priv->clk); + return ret; } - ret = clk_enable(&clk); - clk_free(&clk); + ret = clk_enable(&priv->clk); if (ret) { dev_err(dev, "failed to enable host clock\n"); return ret; } -#else - priv->mclk = 100000000; #endif return tmio_sd_probe(dev, 0); From patchwork Fri Nov 2 15:03:22 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992362 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="d+sebZiC"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mlqv3TL2z9sCQ for ; Sat, 3 Nov 2018 02:10:19 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id DC923C225AA; Fri, 2 Nov 2018 15:06: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=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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 E98CCC22571; Fri, 2 Nov 2018 15:04:13 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 575E1C2258F; Fri, 2 Nov 2018 15:03:53 +0000 (UTC) Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by lists.denx.de (Postfix) with ESMTPS id 8A9D7C22563 for ; Fri, 2 Nov 2018 15:03:49 +0000 (UTC) Received: by mail-wm1-f68.google.com with SMTP id q12-v6so2172823wmq.0 for ; Fri, 02 Nov 2018 08:03:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GolmnKzIeaEBwqJl5SW5kTLb+G3xf6QSMdsOM+oJHUY=; b=d+sebZiCeFmX76JCI4sJOm+foFOeY2uHcJ1Md3D/q5TMVz6xccrKqjLfnx/5rk0xf8 iFsP76Sf5DC6WbTR6AGoAPMpeMGfMbNMO4TtS+QCPPQgs8jGxMoN3UZUKMeo8PqATWAg +Z4sj6kmPgDfHKw4nbOnOCezztSBoAV59nA/3k1THhDonaCP+OHVjpOcsJwkYdmJCF2x lE4s69eu/Azauxa7O39oQlr6sFk7Uc9VkjrdWES9zdtHwv1aC3IbIAh6DAxzgxDJadER e8WjvbWoeB/Vy9/QNvDZKrsm5Dwudgii2dlreLyHpM2cWIkwGfmxx1MmBp8WGR/qLe+5 FmUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GolmnKzIeaEBwqJl5SW5kTLb+G3xf6QSMdsOM+oJHUY=; b=kdUQjRX73MJmBnGKviXVQMsoXM1Le9wn6Ub7lX3fK+3IEUZX6L6e1ZhvwWiki1p79i TNb9OyFvmjhFwpTUgyRm8bYVihZTcl6ogQ1/jYp0DOJ8h22FMCaL1X99XiRQNLv58kZp Wtbb8tpWqgRrH8eXSTW4D3vedbkDP1zAT6wNLEW3c9XKWujA3IxYEbx2O6Dcxql5QYxe t8pXOT9DZEZFtFaQ3QIO2SWsWaufqFpQbVUqkJ7k/BOTgafBJpTBciC3XnZRq1BlQzrJ bO5okx1Wecl5F5aAErzi6qJzrEfTxirASALtsRs3/auzEuYO1WUb7bngpdHHWMbfuPYu ALuQ== X-Gm-Message-State: AGRZ1gLDOjgMrQTa5mx1k1hYYvgY33lIQSXy/0ckcwty1FeZxsBxlCuK j+STBpEFDK0Cku6ui8FW2+3k/K5T X-Google-Smtp-Source: AJdET5dCTckCpkwD3EKrLzku2zh/LbdG8MbbjHVLoFF7wR2/I1LvIfN8fhee+j9906+EC328QZ3NRA== X-Received: by 2002:a1c:9901:: with SMTP id b1-v6mr55953wme.15.1541171028889; Fri, 02 Nov 2018 08:03:48 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:47 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:22 +0100 Message-Id: <20181102150328.21972-7-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> References: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 07/13] mmc: tmio: Do not set divider to 1 in DDR mode 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" The TMIO core has a quirk where divider == 1 must not be set in DDR modes. Handle this by setting divider to 2, as suggested in the documentation. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: No change V3: No change --- drivers/mmc/tmio-common.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c index 3ba2f07460..424b60ce52 100644 --- a/drivers/mmc/tmio-common.c +++ b/drivers/mmc/tmio-common.c @@ -574,6 +574,10 @@ static void tmio_sd_set_clk_rate(struct tmio_sd_priv *priv, divisor = DIV_ROUND_UP(mclk, mmc->clock); + /* Do not set divider to 0xff in DDR mode */ + if (mmc->ddr_mode && (divisor == 1)) + divisor = 2; + if (divisor <= 1) val = (priv->caps & TMIO_SD_CAP_RCAR) ? TMIO_SD_CLKCTL_RCAR_DIV1 : TMIO_SD_CLKCTL_DIV1; From patchwork Fri Nov 2 15:03:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992357 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="VAgua+cS"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mlnf2V2mz9sCQ for ; Sat, 3 Nov 2018 02:08:22 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id B2585C225A3; Fri, 2 Nov 2018 15:05:16 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, 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 12953C22583; Fri, 2 Nov 2018 15:04:08 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id C9A11C22573; Fri, 2 Nov 2018 15:03:54 +0000 (UTC) Received: from mail-wr1-f65.google.com (mail-wr1-f65.google.com [209.85.221.65]) by lists.denx.de (Postfix) with ESMTPS id F290AC22598 for ; Fri, 2 Nov 2018 15:03:50 +0000 (UTC) Received: by mail-wr1-f65.google.com with SMTP id d17-v6so2290026wre.11 for ; Fri, 02 Nov 2018 08:03:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=hIaIFs/+3Dyjptay3L1wOX6UlyctgphfsTYwfnA+J2A=; b=VAgua+cS3rcTVd6PL5HfJICbfcrpMtJ091R0s4foTohcLphuTwa0hc7GqU6D0YV9gn V7IJ7agQxDT6Pu1ynXIpIbCEhaknxcw12W3b4MjW/4155KqtQ9vCMCb0HhjM9SFcRkNn 21085xfdl0Et00Q58jfgTHZ1ZlqTY7eCccOtlBCph5naMjKvJbX2tfzEZg/RsZojdAAd WFLa+Fqjiycfw+49ISmUu0+cbeyBZi5r+3Ukl19P5TSmzx23MPW7kYeRyVCtgOv9Ww/z sjXLWux2oveA3g6tmOlNfX66tDbMsS/p+ByFAVmI/iIETVFIBoKysMYXA3B6dTwHBtlz hfGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=hIaIFs/+3Dyjptay3L1wOX6UlyctgphfsTYwfnA+J2A=; b=trHsg4wkT10SsApoR0ZdnV9ksd8MCi/A9aGa3StmTfACofwOgs8YGDFdDYdAmixoPq v5/813r7Qr4e8pDamUoQWTbG4yMUM7+eniZIF6LVosvn0Wiw1YOBv6EBtdcbiDcz873x h97jg5mKTGUcSAj4hLH3e2p00qvXLv8dtxvg1/i//LQcAcH+zqwPtc9RBauebeK7wT6F 90uuhgOtltb3IPLsZDpPiuFLWtQFCjemHYs/wqxGm3IBcNVi9lLkEZ26PnkoEtowifVb /Nlq5yxY2kdjmJ4UJtTNfHtdCCciec9OrfQCG4pPARcfdrKVSEsPeod62jm4jNNsIZAj Z1WA== X-Gm-Message-State: AGRZ1gL8qIBo3i1acwWIvP+SQ0sxeF8vkxHE2Q9AD0pDNu8hxa1GJjPW UN+SpkhvgzgaMTuw4B5PSXsT3gvX X-Google-Smtp-Source: AJdET5dEEYTRvG0mayfQbXS9iI9/Fy8dJmHSsdNfm78i9ASSGhjz9TDQMkfLHOQgy5pHwJPZFOvLsA== X-Received: by 2002:adf:aac5:: with SMTP id i5-v6mr10018332wrc.216.1541171030228; Fri, 02 Nov 2018 08:03:50 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:49 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:23 +0100 Message-Id: <20181102150328.21972-8-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> References: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 08/13] mmc: tmio: Keep generating clock when clock are enabled 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" The TMIO core has a feature where it can automatically disable clock output when the bus is not in use. While this is useful, it also interferes with switching the bus to 1.8V and other background tasks of the SD/MMC cards, which require clock to be enabled. This patch respects the mmc->clk_disable and only disables the clock when the MMC core requests it. Otherwise the clock are continuously generated on the bus. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: No change V3: No change --- drivers/mmc/tmio-common.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/tmio-common.c b/drivers/mmc/tmio-common.c index 424b60ce52..fad2816ca5 100644 --- a/drivers/mmc/tmio-common.c +++ b/drivers/mmc/tmio-common.c @@ -612,10 +612,16 @@ static void tmio_sd_set_clk_rate(struct tmio_sd_priv *priv, tmio_sd_writel(priv, tmp, TMIO_SD_CLKCTL); tmp &= ~TMIO_SD_CLKCTL_DIV_MASK; - tmp |= val | TMIO_SD_CLKCTL_OFFEN; + tmp |= val; tmio_sd_writel(priv, tmp, TMIO_SD_CLKCTL); - tmp |= TMIO_SD_CLKCTL_SCLKEN; + if (!mmc->clk_disable) { + tmp &= ~TMIO_SD_CLKCTL_OFFEN; + tmp |= TMIO_SD_CLKCTL_SCLKEN; + } else { + tmp |= TMIO_SD_CLKCTL_OFFEN; + tmp &= ~TMIO_SD_CLKCTL_SCLKEN; + } tmio_sd_writel(priv, tmp, TMIO_SD_CLKCTL); udelay(1000); From patchwork Fri Nov 2 15:03:24 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992360 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="ILqsK/0K"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mlqR08Z1z9sTt for ; Sat, 3 Nov 2018 02:09:54 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id A8A53C22585; Fri, 2 Nov 2018 15:05:52 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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 8D0BCC22581; Fri, 2 Nov 2018 15:04:12 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 323CDC22578; Fri, 2 Nov 2018 15:03:56 +0000 (UTC) Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by lists.denx.de (Postfix) with ESMTPS id CA548C22535 for ; Fri, 2 Nov 2018 15:03:52 +0000 (UTC) Received: by mail-wm1-f68.google.com with SMTP id u13-v6so2158530wmc.4 for ; Fri, 02 Nov 2018 08:03:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=DFca6e5ncuxmZryGyk036ihsfqBE3fX33dpSv5ua2z0=; b=ILqsK/0KuS+/j8SFwnfwRXc0ggJk2dNvB3JApkEyyuwwP6YbWdc+4mY6QblTYfNvmz PvjzjTiaXBk5cJZfFGmX1QfZiqUe9w7YGCNu4kZhfaZZUjeZJ6IA09ifgyaIbS+0fodn /GuvP3f+RWEb09pbKKfGa8ludWv6L+Ui1R1CmT0LPRdDt+uiQOrzTeqh8ZvQU5FsWz1x C/HDglYJJg5dcTjOu+l3xCHZYLAPQL/UyKvs/7/w6GeGATMskmg3BOebLuS9n4WUxS2z uXOPWTfByIKuRMByUecq31FcoytmInXm5nzjKCqWk9XE0wRkLRM361A72NJEYRRIwJjc ASgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=DFca6e5ncuxmZryGyk036ihsfqBE3fX33dpSv5ua2z0=; b=aIF24dCaKuRO7RAM1aHPSvb3pg8Lj8FDMmLqfi/mmTXtAprYj+jrHaCxtA9UrIen+K oBjm6sGMcW3u/EvYv8TVpOXHg1QiQeHKYOeULE1bgoEyrPOsc5NN/u86BEvHW8gFxnPr HYv2wWlgUinWFGvF07IGQOvYWA/IgCdwBAAun/Z8FUpCNZL4ZPJRGgZ8efQpwqFkOF0D OBuDVs+xrg1mj1DYpduUqBK0FZFAfSeviLQSolEaO1XSkkE0MoThYuTliXnFV2oIH8sO V4hY9pumIM3TO+QCCMS4U0OvZHy0Ew8z0XYCF4oMLkHMBoOowcZ2GGvv4Fio1bISbnPS sO4w== X-Gm-Message-State: AGRZ1gIBZA3MZRYxSbsT7ZgnUKewCHvlHfADdUlrgOD8urxOOtcjt+CV gdwxmd24I1ryruBEy01UotntBDKf X-Google-Smtp-Source: AJdET5dI9gKQN5U010Sv6/+PDAERxOFx/aIr5A8h1KtbrSIK7fYxwDX0pnzzRaAvlet/OiQl7EHhcw== X-Received: by 2002:a1c:bc82:: with SMTP id m124-v6mr72787wmf.76.1541171032017; Fri, 02 Nov 2018 08:03:52 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:50 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:24 +0100 Message-Id: <20181102150328.21972-9-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> References: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 09/13] mmc: tmio: sdhi: Touch SCC only when UHS capable 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Add check to avoid touching the SCC tuning registers in case the IP doesn't support them or if the support isn't in place yet. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: No change V3: No change --- drivers/mmc/renesas-sdhi.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/renesas-sdhi.c b/drivers/mmc/renesas-sdhi.c index edb8e22d3c..465663ba97 100644 --- a/drivers/mmc/renesas-sdhi.c +++ b/drivers/mmc/renesas-sdhi.c @@ -294,7 +294,8 @@ static int renesas_sdhi_set_ios(struct udevice *dev) #if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) struct tmio_sd_priv *priv = dev_get_priv(dev); - renesas_sdhi_reset_tuning(priv); + if (priv->caps & TMIO_SD_CAP_RCAR_UHS) + renesas_sdhi_reset_tuning(priv); #endif return ret; @@ -378,7 +379,7 @@ static int renesas_sdhi_probe(struct udevice *dev) ret = tmio_sd_probe(dev, quirks); #if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) - if (!ret) + if (!ret && (priv->caps & TMIO_SD_CAP_RCAR_UHS)) renesas_sdhi_reset_tuning(priv); #endif return ret; From patchwork Fri Nov 2 15:03:25 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992358 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="qcBmnh82"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mlph07PMz9sTt for ; Sat, 3 Nov 2018 02:09:15 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id AB851C22599; Fri, 2 Nov 2018 15:07:35 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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 EAD9BC225B3; Fri, 2 Nov 2018 15:04:59 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 7D8A3C2258E; Fri, 2 Nov 2018 15:03:57 +0000 (UTC) Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by lists.denx.de (Postfix) with ESMTPS id 0BA56C2258A for ; Fri, 2 Nov 2018 15:03:54 +0000 (UTC) Received: by mail-wm1-f68.google.com with SMTP id p2-v6so2158641wmc.2 for ; Fri, 02 Nov 2018 08:03:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=gH7CLU8DuZ8jlD3LFUj9MSVigiuFT8LkZmrU/64YZLU=; b=qcBmnh82DcULvpV/J67El3yTkGyixVj0t4PuA44M17wael5S0KZ0gdqqXW/DCmBS21 OsTYzf5eHxIaA3m7LnXDJOlNssecBxANt4/+oCj8lu8EM+W7EH/BbuaQujNOc7PwsehK gr0BG6XpG4Oov1n9Cpt8m5bei2kteZ+UZ/pD6obSQ6BotMdhs3gQ0Ovw6iA+ikmeErxe 8eq3g+9H0NJSqMLjktu9JBMAZhGsMJGsWDyft8dbZLgDTDuWCOXdaUHFPldsSA/kSNQq MXHnBAfbBnIiF8iq0Mio4hPIaVUzZoP+vWzunqgUjm1ZOqinfCHZYrcd2rq3fIu3qVu+ OU2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=gH7CLU8DuZ8jlD3LFUj9MSVigiuFT8LkZmrU/64YZLU=; b=VEHQkLYQbvvHPM6myVBFiHUpYL+nG15PTiKj8zhSjpnajepDJmtJ14oh9lIDsEY6zZ ljElmBo6ni0lYNMTRlMXw3zlqna2K57GO7RXGu+Lp4QBLVj9iNxbjOeR7vodcFRB7Q/t RBhdJ0sKiHMrw8wb+6WxGzv7AF2FiCYsRWsGuMIdVcJJWBlL/QteCNnJxrn0kwD7bf+I 6B0IqOrU4hr9g37dx/zDm0jOZzCrkFJyKCyjfRmTZFx0JkFbgxYXccbD96QsxByyWqCw regwa7TcL6rtaQGch8nJqxv/UcWM/xTXa+IcsJH35EpFj6VNjBs4ADC7Qs76fDACmBgN bpyg== X-Gm-Message-State: AGRZ1gI9YH3Ft6xtzU0q7S0eOUggJZatsC5x7ajcg8qfjLloIq1s6+Wv PCsC0EEamWVRxCCABufWFrxAgmgd X-Google-Smtp-Source: AJdET5eN/WQ5f2vPPaiBpYyW4m6IT9XIRtkAaqD0P/ycZqNB8N/+x5HBtmO11qCWK2+i/66ASNmB/A== X-Received: by 2002:a1c:770a:: with SMTP id t10-v6mr37741wmi.149.1541171033284; Fri, 02 Nov 2018 08:03:53 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:52 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:25 +0100 Message-Id: <20181102150328.21972-10-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> References: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 10/13] mmc: tmio: sdhi: Clear HS400 settings when resetting SCC 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Make sure to clear HS400 configuration when resetting the SCC block. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: No change V3: No change --- drivers/mmc/renesas-sdhi.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/mmc/renesas-sdhi.c b/drivers/mmc/renesas-sdhi.c index 465663ba97..884b4a5cc8 100644 --- a/drivers/mmc/renesas-sdhi.c +++ b/drivers/mmc/renesas-sdhi.c @@ -34,6 +34,8 @@ #define RENESAS_SDHI_SCC_RVSREQ_RVSERR BIT(2) #define RENESAS_SDHI_SCC_SMPCMP 0x818 #define RENESAS_SDHI_SCC_TMPPORT2 0x81c +#define RENESAS_SDHI_SCC_TMPPORT2_HS400EN BIT(31) +#define RENESAS_SDHI_SCC_TMPPORT2_HS400OSEL BIT(4) #define RENESAS_SDHI_MAX_TAP 3 @@ -90,6 +92,11 @@ static void renesas_sdhi_reset_tuning(struct tmio_sd_priv *priv) reg &= ~RENESAS_SDHI_SCC_CKSEL_DTSEL; tmio_sd_writel(priv, reg, RENESAS_SDHI_SCC_CKSEL); + reg = tmio_sd_readl(priv, RENESAS_SDHI_SCC_TMPPORT2); + reg &= ~(RENESAS_SDHI_SCC_TMPPORT2_HS400EN | + RENESAS_SDHI_SCC_TMPPORT2_HS400OSEL); + tmio_sd_writel(priv, reg, RENESAS_SDHI_SCC_TMPPORT2); + reg = tmio_sd_readl(priv, TMIO_SD_CLKCTL); reg |= TMIO_SD_CLKCTL_SCLKEN; tmio_sd_writel(priv, reg, TMIO_SD_CLKCTL); From patchwork Fri Nov 2 15:03:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992363 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="j67UdZGd"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mlrP74fQz9sCQ for ; Sat, 3 Nov 2018 02:10:45 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id B98A6C225A5; Fri, 2 Nov 2018 15:07:20 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_BLOCKED, 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 3816CC22599; Fri, 2 Nov 2018 15:04:47 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 6EF3BC22587; Fri, 2 Nov 2018 15:03:59 +0000 (UTC) Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by lists.denx.de (Postfix) with ESMTPS id 62105C2259B for ; Fri, 2 Nov 2018 15:03:55 +0000 (UTC) Received: by mail-wm1-f67.google.com with SMTP id a8-v6so2161115wmf.1 for ; Fri, 02 Nov 2018 08:03:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=GIdAxqeiZYbrzbB6l99nc0IS9a0x/LODlgQt5j3sQQQ=; b=j67UdZGdhJ23410iU2PK8T7+XOgdy81VmwtJ4WuIoDAQl9qDZtES84Sl3GjvqMVAMt +JDGVai1DvvG1QFgyc7OFfLCjgJXVDzJlioyPvc3LOtrknz7y9jJxTYeiEvvvBidM7Za KKpMh8KcejLdTdNXiUC3teJaZirFMiNirzS/da1tVvv2M8By2BHRBS2vPzlSYU8n0xtD W/q4T4ASzMpKyEyCYi2H9ILSI/yk/Nid+QfplYZt+E7nVgBNT0iHWIZKx33XZQocSEew INl6Lah/WV4D75MZJJKZNiMjnfUCi42xzno2hNjp1P96HAtXDWxmFZPywa1Q7YKuOV8O iDaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=GIdAxqeiZYbrzbB6l99nc0IS9a0x/LODlgQt5j3sQQQ=; b=esD63tQfPvTK9F+2dVG0DtbfF4cGQFE8Wc4qH/AwS44O5SBIKuaYQhNRTRC1DBqkX2 0GXXNAt6qV6N8HlrjSgwPlFdIVljMXM3D9//yIq1wwuYi9nfwLK2OInOUEmcuHAKms0+ 5LBMKyFAwEnD3Lm+IsNUzrwPTVXaqR8TCRY7nHVWvdMsFm58lfUWwUXXAaiqa7g+4Nuu w3nfSvQji/sy/dNYbRrEdrcnCQhdS4AT/iINHN5QSTQhrQQNPd3WqcXbhaAZ0pZdKrJ9 yJ0iFYAxyWiRvHOPMMQmo3wFiC1CBNQhxWuJ2woF+DueWylqX/zbSJoEF9yCpI5/K7BX Ve+A== X-Gm-Message-State: AGRZ1gL8/zfIkfz+IIVDYDYgXKDvIBXaXhnch7PdPkFKaYlmmvP1cpHU KI2OYFDr9Sz796BNZaXKUhVfFd2M X-Google-Smtp-Source: AJdET5cXORFEgtl6vLCDDWHqIniXH7OWr9rfBn1AZ5hpRWIzk6ut7cidHiQGDXCxjTswIS1gkv/cPw== X-Received: by 2002:a7b:c083:: with SMTP id r3-v6mr45600wmh.101.1541171034673; Fri, 02 Nov 2018 08:03:54 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:53 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:26 +0100 Message-Id: <20181102150328.21972-11-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> References: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 11/13] mmc: tmio: sdhi: Implement waiting for DAT0 line state 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" When the bus switches to 1.8V mode of operation, it is necessary to verify that the card correctly initiated and completed the voltage switch. This is done by reading out the state of DATA0 line. This patch implement support for reading out the state of the DATA0 line, so the MMC core code can correctly switch to 1.8V mode. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: No change V3: No change --- drivers/mmc/renesas-sdhi.c | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/renesas-sdhi.c b/drivers/mmc/renesas-sdhi.c index 884b4a5cc8..73f6bf1562 100644 --- a/drivers/mmc/renesas-sdhi.c +++ b/drivers/mmc/renesas-sdhi.c @@ -308,13 +308,38 @@ static int renesas_sdhi_set_ios(struct udevice *dev) return ret; } +#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) +static int renesas_sdhi_wait_dat0(struct udevice *dev, int state, int timeout) +{ + int ret = -ETIMEDOUT; + bool dat0_high; + bool target_dat0_high = !!state; + struct tmio_sd_priv *priv = dev_get_priv(dev); + + timeout = DIV_ROUND_UP(timeout, 10); /* check every 10 us. */ + while (timeout--) { + dat0_high = !!(tmio_sd_readl(priv, TMIO_SD_INFO2) & TMIO_SD_INFO2_DAT0); + if (dat0_high == target_dat0_high) { + ret = 0; + break; + } + udelay(10); + } + + return ret; +} +#endif + static const struct dm_mmc_ops renesas_sdhi_ops = { .send_cmd = tmio_sd_send_cmd, .set_ios = renesas_sdhi_set_ios, .get_cd = tmio_sd_get_cd, -#if CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) +#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) || CONFIG_IS_ENABLED(MMC_HS200_SUPPORT) .execute_tuning = renesas_sdhi_execute_tuning, #endif +#if CONFIG_IS_ENABLED(MMC_UHS_SUPPORT) + .wait_dat0 = renesas_sdhi_wait_dat0, +#endif }; #define RENESAS_GEN2_QUIRKS TMIO_SD_CAP_RCAR_GEN2 From patchwork Fri Nov 2 15:03:27 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992364 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="TRATjJZD"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mlrt2yz5z9sTt for ; Sat, 3 Nov 2018 02:11:10 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 09624C22582; Fri, 2 Nov 2018 15:07:05 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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 4AB2EC22561; Fri, 2 Nov 2018 15:04:39 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B16DAC225A7; Fri, 2 Nov 2018 15:04:02 +0000 (UTC) Received: from mail-wr1-f67.google.com (mail-wr1-f67.google.com [209.85.221.67]) by lists.denx.de (Postfix) with ESMTPS id B7E7EC225AB for ; Fri, 2 Nov 2018 15:03:56 +0000 (UTC) Received: by mail-wr1-f67.google.com with SMTP id y16so2323713wrw.3 for ; Fri, 02 Nov 2018 08:03:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=it8wlWr1NDvzjQicVaM1IFapZ+UgjfCNa5sBiChB7mM=; b=TRATjJZDt7MD5JosMseRAlsNXrHy4E5d+P920OlQOwl2jiXpfUQYKQIso0UcyNkIcF dGa1VKj4G8/HKOsLKa2NPuChm43OQQ+1e3+JQxGWqmIh6xBQ07PlIZAtVf3uORwQ2Da8 /OM9QFDDnYcDyYPhcg7YgT1s7Fu2RRJb4UopNY1B0EgXXR31W3RQ1agXxKvghwbF5qAp 0SNyJxhFqdoveC3JMEgB7bV8fnnClsvno5p3mUcvfXazRbqMCfjBKbBkUVTIiCfkpTet uRwmqpGTBE3roLefFRYtGgohcVw7Pq2ZczKPWZ8iznKzxOwTze8hblaW0THKZPMACXbF jjZg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=it8wlWr1NDvzjQicVaM1IFapZ+UgjfCNa5sBiChB7mM=; b=SXyfLOKDA3u4NjeUMtI/enNyYtGdApdVWXtPGlWQsCG0hhzW+WGfinZKU7BuuZdGjR HT7ZCPMlAH663sneA0Eh6U5jRGXk3or9wmhjTrpLmq4H9rA4LpOSC8/pcLvC2lJiql5Y mN7xFlStlK7Rv5/Os9QqLLesLao8gZbf5W2AqWOgIK6FTCCoaKRBBa5dzVAH9TCNb3au 8aAekExT7g7FWZagNba6Aeo4ovRa5nX89Dtur4ztGozCkfe/6KBsOESyfXHNMaMxBpmv UNnsxV5iIXfAzc8pZaGCwO4CNvqXQPhLoIjDiPan3VxOwotm1D9b/su6z8XvId14pOh7 J7cw== X-Gm-Message-State: AGRZ1gJF6a2OeX8b/PTp7+zJ0CpXcD5rDIB92+70C3tFYqagtm4/lG6m 3+jv1qbrqDgA+5Z6rpHtZwsyMCiq X-Google-Smtp-Source: AJdET5eV849Q7OLSziTloBEEL5L8xASxIZneBvAE9I9ZYJs9RC1WJDMZpiDFi4uXpvI3HSKL+YrIuA== X-Received: by 2002:adf:c550:: with SMTP id s16-v6mr10374333wrf.264.1541171035956; Fri, 02 Nov 2018 08:03:55 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:55 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:27 +0100 Message-Id: <20181102150328.21972-12-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> References: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 12/13] mmc: tmio: sdhi: Switch CPG settings in UHS modes 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Switch CPG settings when transitioning between HS200/HS400/SDR104 and regular modes. This is required for the SCC block to operate correctly. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: No change V3: No change --- drivers/mmc/renesas-sdhi.c | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/renesas-sdhi.c b/drivers/mmc/renesas-sdhi.c index 73f6bf1562..9a454ef949 100644 --- a/drivers/mmc/renesas-sdhi.c +++ b/drivers/mmc/renesas-sdhi.c @@ -292,9 +292,35 @@ out: } #endif +static void renesas_sdhi_set_clk(struct udevice *dev) +{ + struct tmio_sd_priv *priv = dev_get_priv(dev); + struct mmc *mmc = mmc_get_mmc_dev(dev); + u32 tmp; + + if (!mmc->clock) + return; + + /* Stop the clock before changing its rate to avoid a glitch signal */ + tmp = tmio_sd_readl(priv, TMIO_SD_CLKCTL); + tmp &= ~TMIO_SD_CLKCTL_SCLKEN; + tmio_sd_writel(priv, tmp, TMIO_SD_CLKCTL); + + if ((mmc->selected_mode == UHS_SDR104) || + (mmc->selected_mode == MMC_HS_200)) { + clk_set_rate(&priv->clk, 400000000); + } else { + clk_set_rate(&priv->clk, 200000000); + } +} + static int renesas_sdhi_set_ios(struct udevice *dev) { - int ret = tmio_sd_set_ios(dev); + int ret; + + renesas_sdhi_set_clk(dev); + + ret = tmio_sd_set_ios(dev); mdelay(10); From patchwork Fri Nov 2 15:03:28 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marek Vasut X-Patchwork-Id: 992361 X-Patchwork-Delegate: van.freenix@gmail.com 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=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="rDkvKPSb"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 42mlqk6VMfz9sCQ for ; Sat, 3 Nov 2018 02:10:10 +1100 (AEDT) Received: by lists.denx.de (Postfix, from userid 105) id 9620BC22593; Fri, 2 Nov 2018 15:06:46 +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=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, 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 32B4AC22580; Fri, 2 Nov 2018 15:04:31 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id B4C9AC2259E; Fri, 2 Nov 2018 15:04:02 +0000 (UTC) Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by lists.denx.de (Postfix) with ESMTPS id 0CA41C22583 for ; Fri, 2 Nov 2018 15:03:58 +0000 (UTC) Received: by mail-wr1-f66.google.com with SMTP id z3-v6so2321215wru.4 for ; Fri, 02 Nov 2018 08:03:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=zx0XLV+W9aw+2idRLv0Yab3KbYFHd1Z1qWytg9FbvHY=; b=rDkvKPSbF4hayqRiTYVuHT1OWQFKHs9I6MIlKnaEF5pcQ5kfxw0O3O/j0x0fYNpv88 xOgFS6LzVKTZtdeCryBySkifxy0LHYfyfm14qydKWaMqUPH5CmDVqIYieTTxFEDWq0zG NKVqhlL0xRZOF1y/80bawNI+Yv/ureUA6XZYnGwsjtFrfA3t4e+ByKN/LLhApulnTK8b jmgNYYxZnTfS+Jubq8MRnbXHQqkcIopqHN8lYh7dahwDwcE3xkzXz+X2gPnQxLpCUdy9 7nU7/HbVnvZpZDJCmVEREocVryYyaWdeZlYldnzXFudM6J83K/Sgq3Qj/nNXruRHr+Qc MXaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=zx0XLV+W9aw+2idRLv0Yab3KbYFHd1Z1qWytg9FbvHY=; b=D2fI4u/j7Y3qQR1qHdY81e1tCCPVvloQIm/7ZbsXXGZbgmASkaZ2REQToLgFJA73sL 7i1BUYlkiwRT06sUJnoCt9a+Nz4+B24oo3roniU1FKISZSfeiOiboy7IeCFIxP8+is4q lpBWvBlMgeZqDeXMmpKzFCgPVzoHhLkZCi9L1hHwDfKXEpbDVAnmfITdsQM9odsanks1 jnFI0CMwUcuXqQtEQaFU3f9Gn7PmJdRjwqjwycoIrCfYwKkOtvO6SF951jL9/OXwxUvu /a6HfmheaM8VONyGqOnkZ5OlrCYvwVOY3y3jWfvBqG+qMmuteZeIaRGC/pG37MuhKiXV xc7Q== X-Gm-Message-State: AGRZ1gJ8oZ2VzMK0/7b78sAn/TUlstCJkaOQpClrhDoER7j+GD1zJryR ZyXWd5rLlj/L+pZGjf54v3W6k/aq X-Google-Smtp-Source: AJdET5cjobhiKgkeDKdICn6O6jRyyc6JdiKaNg0kAloF+6BmdwK7+JGT4nNuGZIyQh7LIqhocZCa3A== X-Received: by 2002:adf:c90e:: with SMTP id m14-v6mr10651852wrh.6.1541171037380; Fri, 02 Nov 2018 08:03:57 -0700 (PDT) Received: from kurokawa.lan (ip-86-49-110-70.net.upcbroadband.cz. [86.49.110.70]) by smtp.gmail.com with ESMTPSA id l67-v6sm60125880wma.20.2018.11.02.08.03.55 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Nov 2018 08:03:56 -0700 (PDT) From: Marek Vasut X-Google-Original-From: Marek Vasut To: u-boot@lists.denx.de Date: Fri, 2 Nov 2018 16:03:28 +0100 Message-Id: <20181102150328.21972-13-marek.vasut+renesas@gmail.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> References: <20181102150328.21972-1-marek.vasut+renesas@gmail.com> Cc: Marek Vasut Subject: [U-Boot] [PATCH V3 13/13] mmc: tmio: sdhi: Merge DTCNTL access into single register write 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: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" It is perfectly fine to write th DTCNTL TAP count and enable the SCC sampling clock operation in the same write. Signed-off-by: Marek Vasut Cc: Masahiro Yamada --- V2: No change V3: No change --- drivers/mmc/renesas-sdhi.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/drivers/mmc/renesas-sdhi.c b/drivers/mmc/renesas-sdhi.c index 9a454ef949..fd2a361a6d 100644 --- a/drivers/mmc/renesas-sdhi.c +++ b/drivers/mmc/renesas-sdhi.c @@ -51,12 +51,9 @@ static unsigned int renesas_sdhi_init_tuning(struct tmio_sd_priv *priv) tmio_sd_writel(priv, reg, TMIO_SD_CLKCTL); /* Set sampling clock selection range */ - tmio_sd_writel(priv, 0x8 << RENESAS_SDHI_SCC_DTCNTL_TAPNUM_SHIFT, - RENESAS_SDHI_SCC_DTCNTL); - - reg = tmio_sd_readl(priv, RENESAS_SDHI_SCC_DTCNTL); - reg |= RENESAS_SDHI_SCC_DTCNTL_TAPEN; - tmio_sd_writel(priv, reg, RENESAS_SDHI_SCC_DTCNTL); + tmio_sd_writel(priv, (0x8 << RENESAS_SDHI_SCC_DTCNTL_TAPNUM_SHIFT) | + RENESAS_SDHI_SCC_DTCNTL_TAPEN, + RENESAS_SDHI_SCC_DTCNTL); reg = tmio_sd_readl(priv, RENESAS_SDHI_SCC_CKSEL); reg |= RENESAS_SDHI_SCC_CKSEL_DTSEL;