From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To: ath9k-devel@lists.ath9k.org
Subject: [ath9k-devel] [PATCH v5 3/3] ath9k: parse the device configuration from an OF node
Date: Sun, 21 Aug 2016 16:31:05 +0200 [thread overview]
Message-ID: <20160821143105.27487-4-martin.blumenstingl@googlemail.com> (raw)
In-Reply-To: <20160821143105.27487-1-martin.blumenstingl@googlemail.com>
This allows configuring ath9k based PCI devices using devicetree.
There is some out-of-tree code to "convert devicetree to
ath9k_platform_data" (for example in OpenWrt and LEDE) which becomes
obsolete with this patch.
Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
---
drivers/net/wireless/ath/ath9k/init.c | 51 +++++++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index cfa3fe8..c123145 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -20,6 +20,8 @@
#include <linux/slab.h>
#include <linux/ath9k_platform.h>
#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_net.h>
#include <linux/relay.h>
#include <net/ieee80211_radiotap.h>
@@ -555,6 +557,51 @@ static int ath9k_init_platform(struct ath_softc *sc)
return 0;
}
+static int ath9k_of_init(struct ath_softc *sc)
+{
+ struct device_node *np = sc->dev->of_node;
+ struct ath_hw *ah = sc->sc_ah;
+ struct ath_common *common = ath9k_hw_common(ah);
+ enum ath_bus_type bus_type = common->bus_ops->ath_bus_type;
+ const char *mac;
+ char eeprom_name[100];
+ int ret;
+
+ if (!of_device_is_available(np))
+ return 0;
+
+ ath_dbg(common, CONFIG, "parsing configuration from OF node\n");
+
+ if (of_property_read_bool(np, "qca,clk-25mhz"))
+ ah->is_clk_25mhz = true;
+
+ if (of_property_read_bool(np, "qca,disable-2ghz"))
+ ah->disable_2ghz = true;
+
+ if (of_property_read_bool(np, "qca,disable-5ghz"))
+ ah->disable_5ghz = true;
+
+ if (of_property_read_bool(np, "qca,no-eeprom")) {
+ /* ath9k-eeprom-<bus>-<id>.bin */
+ scnprintf(eeprom_name, sizeof(eeprom_name),
+ "ath9k-eeprom-%s-%s.bin",
+ ath_bus_type_to_string(bus_type), dev_name(ah->dev));
+
+ ret = ath9k_eeprom_request(sc, eeprom_name);
+ if (ret)
+ return ret;
+ }
+
+ mac = of_get_mac_address(np);
+ if (mac)
+ ether_addr_copy(common->macaddr, mac);
+
+ ah->ah_flags &= ~AH_USE_EEPROM;
+ ah->ah_flags |= AH_NO_EEP_SWAP;
+
+ return 0;
+}
+
static int ath9k_init_softc(u16 devid, struct ath_softc *sc,
const struct ath_bus_ops *bus_ops)
{
@@ -611,6 +658,10 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc,
if (ret)
return ret;
+ ret = ath9k_of_init(sc);
+ if (ret)
+ return ret;
+
if (ath9k_led_active_high != -1)
ah->config.led_active_high = ath9k_led_active_high == 1;
--
2.9.3
next prev parent reply other threads:[~2016-08-21 14:31 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-24 12:34 [ath9k-devel] [RFC v3] ath9k: add devicetree support to ath9k Martin Blumenstingl
2016-06-24 12:34 ` [ath9k-devel] [PATCH RFC v3 1/3] Documentation: dt: net: add ath9k wireless device binding Martin Blumenstingl
2016-06-27 0:20 ` Julian Calaby
2016-06-27 9:49 ` Kalle Valo
2016-06-24 12:34 ` [ath9k-devel] [PATCH v3 2/3] ath9k: add a helper to get the string representation of ath_bus_type Martin Blumenstingl
2016-06-27 10:26 ` Felix Fietkau
2016-06-29 22:37 ` Martin Blumenstingl
2016-06-24 12:34 ` [ath9k-devel] [PATCH RFC v3 3/3] ath9k: parse the device configuration from an OF node Martin Blumenstingl
2016-06-25 12:01 ` Christian Lamparter
2016-06-25 15:08 ` Martin Blumenstingl
2016-06-25 19:26 ` Christian Lamparter
2016-06-26 23:38 ` Martin Blumenstingl
2016-07-07 1:03 ` Luis R. Rodriguez
2016-07-09 23:28 ` [ath9k-devel] [PATCH v4 0/3] add devicetree support to ath9k Martin Blumenstingl
2016-07-09 23:28 ` [ath9k-devel] [PATCH v4 1/3] Documentation: dt: net: add ath9k wireless device binding Martin Blumenstingl
2016-07-10 20:52 ` Arnd Bergmann
2016-07-10 20:54 ` Martin Blumenstingl
2016-07-10 22:01 ` Arnd Bergmann
2016-07-11 21:21 ` Martin Blumenstingl
2016-07-14 12:33 ` Arnd Bergmann
2016-07-13 7:02 ` Kalle Valo
2016-07-13 7:47 ` Arnd Bergmann
2016-07-09 23:28 ` [ath9k-devel] [PATCH v4 2/3] ath9k: add a helper to get the string representation of ath_bus_type Martin Blumenstingl
2016-07-09 23:28 ` [ath9k-devel] [PATCH v4 3/3] ath9k: parse the device configuration from an OF node Martin Blumenstingl
2016-07-10 0:32 ` Bjørn Mork
2016-07-10 9:28 ` Oleksij Rempel
2016-07-10 20:56 ` Martin Blumenstingl
2016-08-21 14:31 ` [ath9k-devel] [PATCH v5 0/3] add devicetree support to ath9k Martin Blumenstingl
2016-08-21 14:31 ` [ath9k-devel] [PATCH v5 1/3] Documentation: dt: net: add ath9k wireless device binding Martin Blumenstingl
2016-08-22 9:08 ` Arnd Bergmann
2016-08-28 20:51 ` Martin Blumenstingl
2016-08-29 12:12 ` Arnd Bergmann
2016-08-21 14:31 ` [ath9k-devel] [PATCH v5 2/3] ath9k: add a helper to get the string representation of ath_bus_type Martin Blumenstingl
2016-08-21 14:31 ` Martin Blumenstingl [this message]
2016-09-06 21:46 ` [ath9k-devel] [PATCH v6 0/3] add devicetree support to ath9k Martin Blumenstingl
2016-09-06 21:46 ` [ath9k-devel] [PATCH v6 1/3] Documentation: dt: net: add ath9k wireless device binding Martin Blumenstingl
2016-09-09 7:48 ` Oleksij Rempel
2016-09-09 20:57 ` Martin Blumenstingl
2016-09-13 7:28 ` Oleksij Rempel
2016-09-16 12:45 ` Rob Herring
2016-09-18 21:51 ` Martin Blumenstingl
2016-09-16 12:55 ` Rob Herring
2016-09-06 21:46 ` [ath9k-devel] [PATCH v6 2/3] ath9k: add a helper to get the string representation of ath_bus_type Martin Blumenstingl
2016-09-06 21:46 ` [ath9k-devel] [PATCH v6 3/3] ath9k: parse the device configuration from an OF node Martin Blumenstingl
2016-10-02 21:47 ` [ath9k-devel] [PATCH v7 0/3] add devicetree support to ath9k Martin Blumenstingl
2016-10-02 21:47 ` [ath9k-devel] [PATCH v7 1/3] Documentation: dt: net: add ath9k wireless device binding Martin Blumenstingl
2016-10-07 12:17 ` [ath9k-devel] [v7, " Kalle Valo
2016-10-09 1:29 ` [ath9k-devel] [PATCH v7 " Rob Herring
2016-10-09 9:54 ` Martin Blumenstingl
2016-10-02 21:47 ` [ath9k-devel] [PATCH v7 2/3] ath9k: add a helper to get the string representation of ath_bus_type Martin Blumenstingl
2016-10-02 21:47 ` [ath9k-devel] [PATCH v7 3/3] ath9k: parse the device configuration from an OF node Martin Blumenstingl
2016-10-16 20:59 ` [ath9k-devel] [PATCH v8 0/3] add devicetree support to ath9k Martin Blumenstingl
2016-10-16 20:59 ` [ath9k-devel] [PATCH v8 1/3] Documentation: dt: net: add ath9k wireless device binding Martin Blumenstingl
2016-10-18 15:31 ` Rob Herring
2016-11-15 14:56 ` [ath9k-devel] [v8, " Kalle Valo
2016-10-16 20:59 ` [ath9k-devel] [PATCH v8 2/3] ath9k: add a helper to get the string representation of ath_bus_type Martin Blumenstingl
2016-10-16 20:59 ` [ath9k-devel] [PATCH v8 3/3] ath9k: parse the device configuration from an OF node Martin Blumenstingl
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=20160821143105.27487-4-martin.blumenstingl@googlemail.com \
--to=martin.blumenstingl@googlemail.com \
--cc=ath9k-devel@lists.ath9k.org \
/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;
as well as URLs for NNTP newsgroup(s).