# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pci/toshiba,tc9563.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Toshiba TC9563 PCIe switch maintainers: - Krishna Chaitanya Chundru description: | Toshiba TC9563 PCIe switch has one upstream and three downstream ports. The 3rd downstream port has integrated endpoint device of Ethernet MAC. Other two downstream ports are supposed to connect to external device. The TC9563 PCIe switch can be configured through I2C interface before PCIe link is established to change FTS, ASPM related entry delays, tx amplitude etc for better power efficiency and functionality. properties: compatible: enum: - pci1179,0623 reg: maxItems: 1 resx-gpios: maxItems: 1 description: GPIO controlling the RESX# pin. vdd18-supply: true vdd09-supply: true vddc-supply: true vddio1-supply: true vddio2-supply: true vddio18-supply: true i2c-parent: $ref: /schemas/types.yaml#/definitions/phandle-array description: A phandle to the parent I2C node and the slave address of the device used to configure tc9563 to change FTS, tx amplitude etc. items: - description: Phandle to the I2C controller node - description: I2C slave address patternProperties: "^pcie@[1-3],0$": description: child nodes describing the internal downstream ports of the tc9563 switch. type: object allOf: - $ref: "#/$defs/tc9563-node" - $ref: /schemas/pci/pci-pci-bridge.yaml# unevaluatedProperties: false $defs: tc9563-node: type: object properties: toshiba,tx-amplitude-microvolt: description: Change Tx Margin setting for low power consumption. toshiba,no-dfe-support: type: boolean description: Disable DFE (Decision Feedback Equalizer), which mitigates intersymbol interference and some reflections caused by impedance mismatches. required: - resx-gpios - vdd18-supply - vdd09-supply - vddc-supply - vddio1-supply - vddio2-supply - vddio18-supply - i2c-parent allOf: - $ref: "#/$defs/tc9563-node" - $ref: /schemas/pci/pci-bus-common.yaml# unevaluatedProperties: false examples: - | #include pcie { #address-cells = <3>; #size-cells = <2>; pcie@0 { device_type = "pci"; reg = <0x0 0x0 0x0 0x0 0x0>; #address-cells = <3>; #size-cells = <2>; ranges; bus-range = <0x01 0xff>; pcie@0,0 { compatible = "pci1179,0623"; reg = <0x10000 0x0 0x0 0x0 0x0>; device_type = "pci"; #address-cells = <3>; #size-cells = <2>; ranges; bus-range = <0x02 0xff>; i2c-parent = <&qup_i2c 0x77>; vdd18-supply = <&vdd>; vdd09-supply = <&vdd>; vddc-supply = <&vdd>; vddio1-supply = <&vdd>; vddio2-supply = <&vdd>; vddio18-supply = <&vdd>; resx-gpios = <&gpio 1 GPIO_ACTIVE_LOW>; pcie@1,0 { compatible = "pciclass,0604"; reg = <0x20800 0x0 0x0 0x0 0x0>; #address-cells = <3>; #size-cells = <2>; device_type = "pci"; ranges; bus-range = <0x03 0xff>; toshiba,no-dfe-support; }; pcie@2,0 { compatible = "pciclass,0604"; reg = <0x21000 0x0 0x0 0x0 0x0>; #address-cells = <3>; #size-cells = <2>; device_type = "pci"; ranges; bus-range = <0x04 0xff>; }; pcie@3,0 { compatible = "pciclass,0604"; reg = <0x21800 0x0 0x0 0x0 0x0>; #address-cells = <3>; #size-cells = <2>; device_type = "pci"; ranges; bus-range = <0x05 0xff>; toshiba,tx-amplitude-microvolt = <10>; ethernet@0,0 { reg = <0x50000 0x0 0x0 0x0 0x0>; }; ethernet@0,1 { reg = <0x50100 0x0 0x0 0x0 0x0>; }; }; }; }; };