160 lines · yaml
1# SPDX-License-Identifier: GPL-2.02%YAML 1.23---4$id: http://devicetree.org/schemas/usb/smsc,usb3503.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: SMSC USB3503 High-Speed Hub Controller8 9maintainers:10 - Dongjin Kim <tobetter@gmail.com>11 12properties:13 compatible:14 enum:15 - smsc,usb350316 - smsc,usb3503a17 - smsc,usb380318 19 reg:20 maxItems: 121 22 connect-gpios:23 maxItems: 124 description: >25 GPIO for connect26 27 intn-gpios:28 maxItems: 129 description: >30 GPIO for interrupt31 32 reset-gpios:33 maxItems: 134 description: >35 GPIO for reset36 37 bypass-gpios:38 maxItems: 139 description: >40 GPIO for bypass.41 Control signal to select between HUB MODE and BYPASS MODE.42 43 disabled-ports:44 $ref: /schemas/types.yaml#/definitions/uint32-array45 minItems: 146 maxItems: 347 items:48 minimum: 149 maximum: 350 description: >51 Specifies the ports unused using their port number. Do not describe this52 property if all ports have to be enabled.53 54 initial-mode:55 $ref: /schemas/types.yaml#/definitions/uint3256 description: >57 Specifies initial mode. 1 for Hub mode, 2 for standby mode and 3 for bypass mode.58 In bypass mode the downstream port 3 is connected to the upstream port with low59 switch resistance R_on.60 61 clocks:62 maxItems: 163 description: >64 Clock used for driving REFCLK signal. If not provided the driver assumes65 that clock signal is always available, its rate is specified by REF_SEL66 pins and a value from the primary reference clock frequencies table is67 used.68 69 clock-names:70 const: refclk71 72 refclk-frequency:73 $ref: /schemas/types.yaml#/definitions/uint3274 description: >75 Frequency of the REFCLK signal as defined by REF_SEL pins. If not76 provided, driver will not set rate of the REFCLK signal and assume that a77 value from the primary reference clock frequencies table is used.78 79required:80 - compatible81 82allOf:83 - if:84 not:85 properties:86 compatible:87 enum:88 - smsc,usb380389 then:90 properties:91 bypass-gpios: false92 93 - if:94 required:95 - bypass-gpios96 then:97 properties:98 initial-mode:99 enum: [1, 2, 3]100 else:101 properties:102 initial-mode:103 enum: [1, 2]104 105additionalProperties: false106 107examples:108 - |109 i2c {110 #address-cells = <1>;111 #size-cells = <0>;112 113 usb-hub@8 {114 compatible = "smsc,usb3503";115 reg = <0x08>;116 connect-gpios = <&gpx3 0 1>;117 disabled-ports = <2 3>;118 intn-gpios = <&gpx3 4 1>;119 reset-gpios = <&gpx3 5 1>;120 initial-mode = <1>;121 clocks = <&clks 80>;122 clock-names = "refclk";123 };124 };125 126 - |127 i2c {128 #address-cells = <1>;129 #size-cells = <0>;130 131 usb-hub@8 {132 compatible = "smsc,usb3803";133 reg = <0x08>;134 connect-gpios = <&gpx3 0 1>;135 disabled-ports = <2 3>;136 intn-gpios = <&gpx3 4 1>;137 reset-gpios = <&gpx3 5 1>;138 bypass-gpios = <&gpx3 6 1>;139 initial-mode = <3>;140 clocks = <&clks 80>;141 clock-names = "refclk";142 };143 };144 145 - |146 #include <dt-bindings/gpio/gpio.h>147 148 usb-hub {149 /* I2C is not connected */150 compatible = "smsc,usb3503";151 initial-mode = <1>; /* initialize in HUB mode */152 disabled-ports = <1>;153 intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */154 reset-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>; /* PE16 */155 connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */156 refclk-frequency = <19200000>;157 };158 159...160