From: Konrad Dybcio <konrad.dybcio@linaro.org>
To: Ninad Naik <quic_ninanaik@quicinc.com>,
andersson@kernel.org, agross@kernel.org
Cc: linux-arm-msm@vger.kernel.org, linux-gpio@vger.kernel.org,
linux-kernel@vger.kernel.org, quic_ppareek@quicinc.com,
psodagud@quicinc.com, quic_kprasan@quicinc.com
Subject: Re: [PATCH] pinctrl: qcom: Add intr_target_width to define intr_target_bit field width
Date: Fri, 14 Jul 2023 16:32:30 +0200 [thread overview]
Message-ID: <ebfbfdf5-2537-e3ce-8416-d80a9bd862d1@linaro.org> (raw)
In-Reply-To: <20230714061010.15817-1-quic_ninanaik@quicinc.com>
On 14.07.2023 08:10, Ninad Naik wrote:
> SA8775 and newer target have added support for an increased number of
> interrupt targets. To implement this change, the intr_target field, which
> is used to configure the interrupt target in the interrupt configuration
> register is increased from 3 bits to 4 bits.
>
> In accordance to these updates, a new intr_target_width member is
> introduced in msm_pingroup structure. This member stores the value of
> width of intr_target field in the interrupt configuration register. This
> value is used to dynamically calculate and generate mask for setting the
> intr_target field. By default, this mask is set to 3 bit wide, to ensure
> backward compatibility with the older targets.
>
> Signed-off-by: Ninad Naik <quic_ninanaik@quicinc.com>
> ---
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
one nit below
> drivers/pinctrl/qcom/pinctrl-msm.c | 9 ++++++---
> drivers/pinctrl/qcom/pinctrl-msm.h | 2 ++
> drivers/pinctrl/qcom/pinctrl-sa8775p.c | 1 +
> 3 files changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
> index 2585ef2b2793..6ebcaa2220af 100644
> --- a/drivers/pinctrl/qcom/pinctrl-msm.c
> +++ b/drivers/pinctrl/qcom/pinctrl-msm.c
> @@ -1038,6 +1038,7 @@ static int msm_gpio_irq_set_type(struct irq_data *d, unsigned int type)
> struct gpio_chip *gc = irq_data_get_irq_chip_data(d);
> struct msm_pinctrl *pctrl = gpiochip_get_data(gc);
> const struct msm_pingroup *g;
> + u32 intr_target_mask = 0x7;
This could be GENMASK(2, 0)
Konrad
> unsigned long flags;
> bool was_enabled;
> u32 val;
> @@ -1074,13 +1075,15 @@ static int msm_gpio_irq_set_type(struct irq_data *d, unsigned int type)
> * With intr_target_use_scm interrupts are routed to
> * application cpu using scm calls.
> */
> + if (g->intr_target_width)
> + intr_target_mask = GENMASK(g->intr_target_width - 1, 0);
> +
> if (pctrl->intr_target_use_scm) {
> u32 addr = pctrl->phys_base[0] + g->intr_target_reg;
> int ret;
>
> qcom_scm_io_readl(addr, &val);
> -
> - val &= ~(7 << g->intr_target_bit);
> + val &= ~(intr_target_mask << g->intr_target_bit);
> val |= g->intr_target_kpss_val << g->intr_target_bit;
>
> ret = qcom_scm_io_writel(addr, val);
> @@ -1090,7 +1093,7 @@ static int msm_gpio_irq_set_type(struct irq_data *d, unsigned int type)
> d->hwirq);
> } else {
> val = msm_readl_intr_target(pctrl, g);
> - val &= ~(7 << g->intr_target_bit);
> + val &= ~(intr_target_mask << g->intr_target_bit);
> val |= g->intr_target_kpss_val << g->intr_target_bit;
> msm_writel_intr_target(val, pctrl, g);
> }
> diff --git a/drivers/pinctrl/qcom/pinctrl-msm.h b/drivers/pinctrl/qcom/pinctrl-msm.h
> index 5e4410bed823..1d2f2e904da1 100644
> --- a/drivers/pinctrl/qcom/pinctrl-msm.h
> +++ b/drivers/pinctrl/qcom/pinctrl-msm.h
> @@ -59,6 +59,7 @@ struct pinctrl_pin_desc;
> * @intr_status_bit: Offset in @intr_status_reg for reading and acking the interrupt
> * status.
> * @intr_target_bit: Offset in @intr_target_reg for configuring the interrupt routing.
> + * @intr_target_width: Number of bits used for specifying interrupt routing target.
> * @intr_target_kpss_val: Value in @intr_target_bit for specifying that the interrupt from
> * this gpio should get routed to the KPSS processor.
> * @intr_raw_status_bit: Offset in @intr_cfg_reg for the raw status bit.
> @@ -100,6 +101,7 @@ struct msm_pingroup {
> unsigned intr_ack_high:1;
>
> unsigned intr_target_bit:5;
> + unsigned intr_target_width:5;
> unsigned intr_target_kpss_val:5;
> unsigned intr_raw_status_bit:5;
> unsigned intr_polarity_bit:5;
> diff --git a/drivers/pinctrl/qcom/pinctrl-sa8775p.c b/drivers/pinctrl/qcom/pinctrl-sa8775p.c
> index 8a5cd15512b9..8fdea25d8d67 100644
> --- a/drivers/pinctrl/qcom/pinctrl-sa8775p.c
> +++ b/drivers/pinctrl/qcom/pinctrl-sa8775p.c
> @@ -46,6 +46,7 @@
> .intr_enable_bit = 0, \
> .intr_status_bit = 0, \
> .intr_target_bit = 5, \
> + .intr_target_width = 4, \
> .intr_target_kpss_val = 3, \
> .intr_raw_status_bit = 4, \
> .intr_polarity_bit = 1, \
next prev parent reply other threads:[~2023-07-14 14:33 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-14 6:10 [PATCH] pinctrl: qcom: Add intr_target_width to define intr_target_bit field width Ninad Naik
2023-07-14 14:32 ` Konrad Dybcio [this message]
2023-07-14 18:17 ` Andrew Halaney
2023-07-14 20:51 ` Bjorn Andersson
[not found] ` <BY5PR02MB6339C6B8A53C5D0CB55E58B7C034A@BY5PR02MB6339.namprd02.prod.outlook.com>
2023-07-14 21:04 ` FW: " Prasad Sodagudi
2023-07-14 22:39 ` Andrew Halaney
2023-07-14 20:38 ` Bjorn Andersson
2023-07-18 5:08 ` Ninad Naik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ebfbfdf5-2537-e3ce-8416-d80a9bd862d1@linaro.org \
--to=konrad.dybcio@linaro.org \
--cc=agross@kernel.org \
--cc=andersson@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=psodagud@quicinc.com \
--cc=quic_kprasan@quicinc.com \
--cc=quic_ninanaik@quicinc.com \
--cc=quic_ppareek@quicinc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox