From patchwork Tue Feb 12 14:07:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Petazzoni X-Patchwork-Id: 1040599 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=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-tegra-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bootlin.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43zPdF6fLLz9sMx for ; Wed, 13 Feb 2019 01:08:17 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730004AbfBLOHq (ORCPT ); Tue, 12 Feb 2019 09:07:46 -0500 Received: from relay2-d.mail.gandi.net ([217.70.183.194]:40319 "EHLO relay2-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730147AbfBLOHq (ORCPT ); Tue, 12 Feb 2019 09:07:46 -0500 X-Originating-IP: 90.88.30.68 Received: from localhost (aaubervilliers-681-1-89-68.w90-88.abo.wanadoo.fr [90.88.30.68]) (Authenticated sender: thomas.petazzoni@bootlin.com) by relay2-d.mail.gandi.net (Postfix) with ESMTPSA id DB30140003; Tue, 12 Feb 2019 14:07:41 +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, Gregory Clement , Thomas Petazzoni Subject: [PATCH v3 0/3] mmc: Introduce support for WP GPIO in the core SDHCI Date: Tue, 12 Feb 2019 15:07:34 +0100 Message-Id: <20190212140737.8668-1-thomas.petazzoni@bootlin.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@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 v2: - Don't change the argument passed to sdhci_check_ro(), as requested by Adrian Hunter. - Collect Acked-by from Adrian Hunter on PATCH 2 and PATCH 3. 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 | 2 ++ 3 files changed, 2 insertions(+), 10 deletions(-) Acked-by: Adrian Hunter