[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210413072818.GC15093@dragon>
Date: Tue, 13 Apr 2021 15:28:19 +0800
From: Shawn Guo <shawn.guo@...aro.org>
To: Kalle Valo <kvalo@...eaurora.org>
Cc: Rob Herring <robh+dt@...nel.org>,
Rafał Miłecki <rafal@...ecki.pl>,
Arend van Spriel <aspriel@...il.com>,
Franky Lin <franky.lin@...adcom.com>,
Hante Meuleman <hante.meuleman@...adcom.com>,
Chi-hsien Lin <chi-hsien.lin@...ineon.com>,
Wright Feng <wright.feng@...ineon.com>,
Chung-hsien Hsu <chung-hsien.hsu@...ineon.com>,
linux-wireless@...r.kernel.org, netdev@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org,
brcm80211-dev-list.pdl@...adcom.com,
SHA-cyfmac-dev-list@...ineon.com
Subject: Re: [PATCH 1/2] dt-binding: bcm43xx-fmac: add optional brcm,ccode-map
On Mon, Apr 12, 2021 at 02:54:46PM +0300, Kalle Valo wrote:
> Shawn Guo <shawn.guo@...aro.org> writes:
>
> > On Sun, Apr 11, 2021 at 10:57:54AM +0300, Kalle Valo wrote:
> >> Shawn Guo <shawn.guo@...aro.org> writes:
> >>
> >> > Add optional brcm,ccode-map property to support translation from ISO3166
> >> > country code to brcmfmac firmware country code and revision.
> >> >
> >> > Signed-off-by: Shawn Guo <shawn.guo@...aro.org>
> >> > ---
> >> > .../devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt | 7 +++++++
> >> > 1 file changed, 7 insertions(+)
> >> >
> >> > diff --git a/Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt b/Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt
> >> > index cffb2d6876e3..a65ac4384c04 100644
> >> > --- a/Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt
> >> > +++ b/Documentation/devicetree/bindings/net/wireless/brcm,bcm43xx-fmac.txt
> >> > @@ -15,6 +15,12 @@ Optional properties:
> >> > When not specified the device will use in-band SDIO interrupts.
> >> > - interrupt-names : name of the out-of-band interrupt, which must be set
> >> > to "host-wake".
> >> > + - brcm,ccode-map : multiple strings for translating ISO3166 country code to
> >> > + brcmfmac firmware country code and revision. Each string must be in
> >> > + format "AA-BB-num" where:
> >> > + AA is the ISO3166 country code which must be 2 characters.
> >> > + BB is the firmware country code which must be 2 characters.
> >> > + num is the revision number which must fit into signed integer.
> >> >
> >> > Example:
> >> >
> >> > @@ -34,5 +40,6 @@ mmc3: mmc@...2000 {
> >> > interrupt-parent = <&pio>;
> >> > interrupts = <10 8>; /* PH10 / EINT10 */
> >> > interrupt-names = "host-wake";
> >> > + brcm,ccode-map = "JP-JP-78", "US-Q2-86";
> >>
> >> The commit log does not answer "Why?". Why this needs to be in device
> >> tree and, for example, not hard coded in the driver?
> >
> > Thanks for the comment, Kalle. Actually, this is something I need some
> > input from driver maintainers. I can see this country code mapping
> > table is chipset specific, and can be hard coded in driver per chip id
> > and revision. But on the other hand, it makes some sense to have this
> > table in device tree, as the country code that need to be supported
> > could be a device specific configuration.
>
> Could be? Does such a use case exist at the moment or are just guessing
> future needs?
I hope that the patch [1] from Rafał (copied) is one use case. And
also, the device I'm working on only needs to support some of the
countries in the mapping table.
>
> From what I have learned so far I think this kind of data should be in
> the driver, but of course I might be missing something.
I agree with you that such data are chipset specific and should ideally
be in the driver. However, the brcmfmac driver implementation has been
taking the mapping table from platform_data [2][3], which is a logical
equivalent of DT data in case of booting with device tree.
Shawn
[1] https://gitlab.dai-labor.de/nadim/powquty-coap/-/blob/563b2bd658822375dcfa8e87707304b94de9901c/kernel/mac80211/patches/863-brcmfmac-add-in-driver-tables-with-country-codes.patch
[2] https://elixir.bootlin.com/linux/v5.12-rc7/source/include/linux/platform_data/brcmfmac.h#L154
[3] https://elixir.bootlin.com/linux/v5.12-rc7/source/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.c#L433
Powered by blists - more mailing lists