| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| # Copyright (C) 2025, Google LLC |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/phy/google,lga-usb-phy.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Google Tensor Series G5 (Laguna) USB PHY |
| |
| maintainers: |
| - Roy Luo <royluo@google.com> |
| |
| description: |
| Describes the USB PHY interfaces integrated with the DWC3 USB controller on |
| Google Tensor SoCs, starting with the G5 generation (laguna). |
| Two specific PHY IPs from Synopsys are integrated, including eUSB 2.0 PHY IP |
| and USB3.2/DisplayPort combo PHY IP. |
| |
| properties: |
| compatible: |
| const: google,lga-usb-phy |
| |
| reg: |
| items: |
| - description: USB3.2/DisplayPort combo PHY core registers. |
| - description: USB3.2/DisplayPort combo PHY Type-C Assist registers. |
| - description: eUSB 2.0 PHY core registers. |
| - description: Top-level wrapper registers for the integrated PHYs. |
| |
| reg-names: |
| items: |
| - const: usb3_core |
| - const: usb3_tca |
| - const: usb2_core |
| - const: usbdp_top |
| |
| "#phy-cells": |
| description: | |
| The phandle's argument in the PHY specifier selects one of the three |
| following PHY interfaces. |
| - 0 for USB high-speed. |
| - 1 for USB super-speed. |
| - 2 for DisplayPort. |
| const: 1 |
| |
| clocks: |
| items: |
| - description: USB2 PHY clock. |
| - description: USB2 PHY APB clock. |
| - description: USB3.2/DisplayPort combo PHY clock. |
| - description: USB3.2/DisplayPort combo PHY firmware clock. |
| |
| clock-names: |
| items: |
| - const: usb2 |
| - const: usb2_apb |
| - const: usb3 |
| - const: usb3_fw |
| |
| resets: |
| items: |
| - description: USB2 PHY reset. |
| - description: USB2 PHY APB reset. |
| - description: USB3.2/DisplayPort combo PHY reset. |
| |
| reset-names: |
| items: |
| - const: usb2 |
| - const: usb2_apb |
| - const: usb3 |
| |
| power-domains: |
| maxItems: 1 |
| |
| orientation-switch: |
| type: boolean |
| description: |
| Indicates the PHY as a handler of USB Type-C orientation changes |
| |
| google,usb-cfg-csr: |
| description: |
| A phandle to a syscon node used to access the USB configuration |
| registers. These registers are the top-level wrapper of the USB |
| subsystem and provide control and status for the integrated USB |
| controller and USB PHY. |
| $ref: /schemas/types.yaml#/definitions/phandle-array |
| items: |
| - items: |
| - description: phandle to the syscon node. |
| - description: USB2 PHY configuration register offset. |
| |
| required: |
| - compatible |
| - reg |
| - reg-names |
| - "#phy-cells" |
| - clocks |
| - clock-names |
| - resets |
| - reset-names |
| - power-domains |
| - orientation-switch |
| - google,usb-cfg-csr |
| |
| additionalProperties: false |
| |
| examples: |
| - | |
| soc { |
| #address-cells = <2>; |
| #size-cells = <2>; |
| |
| usb-phy@c410000 { |
| compatible = "google,lga-usb-phy"; |
| reg = <0 0x0c410000 0 0x20000>, |
| <0 0x0c430000 0 0x1000>, |
| <0 0x0c440000 0 0x10000>, |
| <0 0x0c637000 0 0xa0>; |
| reg-names = "usb3_core", "usb3_tca", "usb2_core", "usbdp_top"; |
| #phy-cells = <1>; |
| clocks = <&hsion_usb2_phy_clk>, <&hsion_u2phy_apb_clk>, |
| <&hsion_usb3_phy_clk>, <&hsion_usb3_phy_fw_clk>; |
| clock-names = "usb2", "usb2_apb", "usb3", "usb3_fw"; |
| resets = <&hsion_resets_usb2_phy>, |
| <&hsion_resets_u2phy_apb>, |
| <&hsion_resets_usb3_phy>; |
| reset-names = "usb2", "usb2_apb", "usb3"; |
| power-domains = <&hsio_n_usb_pd>; |
| orientation-switch; |
| google,usb-cfg-csr = <&usb_cfg_csr 0x14>; |
| }; |
| }; |
| ... |