[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <0cd8f4d4-d418-4634-abaf-f66b350c81eb@linaro.org>
Date: Fri, 24 Oct 2025 12:18:38 +0200
From: Neil Armstrong <neil.armstrong@...aro.org>
To: Jishnu Prakash <jishnu.prakash@....qualcomm.com>,
Stephen Boyd <sboyd@...nel.org>, Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor Dooley
<conor+dt@...nel.org>, David Collins <david.collins@....qualcomm.com>
Cc: linux-arm-msm@...r.kernel.org, linux-kernel@...r.kernel.org,
devicetree@...r.kernel.org, aiqun.yu@....qualcomm.com,
kamal.wadhwa@....qualcomm.com, jingyi.wang@....qualcomm.com
Subject: Re: [PATCH v3 3/3] spmi: spmi-pmic-arb: add support for PMIC arbiter
v8
Hi,
On 10/24/25 11:33, Jishnu Prakash wrote:
> From: David Collins <david.collins@....qualcomm.com>
>
> PMIC arbiter v8 supports up to 4 SPMI buses and up to 8192 PMIC
> peripherals. Its register map differs from v7 as several fields
> increased in size. Add support for PMIC arbiter version 8.
>
> Signed-off-by: David Collins <david.collins@....qualcomm.com>
> Signed-off-by: Kamal Wadhwa <kamal.wadhwa@....qualcomm.com>
> Signed-off-by: Jishnu Prakash <jishnu.prakash@....qualcomm.com>
> ---
> drivers/spmi/spmi-pmic-arb.c | 324 +++++++++++++++++++++++++++++++++++++++----
> 1 file changed, 294 insertions(+), 30 deletions(-)
>
> diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c
> index 91581974ef84..612736973e4b 100644
> --- a/drivers/spmi/spmi-pmic-arb.c
> +++ b/drivers/spmi/spmi-pmic-arb.c
> @@ -3,6 +3,7 @@
> * Copyright (c) 2012-2015, 2017, 2021, The Linux Foundation. All rights reserved.
> */
> #include <linux/bitmap.h>
> +#include <linux/bitfield.h>
> #include <linux/delay.h>
> #include <linux/err.h>
> #include <linux/interrupt.h>
> @@ -25,10 +26,12 @@
> #define PMIC_ARB_VERSION_V3_MIN 0x30000000
> #define PMIC_ARB_VERSION_V5_MIN 0x50000000
> #define PMIC_ARB_VERSION_V7_MIN 0x70000000
> +#define PMIC_ARB_VERSION_V8_MIN 0x80000000
> #define PMIC_ARB_INT_EN 0x0004
>
> #define PMIC_ARB_FEATURES 0x0004
> #define PMIC_ARB_FEATURES_PERIPH_MASK GENMASK(10, 0)
> +#define PMIC_ARB_FEATURES_V8_PERIPH_MASK GENMASK(12, 0)
>
> #define PMIC_ARB_FEATURES1 0x0008
>
> @@ -50,9 +53,10 @@
> #define SPMI_MAPPING_BIT_IS_1_RESULT(X) (((X) >> 0) & 0xFF)
>
> #define SPMI_MAPPING_TABLE_TREE_DEPTH 16 /* Maximum of 16-bits */
> -#define PMIC_ARB_MAX_PPID BIT(12) /* PPID is 12bit */
> +#define PMIC_ARB_MAX_PPID BIT(13)
> #define PMIC_ARB_APID_VALID BIT(15)
> #define PMIC_ARB_CHAN_IS_IRQ_OWNER(reg) ((reg) & BIT(24))
> +#define PMIC_ARB_V8_CHAN_IS_IRQ_OWNER(reg) ((reg) & BIT(31))
> #define INVALID_EE 0xFF
>
> /* Ownership Table */
> @@ -96,30 +100,33 @@ enum pmic_arb_channel {
> PMIC_ARB_CHANNEL_OBS,
> };
>
> -#define PMIC_ARB_MAX_BUSES 2
> +#define PMIC_ARB_MAX_BUSES 4
Why PMIC_ARB_MAX_BUSES is changed to 4 ?
Neil
<snip>
Powered by blists - more mailing lists