[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAPDyKFrfEQr0czXeNeJbKSfP0toKuowwOX7yb89c723BORRqCA@mail.gmail.com>
Date: Mon, 13 Sep 2021 15:42:31 +0200
From: Ulf Hansson <ulf.hansson@...aro.org>
To: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
Cc: Andy Gross <agross@...nel.org>,
Bjorn Andersson <bjorn.andersson@...aro.org>,
Marcel Holtmann <marcel@...tmann.org>,
Johan Hedberg <johan.hedberg@...il.com>,
Luiz Augusto von Dentz <luiz.dentz@...il.com>,
Kalle Valo <kvalo@...eaurora.org>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Stanimir Varbanov <svarbanov@...sol.com>,
linux-arm-msm <linux-arm-msm@...r.kernel.org>,
linux-mmc <linux-mmc@...r.kernel.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-bluetooth@...r.kernel.org, ath10k@...ts.infradead.org,
linux-wireless <linux-wireless@...r.kernel.org>,
netdev <netdev@...r.kernel.org>
Subject: Re: [RFC v2 01/13] power: add power sequencer subsystem
[...]
> >> +
> >> +struct pwrseq *of_pwrseq_xlate_onecell(void *data, struct of_phandle_args *args)
> >> +{
> >> + struct pwrseq_onecell_data *pwrseq_data = data;
> >> + unsigned int idx;
> >> +
> >> + if (args->args_count != 1)
> >> + return ERR_PTR(-EINVAL);
> >> +
> >> + idx = args->args[0];
> >> + if (idx >= pwrseq_data->num) {
> >> + pr_err("%s: invalid index %u\n", __func__, idx);
> >> + return ERR_PTR(-EINVAL);
> >> + }
> >
> > In many cases it's reasonable to leave room for future extensions, so
> > that a provider could serve with more than one power-sequencer. I
> > guess that is what you intend to do here, right?
> >
> > In my opinion, I don't think what would happen, especially since a
> > power-sequence is something that should be specific to one particular
> > device (a Qcom WiFi/Blutooth chip, for example).
> >
> > That said, I suggest limiting this to a 1:1 mapping between the device
> > node and power-sequencer. I think that should simplify the code a bit.
>
> In fact the WiFi/BT example itself provides a non 1:1 mapping. In my
> current design the power sequencer provides two instances (one for WiFi,
> one for BT). This allows us to move the knowledge about "enable" pins to
> the pwrseq. Once the QCA BT driver acquires and powers up the pwrseq,
> the BT part is ready. No need to toggle any additional pins. Once the
> WiFi pwrseq is powered up, the WiFi part is present on the bus and
> ready, without any additional pin toggling.
Aha, that seems reasonable.
>
> I can move onecell support to the separate patch if you think this might
> simplify the code review.
It doesn't matter, both options work for me.
[...]
Kind regards
Uffe
Powered by blists - more mailing lists