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

dt-bindings: usb: smsc,usb3503: Add usb3803

Add support for usb3803, compared to usb3503 it uses a regular USB
connection to upstream instead of HSIC, it has an additional
low power mode (bypass) and an additional control signal (BYPASS_N).

In bypass mode the downstream port 3 is connected to the upstream port
with low switch resistance R_on.

Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20230313165039.255579-2-francesco@dolcini.it
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Emanuele Ghidoli and committed by
Greg Kroah-Hartman
1239e812 34427557

+52 -2
+52 -2
Documentation/devicetree/bindings/usb/smsc,usb3503.yaml
··· 14 14 enum: 15 15 - smsc,usb3503 16 16 - smsc,usb3503a 17 + - smsc,usb3803 17 18 18 19 reg: 19 20 maxItems: 1 ··· 34 33 description: > 35 34 GPIO for reset 36 35 36 + bypass-gpios: 37 + maxItems: 1 38 + description: > 39 + GPIO for bypass. 40 + Control signal to select between HUB MODE and BYPASS MODE. 41 + 37 42 disabled-ports: 38 43 $ref: /schemas/types.yaml#/definitions/uint32-array 39 44 minItems: 1 ··· 53 46 54 47 initial-mode: 55 48 $ref: /schemas/types.yaml#/definitions/uint32 56 - enum: [1, 2] 57 49 description: > 58 - Specifies initial mode. 1 for Hub mode, 2 for standby mode. 50 + Specifies initial mode. 1 for Hub mode, 2 for standby mode and 3 for bypass mode. 51 + In bypass mode the downstream port 3 is connected to the upstream port with low 52 + switch resistance R_on. 59 53 60 54 clocks: 61 55 maxItems: 1 ··· 79 71 required: 80 72 - compatible 81 73 74 + allOf: 75 + - if: 76 + not: 77 + properties: 78 + compatible: 79 + enum: 80 + - smsc,usb3803 81 + then: 82 + properties: 83 + bypass-gpios: false 84 + 85 + - if: 86 + required: 87 + - bypass-gpios 88 + then: 89 + properties: 90 + initial-mode: 91 + enum: [1, 2, 3] 92 + else: 93 + properties: 94 + initial-mode: 95 + enum: [1, 2] 96 + 82 97 additionalProperties: false 83 98 84 99 examples: ··· 118 87 intn-gpios = <&gpx3 4 1>; 119 88 reset-gpios = <&gpx3 5 1>; 120 89 initial-mode = <1>; 90 + clocks = <&clks 80>; 91 + clock-names = "refclk"; 92 + }; 93 + }; 94 + 95 + - | 96 + i2c { 97 + #address-cells = <1>; 98 + #size-cells = <0>; 99 + 100 + usb-hub@8 { 101 + compatible = "smsc,usb3803"; 102 + reg = <0x08>; 103 + connect-gpios = <&gpx3 0 1>; 104 + disabled-ports = <2 3>; 105 + intn-gpios = <&gpx3 4 1>; 106 + reset-gpios = <&gpx3 5 1>; 107 + bypass-gpios = <&gpx3 6 1>; 108 + initial-mode = <3>; 121 109 clocks = <&clks 80>; 122 110 clock-names = "refclk"; 123 111 };