GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / usb / smsc,usb3503.yaml
1 # SPDX-License-Identifier: GPL-2.0
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/usb/smsc,usb3503.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: SMSC USB3503 High-Speed Hub Controller
8
9 maintainers:
10   - Dongjin Kim <tobetter@gmail.com>
11
12 properties:
13   compatible:
14     enum:
15       - smsc,usb3503
16       - smsc,usb3503a
17
18   reg:
19     maxItems: 1
20
21   connect-gpios:
22     maxItems: 1
23     description: >
24       GPIO for connect
25
26   intn-gpios:
27     maxItems: 1
28     description: >
29       GPIO for interrupt
30
31   reset-gpios:
32     maxItems: 1
33     description: >
34       GPIO for reset
35
36   disabled-ports:
37     $ref: /schemas/types.yaml#/definitions/uint32-array
38     minItems: 1
39     maxItems: 3
40     items:
41       minimum: 1
42       maximum: 3
43     description: >
44       Specifies the ports unused using their port number. Do not describe this
45       property if all ports have to be enabled.
46
47   initial-mode:
48     $ref: /schemas/types.yaml#/definitions/uint32
49     enum: [1, 2]
50     description: >
51       Specifies initial mode. 1 for Hub mode, 2 for standby mode.
52
53   clocks:
54     maxItems: 1
55     description: >
56       Clock used for driving REFCLK signal. If not provided the driver assumes
57       that clock signal is always available, its rate is specified by REF_SEL
58       pins and a value from the primary reference clock frequencies table is
59       used.
60
61   clock-names:
62     const: refclk
63
64   refclk-frequency:
65     $ref: /schemas/types.yaml#/definitions/uint32
66     description: >
67       Frequency of the REFCLK signal as defined by REF_SEL pins. If not
68       provided, driver will not set rate of the REFCLK signal and assume that a
69       value from the primary reference clock frequencies table is used.
70
71 required:
72   - compatible
73
74 additionalProperties: false
75
76 examples:
77   - |
78       i2c {
79           #address-cells = <1>;
80           #size-cells = <0>;
81
82           usb-hub@8 {
83               compatible = "smsc,usb3503";
84               reg = <0x08>;
85               connect-gpios = <&gpx3 0 1>;
86               disabled-ports = <2 3>;
87               intn-gpios = <&gpx3 4 1>;
88               reset-gpios = <&gpx3 5 1>;
89               initial-mode = <1>;
90               clocks = <&clks 80>;
91               clock-names = "refclk";
92           };
93       };
94
95   - |
96       #include <dt-bindings/gpio/gpio.h>
97
98       usb-hub {
99           /* I2C is not connected */
100           compatible = "smsc,usb3503";
101           initial-mode = <1>; /* initialize in HUB mode */
102           disabled-ports = <1>;
103           intn-gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
104           reset-gpios = <&pio 4 16 GPIO_ACTIVE_LOW>; /* PE16 */
105           connect-gpios = <&pio 4 17 GPIO_ACTIVE_HIGH>; /* PE17 */
106           refclk-frequency = <19200000>;
107       };
108
109 ...