Commit bf92ffb0 authored by Frank Li's avatar Frank Li Committed by Jakub Kicinski
Browse files

dt-bindings: net: convert qca,qca7000.txt yaml format



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.
- add check reg choose spi-peripheral-props.yaml or
  spi-peripheral-props.yaml.

Reviewed-by: default avatarJacob Keller <jacob.e.keller@intel.com>
Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: default avatarFrank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20250618184417.2169745-1-Frank.Li@nxp.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 96c16c59
Loading
Loading
Loading
Loading
+0 −87
Original line number Diff line number Diff line
* 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@80014000 {
	#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@8006a000 {
	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>;
	};
};
+109 −0
Original line number Diff line number Diff line
# 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@nxp.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.

  (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

properties:
  compatible:
    const: qca,qca7000

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  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.

allOf:
  - $ref: ethernet-controller.yaml#

  - if:
      required:
        - reg

    then:
      properties:
        spi-cpha: true

        spi-cpol: true

        spi-max-frequency:
          default: 8000000
          maximum: 16000000
          minimum: 1000000

      allOf:
        - $ref: /schemas/spi/spi-peripheral-props.yaml#

    else:
      properties:
        current-speed:
          default: 115200

        qca,legacy-mode: false

      allOf:
        - $ref: /schemas/serial/serial-peripheral-props.yaml#

unevaluatedProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/irq.h>

    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        ethernet@0 {
            compatible = "qca,qca7000";
            reg = <0x0>;
            interrupt-parent = <&gpio3>;
            interrupts = <25 IRQ_TYPE_EDGE_RISING>;
            spi-cpha;
            spi-cpol;
            spi-max-frequency = <8000000>;
            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>;
        };
    };
+1 −1
Original line number Diff line number Diff line
@@ -20325,7 +20325,7 @@ QUALCOMM ATHEROS QCA7K ETHERNET DRIVER
M:	Stefan Wahren <wahrenst@gmx.net>
L:	netdev@vger.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