ath9k-devel.lists.ath9k.org archive mirror
 help / color / mirror / Atom feed
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
To: ath9k-devel@lists.ath9k.org
Subject: [ath9k-devel] [PATCH v6 1/3] Documentation: dt: net: add ath9k wireless device binding
Date: Sun, 18 Sep 2016 23:51:39 +0200	[thread overview]
Message-ID: <CAFBinCCU5zu3u4r8_PR2nnueXBoSpK5yZZkxmuXnugiP95fr=g@mail.gmail.com> (raw)
In-Reply-To: <20160916124541.GB9689@rob-hp-laptop>

On Fri, Sep 16, 2016 at 2:45 PM, Rob Herring <robh@kernel.org> wrote:
> On Fri, Sep 09, 2016 at 10:57:06PM +0200, Martin Blumenstingl wrote:
>> On Fri, Sep 9, 2016 at 9:48 AM, Oleksij Rempel <linux@rempel-privat.de> wrote:
>> >> +Optional properties:
>> >> +- reg: Address and length of the register set for the device.
>> >> +- qca,clk-25mhz: Defines that a 25MHz clock is used
>> >
>> > Some SoCs even Atheros WiSoCs use WiFi clock for System Clock. In this
>> > case we need to use clock framework any way, so why not in this case too?
>> > Provide dummy static clock in DT and connect it with this node?
>> >
>> >         osc25m: oscillator {
>> >                 compatible = "fixed-clock";
>> >                 #clock-cells = <0>;
>> >                 clock-frequency = <25000000>;
>> >                 clock-accuracy = <30000>;
>> >         };
>> >
>> >         acc: clock-controller at 80040000 {
>> >                 compatible = "some-clock-controller";
>> >                 #clock-cells = <1>;
>> >                 clocks = <&osc25m>;
>> >                 reg = <0x80040000 0x204>;
>> >         };
>> >
>> >
>> > &pci0 {
>> >         ath9k at 168c,002d {
>> >                 compatible = "pci168c,002d";
>> >                 reg = <0x7000 0 0 0 0x1000>;
>> >                 clocks = <&osc25m>;
>> >                 qca,disable-5ghz;
>> >         };
>> > };
>> >
>> >
>> > driver will need to use clk_get and compare frequency instead of
>> > of_property_read_bool(np, "qca,clk-25mhz"). In this case you will need
>> > to define source clock only one time and reuse it by all affected DT
>> > nodes. If we have 40MHz clock you will only need to change it in
>> > fixed-clock.
>> that does sound like a good idea, thanks for that input!
>> However, I will remove the property for the first version because I am
>> trying to get PCI(e) devices supported. OF support for AHB (WiSoC)
>> needs more work (in other places, like ahb.c) anyways.
>> But this suggestion should be remembered!
>>
>> >> +- qca,no-eeprom: Indicates that there is no physical EEPROM connected to the
>> >> +                     ath9k wireless chip (in this case the calibration /
>> >> +                     EEPROM data will be loaded from userspace using the
>> >> +                     kernel firmware loader).
>> >> +- qca,disable-2ghz: Overrides the settings from the EEPROM and disables the
>> >> +                     2.4GHz band. Setting this property is only needed
>> >> +                     when the RF circuit does not support the 2.4GHz band
>> >> +                     while it is enabled nevertheless in the EEPROM.
>> >> +- qca,disable-5ghz: Overrides the settings from the EEPROM and disables the
>> >> +                     5GHz band. Setting this property is only needed when
>> >> +                     the RF circuit does not support the 5GHz band while
>> >> +                     it is enabled nevertheless in the EEPROM.
>> >
>> > This option can be reused for every WiFi controller. Not only for qca.
>> > So may be instead of adding vendor specific name, make it reusable for
>> > all vendors. Instead of qca,disable-5ghz and qca,disable-2ghz make
>> > disable-5ghz and disable-2ghz?
>
> Fine, but if you do this then document in a common location.
what about Documentation/devicetree/bindings/net/wireless/ieee80211-common.txt?

>> I am personally fine with anything that fits best into the grand
>> scheme of things.
>> There are three scenarios I can think of which may be influenced by
>> devicetree configuration:
>> a) let the driver decide automatically whether the 2.4GHz and/or 5GHz
>> band is/are enabled
>> b) explicitly disable either bands (because the driver thinks due to
>> whatever reason that a band is supported while in reality it isn't)
>> c) explicitly enable a band (for example because the driver cannot
>> automagically detect which band should be enabled)
>>
>> for ath9k we default to a) but also allow b): the EEPROM (device
>> specific calibration data) contains information about which bands are
>> enabled (or not). But some manufacturers are shipping devices for
>> example with the 5G band enabled, while the actual hardware doesn't
>> support it.
>
> And you can't determine that based on different device IDs? If you can
> use vendor/device ID, then you should. If not, then this is fine.
one example is the TP-Link TW-8970 which uses a AR9381. ath9k
identifies this chip as AR9380 (probably because both are *very*
similar). The former does not support the 5G band, the latter does
(but unfortunately - even though it's not supported - the EEPROM data
on the TW-8970 indicates that 5G is supported)

> Is it possible to have no EEPROM at all? If so, you might want to just
> put the raw EEPROM data into DT rather than a property for every field
> (I'm assuming there's more than just what you have properties for now).
In theory: yes
However, most devices we are talking about are legacy ones without
devicetree support in the bootloader (in other words: hand-written
.dts files).

  reply	other threads:[~2016-09-18 21:51 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     ` [ath9k-devel] [PATCH v5 3/3] ath9k: parse the device configuration from an OF node Martin Blumenstingl
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 [this message]
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='CAFBinCCU5zu3u4r8_PR2nnueXBoSpK5yZZkxmuXnugiP95fr=g@mail.gmail.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).