From: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> To: Arend van Spriel <aspriel@gmail.com>, Franky Lin <franky.lin@broadcom.com>, Hante Meuleman <hante.meuleman@broadcom.com> Cc: Alyssa Rosenzweig <alyssa@rosenzweig.io>, asahi@lists.linux.dev, brcm80211-dev-list.pdl@broadcom.com, "David S. Miller" <davem@davemloft.net>, devicetree@vger.kernel.org, Eric Dumazet <edumazet@google.com>, Hector Martin <marcan@marcan.st>, Jakub Kicinski <kuba@kernel.org>, Kalle Valo <kvalo@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, linux-arm-kernel@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, Paolo Abeni <pabeni@redhat.com>, "Rafa__ Mi__ecki" <zajec5@gmail.com>, Rob Herring <robh+dt@kernel.org>, SHA-cyfmac-dev-list@infineon.com, Sven Peter <sven@svenpeter.dev> Subject: [PATCH wireless-next v2 06/12] brcmfmac: of: Fetch Apple properties Date: Mon, 12 Sep 2022 10:53:07 +0100 [thread overview] Message-ID: <E1oXg7n-0064vB-3Y@rmk-PC.armlinux.org.uk> (raw) In-Reply-To: <Yx8BQbjJT4I2oQ5K@shell.armlinux.org.uk> From: Hector Martin <marcan@marcan.st> On Apple ARM64 platforms, firmware selection requires two properties that come from system firmware: the module-instance (aka "island", a codename representing a given hardware platform) and the antenna-sku. We map Apple's module codenames to board_types in the form "apple,<module-instance>". The mapped board_type is added to the DTS file in that form, while the antenna-sku is forwarded by our bootloader from the Apple Device Tree into the FDT. Grab them from the DT so firmware selection can use them. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Hector Martin <marcan@marcan.st> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> --- .../wireless/broadcom/brcm80211/brcmfmac/common.h | 1 + .../net/wireless/broadcom/brcm80211/brcmfmac/of.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h index 6c5a22a32a96..aa25abffcc7d 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h @@ -53,6 +53,7 @@ struct brcmf_mp_device { struct brcmfmac_pd_cc *country_codes; const char *board_type; unsigned char mac[ETH_ALEN]; + const char *antenna_sku; union { struct brcmfmac_sdio_pd sdio; } bus; diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c index 79388d49c256..a83699de01ec 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c @@ -70,14 +70,24 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, { struct brcmfmac_sdio_pd *sdio = &settings->bus.sdio; struct device_node *root, *np = dev->of_node; + const char *prop; int irq; int err; u32 irqf; u32 val; + /* Apple ARM64 platforms have their own idea of board type, passed in + * via the device tree. They also have an antenna SKU parameter + */ + if (!of_property_read_string(np, "brcm,board-type", &prop)) + settings->board_type = prop; + + if (!of_property_read_string(np, "apple,antenna-sku", &prop)) + settings->antenna_sku = prop; + /* Set board-type to the first string of the machine compatible prop */ root = of_find_node_by_path("/"); - if (root) { + if (root && !settings->board_type) { char *board_type; const char *tmp; -- 2.30.2
WARNING: multiple messages have this Message-ID (diff)
From: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> To: Arend van Spriel <aspriel@gmail.com>, Franky Lin <franky.lin@broadcom.com>, Hante Meuleman <hante.meuleman@broadcom.com> Cc: Alyssa Rosenzweig <alyssa@rosenzweig.io>, asahi@lists.linux.dev, brcm80211-dev-list.pdl@broadcom.com, "David S. Miller" <davem@davemloft.net>, devicetree@vger.kernel.org, Eric Dumazet <edumazet@google.com>, Hector Martin <marcan@marcan.st>, Jakub Kicinski <kuba@kernel.org>, Kalle Valo <kvalo@kernel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>, linux-arm-kernel@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, Paolo Abeni <pabeni@redhat.com>, "Rafa__ Mi__ecki" <zajec5@gmail.com>, Rob Herring <robh+dt@kernel.org>, SHA-cyfmac-dev-list@infineon.com, Sven Peter <sven@svenpeter.dev> Subject: [PATCH wireless-next v2 06/12] brcmfmac: of: Fetch Apple properties Date: Mon, 12 Sep 2022 10:53:07 +0100 [thread overview] Message-ID: <E1oXg7n-0064vB-3Y@rmk-PC.armlinux.org.uk> (raw) In-Reply-To: <Yx8BQbjJT4I2oQ5K@shell.armlinux.org.uk> From: Hector Martin <marcan@marcan.st> On Apple ARM64 platforms, firmware selection requires two properties that come from system firmware: the module-instance (aka "island", a codename representing a given hardware platform) and the antenna-sku. We map Apple's module codenames to board_types in the form "apple,<module-instance>". The mapped board_type is added to the DTS file in that form, while the antenna-sku is forwarded by our bootloader from the Apple Device Tree into the FDT. Grab them from the DT so firmware selection can use them. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Hector Martin <marcan@marcan.st> Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> --- .../wireless/broadcom/brcm80211/brcmfmac/common.h | 1 + .../net/wireless/broadcom/brcm80211/brcmfmac/of.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h index 6c5a22a32a96..aa25abffcc7d 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/common.h @@ -53,6 +53,7 @@ struct brcmf_mp_device { struct brcmfmac_pd_cc *country_codes; const char *board_type; unsigned char mac[ETH_ALEN]; + const char *antenna_sku; union { struct brcmfmac_sdio_pd sdio; } bus; diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c index 79388d49c256..a83699de01ec 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c @@ -70,14 +70,24 @@ void brcmf_of_probe(struct device *dev, enum brcmf_bus_type bus_type, { struct brcmfmac_sdio_pd *sdio = &settings->bus.sdio; struct device_node *root, *np = dev->of_node; + const char *prop; int irq; int err; u32 irqf; u32 val; + /* Apple ARM64 platforms have their own idea of board type, passed in + * via the device tree. They also have an antenna SKU parameter + */ + if (!of_property_read_string(np, "brcm,board-type", &prop)) + settings->board_type = prop; + + if (!of_property_read_string(np, "apple,antenna-sku", &prop)) + settings->antenna_sku = prop; + /* Set board-type to the first string of the machine compatible prop */ root = of_find_node_by_path("/"); - if (root) { + if (root && !settings->board_type) { char *board_type; const char *tmp; -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-09-12 9:53 UTC|newest] Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-09-12 9:52 [PATCH wireless-next v2 0/12] Add support for bcm4378 on Apple platforms Russell King (Oracle) 2022-09-12 9:52 ` Russell King (Oracle) 2022-09-12 9:52 ` [PATCH wireless-next v2 01/12] dt-bindings: net: bcm4329-fmac: Add Apple properties & chips Russell King 2022-09-12 9:52 ` Russell King 2022-09-12 11:59 ` Alvin Šipraga 2022-09-12 11:59 ` Alvin Šipraga 2022-09-12 12:04 ` Russell King (Oracle) 2022-09-12 12:04 ` Russell King (Oracle) 2022-09-12 14:01 ` Russell King (Oracle) 2022-09-12 14:01 ` Russell King (Oracle) 2022-09-12 14:13 ` Mark Kettenis 2022-09-12 14:13 ` Mark Kettenis 2022-09-12 14:27 ` Alvin Šipraga 2022-09-12 14:27 ` Alvin Šipraga 2022-09-12 14:29 ` Russell King (Oracle) 2022-09-12 14:29 ` Russell King (Oracle) 2022-09-12 9:52 ` [PATCH wireless-next v2 02/12] brcmfmac: firmware: Handle per-board clm_blob files Russell King 2022-09-12 9:52 ` Russell King 2022-09-15 15:33 ` Alvin Šipraga 2022-09-15 15:33 ` Alvin Šipraga 2022-09-12 9:52 ` [PATCH wireless-next v2 03/12] brcmfmac: pcie/sdio/usb: Get CLM blob via standard firmware mechanism Russell King 2022-09-12 9:52 ` Russell King 2022-09-15 15:33 ` Alvin Šipraga 2022-09-15 15:33 ` Alvin Šipraga 2022-09-12 9:52 ` [PATCH wireless-next v2 04/12] brcmfmac: firmware: Support passing in multiple board_types Russell King 2022-09-12 9:52 ` Russell King 2022-09-15 15:34 ` Alvin Šipraga 2022-09-15 15:34 ` Alvin Šipraga 2022-09-12 9:53 ` [PATCH wireless-next v2 05/12] brcmfmac: pcie: Read Apple OTP information Russell King 2022-09-12 9:53 ` Russell King 2022-09-12 9:53 ` Russell King [this message] 2022-09-12 9:53 ` [PATCH wireless-next v2 06/12] brcmfmac: of: Fetch Apple properties Russell King 2022-09-15 15:34 ` Alvin Šipraga 2022-09-15 15:34 ` Alvin Šipraga 2022-09-12 9:53 ` [PATCH wireless-next v2 07/12] brcmfmac: pcie: Perform firmware selection for Apple platforms Russell King 2022-09-12 9:53 ` Russell King 2022-09-15 15:34 ` Alvin Šipraga 2022-09-15 15:34 ` Alvin Šipraga 2022-09-12 9:53 ` [PATCH wireless-next v2 08/12] brcmfmac: firmware: Allow platform to override macaddr Russell King 2022-09-12 9:53 ` Russell King 2022-09-15 15:34 ` Alvin Šipraga 2022-09-15 15:34 ` Alvin Šipraga 2022-09-12 9:53 ` [PATCH wireless-next v2 09/12] brcmfmac: msgbuf: Increase RX ring sizes to 1024 Russell King 2022-09-12 9:53 ` Russell King 2022-09-15 15:34 ` Alvin Šipraga 2022-09-15 15:34 ` Alvin Šipraga 2022-09-12 9:53 ` [PATCH wireless-next v2 10/12] brcmfmac: pcie: Support PCIe core revisions >= 64 Russell King 2022-09-12 9:53 ` Russell King 2022-09-12 9:53 ` [PATCH wireless-next v2 11/12] brcmfmac: pcie: Add IDs/properties for BCM4378 Russell King 2022-09-12 9:53 ` Russell King 2022-09-15 15:34 ` Alvin Šipraga 2022-09-15 15:34 ` Alvin Šipraga 2022-09-15 16:54 ` Russell King (Oracle) 2022-09-15 16:54 ` Russell King (Oracle) 2022-09-15 16:59 ` Alvin Šipraga 2022-09-15 16:59 ` Alvin Šipraga 2022-09-16 7:31 ` Kalle Valo 2022-09-16 7:31 ` Kalle Valo 2022-09-12 9:53 ` [PATCH wireless-next v2 12/12] arm64: dts: apple: Add WiFi module and antenna properties Russell King 2022-09-12 9:53 ` Russell King 2022-09-13 6:52 ` Kalle Valo 2022-09-13 6:52 ` Kalle Valo 2022-09-13 16:30 ` Hector Martin 2022-09-13 16:30 ` Hector Martin 2022-09-16 7:28 ` Kalle Valo 2022-09-16 7:28 ` Kalle Valo 2022-09-14 10:31 ` [PATCH wireless-next v2 0/12] Add support for bcm4378 on Apple platforms Arend Van Spriel 2022-09-14 10:31 ` Arend Van Spriel
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=E1oXg7n-0064vB-3Y@rmk-PC.armlinux.org.uk \ --to=rmk+kernel@armlinux.org.uk \ --cc=SHA-cyfmac-dev-list@infineon.com \ --cc=alyssa@rosenzweig.io \ --cc=asahi@lists.linux.dev \ --cc=aspriel@gmail.com \ --cc=brcm80211-dev-list.pdl@broadcom.com \ --cc=davem@davemloft.net \ --cc=devicetree@vger.kernel.org \ --cc=edumazet@google.com \ --cc=franky.lin@broadcom.com \ --cc=hante.meuleman@broadcom.com \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=kuba@kernel.org \ --cc=kvalo@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-wireless@vger.kernel.org \ --cc=marcan@marcan.st \ --cc=netdev@vger.kernel.org \ --cc=pabeni@redhat.com \ --cc=robh+dt@kernel.org \ --cc=sven@svenpeter.dev \ --cc=zajec5@gmail.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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.