Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp2582725imj; Mon, 11 Feb 2019 05:25:00 -0800 (PST) X-Google-Smtp-Source: AHgI3IY5yGNpgtEufBzig4PaX4vi3q2iWDmS+fRdMmfJmC9+iFh44P9hGnYu3EmuEKZiVDvJx4l1 X-Received: by 2002:a62:61c3:: with SMTP id v186mr36948063pfb.55.1549891499877; Mon, 11 Feb 2019 05:24:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1549891499; cv=none; d=google.com; s=arc-20160816; b=P6SY3vH8RXIZnt4ElicARDs8laLhyix2m0JAdMTsZvsd2y+llwi3VlqGEY6eOVJ7vN sMe7uAC+C2Hi6XBCUqWZiBt0bYTZn5Z8o2ltuSaQXjIEfBpTvneDnoXSPQG6Yq9D/1dj /x+lz+iM6sgB+PKHhRf1H1IUwytwBVMxeIQH1UTHqqtmzRiBSmDbpzbgKkplHxn0EtDc ubp7cAnRACiya4ltoNSQdV7q9oGVOO5mvaYjstqMav1xINDjZLiGx9P7Y4HPX0SJ9tkD dYd+OWE2sBI+LEu/+CqTtLvg4QAqUaBeTAIhjxWA9teD9i0cJleP2MJ3wKXFCl8AP7Lh j1DQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from; bh=/3kSx8BKKTv2K0Gj3mJL1HmaTEhZnt0eehq/zf0xHXs=; b=WOgopSe1HoSs1j6JamFsZgwwWq188wxI39+HAodVH7Ys2pzUYlMkg87KCNWoGSr7Cp fDnZI9QvQnfsgyUoCnRxsY+bzgrRwz1Ej0i4mhvKaggyvXQo/FhsR7f5eEsmOhwi1fCe QRAWpHXrpDw0KOt7G6qmIDlG6MVqUzc6ki+TwafmMsxlgrpi16mAwnL6oxHam60ZKuOu 6OigauRrSzRGRYcnNZeVrqcW8E/esBsbSfPDmSuAoTOo41NAUU4TocnOikZMS9tZr3x5 m3WqdqhHd02v7ItOBQIOWuERNEPjhzESwch+73knwaYKOEhi66fpBnpYK8n7esqyALd5 V3uw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f4si10643981plf.370.2019.02.11.05.24.44; Mon, 11 Feb 2019 05:24:59 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727873AbfBKNYd (ORCPT + 99 others); Mon, 11 Feb 2019 08:24:33 -0500 Received: from relay5-d.mail.gandi.net ([217.70.183.197]:50655 "EHLO relay5-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727566AbfBKNYd (ORCPT ); Mon, 11 Feb 2019 08:24:33 -0500 X-Originating-IP: 90.88.22.177 Received: from localhost (aaubervilliers-681-1-80-177.w90-88.abo.wanadoo.fr [90.88.22.177]) (Authenticated sender: thomas.petazzoni@bootlin.com) by relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 810E91C000C; Mon, 11 Feb 2019 13:24:29 +0000 (UTC) From: Thomas Petazzoni To: Adrian Hunter , Kishon Vijay Abraham I , Ulf Hansson , Thierry Reding , Jonathan Hunter Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-tegra@vger.kernel.org, Faiz Abbas , Thomas Petazzoni Subject: [PATCH v2 0/3] mmc: Introduce support for WP GPIO in the core SDHCI Date: Mon, 11 Feb 2019 14:23:39 +0100 Message-Id: <20190211132342.31009-1-thomas.petazzoni@bootlin.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, While doing the bring up of a Zynq 7000 platform where the WP signal of a SD slot is connected to a regular GPIO rather than through the SDHCI WP pin, I realized that the GPIO described by wp-gpios was properly requested, but it was in fact not used at all. Indeed, the SDHCI core implements sdhci_check_ro() by: - Calling a controller-specific ->get_ro() callback if it exists. A few controller-specific drivers implement this, but not sdhci-of-arasan, which is used on Zynq 7000. - Using the SDHCI_PRESENT_STATE register, which reports the state of the SDHCI interface WP pin, and obvisouly not the state of a separate WP GPIO. This patch series therefore changes sdhci_check_ro() to behave like sdhci_get_cd(): use a GPIO first if available, and if not, fallback to using the SDHCI_PRESENT_STATE register. Indeed, if there's a wp-gpios described in the DT, it quite certainly indicates that the SDHCI WP signal is not used, and the WP GPIO should be used instead. As part of this series, two SDHCI drivers are modified to no longer implement their custom ->get_ro() hook, since the core SDHCI now does the right thing with the WP GPIO. Changes since v1: - Call the ->get_ro() callback before using the WP GPIO in the core, as suggested by Adrian Hunter. - Fix typoes in commit logs. - Collect Reviewed-by/Tested-by/Acked-by tags. Best regards, Thomas Thomas Petazzoni (3): mmc: sdhci: use WP GPIO in sdhci_check_ro() mmc: sdhci-omap: drop ->get_ro() implementation mmc: sdhci-tegra: drop ->get_ro() implementation drivers/mmc/host/sdhci-omap.c | 1 - drivers/mmc/host/sdhci-tegra.c | 9 --------- drivers/mmc/host/sdhci.c | 9 ++++++--- 3 files changed, 6 insertions(+), 13 deletions(-) -- 2.20.1