Hallo all, if it is not too late i would add my two cents :) Am 06.09.2016 um 23:46 schrieb Martin Blumenstingl: > Add documentation how devicetree can be used to configure ath9k based > devices. > > Signed-off-by: Martin Blumenstingl <martin.blumenstingl@xxxxxxxxxxxxxx> > --- > .../devicetree/bindings/net/wireless/qca,ath9k.txt | 39 ++++++++++++++++++++++ > 1 file changed, 39 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt > > diff --git a/Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt b/Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt > new file mode 100644 > index 0000000..77b9202 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/wireless/qca,ath9k.txt > @@ -0,0 +1,39 @@ > +* Qualcomm Atheros ath9k wireless devices > + > +This node provides properties for configuring the ath9k wireless device. The > +node is expected to be specified as a child node of the PCI controller to > +which the wireless chip is connected. > + > +Required properties: > +- compatible: For PCI and PCIe devices this should be an identifier following > + the format as defined in "PCI Bus Binding to Open Firmware" > + Revision 2.1. One of the possible formats is "pciVVVV,DDDD" > + where VVVV is the PCI vendor ID and DDDD is PCI device ID. > + > +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@80040000 { compatible = "some-clock-controller"; #clock-cells = <1>; clocks = <&osc25m>; reg = <0x80040000 0x204>; }; &pci0 { ath9k@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. > +- 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? > +- mac-address: See ethernet.txt in the parent directory > +- local-mac-address: See ethernet.txt in the parent directory > + > + > +In this example, the node is defined as child node of the PCI controller: > +&pci0 { > + ath9k@168c,002d { > + compatible = "pci168c,002d"; > + reg = <0x7000 0 0 0 0x1000>; > + qca,disable-5ghz; > + }; > +}; > -- Regards, Oleksij
Attachment:
signature.asc
Description: OpenPGP digital signature