Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

dt-bindings: phy: realtek: Add Realtek DHC RTD SoC USB 2.0 PHY

Document the USB PHY bindings for Realtek SoCs.
Realtek DHC (digital home center) RTD SoCs support DWC3 XHCI USB
controller and using USB 2.0 PHY transceiver.

Signed-off-by: Stanley Chang <stanley_chang@realtek.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20230725033318.8361-4-stanley_chang@realtek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Stanley Chang and committed by
Greg Kroah-Hartman
612ad27a adda6e82

+175
+175
Documentation/devicetree/bindings/phy/realtek,usb2phy.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + # Copyright 2023 Realtek Semiconductor Corporation 3 + %YAML 1.2 4 + --- 5 + $id: http://devicetree.org/schemas/phy/realtek,usb2phy.yaml# 6 + $schema: http://devicetree.org/meta-schemas/core.yaml# 7 + 8 + title: Realtek DHC SoCs USB 2.0 PHY 9 + 10 + maintainers: 11 + - Stanley Chang <stanley_chang@realtek.com> 12 + 13 + description: | 14 + Realtek USB 2.0 PHY support the digital home center (DHC) RTD series SoCs. 15 + The USB 2.0 PHY driver is designed to support the XHCI controller. The SoCs 16 + support multiple XHCI controllers. One PHY device node maps to one XHCI 17 + controller. 18 + 19 + RTD1295/RTD1619 SoCs USB 20 + The USB architecture includes three XHCI controllers. 21 + Each XHCI maps to one USB 2.0 PHY and map one USB 3.0 PHY on some 22 + controllers. 23 + XHCI controller#0 -- usb2phy -- phy#0 24 + |- usb3phy -- phy#0 25 + XHCI controller#1 -- usb2phy -- phy#0 26 + XHCI controller#2 -- usb2phy -- phy#0 27 + |- usb3phy -- phy#0 28 + 29 + RTD1395 SoCs USB 30 + The USB architecture includes two XHCI controllers. 31 + The controller#0 has one USB 2.0 PHY. The controller#1 includes two USB 2.0 32 + PHY. 33 + XHCI controller#0 -- usb2phy -- phy#0 34 + XHCI controller#1 -- usb2phy -- phy#0 35 + |- phy#1 36 + 37 + RTD1319/RTD1619b SoCs USB 38 + The USB architecture includes three XHCI controllers. 39 + Each XHCI maps to one USB 2.0 PHY and map one USB 3.0 PHY on controllers#2. 40 + XHCI controller#0 -- usb2phy -- phy#0 41 + XHCI controller#1 -- usb2phy -- phy#0 42 + XHCI controller#2 -- usb2phy -- phy#0 43 + |- usb3phy -- phy#0 44 + 45 + RTD1319d SoCs USB 46 + The USB architecture includes three XHCI controllers. 47 + Each xhci maps to one USB 2.0 PHY and map one USB 3.0 PHY on controllers#0. 48 + XHCI controller#0 -- usb2phy -- phy#0 49 + |- usb3phy -- phy#0 50 + XHCI controller#1 -- usb2phy -- phy#0 51 + XHCI controller#2 -- usb2phy -- phy#0 52 + 53 + RTD1312c/RTD1315e SoCs USB 54 + The USB architecture includes three XHCI controllers. 55 + Each XHCI maps to one USB 2.0 PHY. 56 + XHCI controller#0 -- usb2phy -- phy#0 57 + XHCI controller#1 -- usb2phy -- phy#0 58 + XHCI controller#2 -- usb2phy -- phy#0 59 + 60 + properties: 61 + compatible: 62 + enum: 63 + - realtek,rtd1295-usb2phy 64 + - realtek,rtd1312c-usb2phy 65 + - realtek,rtd1315e-usb2phy 66 + - realtek,rtd1319-usb2phy 67 + - realtek,rtd1319d-usb2phy 68 + - realtek,rtd1395-usb2phy 69 + - realtek,rtd1395-usb2phy-2port 70 + - realtek,rtd1619-usb2phy 71 + - realtek,rtd1619b-usb2phy 72 + 73 + reg: 74 + items: 75 + - description: PHY data registers 76 + - description: PHY control registers 77 + 78 + "#phy-cells": 79 + const: 0 80 + 81 + nvmem-cells: 82 + maxItems: 2 83 + description: 84 + Phandles to nvmem cell that contains the trimming data. 85 + If unspecified, default value is used. 86 + 87 + nvmem-cell-names: 88 + items: 89 + - const: usb-dc-cal 90 + - const: usb-dc-dis 91 + description: 92 + The following names, which correspond to each nvmem-cells. 93 + usb-dc-cal is the driving level for each phy specified via efuse. 94 + usb-dc-dis is the disconnection level for each phy specified via efuse. 95 + 96 + realtek,inverse-hstx-sync-clock: 97 + description: 98 + For one of the phys of RTD1619b SoC, the synchronous clock of the 99 + high-speed tx must be inverted. 100 + type: boolean 101 + 102 + realtek,driving-level: 103 + description: 104 + Control the magnitude of High speed Dp/Dm output swing (mV). 105 + For a different board or port, the original magnitude maybe not meet 106 + the specification. In this situation we can adjust the value to meet 107 + the specification. 108 + $ref: /schemas/types.yaml#/definitions/uint32 109 + default: 8 110 + minimum: 0 111 + maximum: 31 112 + 113 + realtek,driving-level-compensate: 114 + description: 115 + For RTD1315e SoC, the driving level can be adjusted by reading the 116 + efuse table. This property provides drive compensation. 117 + If the magnitude of High speed Dp/Dm output swing still not meet the 118 + specification, then we can set this value to meet the specification. 119 + $ref: /schemas/types.yaml#/definitions/int32 120 + default: 0 121 + minimum: -8 122 + maximum: 8 123 + 124 + realtek,disconnection-compensate: 125 + description: 126 + This adjusts the disconnection level compensation for the different 127 + boards with different disconnection level. 128 + $ref: /schemas/types.yaml#/definitions/int32 129 + default: 0 130 + minimum: -8 131 + maximum: 8 132 + 133 + required: 134 + - compatible 135 + - reg 136 + - "#phy-cells" 137 + 138 + allOf: 139 + - if: 140 + not: 141 + properties: 142 + compatible: 143 + contains: 144 + enum: 145 + - realtek,rtd1619b-usb2phy 146 + then: 147 + properties: 148 + realtek,inverse-hstx-sync-clock: false 149 + 150 + - if: 151 + not: 152 + properties: 153 + compatible: 154 + contains: 155 + enum: 156 + - realtek,rtd1315e-usb2phy 157 + then: 158 + properties: 159 + realtek,driving-level-compensate: false 160 + 161 + additionalProperties: false 162 + 163 + examples: 164 + - | 165 + usb-phy@13214 { 166 + compatible = "realtek,rtd1619b-usb2phy"; 167 + reg = <0x13214 0x4>, <0x28280 0x4>; 168 + #phy-cells = <0>; 169 + nvmem-cells = <&otp_usb_port0_dc_cal>, <&otp_usb_port0_dc_dis>; 170 + nvmem-cell-names = "usb-dc-cal", "usb-dc-dis"; 171 + 172 + realtek,inverse-hstx-sync-clock; 173 + realtek,driving-level = <0xa>; 174 + realtek,disconnection-compensate = <(-1)>; 175 + };