Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp2001571pxv; Sat, 26 Jun 2021 06:34:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwXFRdrbbBYnJDQ2OI88h0WJ/ae1Ji9tEBGQph3Tf56OXt1Gsp3rB0qEvKdd5pKoWseDxOD X-Received: by 2002:a17:907:20ed:: with SMTP id rh13mr16003356ejb.137.1624714462960; Sat, 26 Jun 2021 06:34:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1624714462; cv=none; d=google.com; s=arc-20160816; b=ij5rya2TJrBm8Kypennswgd5UeQ2eZWXjUeT/hbGs9yDoNA5ock4jAZ7AHK4BbKiKP vgus1/3DpwivUXe2wl/B+i8AiFoAGaozNYW3YTMjfI7DS3KSuYlA6uGrAO35fjjstjUT fmAeBwUjBDG6k+pW2KKJqeT+ECJiisSk3PwXzQZ99PKXyEGXrADjbMlbge9mh7S6S54u g0cyKL0H6lyyZKWQgslRMFEK61eCUTG1YYkVkMucBaq/0/ua/VZ5IUacZhWItrteSVMA nSl2BnX8u/ylYXG0p7+eZbY96Fxu04kgsDjCDjCPH1h3DOlS/t+L5yTj7574IPbyyB9r g7YQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=MpCosqZc3je690+QT39Agj86JaM29DLQFw4ivo2ynFM=; b=JPnA82K15NMbGfZX8k7jCXnOMeQ2T5Rho2/taWCkD3DbGdimzvpnXZkBDyy+LeGADV oO2L8QdqiK+S4AaDkeNRIGQ8ioIESHoHwTCfjXLQfpBGHnGoW9QUhPcZAaoz+lhWqqd3 8DexyQRB4RolD6lJX4TKdVmaFskQwjcBW2uW/xoJXlQfrZaYKTySBLPVChzNBuMKsC+K SJRq9+WBUm1u6qttVHJAINQ8fmLYAIQJa6HWGUObcJiyYEGte0tUN99jVzskRlDmNYUx ZcszIeIVa6WF6LGbexkeYTffrc3uwN+kRoiZ0p9noRNdnZKeu21o/5TwpRTG9sLj2gtv sZ/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="gkhZ/NIU"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q5si8793217ejt.588.2021.06.26.06.33.53; Sat, 26 Jun 2021 06:34:22 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b="gkhZ/NIU"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229991AbhFZNaI (ORCPT + 99 others); Sat, 26 Jun 2021 09:30:08 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:43048 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229518AbhFZNaH (ORCPT ); Sat, 26 Jun 2021 09:30:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624714064; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=MpCosqZc3je690+QT39Agj86JaM29DLQFw4ivo2ynFM=; b=gkhZ/NIUgJ+t7nwP2USLR+/V9WL/qCUve/M5YauQzt+DiYDFwMRCNPq/5QzvMjJN84XWWD 4di9Y+mbbZDBJHC2ERqFWGgTVjY9QgomlKkaY3M1x7yXikMqAAUrbSgMHl59uhyy9XhZtM 9a/7XraptxcQy04S/cQFK9QtZ9el+OY= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-459-EKIuB_AMPhW7lHv8ku0X-A-1; Sat, 26 Jun 2021 09:27:41 -0400 X-MC-Unique: EKIuB_AMPhW7lHv8ku0X-A-1 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7ACD6800D62; Sat, 26 Jun 2021 13:27:39 +0000 (UTC) Received: from x1.localdomain (ovpn-112-68.ams2.redhat.com [10.36.112.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2122C60C5F; Sat, 26 Jun 2021 13:27:37 +0000 (UTC) From: Hans de Goede To: Lee Jones , Chen-Yu Tsai Cc: Hans de Goede , linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org, Clamshell Subject: [PATCH] mfd: axp20x: Update AXP288 volatile ranges Date: Sat, 26 Jun 2021 15:27:32 +0200 Message-Id: <20210626132732.40063-1-hdegoede@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Cherry Trail devices with an AXP288 PMIC the external SD-card slot used the AXP's DLDO2 as card-voltage and either DLDO3 or GPIO1LDO (GPIO1 pin in low noise LDO mode) as signal-voltage. These regulators are turned on/off and in case of the signal-voltage also have their output-voltage changed by the _PS0 and _PS3 power- management ACPI methods on the MMC-controllers ACPI fwnode as well as by the _DSM ACPI method for changing the signal voltage. The AML code implementing these methods is directly accessing the PMIC through ACPI I2C OpRegion accesses, instead of using the special PMIC OpRegion handled by drivers/acpi/pmic/intel_pmic_xpower.c . This means that the contents of the involved PMIC registers can change without the change being made through the regmap interface, so regmap should not cache the contents of these registers. Mark the LDO power on/off, the LDO voltage control and the GPIO1 control register as volatile, to avoid regmap caching their contents. Specifically this fixes an issue on some models where the i915 driver toggles another LDO using the same on/off register on/off through MIPI sequences (through intel_soc_pmic_exec_mipi_pmic_seq_element()) which then writes back a cached on/off register-value where the card-voltage is off causing the external sdcard slot to stop working when the screen goes blank, or comes back on again. Note the AXP288 PMIC is only used on Bay- and Cherry-Trail platforms, so even though this is an ACPI specific problem there is no need to make the new volatile ranges conditional since these platforms always use ACPI. Fixes: dc91c3b6fe66 ("mfd: axp20x: Mark AXP20X_VBUS_IPSOUT_MGMT as volatile") Reported-and-tested-by: Clamshell Signed-off-by: Hans de Goede --- drivers/mfd/axp20x.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c index 3eae04e24ac8..db6a21465594 100644 --- a/drivers/mfd/axp20x.c +++ b/drivers/mfd/axp20x.c @@ -125,12 +125,13 @@ static const struct regmap_range axp288_writeable_ranges[] = { static const struct regmap_range axp288_volatile_ranges[] = { regmap_reg_range(AXP20X_PWR_INPUT_STATUS, AXP288_POWER_REASON), + regmap_reg_range(AXP22X_PWR_OUT_CTRL1, AXP22X_ALDO3_V_OUT), regmap_reg_range(AXP288_BC_GLOBAL, AXP288_BC_GLOBAL), regmap_reg_range(AXP288_BC_DET_STAT, AXP20X_VBUS_IPSOUT_MGMT), regmap_reg_range(AXP20X_CHRG_BAK_CTRL, AXP20X_CHRG_BAK_CTRL), regmap_reg_range(AXP20X_IRQ1_EN, AXP20X_IPSOUT_V_HIGH_L), regmap_reg_range(AXP20X_TIMER_CTRL, AXP20X_TIMER_CTRL), - regmap_reg_range(AXP22X_GPIO_STATE, AXP22X_GPIO_STATE), + regmap_reg_range(AXP20X_GPIO1_CTRL, AXP22X_GPIO_STATE), regmap_reg_range(AXP288_RT_BATT_V_H, AXP288_RT_BATT_V_L), regmap_reg_range(AXP20X_FG_RES, AXP288_FG_CC_CAP_REG), }; -- 2.31.1