[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <aD3E2ONB6Ay1wwmk@lizhi-Precision-Tower-5810>
Date: Mon, 2 Jun 2025 11:35:52 -0400
From: Frank Li <Frank.li@....com>
To: Stefan Wahren <wahrenst@....net>
Cc: Andrew Lunn <andrew+netdev@...n.ch>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
Rob Herring <robh@...nel.org>,
Krzysztof Kozlowski <krzk+dt@...nel.org>,
Conor Dooley <conor+dt@...nel.org>,
"open list:NETWORKING DRIVERS" <netdev@...r.kernel.org>,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" <devicetree@...r.kernel.org>,
open list <linux-kernel@...r.kernel.org>, imx@...ts.linux.dev
Subject: Re: [PATCH 1/1] dt-bindings: net: convert qca,qca7000.txt yaml format
On Fri, May 30, 2025 at 10:33:28AM +0200, Stefan Wahren wrote:
> Hi Frank,
>
> thanks for this patch.
>
> Am 29.05.25 um 21:17 schrieb Frank Li:
> > Convert qca,qca7000.txt yaml format.
> >
> > Additional changes:
> > - add refs: spi-peripheral-props.yaml, serial-peripheral-props.yaml and
> > ethernet-controller.yaml.
> > - simple spi and uart node name.
> > - use low case for mac address in examples.
> >
> > Signed-off-by: Frank Li <Frank.Li@....com>
> > ---
> > .../devicetree/bindings/net/qca,qca7000.txt | 87 -------------------
> > .../devicetree/bindings/net/qca,qca7000.yaml | 86 ++++++++++++++++++
> > MAINTAINERS | 2 +-
> > 3 files changed, 87 insertions(+), 88 deletions(-)
> > delete mode 100644 Documentation/devicetree/bindings/net/qca,qca7000.txt
> > create mode 100644 Documentation/devicetree/bindings/net/qca,qca7000.yaml
> >
> > diff --git a/Documentation/devicetree/bindings/net/qca,qca7000.txt b/Documentation/devicetree/bindings/net/qca,qca7000.txt
> > deleted file mode 100644
> > index 8f5ae0b84eec2..0000000000000
> > --- a/Documentation/devicetree/bindings/net/qca,qca7000.txt
> > +++ /dev/null
> > @@ -1,87 +0,0 @@
> > -* Qualcomm QCA7000
> > -
> > -The QCA7000 is a serial-to-powerline bridge with a host interface which could
> > -be configured either as SPI or UART slave. This configuration is done by
> > -the QCA7000 firmware.
> > -
> > -(a) Ethernet over SPI
> > -
> > -In order to use the QCA7000 as SPI device it must be defined as a child of a
> > -SPI master in the device tree.
> > -
> > -Required properties:
> > -- compatible : Should be "qca,qca7000"
> > -- reg : Should specify the SPI chip select
> > -- interrupts : The first cell should specify the index of the source
> > - interrupt and the second cell should specify the trigger
> > - type as rising edge
> > -- spi-cpha : Must be set
> > -- spi-cpol : Must be set
> > -
> > -Optional properties:
> > -- spi-max-frequency : Maximum frequency of the SPI bus the chip can operate at.
> > - Numbers smaller than 1000000 or greater than 16000000
> > - are invalid. Missing the property will set the SPI
> > - frequency to 8000000 Hertz.
> > -- qca,legacy-mode : Set the SPI data transfer of the QCA7000 to legacy mode.
> > - In this mode the SPI master must toggle the chip select
> > - between each data word. In burst mode these gaps aren't
> > - necessary, which is faster. This setting depends on how
> > - the QCA7000 is setup via GPIO pin strapping. If the
> > - property is missing the driver defaults to burst mode.
> > -
> > -The MAC address will be determined using the optional properties
> > -defined in ethernet.txt.
> > -
> > -SPI Example:
> > -
> > -/* Freescale i.MX28 SPI master*/
> > -ssp2: spi@...14000 {
> > - #address-cells = <1>;
> > - #size-cells = <0>;
> > - compatible = "fsl,imx28-spi";
> > - pinctrl-names = "default";
> > - pinctrl-0 = <&spi2_pins_a>;
> > -
> > - qca7000: ethernet@0 {
> > - compatible = "qca,qca7000";
> > - reg = <0x0>;
> > - interrupt-parent = <&gpio3>; /* GPIO Bank 3 */
> > - interrupts = <25 0x1>; /* Index: 25, rising edge */
> > - spi-cpha; /* SPI mode: CPHA=1 */
> > - spi-cpol; /* SPI mode: CPOL=1 */
> > - spi-max-frequency = <8000000>; /* freq: 8 MHz */
> > - local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
> > - };
> > -};
> > -
> > -(b) Ethernet over UART
> > -
> > -In order to use the QCA7000 as UART slave it must be defined as a child of a
> > -UART master in the device tree. It is possible to preconfigure the UART
> > -settings of the QCA7000 firmware, but it's not possible to change them during
> > -runtime.
> > -
> > -Required properties:
> > -- compatible : Should be "qca,qca7000"
> > -
> > -Optional properties:
> > -- local-mac-address : see ./ethernet.txt
> > -- current-speed : current baud rate of QCA7000 which defaults to 115200
> > - if absent, see also ../serial/serial.yaml
> > -
> > -UART Example:
> > -
> > -/* Freescale i.MX28 UART */
> > -auart0: serial@...6a000 {
> > - compatible = "fsl,imx28-auart", "fsl,imx23-auart";
> > - reg = <0x8006a000 0x2000>;
> > - pinctrl-names = "default";
> > - pinctrl-0 = <&auart0_2pins_a>;
> > -
> > - qca7000: ethernet {
> > - compatible = "qca,qca7000";
> > - local-mac-address = [ A0 B0 C0 D0 E0 F0 ];
> > - current-speed = <38400>;
> > - };
> > -};
> > diff --git a/Documentation/devicetree/bindings/net/qca,qca7000.yaml b/Documentation/devicetree/bindings/net/qca,qca7000.yaml
> > new file mode 100644
> > index 0000000000000..348b8e9af975b
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/net/qca,qca7000.yaml
> > @@ -0,0 +1,86 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/net/qca,qca7000.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Qualcomm QCA7000
> > +
> > +maintainers:
> > + - Frank Li <Frank.Li@....com>
> > +
> > +description: |
> > + The QCA7000 is a serial-to-powerline bridge with a host interface which could
> > + be configured either as SPI or UART slave. This configuration is done by
> > + the QCA7000 firmware.
> > +
> > + (a) Ethernet over SPI
> > +
> > + In order to use the QCA7000 as SPI device it must be defined as a child of a
> > + SPI master in the device tree.
> Could you please add the dropped "(b) Ethernet over UART" description here?
Okay, I will add back.
> > +
> > +properties:
> > + compatible:
> > + const: qca,qca7000
> > +
> > + reg:
> > + maxItems: 1
> > +
> > + interrupts:
> > + maxItems: 1
> > +
> > + spi-cpha: true
> > +
> > + spi-cpol: true
> In case of a SPI setup these properties should be required. Unfortunately
> i'm not sure how to enforce this. Maybe depending on the presence of "reg"?
But It think depend on reg is not good idea, which too obscure. Ideally it
should be use two compatible strings. It should treat as two kinds device.
It is really old devices and not worth to update compatible string.
Maybe some one in dt team can provide suggestion!
Rob and Krzysztof Kozlowski:
any idea about this?
Frank
>
> Regards
> > +
> > + spi-max-frequency:
> > + default: 8000000
> > + maximum: 16000000
> > + minimum: 1000000
> > +
> > + qca,legacy-mode:
> > + $ref: /schemas/types.yaml#/definitions/flag
> > + description:
> > + Set the SPI data transfer of the QCA7000 to legacy mode.
> > + In this mode the SPI master must toggle the chip select
> > + between each data word. In burst mode these gaps aren't
> > + necessary, which is faster. This setting depends on how
> > + the QCA7000 is setup via GPIO pin strapping. If the
> > + property is missing the driver defaults to burst mode.
> > +
> > + current-speed:
> > + default: 115200
> > +
> > +allOf:
> > + - $ref: /schemas/spi/spi-peripheral-props.yaml#
> > + - $ref: /schemas/serial/serial-peripheral-props.yaml#
> > + - $ref: ethernet-controller.yaml#
> > +
> > +unevaluatedProperties: false
> > +
> > +examples:
> > + - |
> > + spi {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + ethernet@0 {
> > + compatible = "qca,qca7000";
> > + reg = <0x0>;
> > + interrupt-parent = <&gpio3>; /* GPIO Bank 3 */
> > + interrupts = <25 0x1>; /* Index: 25, rising edge */
> > + spi-cpha; /* SPI mode: CPHA=1 */
> > + spi-cpol; /* SPI mode: CPOL=1 */
> > + spi-max-frequency = <8000000>; /* freq: 8 MHz */
> > + local-mac-address = [ a0 b0 c0 d0 e0 f0 ];
> > + };
> > + };
> > +
> > + - |
> > + serial {
> > + ethernet {
> > + compatible = "qca,qca7000";
> > + local-mac-address = [ a0 b0 c0 d0 e0 f0 ];
> > + current-speed = <38400>;
> > + };
> > + };
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 7761b5ef87674..c163c80688c23 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -20295,7 +20295,7 @@ QUALCOMM ATHEROS QCA7K ETHERNET DRIVER
> > M: Stefan Wahren <wahrenst@....net>
> > L: netdev@...r.kernel.org
> > S: Maintained
> > -F: Documentation/devicetree/bindings/net/qca,qca7000.txt
> > +F: Documentation/devicetree/bindings/net/qca,qca7000.yaml
> > F: drivers/net/ethernet/qualcomm/qca*
> > QUALCOMM BAM-DMUX WWAN NETWORK DRIVER
>
Powered by blists - more mailing lists