xref: /linux/Documentation/devicetree/bindings/pci/toshiba,tc9563.yaml (revision 84318277d6334c6981ab326d4acc87c6a6ddc9b8)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/pci/toshiba,tc9563.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Toshiba TC9563 PCIe switch
8
9maintainers:
10  - Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
11
12description: |
13  Toshiba TC9563 PCIe switch has one upstream and three downstream ports.
14  The 3rd downstream port has integrated endpoint device of Ethernet MAC.
15  Other two downstream ports are supposed to connect to external device.
16
17  The TC9563 PCIe switch can be configured through I2C interface before
18  PCIe link is established to change FTS, ASPM related entry delays,
19  tx amplitude etc for better power efficiency and functionality.
20
21properties:
22  compatible:
23    enum:
24      - pci1179,0623
25
26  reg:
27    maxItems: 1
28
29  resx-gpios:
30    maxItems: 1
31    description:
32      GPIO controlling the RESX# pin.
33
34  vdd18-supply: true
35
36  vdd09-supply: true
37
38  vddc-supply: true
39
40  vddio1-supply: true
41
42  vddio2-supply: true
43
44  vddio18-supply: true
45
46  i2c-parent:
47    $ref: /schemas/types.yaml#/definitions/phandle-array
48    description:
49      A phandle to the parent I2C node and the slave address of the device
50      used to configure tc9563 to change FTS, tx amplitude etc.
51    items:
52      - description: Phandle to the I2C controller node
53      - description: I2C slave address
54
55patternProperties:
56  "^pcie@[1-3],0$":
57    description:
58      child nodes describing the internal downstream ports of
59      the tc9563 switch.
60    type: object
61    allOf:
62      - $ref: "#/$defs/tc9563-node"
63      - $ref: /schemas/pci/pci-pci-bridge.yaml#
64    unevaluatedProperties: false
65
66$defs:
67  tc9563-node:
68    type: object
69
70    properties:
71      toshiba,tx-amplitude-microvolt:
72        description:
73          Change Tx Margin setting for low power consumption.
74
75      toshiba,no-dfe-support:
76        type: boolean
77        description:
78          Disable DFE (Decision Feedback Equalizer), which mitigates
79          intersymbol interference and some reflections caused by
80          impedance mismatches.
81
82required:
83  - resx-gpios
84  - vdd18-supply
85  - vdd09-supply
86  - vddc-supply
87  - vddio1-supply
88  - vddio2-supply
89  - vddio18-supply
90  - i2c-parent
91
92allOf:
93  - $ref: "#/$defs/tc9563-node"
94  - $ref: /schemas/pci/pci-bus-common.yaml#
95
96unevaluatedProperties: false
97
98examples:
99  - |
100    #include <dt-bindings/gpio/gpio.h>
101
102    pcie {
103        #address-cells = <3>;
104        #size-cells = <2>;
105
106        pcie@0 {
107            device_type = "pci";
108            reg = <0x0 0x0 0x0 0x0 0x0>;
109
110            #address-cells = <3>;
111            #size-cells = <2>;
112            ranges;
113            bus-range = <0x01 0xff>;
114
115            pcie@0,0 {
116                compatible = "pci1179,0623";
117
118                reg = <0x10000 0x0 0x0 0x0 0x0>;
119                device_type = "pci";
120                #address-cells = <3>;
121                #size-cells = <2>;
122                ranges;
123                bus-range = <0x02 0xff>;
124
125                i2c-parent = <&qup_i2c 0x77>;
126
127                vdd18-supply = <&vdd>;
128                vdd09-supply = <&vdd>;
129                vddc-supply = <&vdd>;
130                vddio1-supply = <&vdd>;
131                vddio2-supply = <&vdd>;
132                vddio18-supply = <&vdd>;
133
134                resx-gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
135
136                pcie@1,0 {
137                    compatible = "pciclass,0604";
138                    reg = <0x20800 0x0 0x0 0x0 0x0>;
139                    #address-cells = <3>;
140                    #size-cells = <2>;
141                    device_type = "pci";
142                    ranges;
143                    bus-range = <0x03 0xff>;
144
145                    toshiba,no-dfe-support;
146                };
147
148                pcie@2,0 {
149                    compatible = "pciclass,0604";
150                    reg = <0x21000 0x0 0x0 0x0 0x0>;
151                    #address-cells = <3>;
152                    #size-cells = <2>;
153                    device_type = "pci";
154                    ranges;
155                    bus-range = <0x04 0xff>;
156                };
157
158                pcie@3,0 {
159                    compatible = "pciclass,0604";
160                    reg = <0x21800 0x0 0x0 0x0 0x0>;
161                    #address-cells = <3>;
162                    #size-cells = <2>;
163                    device_type = "pci";
164                    ranges;
165                    bus-range = <0x05 0xff>;
166
167                    toshiba,tx-amplitude-microvolt = <10>;
168
169                    ethernet@0,0 {
170                        reg = <0x50000 0x0 0x0 0x0 0x0>;
171                    };
172
173                    ethernet@0,1 {
174                        reg = <0x50100 0x0 0x0 0x0 0x0>;
175                    };
176                };
177            };
178        };
179    };
180