From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 13E9EC433EF for ; Wed, 30 Mar 2022 16:55:57 +0000 (UTC) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id C8A0B8414C; Wed, 30 Mar 2022 18:55:34 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="qJU0q47A"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id E5E3B840F1; Wed, 30 Mar 2022 18:55:09 +0200 (CEST) Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com [IPv6:2607:f8b0:4864:20::72f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 4DD0384132 for ; Wed, 30 Mar 2022 18:54:55 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=seanga2@gmail.com Received: by mail-qk1-x72f.google.com with SMTP id v13so17134014qkv.3 for ; Wed, 30 Mar 2022 09:54:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1IwEC/fN95QGz3m63YqXV5WIQglEh4tJQfNFc6xEBSA=; b=qJU0q47A6Rt31it0Kxbr7BIlm1hhfFLvukirRMBkF8aw8btHhX4EYjzRk0tkfv34VN L2GjtQXSLm4JyXyXiaHndETLjqQUJPnM3QZh1cY3lcgXHe8tWThWkp5m64j3lVN/UKRH TjPls23NAaSjJ09+JXBQhuxURpGAJmJ8Rdyr7g0AzidYwgmWNPzW64TyoGLH8Bv4K7gh NPGM5dx8gTuQQES1rh6zNutWd0H9arEqnLZ2TMcxya1HHve8qYllfCxNQoh/VgNCWSrN NtyCBiYx0XejSgNpPcbE97XABe5PI0aQ3MvJXiPeoqFd2VogEDvTdenKA6S1lJeZbAi8 HJCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1IwEC/fN95QGz3m63YqXV5WIQglEh4tJQfNFc6xEBSA=; b=UZl9LMTM0iGuJE865DqDsVU/5KymsNrFJ2IAxVmJU+9iNNE+1xaIY9rYQNfFyozGPY X6ymX88oxnU5oX1GnDSb+7mA69UsUADpgndMRb9icITP+szGMVsq4tqzP/qdbrL7auaT M2tsOsCBLLRg6trACuZcCvKEEu7ifD/l2uFiDwF7DOtnSny1NUTqCPWRCTg7T+ePtsC0 7A5IEOKCMn3A9kdcNmlFFlrFqeR9shxkakWbR4gp21j/FifpX7ZhC6TCKmNGB3+0sXHT bWFl1Ihn75F3rUNtROOJjHQWvOif2BkoNT2y/UGETcyIV1Gr2ZnEH5Pyj6QioqQptFDL rDVQ== X-Gm-Message-State: AOAM532F96oPos1HevrzuZqQVBXUwnvUp4wFBaGD4yh8spN1N8waDgu7 Yd07qkbSxWewGKC61/khbke7TBTJ3S0= X-Google-Smtp-Source: ABdhPJx84KzQcPgz/NbDH2U0uI6+qOg8/nEVxKj8ldB23hmbVcrlHXUbIilsFSTc1N+IgVRfM9lqRA== X-Received: by 2002:a05:620a:228f:b0:67a:f432:af72 with SMTP id o15-20020a05620a228f00b0067af432af72mr403400qkh.603.1648659293918; Wed, 30 Mar 2022 09:54:53 -0700 (PDT) Received: from godwin.fios-router.home (pool-108-18-137-133.washdc.fios.verizon.net. [108.18.137.133]) by smtp.gmail.com with ESMTPSA id p16-20020a05622a13d000b002e227782e9asm17298150qtk.14.2022.03.30.09.54.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Mar 2022 09:54:53 -0700 (PDT) From: Sean Anderson To: u-boot@lists.denx.de Cc: Peng Fan , Simon Glass , Jaehoon Chung , Sean Anderson Subject: [PATCH 3/4] mmc: Import some defines for R1 responses Date: Wed, 30 Mar 2022 12:54:45 -0400 Message-Id: <20220330165446.438925-4-seanga2@gmail.com> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220330165446.438925-1-seanga2@gmail.com> References: <20220330165446.438925-1-seanga2@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.39 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.5 at phobos.denx.de X-Virus-Status: Clean This imports defines for R1 responses from include/linux/mmc/mmc.h from Linux 5.10. Signed-off-by: Sean Anderson --- Yes, this is an old version, but it's what I had checked out, and I don't think there are any new fields we need to handle :) include/mmc.h | 52 +++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 50 insertions(+), 2 deletions(-) diff --git a/include/mmc.h b/include/mmc.h index 6bdcce881d..7304eee0d4 100644 --- a/include/mmc.h +++ b/include/mmc.h @@ -311,8 +311,56 @@ static inline bool mmc_is_tuning_cmd(uint cmdidx) #define EXT_CSD_WR_DATA_REL_USR (1 << 0) /* user data area WR_REL */ #define EXT_CSD_WR_DATA_REL_GP(x) (1 << ((x)+1)) /* GP part (x+1) WR_REL */ -#define R1_ILLEGAL_COMMAND (1 << 22) -#define R1_APP_CMD (1 << 5) +/* + MMC status in R1, for native mode (SPI bits are different) + Type + e : error bit + s : status bit + r : detected and set for the actual command response + x : detected and set during command execution. the host must poll + the card by sending status command in order to read these bits. + Clear condition + a : according to the card state + b : always related to the previous command. Reception of + a valid command will clear it (with a delay of one command) + c : clear by read + */ + +#define R1_OUT_OF_RANGE (1 << 31) /* er, c */ +#define R1_ADDRESS_ERROR (1 << 30) /* erx, c */ +#define R1_BLOCK_LEN_ERROR (1 << 29) /* er, c */ +#define R1_ERASE_SEQ_ERROR (1 << 28) /* er, c */ +#define R1_ERASE_PARAM (1 << 27) /* ex, c */ +#define R1_WP_VIOLATION (1 << 26) /* erx, c */ +#define R1_CARD_IS_LOCKED (1 << 25) /* sx, a */ +#define R1_LOCK_UNLOCK_FAILED (1 << 24) /* erx, c */ +#define R1_COM_CRC_ERROR (1 << 23) /* er, b */ +#define R1_ILLEGAL_COMMAND (1 << 22) /* er, b */ +#define R1_CARD_ECC_FAILED (1 << 21) /* ex, c */ +#define R1_CC_ERROR (1 << 20) /* erx, c */ +#define R1_ERROR (1 << 19) /* erx, c */ +#define R1_UNDERRUN (1 << 18) /* ex, c */ +#define R1_OVERRUN (1 << 17) /* ex, c */ +#define R1_CID_CSD_OVERWRITE (1 << 16) /* erx, c, CID/CSD overwrite */ +#define R1_WP_ERASE_SKIP (1 << 15) /* sx, c */ +#define R1_CARD_ECC_DISABLED (1 << 14) /* sx, a */ +#define R1_ERASE_RESET (1 << 13) /* sr, c */ +#define R1_STATUS(x) (x & 0xFFF9A000) +#define R1_CURRENT_STATE(x) ((x & 0x00001E00) >> 9) /* sx, b (4 bits) */ +#define R1_READY_FOR_DATA (1 << 8) /* sx, a */ +#define R1_SWITCH_ERROR (1 << 7) /* sx, c */ +#define R1_EXCEPTION_EVENT (1 << 6) /* sr, a */ +#define R1_APP_CMD (1 << 5) /* sr, c */ + +#define R1_STATE_IDLE 0 +#define R1_STATE_READY 1 +#define R1_STATE_IDENT 2 +#define R1_STATE_STBY 3 +#define R1_STATE_TRAN 4 +#define R1_STATE_DATA 5 +#define R1_STATE_RCV 6 +#define R1_STATE_PRG 7 +#define R1_STATE_DIS 8 #define MMC_RSP_PRESENT (1 << 0) #define MMC_RSP_136 (1 << 1) /* 136 bit response */ -- 2.35.1