| # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) | |
| # Copyright 2023 Realtek Semiconductor Corporation | |
| %YAML 1.2 | |
| --- | |
| $id: http://devicetree.org/schemas/phy/realtek,usb2phy.yaml# | |
| $schema: http://devicetree.org/meta-schemas/core.yaml# | |
| title: Realtek DHC SoCs USB 2.0 PHY | |
| maintainers: | |
| - Stanley Chang <stanley_chang@realtek.com> | |
| description: | | |
| Realtek USB 2.0 PHY support the digital home center (DHC) RTD series SoCs. | |
| The USB 2.0 PHY driver is designed to support the XHCI controller. The SoCs | |
| support multiple XHCI controllers. One PHY device node maps to one XHCI | |
| controller. | |
| RTD1295/RTD1619 SoCs USB | |
| The USB architecture includes three XHCI controllers. | |
| Each XHCI maps to one USB 2.0 PHY and map one USB 3.0 PHY on some | |
| controllers. | |
| XHCI controller#0 -- usb2phy -- phy#0 | |
| |- usb3phy -- phy#0 | |
| XHCI controller#1 -- usb2phy -- phy#0 | |
| XHCI controller#2 -- usb2phy -- phy#0 | |
| |- usb3phy -- phy#0 | |
| RTD1395 SoCs USB | |
| The USB architecture includes two XHCI controllers. | |
| The controller#0 has one USB 2.0 PHY. The controller#1 includes two USB 2.0 | |
| PHY. | |
| XHCI controller#0 -- usb2phy -- phy#0 | |
| XHCI controller#1 -- usb2phy -- phy#0 | |
| |- phy#1 | |
| RTD1319/RTD1619b SoCs USB | |
| The USB architecture includes three XHCI controllers. | |
| Each XHCI maps to one USB 2.0 PHY and map one USB 3.0 PHY on controllers#2. | |
| XHCI controller#0 -- usb2phy -- phy#0 | |
| XHCI controller#1 -- usb2phy -- phy#0 | |
| XHCI controller#2 -- usb2phy -- phy#0 | |
| |- usb3phy -- phy#0 | |
| RTD1319d SoCs USB | |
| The USB architecture includes three XHCI controllers. | |
| Each xhci maps to one USB 2.0 PHY and map one USB 3.0 PHY on controllers#0. | |
| XHCI controller#0 -- usb2phy -- phy#0 | |
| |- usb3phy -- phy#0 | |
| XHCI controller#1 -- usb2phy -- phy#0 | |
| XHCI controller#2 -- usb2phy -- phy#0 | |
| RTD1312c/RTD1315e SoCs USB | |
| The USB architecture includes three XHCI controllers. | |
| Each XHCI maps to one USB 2.0 PHY. | |
| XHCI controller#0 -- usb2phy -- phy#0 | |
| XHCI controller#1 -- usb2phy -- phy#0 | |
| XHCI controller#2 -- usb2phy -- phy#0 | |
| properties: | |
| compatible: | |
| enum: | |
| - realtek,rtd1295-usb2phy | |
| - realtek,rtd1312c-usb2phy | |
| - realtek,rtd1315e-usb2phy | |
| - realtek,rtd1319-usb2phy | |
| - realtek,rtd1319d-usb2phy | |
| - realtek,rtd1395-usb2phy | |
| - realtek,rtd1395-usb2phy-2port | |
| - realtek,rtd1619-usb2phy | |
| - realtek,rtd1619b-usb2phy | |
| reg: | |
| items: | |
| - description: PHY data registers | |
| - description: PHY control registers | |
| "#phy-cells": | |
| const: 0 | |
| nvmem-cells: | |
| maxItems: 2 | |
| description: | |
| Phandles to nvmem cell that contains the trimming data. | |
| If unspecified, default value is used. | |
| nvmem-cell-names: | |
| items: | |
| - const: usb-dc-cal | |
| - const: usb-dc-dis | |
| description: | |
| The following names, which correspond to each nvmem-cells. | |
| usb-dc-cal is the driving level for each phy specified via efuse. | |
| usb-dc-dis is the disconnection level for each phy specified via efuse. | |
| realtek,inverse-hstx-sync-clock: | |
| description: | |
| For one of the phys of RTD1619b SoC, the synchronous clock of the | |
| high-speed tx must be inverted. | |
| type: boolean | |
| realtek,driving-level: | |
| description: | |
| Control the magnitude of High speed Dp/Dm output swing (mV). | |
| For a different board or port, the original magnitude maybe not meet | |
| the specification. In this situation we can adjust the value to meet | |
| the specification. | |
| $ref: /schemas/types.yaml#/definitions/uint32 | |
| default: 8 | |
| minimum: 0 | |
| maximum: 31 | |
| realtek,driving-level-compensate: | |
| description: | |
| For RTD1315e SoC, the driving level can be adjusted by reading the | |
| efuse table. This property provides drive compensation. | |
| If the magnitude of High speed Dp/Dm output swing still not meet the | |
| specification, then we can set this value to meet the specification. | |
| $ref: /schemas/types.yaml#/definitions/int32 | |
| default: 0 | |
| minimum: -8 | |
| maximum: 8 | |
| realtek,disconnection-compensate: | |
| description: | |
| This adjusts the disconnection level compensation for the different | |
| boards with different disconnection level. | |
| $ref: /schemas/types.yaml#/definitions/int32 | |
| default: 0 | |
| minimum: -8 | |
| maximum: 8 | |
| required: | |
| - compatible | |
| - reg | |
| - "#phy-cells" | |
| allOf: | |
| - if: | |
| not: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - realtek,rtd1619b-usb2phy | |
| then: | |
| properties: | |
| realtek,inverse-hstx-sync-clock: false | |
| - if: | |
| not: | |
| properties: | |
| compatible: | |
| contains: | |
| enum: | |
| - realtek,rtd1315e-usb2phy | |
| then: | |
| properties: | |
| realtek,driving-level-compensate: false | |
| additionalProperties: false | |
| examples: | |
| - | | |
| usb-phy@13214 { | |
| compatible = "realtek,rtd1619b-usb2phy"; | |
| reg = <0x13214 0x4>, <0x28280 0x4>; | |
| #phy-cells = <0>; | |
| nvmem-cells = <&otp_usb_port0_dc_cal>, <&otp_usb_port0_dc_dis>; | |
| nvmem-cell-names = "usb-dc-cal", "usb-dc-dis"; | |
| realtek,inverse-hstx-sync-clock; | |
| realtek,driving-level = <0xa>; | |
| realtek,disconnection-compensate = <(-1)>; | |
| }; |