diff mbox series

[v2,1/7] dt-bindings:net:wireless:mediatek,mt76: introduce power-limits node

Message ID 5712c0901cd826d49f881b6c632df35db1678a37.1618008449.git.lorenzo@kernel.org
State Superseded
Headers show
Series introduce single-sku support for mt7663/mt7921 drivers | expand

Commit Message

Lorenzo Bianconi April 9, 2021, 10:51 p.m. UTC
Introduce power-limits node in mt76 binding in order to specify
per-rate power limit values for each 802.11n/802.11ac rate

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
---
 .../bindings/net/wireless/mediatek,mt76.yaml  | 96 +++++++++++++++++++
 1 file changed, 96 insertions(+)

Comments

Rob Herring April 12, 2021, 7:06 p.m. UTC | #1
On Sat, Apr 10, 2021 at 12:51:46AM +0200, Lorenzo Bianconi wrote:
> Introduce power-limits node in mt76 binding in order to specify

> per-rate power limit values for each 802.11n/802.11ac rate

> 

> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>

> ---

>  .../bindings/net/wireless/mediatek,mt76.yaml  | 96 +++++++++++++++++++

>  1 file changed, 96 insertions(+)

> 

> diff --git a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml

> index d6f835d17d66..f459323b8972 100644

> --- a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml

> +++ b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml

> @@ -72,6 +72,79 @@ properties:

>        led-sources:

>          maxItems: 1

>  

> +  power-limits:

> +    type: object


       additionalProperties: false

> +    patternProperties:

> +      "^r[0-9]+":

> +        type: object


           additionalProperties: false
         
> +        properties:

> +          regdomain:

> +            $ref: /schemas/types.yaml#/definitions/string

> +            description:

> +              Regdomain refers to a legal regulatory region. Different

> +              countries define different levels of allowable transmitter

> +              power, time that a channel can be occupied, and different

> +              available channels

> +            enum:

> +              - FCC

> +              - ETSI

> +              - JP

> +

> +        patternProperties:

> +          "^txpower-[256]g$":

> +            type: object


               additionalProperties: false

> +            patternProperties:

> +              "^b[0-9]+$":

> +                type: object


                   additionalProperties: false

> +                properties:

> +                  channels:

> +                    $ref: /schemas/types.yaml#/definitions/uint32-array

> +                    minItems: 2

> +                    maxItems: 2

> +                    description:

> +                      Pairs of first and last channel number of the selected

> +                      band

> +

> +                  rates-cck:

> +                    $ref: /schemas/types.yaml#/definitions/uint8-array

> +                    minItems: 4

> +                    maxItems: 4

> +                    description:

> +                      4 half-dBm per-rate power limit values

> +

> +                  rates-ofdm:

> +                    $ref: /schemas/types.yaml#/definitions/uint8-array

> +                    minItems: 8

> +                    maxItems: 8

> +                    description:

> +                      8 half-dBm per-rate power limit values

> +

> +                  rates-mcs:

> +                    $ref: /schemas/types.yaml#/definitions/uint8-matrix

> +                    description:

> +                      Sets of per-rate power limit values for 802.11n/802.11ac

> +                      rates for multiple channel bandwidth settings.

> +                      Each set starts with the number of channel bandwidth

> +                      settings for which the rate set applies, followed by

> +                      either 8 or 10 power limit values. The order of the

> +                      channel bandwidth settings is 20, 40, 80 and 160 MHz.


This can be expressed as a schema:

maxItems: 4
items:
  minItems: 9
  maxItems: 11

> +

> +                  rates-ru:

> +                    $ref: /schemas/types.yaml#/definitions/uint8-matrix

> +                    description:

> +                      Sets of per-rate power limit values for 802.11ax rates

> +                      for multiple channel bandwidth or resource unit settings.

> +                      Each set starts with the number of channel bandwidth or

> +                      resource unit settings for which the rate set applies,

> +                      followed by 12 power limit values. The order of the

> +                      channel resource unit settings is RU26, RU52, RU106,

> +                      RU242/SU20, RU484/SU40, RU996/SU80 and RU2x996/SU160.



items:
  minItems: 13
  maxItems: 13

> +

> +                  txs-delta:

> +                    $ref: /schemas/types.yaml#/definitions/uint32-array

> +                    description:

> +                      Half-dBm power delta for different numbers of antennas

> +

>  required:

>    - compatible

>    - reg

> @@ -93,6 +166,29 @@ examples:

>          led {

>            led-sources = <2>;

>          };

> +

