From patchwork Wed Nov 8 16:20:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Caleb Connolly X-Patchwork-Id: 742239 Delivered-To: patch@linaro.org Received: by 2002:ab3:760f:0:b0:23f:8cfb:5ad7 with SMTP id q15csp479723lte; Wed, 8 Nov 2023 08:22:10 -0800 (PST) X-Google-Smtp-Source: AGHT+IEeIQKtLhOWMfzZN7wQyXM59NEbKWhw1OlHWtrvJbMDBzPpkFckXSv+zI0ltIE+k+YYnoNF X-Received: by 2002:a05:6402:1e8e:b0:540:c989:fcdd with SMTP id f14-20020a0564021e8e00b00540c989fcddmr2156087edf.11.1699460529775; Wed, 08 Nov 2023 08:22:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699460529; cv=none; d=google.com; s=arc-20160816; b=MLWNe7Fa7M860fxtq4qnHX5DHfeFVK+gPFTiyxP1imQHfLA4PZDrGkomAApALxnULl g8jj/+pAShoVJjIN1Im38AytpHrlD/RK1C1XUlkMDFtCdGug0YHSF3ncSHW8ilYQJEOi /9lojxb7y8/C9CzOlNko3qGo6MRyYgmOmfYexzR4lVP+LgFMGZDJFtyVy+PvUDHt52sD vI2e/OEM2ZnBLtTb2X6i9ipkhvkKtNXnK4yZcDIyoKD4h2Q82dPXGrL8sXI53fBlHoIY 7tP3SAqj/4rmKHKMhIMf1o5VGFmUabf80KuznePLhuVbCBQ0gBvroRAA41iRr1EwgSip MmpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:cc:to:in-reply-to:references :message-id:content-transfer-encoding:mime-version:subject:date:from :dkim-signature; bh=fwxL8YeGurbYpusfu29GmdyWIfsaMFjKpG1zHju8o5Q=; fh=i7Y9asrausL8i9nH7n7DTaWvEmliXkHtoWPkbew9DMg=; b=jhfVoCnO0IZXGxylKxsTx/45dzpJvHE547jq+kGd0PHILFGUwWqE2Sr+s/ApMI/znp XcFt2LkfhjbAJolkX2o0M1MsxaY7SmjBbAjV35hTXw9XpOr3dxDpnFhbM5pomRzxgja3 27OKUHO1nFmtJVw7le/cgg3dd6i8HW+VLHbCa8wrczscQaJwWddtkhBn91/5AAfeh9te uFbnTYap5fqBPF4dd86/jT9o2pnTEawGpNrh2Oa09mm8RWH4zgEn2FQxptWPCg4bnyLY l9kTiWnvzxyic+Ta1JZFklpVSyx28dLgyq4z3o5RyYNRUNm80D8yBrl3ZDGKMxxoN71a Rjuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=nnZ8moLR; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from phobos.denx.de (phobos.denx.de. [85.214.62.61]) by mx.google.com with ESMTPS id c26-20020a50f61a000000b0054340960069si6265152edn.500.2023.11.08.08.22.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Nov 2023 08:22:09 -0800 (PST) Received-SPF: pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) client-ip=85.214.62.61; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=nnZ8moLR; spf=pass (google.com: domain of u-boot-bounces@lists.denx.de designates 85.214.62.61 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 1E6FD8716E; Wed, 8 Nov 2023 17:21:14 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org 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=linaro.org header.i=@linaro.org header.b="nnZ8moLR"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 8041D87677; Wed, 8 Nov 2023 17:21:11 +0100 (CET) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-lj1-x230.google.com (mail-lj1-x230.google.com [IPv6:2a00:1450:4864:20::230]) (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 672BD8716E for ; Wed, 8 Nov 2023 17:21:06 +0100 (CET) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=caleb.connolly@linaro.org Received: by mail-lj1-x230.google.com with SMTP id 38308e7fff4ca-2c50906f941so101754701fa.2 for ; Wed, 08 Nov 2023 08:21:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1699460466; x=1700065266; darn=lists.denx.de; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=fwxL8YeGurbYpusfu29GmdyWIfsaMFjKpG1zHju8o5Q=; b=nnZ8moLRqDKdprvp8lSAWB3dgv2cS0JTi0Jg8+WtGEb+GFQdRyPZ3dG0wB8fvZHtRO lPIaBhe3KXCCbB7kcHVqCXiXoZIZ9tl6ZE0uVgtX8GHjl50Syv/gxiMoylo7S0IOGs7S qImb3jdtPGNWnkabdQSno71v+mRpcpqaZ1qVd7kM7solSIaZTDjLzoh95ySsLn5XeeLi kAoLkGQ6wj0wJtY939QDNLwpTuMV74o5i8TwnKQJ+9Rd8l5QfRATIwLHEigvk9QWyoES VWCFXccp81A5wOyGvVa2dfVG51YoKwDRG9JAf4ND/cQvdEXYJYkVA4wouohXkRgQT0vE 3ubg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699460466; x=1700065266; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fwxL8YeGurbYpusfu29GmdyWIfsaMFjKpG1zHju8o5Q=; b=fvgWrmq0mzjXPUUcP/g+4OV9DrlKyTF24RYYJ4/U9bHr+BaVOxAC7Urehu0mIrsNmg vYkVIIUBKFPAt9+uNC16eOlFD+ViQyY2ITI5367uwFkdyEFnx7cgauSQBnb8JDQxgY7C GgeyjAzVnum6CmiF2mobRtQFX5AA/hnc4GuQ+C9lXSqCeCzHlYcz7+zcl/r5bgp03vwk se2PQtpErRAOABJWqjLNjT3GXFCUrdd1V9jrVWnTE/6RhEHIxyCQExNnqUpkFjqWDQm7 C9+KphoU5fiO5N71a02Ki8uZpwUGKk+nt6okpElcs4//5DWLeRKPBsESDvkpPp+9yqvX ZQrQ== X-Gm-Message-State: AOJu0Yxw9GpipMKpMrhOUGLI7PtwtVj8gevxY7sr+L/qCd9/C+MtcwMS 2kIJ0tRVj73bxand97XhApvSAg== X-Received: by 2002:a05:6512:1325:b0:507:cb04:59d4 with SMTP id x37-20020a056512132500b00507cb0459d4mr1786914lfu.8.1699460465662; Wed, 08 Nov 2023 08:21:05 -0800 (PST) Received: from lion.localdomain (host-92-25-138-185.as13285.net. [92.25.138.185]) by smtp.gmail.com with ESMTPSA id n7-20020a5d6607000000b0032db1d741a6sm5273660wru.99.2023.11.08.08.21.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Nov 2023 08:21:05 -0800 (PST) From: Caleb Connolly Date: Wed, 08 Nov 2023 16:20:56 +0000 Subject: [PATCH v2 4/5] spmi: msm: fix register range names MIME-Version: 1.0 Message-Id: <20231108-b4-qcom-dt-compat-v2-4-713233c72948@linaro.org> References: <20231108-b4-qcom-dt-compat-v2-0-713233c72948@linaro.org> In-Reply-To: <20231108-b4-qcom-dt-compat-v2-0-713233c72948@linaro.org> To: Ramon Fried , Jorge Ramirez-Ortiz , Neil Armstrong , Sumit Garg , Mateusz Kulikowski , Jaehoon Chung , Dzmitry Sankouski , Caleb Connolly Cc: u-boot@lists.denx.de X-Mailer: b4 0.13-dev-4bd13 X-Developer-Signature: v=1; a=openpgp-sha256; l=4848; i=caleb.connolly@linaro.org; h=from:subject:message-id; bh=q6xTsMEPs6plLVOY9RnmsZVWcCm+LITA36IHatLfYW0=; b=owGbwMvMwCFYaeA6f6eBkTjjabUkhlTvrTlx3n37HXecrlozgdfR+TN3BUvirWumCoEGGzdlX H7M+vhfRykLgyAHg6yYIov4iWWWTWsv22tsX3ABZg4rE8gQBi5OAZiIkA3DPwOehTGnRORevjry vff4Pu5KjhWT7OcULSlYcoNDQnCfoB7DL+agl56Cm8+33Z/ecF2Qq3K7RdrqFYxvXFhaDn/V2vJ jnRwA X-Developer-Key: i=caleb.connolly@linaro.org; a=openpgp; fpr=83B24DA7FE145076BC38BB250CD904EB673A7C47 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.8 at phobos.denx.de X-Virus-Status: Clean The core and chnl register ranges were swapped on SDM845. Fix it, and fetch the register ranges by name instead of by index. Drop the cosmetic "version" variable and clean up the debug logging. Signed-off-by: Caleb Connolly --- arch/arm/dts/sdm845.dtsi | 2 +- drivers/spmi/spmi-msm.c | 46 ++++++++++++++++++---------------------------- 2 files changed, 19 insertions(+), 29 deletions(-) diff --git a/arch/arm/dts/sdm845.dtsi b/arch/arm/dts/sdm845.dtsi index cd5d890e9a45..9aa3b99d8660 100644 --- a/arch/arm/dts/sdm845.dtsi +++ b/arch/arm/dts/sdm845.dtsi @@ -63,7 +63,7 @@ reg = <0xc440000 0x1100>, <0xc600000 0x2000000>, <0xe600000 0x100000>; - reg-names = "cnfg", "core", "obsrvr"; + reg-names = "core", "chnls", "obsrvr"; #address-cells = <0x1>; #size-cells = <0x1>; diff --git a/drivers/spmi/spmi-msm.c b/drivers/spmi/spmi-msm.c index 27a035c0a595..f8834e60c266 100644 --- a/drivers/spmi/spmi-msm.c +++ b/drivers/spmi/spmi-msm.c @@ -70,7 +70,7 @@ enum pmic_arb_channel { struct msm_spmi_priv { phys_addr_t arb_chnl; /* ARB channel mapping base */ - phys_addr_t spmi_core; /* SPMI core */ + phys_addr_t spmi_chnls; /* SPMI core */ phys_addr_t spmi_obs; /* SPMI observer */ /* SPMI channel map */ uint8_t channel_map[SPMI_MAX_SLAVES][SPMI_MAX_PERIPH]; @@ -95,10 +95,10 @@ static int msm_spmi_write(struct udevice *dev, int usid, int pid, int off, /* Disable IRQ mode for the current channel*/ writel(0x0, - priv->spmi_core + SPMI_CH_OFFSET(channel) + SPMI_REG_CONFIG); + priv->spmi_chnls + SPMI_CH_OFFSET(channel) + SPMI_REG_CONFIG); /* Write single byte */ - writel(val, priv->spmi_core + SPMI_CH_OFFSET(channel) + SPMI_REG_WDATA); + writel(val, priv->spmi_chnls + SPMI_CH_OFFSET(channel) + SPMI_REG_WDATA); /* Prepare write command */ reg |= SPMI_CMD_EXT_REG_WRITE_LONG << SPMI_CMD_OPCODE_SHIFT; @@ -113,12 +113,12 @@ static int msm_spmi_write(struct udevice *dev, int usid, int pid, int off, ch_offset = SPMI_CH_OFFSET(channel); /* Send write command */ - writel(reg, priv->spmi_core + SPMI_CH_OFFSET(channel) + SPMI_REG_CMD0); + writel(reg, priv->spmi_chnls + SPMI_CH_OFFSET(channel) + SPMI_REG_CMD0); /* Wait till CMD DONE status */ reg = 0; while (!reg) { - reg = readl(priv->spmi_core + SPMI_CH_OFFSET(channel) + + reg = readl(priv->spmi_chnls + SPMI_CH_OFFSET(channel) + SPMI_REG_STATUS); } @@ -186,47 +186,37 @@ static struct dm_spmi_ops msm_spmi_ops = { static int msm_spmi_probe(struct udevice *dev) { struct msm_spmi_priv *priv = dev_get_priv(dev); - phys_addr_t config_addr; + phys_addr_t core_addr; u32 hw_ver; - u32 version; int i; - int err; - config_addr = dev_read_addr_index(dev, 0); - priv->spmi_core = dev_read_addr_index(dev, 1); - priv->spmi_obs = dev_read_addr_index(dev, 2); + core_addr = dev_read_addr_name(dev, "core"); + priv->spmi_chnls = dev_read_addr_name(dev, "chnls"); + priv->spmi_obs = dev_read_addr_name(dev, "obsrvr"); - hw_ver = readl(config_addr + PMIC_ARB_VERSION); + hw_ver = readl(core_addr + PMIC_ARB_VERSION); if (hw_ver < PMIC_ARB_VERSION_V3_MIN) { priv->arb_ver = V2; - version = 2; - priv->arb_chnl = config_addr + APID_MAP_OFFSET_V1_V2_V3; + priv->arb_chnl = core_addr + APID_MAP_OFFSET_V1_V2_V3; } else if (hw_ver < PMIC_ARB_VERSION_V5_MIN) { priv->arb_ver = V3; - version = 3; - priv->arb_chnl = config_addr + APID_MAP_OFFSET_V1_V2_V3; + priv->arb_chnl = core_addr + APID_MAP_OFFSET_V1_V2_V3; } else { priv->arb_ver = V5; - version = 5; - priv->arb_chnl = config_addr + APID_MAP_OFFSET_V5; - - if (err) { - dev_err(dev, "could not read APID->PPID mapping table, rc= %d\n", err); - return -1; - } + priv->arb_chnl = core_addr + APID_MAP_OFFSET_V5; } - dev_dbg(dev, "PMIC Arb Version-%d (0x%x)\n", version, hw_ver); + dev_dbg(dev, "PMIC Arb Version-%d (%#x)\n", hw_ver >> 28, hw_ver); if (priv->arb_chnl == FDT_ADDR_T_NONE || - priv->spmi_core == FDT_ADDR_T_NONE || + priv->spmi_chnls == FDT_ADDR_T_NONE || priv->spmi_obs == FDT_ADDR_T_NONE) return -EINVAL; - dev_dbg(dev, "priv->arb_chnl address (%llu)\n", priv->arb_chnl); - dev_dbg(dev, "priv->spmi_core address (%llu)\n", priv->spmi_core); - dev_dbg(dev, "priv->spmi_obs address (%llu)\n", priv->spmi_obs); + dev_dbg(dev, "priv->arb_chnl address (%#08llx)\n", priv->arb_chnl); + dev_dbg(dev, "priv->spmi_chnls address (%#08llx)\n", priv->spmi_chnls); + dev_dbg(dev, "priv->spmi_obs address (%#08llx)\n", priv->spmi_obs); /* Scan peripherals connected to each SPMI channel */ for (i = 0; i < SPMI_MAX_PERIPH; i++) { uint32_t periph = readl(priv->arb_chnl + ARB_CHANNEL_OFFSET(i));