Received: by 2002:a05:7208:9594:b0:7e:5202:c8b4 with SMTP id gs20csp851984rbb; Sun, 25 Feb 2024 07:00:22 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXkg3HDMIrYoFQE0kFEsqVmIVvAy09uCxz8gtG9U4QALtEN9T/RmuZVJf7N+EGw71jPF3EGzlK5qM9So1RqTIkIOQzXfuItGEss3k9p3Q== X-Google-Smtp-Source: AGHT+IHfkxTncGpwwJKi0C0SyjepXjGTGcpVIyXNDzLu7X0VmMGCkQeNrUh4u/gvSGRHhGsRVPXP X-Received: by 2002:a17:907:930:b0:a3f:a562:ded2 with SMTP id au16-20020a170907093000b00a3fa562ded2mr2976353ejc.73.1708873221959; Sun, 25 Feb 2024 07:00:21 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708873221; cv=pass; d=google.com; s=arc-20160816; b=F1cb4osLnVnWougJDhQWd9fY3Y+GLeFt8g35Pb9KCWVNJdEKaVAeN3Ot1novd8SzPg ncQxxa1FwgEly+QY44vYB5BvArlzNlvpq8JH+N0sBON5rARIrORFmYD9McEZtvjY4Bgu OTFMdkMByWjsPNlHXxvTkosE+cHkwDpZb+GsG5k4MzCWqxQ2vK957oXwEmcokEEgMXy0 T+45SvDTOhJzQFqMCZBPINYaSv3jUiLSqiQFQiGjQoq1pufQc9x49zhFAXcM9VTxvPGS HsvImz4EqLsJ2Bm/GPDi7fn5APUjkynxB6p+I+uUJQ/8Yb69wnPVmztGT5QcYb2TLpAX YXRA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :subject:date:from:dkim-signature; bh=m5PJW5KeIv2PuONUDy7p3vjdE/n8b3DyUIw/IRJWz0g=; fh=gTKemkMhKY8NXgLDwHmZqnk5tqzB8oIPv+8qF7uAkZU=; b=UmN+9Yif49Mq4Z0+v7k6cjcDQN6LnDp9zwZdSvsYSbzTSWAvkENIprSwZ/nmOw+SD2 lhVGcqUy22BEwhgmQBYy1i2z1GLJTs9g/BHCersiRrqmoJinnS+d9DTAMfDcXDw0NtzC 6b+tUT20FL8N/cffVpebjDV8LlPFUBFcWfmHnQ+n8nX1ghd9bOEahNPA5HoHksvQ0fHW kKRsqIytKI5LCrOsX9cyqprgXUW17YkZYrStkXx5zv/Yd6zfd9857XK/kc3EBXbHq5XR 9GBeGMiQV+AW4/y9bb9weutRH2u6H8OvYeiprdqDyxc+sruKLLYYDadZ8qMYxi5qQjyH kLCg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=aSGrdNIN; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-80111-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-80111-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id k25-20020a17090646d900b00a3f52dc6a1esi1352248ejs.1014.2024.02.25.07.00.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 25 Feb 2024 07:00:21 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-80111-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=aSGrdNIN; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-80111-linux.lists.archive=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-80111-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id B331B1F2175C for ; Sun, 25 Feb 2024 15:00:21 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id D58BF14A99; Sun, 25 Feb 2024 15:00:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="aSGrdNIN" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0872C14292 for ; Sun, 25 Feb 2024 15:00:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708873205; cv=none; b=GL30Dt5qFOOi53wfX5OYFXuBf5ojOw1iwm+07vFYpff/G+8NrlMVaN3TczOms1z4Tej08gy4LUyw8u6OM8SoyflYX57q1pETynVirjYI6aWJqWK+mdP+lkswGPZuiA84hNuBHfadlXoZ5RFju0bsDYQkXF82q+k7xUSQPuCxUqg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708873205; c=relaxed/simple; bh=v/1um5RVar9lfHIiYBKMm3UP7u/wfUbuAs6nd5YLVZQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=E5DbAgjYSlHV8Q0chtaldzEYN6QLKVDa8TxFtyaysmgU1ZTA8RWoeb+fa//h/rEkp7Kcju19vLiPTzS7SYOtaD7CO1bPMqp/myJDRsHkjkSVhBKCQwCak8tpMbpubmJAh3McPc6cWJ+io1d6I38+CZ97OJp8NjjBIWOiK0n/8RQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=aSGrdNIN; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPSA id C3E5AC433C7; Sun, 25 Feb 2024 15:00:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708873204; bh=v/1um5RVar9lfHIiYBKMm3UP7u/wfUbuAs6nd5YLVZQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=aSGrdNINQnsr6bxDbxh4tza2MVbLCMYLLndCpkRlfVJq2pb8S+Jj4dcVl6h/3rifT 6QQI4iux20Q9CLowZh58WAQ7XGJjgF7Ck1iHHaYYWy7nQOlEERT6c0mBQ+60Hzy6Nz cdImloRhrDai9hlV9Y3mVpGkx5n6YZDWtoVPO1pDIzlH3ciJY2IMvfR4EL24kudssV Rn138Q1ihiqv7f96jy7/G9amaW/sqgfbjIckZOPnxtj3mmYvCm84xp5r0y/nsNeC2l 1AAW0HzSiRbsvc5/0IKqbwjYCIcjs2Zsqo7QlV/ROnCYfOp1+4Qtq42WcA9dtyYc2y +qIW52LgQizNw== From: Mark Brown Date: Sun, 25 Feb 2024 14:59:27 +0000 Subject: [PATCH 1/8] regulator: mp8859: Specify register accessibility and enable caching Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20240225-regulator-mp8859-v1-1-68ee2c839ded@kernel.org> References: <20240225-regulator-mp8859-v1-0-68ee2c839ded@kernel.org> In-Reply-To: <20240225-regulator-mp8859-v1-0-68ee2c839ded@kernel.org> To: Liam Girdwood Cc: linux-kernel@vger.kernel.org, Markus Reichl , Mark Brown X-Mailer: b4 0.13-dev-0438c X-Developer-Signature: v=1; a=openpgp-sha256; l=1714; i=broonie@kernel.org; h=from:subject:message-id; bh=v/1um5RVar9lfHIiYBKMm3UP7u/wfUbuAs6nd5YLVZQ=; b=owEBbQGS/pANAwAKASTWi3JdVIfQAcsmYgBl21XqkXCKhTdBGzeg12/P/43zz+1z+7XO8teGX 0jonjO767eJATMEAAEKAB0WIQSt5miqZ1cYtZ/in+ok1otyXVSH0AUCZdtV6gAKCRAk1otyXVSH 0KNoCACGPXWCCYY4hPTNzfz+xxSJ1j4eWWdwytpFcmB0KZMwSANfB79bGE42PG18kAy4dcxa+dD T5Lvvjv2HQwe4xozIuiq0xOQ5Kv+D3SyPRE02DdLORo89ygAGh8zJl2kI2jdUh131d2jiULrskG IagjBhNgJwQte+aW9M1UA2OtMxNi5MW/XI3TGqD+OBeqoOdY0RPwHiVKCGg3bvrZyWlE6+LvQKl SSxD9MK+yy/kLnfSTbP118ZKwrQA4wX4enXTZlifqQY05CjDNEzRiygFORYTPqmeVB+FN5qFAzw 050t/6cpW4E5DUROtFxMWmaduENXe9VeFlJPhqp5y9WxxfV7 X-Developer-Key: i=broonie@kernel.org; a=openpgp; fpr=3F2568AAC26998F9E813A1C5C3F436CA30F5D8EB Avoid needless accesses to the hardware by caching register values that we know, marking status registers as volatile as appropriate. Signed-off-by: Mark Brown --- drivers/regulator/mp8859.c | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/drivers/regulator/mp8859.c b/drivers/regulator/mp8859.c index b820bd6043e5..689b56680d93 100644 --- a/drivers/regulator/mp8859.c +++ b/drivers/regulator/mp8859.c @@ -77,11 +77,47 @@ static const struct linear_range mp8859_dcdc_ranges[] = { REGULATOR_LINEAR_RANGE(0, VOL_MIN_IDX, VOL_MAX_IDX, 10000), }; +static bool mp8859_readable(struct device *dev, unsigned int reg) +{ + switch (reg) { + case MP8859_VOUT_L_REG: + case MP8859_VOUT_H_REG: + case MP8859_VOUT_GO_REG: + case MP8859_IOUT_LIM_REG: + case MP8859_CTL1_REG: + case MP8859_CTL2_REG: + case MP8859_STATUS_REG: + case MP8859_INTERRUPT_REG: + case MP8859_MASK_REG: + case MP8859_ID1_REG: + case MP8859_MFR_ID_REG: + case MP8859_DEV_ID_REG: + case MP8859_IC_REV_REG: + return true; + default: + return false; + } +} + +static bool mp8859_volatile(struct device *dev, unsigned int reg) +{ + switch (reg) { + case MP8859_VOUT_GO_REG: + case MP8859_STATUS_REG: + case MP8859_INTERRUPT_REG: + return true; + default: + return false; + } +} + static const struct regmap_config mp8859_regmap = { .reg_bits = 8, .val_bits = 8, .max_register = MP8859_MAX_REG, - .cache_type = REGCACHE_RBTREE, + .cache_type = REGCACHE_MAPLE, + .readable_reg = mp8859_readable, + .volatile_reg = mp8859_volatile, }; static const struct regulator_ops mp8859_ops = { -- 2.39.2