176 lines
5.2 KiB
YAML
176 lines
5.2 KiB
YAML
# 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)>;
|
|
};
|