18cc087a1SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 28cc087a1SEmmanuel Vadot%YAML 1.2 38cc087a1SEmmanuel Vadot--- 48cc087a1SEmmanuel Vadot$id: http://devicetree.org/schemas/usb/smsc,usb3503.yaml# 58cc087a1SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 68cc087a1SEmmanuel Vadot 77ef62cebSEmmanuel Vadottitle: SMSC USB3503 High-Speed Hub Controller 88cc087a1SEmmanuel Vadot 98cc087a1SEmmanuel Vadotmaintainers: 108cc087a1SEmmanuel Vadot - Dongjin Kim <tobetter@gmail.com> 118cc087a1SEmmanuel Vadot 128cc087a1SEmmanuel Vadotproperties: 138cc087a1SEmmanuel Vadot compatible: 148cc087a1SEmmanuel Vadot enum: 158cc087a1SEmmanuel Vadot - smsc,usb3503 168cc087a1SEmmanuel Vadot - smsc,usb3503a 17*fac71e4eSEmmanuel Vadot - smsc,usb3803 188cc087a1SEmmanuel Vadot 198cc087a1SEmmanuel Vadot reg: 208cc087a1SEmmanuel Vadot maxItems: 1 218cc087a1SEmmanuel Vadot 228cc087a1SEmmanuel Vadot connect-gpios: 238cc087a1SEmmanuel Vadot maxItems: 1 248cc087a1SEmmanuel Vadot description: > 258cc087a1SEmmanuel Vadot GPIO for connect 268cc087a1SEmmanuel Vadot 278cc087a1SEmmanuel Vadot intn-gpios: 288cc087a1SEmmanuel Vadot maxItems: 1 298cc087a1SEmmanuel Vadot description: > 308cc087a1SEmmanuel Vadot GPIO for interrupt 318cc087a1SEmmanuel Vadot 328cc087a1SEmmanuel Vadot reset-gpios: 338cc087a1SEmmanuel Vadot maxItems: 1 348cc087a1SEmmanuel Vadot description: > 358cc087a1SEmmanuel Vadot GPIO for reset 368cc087a1SEmmanuel Vadot 37*fac71e4eSEmmanuel Vadot bypass-gpios: 38*fac71e4eSEmmanuel Vadot maxItems: 1 39*fac71e4eSEmmanuel Vadot description: > 40*fac71e4eSEmmanuel Vadot GPIO for bypass. 41*fac71e4eSEmmanuel Vadot Control signal to select between HUB MODE and BYPASS MODE. 42*fac71e4eSEmmanuel Vadot 438cc087a1SEmmanuel Vadot disabled-ports: 448cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32-array 458cc087a1SEmmanuel Vadot minItems: 1 468cc087a1SEmmanuel Vadot maxItems: 3 478cc087a1SEmmanuel Vadot items: 488cc087a1SEmmanuel Vadot minimum: 1 498cc087a1SEmmanuel Vadot maximum: 3 508cc087a1SEmmanuel Vadot description: > 518cc087a1SEmmanuel Vadot Specifies the ports unused using their port number. Do not describe this 528cc087a1SEmmanuel Vadot property if all ports have to be enabled. 538cc087a1SEmmanuel Vadot 548cc087a1SEmmanuel Vadot initial-mode: 55d5b0e70fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 568cc087a1SEmmanuel Vadot description: > 57*fac71e4eSEmmanuel Vadot Specifies initial mode. 1 for Hub mode, 2 for standby mode and 3 for bypass mode. 58*fac71e4eSEmmanuel Vadot In bypass mode the downstream port 3 is connected to the upstream port with low 59*fac71e4eSEmmanuel Vadot switch resistance R_on. 608cc087a1SEmmanuel Vadot 618cc087a1SEmmanuel Vadot clocks: 628cc087a1SEmmanuel Vadot maxItems: 1 638cc087a1SEmmanuel Vadot description: > 648cc087a1SEmmanuel Vadot Clock used for driving REFCLK signal. If not provided the driver assumes 658cc087a1SEmmanuel Vadot that clock signal is always available, its rate is specified by REF_SEL 668cc087a1SEmmanuel Vadot pins and a value from the primary reference clock frequencies table is 678cc087a1SEmmanuel Vadot used. 688cc087a1SEmmanuel Vadot 698cc087a1SEmmanuel Vadot clock-names: 708cc087a1SEmmanuel Vadot const: refclk 718cc087a1SEmmanuel Vadot 728cc087a1SEmmanuel Vadot refclk-frequency: 738cc087a1SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 748cc087a1SEmmanuel Vadot description: > 758cc087a1SEmmanuel Vadot Frequency of the REFCLK signal as defined by REF_SEL pins. If not 768cc087a1SEmmanuel Vadot provided, driver will not set rate of the REFCLK signal and assume that a 778cc087a1SEmmanuel Vadot value from the primary reference clock frequencies table is used. 788cc087a1SEmmanuel Vadot 798cc087a1SEmmanuel Vadotrequired: 808cc087a1SEmmanuel Vadot - compatible 818cc087a1SEmmanuel Vadot 82*fac71e4eSEmmanuel VadotallOf: 83*fac71e4eSEmmanuel Vadot - if: 84*fac71e4eSEmmanuel Vadot not: 85*fac71e4eSEmmanuel Vadot properties: 86*fac71e4eSEmmanuel Vadot compatible: 87*fac71e4eSEmmanuel Vadot enum: 88*fac71e4eSEmmanuel Vadot - smsc,usb3803 89*fac71e4eSEmmanuel Vadot then: 90*fac71e4eSEmmanuel Vadot properties: 91*fac71e4eSEmmanuel Vadot bypass-gpios: false 92*fac71e4eSEmmanuel Vadot 93*fac71e4eSEmmanuel Vadot - if: 94*fac71e4eSEmmanuel Vadot required: 95*fac71e4eSEmmanuel Vadot - bypass-gpios 96*fac71e4eSEmmanuel Vadot then: 97*fac71e4eSEmmanuel Vadot properties: 98*fac71e4eSEmmanuel Vadot initial-mode: 99*fac71e4eSEmmanuel Vadot enum: [1, 2, 3] 100*fac71e4eSEmmanuel Vadot else: 101*fac71e4eSEmmanuel Vadot properties: 102*fac71e4eSEmmanuel Vadot initial-mode: 103*fac71e4eSEmmanuel Vadot enum: [1, 2] 104*fac71e4eSEmmanuel Vadot 1058cc087a1SEmmanuel VadotadditionalProperties: false 1068cc087a1SEmmanuel Vadot 1078cc087a1SEmmanuel Vadotexamples: 1088cc087a1SEmmanuel Vadot - | 1098cc087a1SEmmanuel Vadot i2c { 1108cc087a1SEmmanuel Vadot #address-cells = <1>; 1118cc087a1SEmmanuel Vadot #size-cells = <0>; 1128cc087a1SEmmanuel Vadot 1138cc087a1SEmmanuel Vadot usb-hub@8 { 1148cc087a1SEmmanuel Vadot compatible = "smsc,usb3503"; 1158cc087a1SEmmanuel Vadot reg = <0x08>; 1168cc087a1SEmmanuel Vadot connect-gpios = <&gpx3 0 1>; 1178cc087a1SEmmanuel Vadot disabled-ports = <2 3>; 1188cc087a1SEmmanuel Vadot intn-gpios = <&gpx3 4 1>; 1198cc087a1SEmmanuel Vadot reset-gpios = <&gpx3 5 1>; 1208cc087a1SEmmanuel Vadot initial-mode = <1>; 1218cc087a1SEmmanuel Vadot clocks = <&clks 80>; 1228cc087a1SEmmanuel Vadot clock-names = "refclk"; 1238cc087a1SEmmanuel Vadot }; 1248cc087a1SEmmanuel Vadot }; 1258cc087a1SEmmanuel Vadot 1268cc087a1SEmmanuel Vadot - | 127*fac71e4eSEmmanuel Vadot i2c { 128*fac71e4eSEmmanuel Vadot #address-cells = <1>; 129*fac71e4eSEmmanuel Vadot #size-cells = <0>; 130*fac71e4eSEmmanuel Vadot 131*fac71e4eSEmmanuel Vadot usb-hub@8 { 132*fac71e4eSEmmanuel Vadot compatible = "smsc,usb3803"; 133*fac71e4eSEmmanuel Vadot reg = <0x08>; 134*fac71e4eSEmmanuel Vadot connect-gpios = <&gpx3 0 1>; 135*fac71e4eSEmmanuel Vadot disabled-ports = <2 3>; 136*fac71e4eSEmmanuel Vadot intn-gpios = <&gpx3 4 1>; 137*fac71e4eSEmmanuel Vadot reset-gpios = <&gpx3 5 1>; 138*fac71e4eSEmmanuel Vadot bypass-gpios = <&gpx3 6 1>; 139*fac71e4eSEmmanuel Vadot initial-mode = <3>; 140*fac71e4eSEmmanuel Vadot clocks = <&clks 80>; 141*fac71e4eSEmmanuel Vadot clock-names = "refclk"; 142*fac71e4eSEmmanuel Vadot }; 143*fac71e4eSEmmanuel Vadot }; 144*fac71e4eSEmmanuel Vadot 145*fac71e4eSEmmanuel Vadot - | 1468cc087a1SEmmanuel Vadot #include <dt-bindings/gpio/gpio.h> 1478cc087a1SEmmanuel Vadot 1488cc087a1SEmmanuel Vadot usb-hub { 1498cc087a1SEmmanuel Vadot /* I2C is not connected */ 1508cc087a1SEmmanuel Vadot compatible = "smsc,usb3503"; 1518cc087a1SEmmanuel Vadot initial-mode = <1>; /* initialize in HUB mode */ 1528cc087a1SEmmanuel Vadot disabled-ports = <1>; 1538cc087a1SEmmanuel Vadot intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */ 1548cc087a1SEmmanuel Vadot reset-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>; /* PE16 */ 1558cc087a1SEmmanuel Vadot connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */ 1568cc087a1SEmmanuel Vadot refclk-frequency = <19200000>; 1578cc087a1SEmmanuel Vadot }; 1588cc087a1SEmmanuel Vadot 1598cc087a1SEmmanuel Vadot... 160