> +        power-limits {

> +          r0 {

> +            regdomain = "FCC";

> +            txpower-5g {

> +               b0 {

> +                   channels = <36 48>;

> +                   rates-ofdm = /bits/ 8 <23 23 23 23 23 23 23 23>;

> +                   rates-mcs = /bits/ 8 <1 23 23 23 23 23 23 23 23 23 23>,

> +                                        <3 22 22 22 22 22 22 22 22 22 22>;

> +                   rates-ru = /bits/ 8 <3 22 22 22 22 22 22 22 22 22 22 22 22>,

> +                                       <4 20 20 20 20 20 20 20 20 20 20 20 20>;

> +               };

> +               b1 {

> +                   channels = <100 181>;

> +                   rates-ofdm = /bits/ 8 <14 14 14 14 14 14 14 14>;

> +                   rates-mcs = /bits/ 8  <4 14 14 14 14 14 14 14 14 14 14>;

> +                   txs-delta = <12 9 6>;

> +                   rates-ru = /bits/ 8  <7 14 14 14 14 14 14 14 14 14 14 14 14>;

> +               };

> +             };

> +          };

> +        };

>        };

>      };

>  

> -- 

> 2.30.2

>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
index d6f835d17d66..f459323b8972 100644
--- a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
@@ -72,6 +72,79 @@  properties:
       led-sources:
         maxItems: 1
 
+  power-limits:
+    type: object
+    patternProperties:
+      "^r[0-9]+":
+        type: object
+        properties:
+          regdomain:
+            $ref: /schemas/types.yaml#/definitions/string
+            description:
+              Regdomain refers to a legal regulatory region. Different
+              countries define different levels of allowable transmitter
+              power, time that a channel can be occupied, and different
+              available channels
+            enum:
+              - FCC
+              - ETSI
+              - JP
+
+        patternProperties:
+          "^txpower-[256]g$":
+            type: object
+            patternProperties:
+              "^b[0-9]+$":
+                type: object
+                properties:
+                  channels:
+                    $ref: /schemas/types.yaml#/definitions/uint32-array
+                    minItems: 2
+                    maxItems: 2
+                    description:
+                      Pairs of first and last channel number of the selected
+                      band
+
+                  rates-cck:
+                    $ref: /schemas/types.yaml#/definitions/uint8-array
+                    minItems: 4
+                    maxItems: 4
+                    description:
+                      4 half-dBm per-rate power limit values
+
+                  rates-ofdm:
+                    $ref: /schemas/types.yaml#/definitions/uint8-array
+                    minItems: 8
+                    maxItems: 8
+                    description:
+                      8 half-dBm per-rate power limit values
+
+                  rates-mcs:
+                    $ref: /schemas/types.yaml#/definitions/uint8-matrix
+                    description:
+                      Sets of per-rate power limit values for 802.11n/802.11ac
+                      rates for multiple channel bandwidth settings.
+                      Each set starts with the number of channel bandwidth
+                      settings for which the rate set applies, followed by
+                      either 8 or 10 power limit values. The order of the
+                      channel bandwidth settings is 20, 40, 80 and 160 MHz.
+
+                  rates-ru:
+                    $ref: /schemas/types.yaml#/definitions/uint8-matrix
+                    description:
+                      Sets of per-rate power limit values for 802.11ax rates
+                      for multiple channel bandwidth or resource unit settings.
+                      Each set starts with the number of channel bandwidth or
+                      resource unit settings for which the rate set applies,
+                      followed by 12 power limit values. The order of the
+                      channel resource unit settings is RU26, RU52, RU106,
+                      RU242/SU20, RU484/SU40, RU996/SU80 and RU2x996/SU160.
+
+                  txs-delta:
+                    $ref: /schemas/types.yaml#/definitions/uint32-array
+                    description:
+                      Half-dBm power delta for different numbers of antennas
+
 required:
   - compatible
   - reg
@@ -93,6 +166,29 @@  examples:
         led {
           led-sources = <2>;
         };
+
+        power-limits {
+          r0 {
+            regdomain = "FCC";
+            txpower-5g {
+               b0 {
+                   channels = <36 48>;
+                   rates-ofdm = /bits/ 8 <23 23 23 23 23 23 23 23>;
+                   rates-mcs = /bits/ 8 <1 23 23 23 23 23 23 23 23 23 23>,
+                                        <3 22 22 22 22 22 22 22 22 22 22>;
+                   rates-ru = /bits/ 8 <3 22 22 22 22 22 22 22 22 22 22 22 22>,
+                                       <4 20 20 20 20 20 20 20 20 20 20 20 20>;
+               };
+               b1 {
+                   channels = <100 181>;
+                   rates-ofdm = /bits/ 8 <14 14 14 14 14 14 14 14>;
+                   rates-mcs = /bits/ 8  <4 14 14 14 14 14 14 14 14 14 14>;
+                   txs-delta = <12 9 6>;
+                   rates-ru = /bits/ 8  <7 14 14 14 14 14 14 14 14 14 14 14 14>;
+               };
+             };
+          };
+        };
       };
     };