1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/amd,xgbe-seattle-v1a.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: AMD XGBE Seattle v1a
maintainers:
- Shyam Sundar S K <Shyam-sundar.S-k@amd.com>
allOf:
- $ref: /schemas/net/ethernet-controller.yaml#
properties:
compatible:
const: amd,xgbe-seattle-v1a
reg:
items:
- description: MAC registers
- description: PCS registers
- description: SerDes Rx/Tx registers
- description: SerDes integration registers (1/2)
- description: SerDes integration registers (2/2)
interrupts:
description: Device interrupts. The first entry is the general device
interrupt. If amd,per-channel-interrupt is specified, each DMA channel
interrupt must be specified. The last entry is the PCS auto-negotiation
interrupt.
minItems: 2
maxItems: 6
clocks:
items:
- description: DMA clock for the device
- description: PTP clock for the device
clock-names:
items:
- const: dma_clk
- const: ptp_clk
iommus:
maxItems: 1
phy-mode: true
dma-coherent: true
amd,per-channel-interrupt:
description: Indicates that Rx and Tx complete will generate a unique
interrupt for each DMA channel.
type: boolean
amd,speed-set:
description: >
Speed capabilities of the device.
0 = 1GbE and 10GbE
1 = 2.5GbE and 10GbE
$ref: /schemas/types.yaml#/definitions/uint32
enum: [0, 1]
amd,serdes-blwc:
description: Baseline wandering correction enablement for each speed.
$ref: /schemas/types.yaml#/definitions/uint32-array
minItems: 3
maxItems: 3
items:
enum: [0, 1]
amd,serdes-cdr-rate:
description: CDR rate speed selection for each speed.
$ref: /schemas/types.yaml#/definitions/uint32-array
items:
- description: CDR rate for 1GbE
- description: CDR rate for 2.5GbE
- description: CDR rate for 10GbE
amd,serdes-pq-skew:
description: PQ data sampling skew for each speed.
$ref: /schemas/types.yaml#/definitions/uint32-array
items:
- description: PQ skew for 1GbE
- description: PQ skew for 2.5GbE
- description: PQ skew for 10GbE
amd,serdes-tx-amp:
description: TX amplitude boost for each speed.
$ref: /schemas/types.yaml#/definitions/uint32-array
items:
- description: TX amplitude for 1GbE
- description: TX amplitude for 2.5GbE
- description: TX amplitude for 10GbE
amd,serdes-dfe-tap-config:
description: DFE taps available to run for each speed.
$ref: /schemas/types.yaml#/definitions/uint32-array
items:
- description: DFE taps available for 1GbE
- description: DFE taps available for 2.5GbE
- description: DFE taps available for 10GbE
amd,serdes-dfe-tap-enable:
description: DFE taps to enable for each speed.
$ref: /schemas/types.yaml#/definitions/uint32-array
items:
- description: DFE taps to enable for 1GbE
- description: DFE taps to enable for 2.5GbE
- description: DFE taps to enable for 10GbE
required:
- compatible
- reg
- interrupts
- clocks
- clock-names
- phy-mode
unevaluatedProperties: false
examples:
- |
ethernet@e0700000 {
compatible = "amd,xgbe-seattle-v1a";
reg = <0xe0700000 0x80000>,
<0xe0780000 0x80000>,
<0xe1240800 0x00400>,
<0xe1250000 0x00060>,
<0xe1250080 0x00004>;
interrupts = <0 325 4>,
<0 326 1>, <0 327 1>, <0 328 1>, <0 329 1>,
<0 323 4>;
amd,per-channel-interrupt;
clocks = <&xgbe_dma_clk>, <&xgbe_ptp_clk>;
clock-names = "dma_clk", "ptp_clk";
phy-mode = "xgmii";
mac-address = [ 02 a1 a2 a3 a4 a5 ];
amd,speed-set = <0>;
amd,serdes-blwc = <1>, <1>, <0>;
amd,serdes-cdr-rate = <2>, <2>, <7>;
amd,serdes-pq-skew = <10>, <10>, <30>;
amd,serdes-tx-amp = <15>, <15>, <10>;
amd,serdes-dfe-tap-config = <3>, <3>, <1>;
amd,serdes-dfe-tap-enable = <0>, <0>, <127>;
};
|