# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/phy/ti,phy-usb3.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: TI PIPE3 PHY Module maintainers: - Roger Quadros description: The TI PIPE3 PHY is a high-speed SerDes (Serializer/Deserializer) transceiver integrated in OMAP5, DRA7xx/AM57xx, and similar SoCs. It supports multiple protocols (USB3, SATA, PCIe) using the PIPE3 interface standard, which defines a common physical layer for high-speed serial interfaces. properties: $nodename: pattern: "^(pcie-phy|usb3-phy|phy)@[0-9a-f]+$" compatible: enum: - ti,omap-usb3 - ti,phy-pipe3-pcie - ti,phy-pipe3-sata - ti,phy-usb3 reg: minItems: 2 maxItems: 3 reg-names: minItems: 2 items: - const: phy_rx - const: phy_tx - const: pll_ctrl "#phy-cells": const: 0 clocks: minItems: 2 maxItems: 7 clock-names: minItems: 2 maxItems: 7 items: enum: [wkupclk, sysclk, refclk, dpll_ref, dpll_ref_m2, phy-div, div-clk] syscon-phy-power: $ref: /schemas/types.yaml#/definitions/phandle-array maxItems: 1 items: items: - description: Phandle to the system control module - description: Register offset controlling PHY power syscon-pllreset: $ref: /schemas/types.yaml#/definitions/phandle-array maxItems: 1 items: items: - description: Phandle to the system control module - description: Register offset of CTRL_CORE_SMA_SW_0 syscon-pcs: $ref: /schemas/types.yaml#/definitions/phandle-array maxItems: 1 items: items: - description: Phandle to the system control module - description: Register offset for PCS delay programming ctrl-module: $ref: /schemas/types.yaml#/definitions/phandle description: Phandle of control module for PHY power on. deprecated: true allOf: - if: properties: compatible: contains: const: ti,phy-pipe3-sata then: properties: syscon-pllreset: true else: properties: syscon-pllreset: false required: - reg - compatible - reg-names - "#phy-cells" - clocks - clock-names unevaluatedProperties: false examples: - | /* TI PIPE3 USB3 PHY */ usb3-phy@4a084400 { compatible = "ti,phy-usb3"; reg = <0x4a084400 0x80>, <0x4a084800 0x64>, <0x4a084c00 0x40>; reg-names = "phy_rx", "phy_tx", "pll_ctrl"; #phy-cells = <0>; clocks = <&usb_phy_cm_clk32k>, <&sys_clkin>, <&usb_otg_ss_refclk960m>; clock-names = "wkupclk", "sysclk", "refclk"; ctrl-module = <&omap_control_usb>; }; - | /* TI PIPE3 SATA PHY */ phy@4a096000 { compatible = "ti,phy-pipe3-sata"; reg = <0x4a096000 0x80>, /* phy_rx */ <0x4a096400 0x64>, /* phy_tx */ <0x4a096800 0x40>; /* pll_ctrl */ reg-names = "phy_rx", "phy_tx", "pll_ctrl"; clocks = <&sys_clkin1>, <&sata_ref_clk>; clock-names = "sysclk", "refclk"; syscon-pllreset = <&scm_conf 0x3fc>; #phy-cells = <0>; }; ...