From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pg1-f175.google.com (mail-pg1-f175.google.com [209.85.215.175]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 19F1535DA60 for ; Sun, 26 Apr 2026 11:20:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.175 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777202429; cv=none; b=uQJZXOJhorLPs0SeMDmgFCMc7h+HPmAMT6zzyw6n1uYGWV65pngBNirvJB1yszSfZyPbN1UvWw8IcFAMB8DaLta6W9TeteMy916JmdKlZFM3Uhb1brPSXkQtO3Fi8nmOq7z0OPJSjo43XnScsr7YsA9kYPfHdhG1J9R3oUgE2vI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777202429; c=relaxed/simple; bh=JqbJLk14vCGlsCWRweRgQshxSFPu/HWhxsqxliRveAI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sg2P+z+poQEibbw69oKdF8oVmmiJPR2knd0Guxx+PhzOtialxMouwQE/jcTOWTTat2SJbTQ9kGgppxiUJ+ihDcv0O4L1b6XbpJ3D1Y6/zaQcrXDybN/vESK+Ma+r6jan0ZmNgRVeJiGn6AFWLs/V5uCuwpjGXR5P8/4/+njz1pY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=qJFUzOdU; arc=none smtp.client-ip=209.85.215.175 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="qJFUzOdU" Received: by mail-pg1-f175.google.com with SMTP id 41be03b00d2f7-c6e2355739dso3664084a12.2 for ; Sun, 26 Apr 2026 04:20:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1777202427; x=1777807227; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=UO2VqzqBzg530NbLwBe44sSvOnp4fu4zqGNZVGfqzM0=; b=qJFUzOdUc9/WlGI138J+orbq99koLB3XZx2J91K05Uf11oI37pyqHoR26xbHD4ASOQ moQS+Kj2iPfSrqZJ1TqvK6BeCpCA+hZZh6cPfSiZfaoEF4ADu9Xl3B7r83FUQ4W7kf+V En6bWA1jPd5SOE1tjoCxq5OPL+gfAZqWqip9gUESVTLipSLKdSNVuz1NEFVDbZ05+PZS 0rWRnM8yKJ7nIyIUggVvi9hiEV0TyT2WBfGdGAlGFAh9SsyOZKtAjT5eWkjw3f7OEreK PGJ/mv9tDoFYN9BZoZgDtn9pE0y2sFr0CFOCe2b64onVq1OODD+Rz5fK9Dp8U4G9bBlL chHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777202427; x=1777807227; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=UO2VqzqBzg530NbLwBe44sSvOnp4fu4zqGNZVGfqzM0=; b=YT6/XfCi7eq5Q+XVu/DzfS2kG3C7WeYFiJ+wMYUfePKnDs4puleiyY3RReOOp93Dlm jAPoSeFZu6usy0OAFbuJoMGmqUv2G/HcNfMZi3Q+bnpo/+piZiW+XgZ83nV9iTIIgojs lLBM0T2tRoqpBbKwDNDU6tVxgmwNDnmxCSrKAQocDSR5vdEvZ4s6K85Qo99RH1MF+2/C STdrz/T6O0a0gR6IUMwejQXwgSjW4+JRoUhVmMGG+twCt8nwlbMBr5IVjdgoO3pdGry3 81bgel9bAhVqa/JvIsmoi7iAM3ctPNYM2RCUYw3ADT9JZQjbZukFg6IPv4ar2ylb4ZnQ HOIA== X-Forwarded-Encrypted: i=1; AFNElJ/DAf2ocknOEwVQbL7+3TP09GgLt2QA7Z2vwjj5ynvbWG64/9ZUZJfwY5TT6kv1oaF81lCSMmJm4Pn5C68=@vger.kernel.org X-Gm-Message-State: AOJu0YxPdKEQlJpBVZ+UBoD39Js0AA+LDC/+vfRQ2iDXGdhBUvoWyzNM Smq55PQUgCYokOU7n0X1q7N6T7kOxZQ6WdmCryyEBXB3vezJkRRgjbl6 X-Gm-Gg: AeBDievW8pgCrI8MnU/WqsToE4EVCWHuylV7tdLMd2nQncNwHIqTTo6j4N9k/y1ecyN omKKJj41y+ZhBvEJjztqCF2+rxHa2z7bFZ4jegJFL5qIEYHKA9yIb2aNkOI/yAZk+A/xB3OhIwO aEPtmBsraRTjufmKOV4eebjNRqSy7vq+u2petz4zIhmLkuOPuOzBKQ0LTh/fyjYhPKCsyrprb8X QO0FM51dLvjut8pPPJs7BAfwD+83PNJLFt4vtNKHizn4qVWpwnY9eYDiZQWbZ818rgWc5q9SONI qPZr8tb0He8oSoG2lF+eJS4YZQ2dhImTR8sqLq2IJhgOTwtuWKHVlhypR3eFXxdPykHNJOQ2AR+ 0yuRsgEZJAUuNCzdVN6xOohwsrmCvvgiq9huobWNRkUFebaOaerbQOJTOWuJyGrAu2w1JV9pX// bLIBHTPiDBR4vHPmEHu4HfvlSIkXNSHccEIA== X-Received: by 2002:a17:902:d592:b0:2b0:ccad:de1a with SMTP id d9443c01a7336-2b5f9f3aa58mr383468695ad.30.1777202427355; Sun, 26 Apr 2026 04:20:27 -0700 (PDT) Received: from localhost ([2001:19f0:8001:1b2d:5400:5ff:fefa:a95d]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b5fa9ff98csm275607105ad.3.2026.04.26.04.20.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 26 Apr 2026 04:20:27 -0700 (PDT) From: Inochi Amaoto To: Ulf Hansson , Karol Gugala , Mateusz Holenko , Gabriel Somlo , Joel Stanley , Paul Mackerras , Maciej Dudek , Andy Shevchenko Cc: Inochi Amaoto , linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, Yixun Lan , Longbin Li Subject: [PATCH v3 2/2] mmc: litex_mmc: Set mandatory idle clocks before CMD0 Date: Sun, 26 Apr 2026 19:20:15 +0800 Message-ID: <20260426112016.1370929-3-inochiama@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260426112016.1370929-1-inochiama@gmail.com> References: <20260426112016.1370929-1-inochiama@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The litex_mmc driver assumes the card is already probed in the BIOS and skip the phy initialization. This will cause the command fail like the following when the old card is unplugged and then insert a new card: [ 62.923593] litex-mmc f0004000.mmc: Command (cmd 8) error, status -110 [ 62.949717] litex-mmc f0004000.mmc: Command (cmd 55) error, status -110 [ 62.976606] litex-mmc f0004000.mmc: Command (cmd 55) error, status -110 [ 63.002516] litex-mmc f0004000.mmc: Command (cmd 55) error, status -110 [ 63.028442] litex-mmc f0004000.mmc: Command (cmd 55) error, status -110 Add required clock settings and initialization for the CMD 0, so it can probe the new card. Fixes: 92e099104729 ("mmc: Add driver for LiteX's LiteSDCard interface") Signed-off-by: Inochi Amaoto --- drivers/mmc/host/litex_mmc.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/drivers/mmc/host/litex_mmc.c b/drivers/mmc/host/litex_mmc.c index a8d9c0ece16a..c984398d0803 100644 --- a/drivers/mmc/host/litex_mmc.c +++ b/drivers/mmc/host/litex_mmc.c @@ -68,6 +68,9 @@ #define SD_SLEEP_US 5 #define SD_TIMEOUT_US 20000 +#define SD_INIT_DELAY_US 1000 +#define SD_INIT_CLK_HZ 400000 + #define SDIRQ_CARD_DETECT 1 #define SDIRQ_SD_TO_MEM_DONE 2 #define SDIRQ_MEM_TO_SD_DONE 4 @@ -142,6 +145,12 @@ static int litex_mmc_send_cmd(struct litex_mmc_host *host, int ret; u8 evt; + if (cmd == MMC_GO_IDLE_STATE) { + litex_mmc_setclk(host, SD_INIT_CLK_HZ); + litex_write8(host->sdphy + LITEX_PHY_INITIALIZE, 1); + fsleep(SD_INIT_DELAY_US); + } + litex_write32(host->sdcore + LITEX_CORE_CMDARG, arg); litex_write32(host->sdcore + LITEX_CORE_CMDCMD, cmd << 8 | transfer << 5 | response_len); -- 2.54.0