xref: /linux/Documentation/devicetree/bindings/net/qca,qca7000.yaml (revision 8be4d31cb8aaeea27bde4b7ddb26e28a89062ebf)
1*bf92ffb0SFrank Li# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*bf92ffb0SFrank Li%YAML 1.2
3*bf92ffb0SFrank Li---
4*bf92ffb0SFrank Li$id: http://devicetree.org/schemas/net/qca,qca7000.yaml#
5*bf92ffb0SFrank Li$schema: http://devicetree.org/meta-schemas/core.yaml#
6*bf92ffb0SFrank Li
7*bf92ffb0SFrank Lititle: Qualcomm QCA7000
8*bf92ffb0SFrank Li
9*bf92ffb0SFrank Limaintainers:
10*bf92ffb0SFrank Li  - Frank Li <Frank.Li@nxp.com>
11*bf92ffb0SFrank Li
12*bf92ffb0SFrank Lidescription: |
13*bf92ffb0SFrank Li  The QCA7000 is a serial-to-powerline bridge with a host interface which could
14*bf92ffb0SFrank Li  be configured either as SPI or UART slave. This configuration is done by
15*bf92ffb0SFrank Li  the QCA7000 firmware.
16*bf92ffb0SFrank Li
17*bf92ffb0SFrank Li  (a) Ethernet over SPI
18*bf92ffb0SFrank Li
19*bf92ffb0SFrank Li  In order to use the QCA7000 as SPI device it must be defined as a child of a
20*bf92ffb0SFrank Li  SPI master in the device tree.
21*bf92ffb0SFrank Li
22*bf92ffb0SFrank Li  (b) Ethernet over UART
23*bf92ffb0SFrank Li
24*bf92ffb0SFrank Li  In order to use the QCA7000 as UART slave it must be defined as a child of a
25*bf92ffb0SFrank Li  UART master in the device tree. It is possible to preconfigure the UART
26*bf92ffb0SFrank Li  settings of the QCA7000 firmware, but it's not possible to change them during
27*bf92ffb0SFrank Li  runtime
28*bf92ffb0SFrank Li
29*bf92ffb0SFrank Liproperties:
30*bf92ffb0SFrank Li  compatible:
31*bf92ffb0SFrank Li    const: qca,qca7000
32*bf92ffb0SFrank Li
33*bf92ffb0SFrank Li  reg:
34*bf92ffb0SFrank Li    maxItems: 1
35*bf92ffb0SFrank Li
36*bf92ffb0SFrank Li  interrupts:
37*bf92ffb0SFrank Li    maxItems: 1
38*bf92ffb0SFrank Li
39*bf92ffb0SFrank Li  qca,legacy-mode:
40*bf92ffb0SFrank Li    $ref: /schemas/types.yaml#/definitions/flag
41*bf92ffb0SFrank Li    description:
42*bf92ffb0SFrank Li      Set the SPI data transfer of the QCA7000 to legacy mode.
43*bf92ffb0SFrank Li      In this mode the SPI master must toggle the chip select
44*bf92ffb0SFrank Li      between each data word. In burst mode these gaps aren't
45*bf92ffb0SFrank Li      necessary, which is faster. This setting depends on how
46*bf92ffb0SFrank Li      the QCA7000 is setup via GPIO pin strapping. If the
47*bf92ffb0SFrank Li      property is missing the driver defaults to burst mode.
48*bf92ffb0SFrank Li
49*bf92ffb0SFrank LiallOf:
50*bf92ffb0SFrank Li  - $ref: ethernet-controller.yaml#
51*bf92ffb0SFrank Li
52*bf92ffb0SFrank Li  - if:
53*bf92ffb0SFrank Li      required:
54*bf92ffb0SFrank Li        - reg
55*bf92ffb0SFrank Li
56*bf92ffb0SFrank Li    then:
57*bf92ffb0SFrank Li      properties:
58*bf92ffb0SFrank Li        spi-cpha: true
59*bf92ffb0SFrank Li
60*bf92ffb0SFrank Li        spi-cpol: true
61*bf92ffb0SFrank Li
62*bf92ffb0SFrank Li        spi-max-frequency:
63*bf92ffb0SFrank Li          default: 8000000
64*bf92ffb0SFrank Li          maximum: 16000000
65*bf92ffb0SFrank Li          minimum: 1000000
66*bf92ffb0SFrank Li
67*bf92ffb0SFrank Li      allOf:
68*bf92ffb0SFrank Li        - $ref: /schemas/spi/spi-peripheral-props.yaml#
69*bf92ffb0SFrank Li
70*bf92ffb0SFrank Li    else:
71*bf92ffb0SFrank Li      properties:
72*bf92ffb0SFrank Li        current-speed:
73*bf92ffb0SFrank Li          default: 115200
74*bf92ffb0SFrank Li
75*bf92ffb0SFrank Li        qca,legacy-mode: false
76*bf92ffb0SFrank Li
77*bf92ffb0SFrank Li      allOf:
78*bf92ffb0SFrank Li        - $ref: /schemas/serial/serial-peripheral-props.yaml#
79*bf92ffb0SFrank Li
80*bf92ffb0SFrank LiunevaluatedProperties: false
81*bf92ffb0SFrank Li
82*bf92ffb0SFrank Liexamples:
83*bf92ffb0SFrank Li  - |
84*bf92ffb0SFrank Li    #include <dt-bindings/interrupt-controller/irq.h>
85*bf92ffb0SFrank Li
86*bf92ffb0SFrank Li    spi {
87*bf92ffb0SFrank Li        #address-cells = <1>;
88*bf92ffb0SFrank Li        #size-cells = <0>;
89*bf92ffb0SFrank Li
90*bf92ffb0SFrank Li        ethernet@0 {
91*bf92ffb0SFrank Li            compatible = "qca,qca7000";
92*bf92ffb0SFrank Li            reg = <0x0>;
93*bf92ffb0SFrank Li            interrupt-parent = <&gpio3>;
94*bf92ffb0SFrank Li            interrupts = <25 IRQ_TYPE_EDGE_RISING>;
95*bf92ffb0SFrank Li            spi-cpha;
96*bf92ffb0SFrank Li            spi-cpol;
97*bf92ffb0SFrank Li            spi-max-frequency = <8000000>;
98*bf92ffb0SFrank Li            local-mac-address = [ a0 b0 c0 d0 e0 f0 ];
99*bf92ffb0SFrank Li        };
100*bf92ffb0SFrank Li    };
101*bf92ffb0SFrank Li
102*bf92ffb0SFrank Li  - |
103*bf92ffb0SFrank Li    serial {
104*bf92ffb0SFrank Li        ethernet {
105*bf92ffb0SFrank Li            compatible = "qca,qca7000";
106*bf92ffb0SFrank Li            local-mac-address = [ a0 b0 c0 d0 e0 f0 ];
107*bf92ffb0SFrank Li            current-speed = <38400>;
108*bf92ffb0SFrank Li        };
109*bf92ffb0SFrank Li    };
110