1*7d0873ebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*7d0873ebSEmmanuel Vadot%YAML 1.2 3*7d0873ebSEmmanuel Vadot--- 4*7d0873ebSEmmanuel Vadot$id: http://devicetree.org/schemas/usb/chipidea,usb2-common.yaml# 5*7d0873ebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*7d0873ebSEmmanuel Vadot 7*7d0873ebSEmmanuel Vadottitle: USB2 ChipIdea USB controller Common Properties 8*7d0873ebSEmmanuel Vadot 9*7d0873ebSEmmanuel Vadotmaintainers: 10*7d0873ebSEmmanuel Vadot - Xu Yang <xu.yang_2@nxp.com> 11*7d0873ebSEmmanuel Vadot 12*7d0873ebSEmmanuel Vadotproperties: 13*7d0873ebSEmmanuel Vadot reg: 14*7d0873ebSEmmanuel Vadot minItems: 1 15*7d0873ebSEmmanuel Vadot maxItems: 2 16*7d0873ebSEmmanuel Vadot 17*7d0873ebSEmmanuel Vadot interrupts: 18*7d0873ebSEmmanuel Vadot minItems: 1 19*7d0873ebSEmmanuel Vadot maxItems: 2 20*7d0873ebSEmmanuel Vadot 21*7d0873ebSEmmanuel Vadot clocks: 22*7d0873ebSEmmanuel Vadot minItems: 1 23*7d0873ebSEmmanuel Vadot maxItems: 3 24*7d0873ebSEmmanuel Vadot 25*7d0873ebSEmmanuel Vadot clock-names: 26*7d0873ebSEmmanuel Vadot minItems: 1 27*7d0873ebSEmmanuel Vadot maxItems: 3 28*7d0873ebSEmmanuel Vadot 29*7d0873ebSEmmanuel Vadot dr_mode: true 30*7d0873ebSEmmanuel Vadot 31*7d0873ebSEmmanuel Vadot power-domains: 32*7d0873ebSEmmanuel Vadot maxItems: 1 33*7d0873ebSEmmanuel Vadot 34*7d0873ebSEmmanuel Vadot resets: 35*7d0873ebSEmmanuel Vadot maxItems: 1 36*7d0873ebSEmmanuel Vadot 37*7d0873ebSEmmanuel Vadot reset-names: 38*7d0873ebSEmmanuel Vadot maxItems: 1 39*7d0873ebSEmmanuel Vadot 40*7d0873ebSEmmanuel Vadot "#reset-cells": 41*7d0873ebSEmmanuel Vadot const: 1 42*7d0873ebSEmmanuel Vadot 43*7d0873ebSEmmanuel Vadot phy_type: true 44*7d0873ebSEmmanuel Vadot 45*7d0873ebSEmmanuel Vadot itc-setting: 46*7d0873ebSEmmanuel Vadot description: 47*7d0873ebSEmmanuel Vadot interrupt threshold control register control, the setting should be 48*7d0873ebSEmmanuel Vadot aligned with ITC bits at register USBCMD. 49*7d0873ebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 50*7d0873ebSEmmanuel Vadot 51*7d0873ebSEmmanuel Vadot ahb-burst-config: 52*7d0873ebSEmmanuel Vadot description: 53*7d0873ebSEmmanuel Vadot it is vendor dependent, the required value should be aligned with 54*7d0873ebSEmmanuel Vadot AHBBRST at SBUSCFG, the range is from 0x0 to 0x7. This property is 55*7d0873ebSEmmanuel Vadot used to change AHB burst configuration, check the chipidea spec for 56*7d0873ebSEmmanuel Vadot meaning of each value. If this property is not existed, it will use 57*7d0873ebSEmmanuel Vadot the reset value. 58*7d0873ebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 59*7d0873ebSEmmanuel Vadot minimum: 0x0 60*7d0873ebSEmmanuel Vadot maximum: 0x7 61*7d0873ebSEmmanuel Vadot 62*7d0873ebSEmmanuel Vadot tx-burst-size-dword: 63*7d0873ebSEmmanuel Vadot description: 64*7d0873ebSEmmanuel Vadot it is vendor dependent, the tx burst size in dword (4 bytes), This 65*7d0873ebSEmmanuel Vadot register represents the maximum length of a the burst in 32-bit 66*7d0873ebSEmmanuel Vadot words while moving data from system memory to the USB bus, the value 67*7d0873ebSEmmanuel Vadot of this property will only take effect if property "ahb-burst-config" 68*7d0873ebSEmmanuel Vadot is set to 0, if this property is missing the reset default of the 69*7d0873ebSEmmanuel Vadot hardware implementation will be used. 70*7d0873ebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 71*7d0873ebSEmmanuel Vadot minimum: 0x0 72*7d0873ebSEmmanuel Vadot maximum: 0x20 73*7d0873ebSEmmanuel Vadot 74*7d0873ebSEmmanuel Vadot rx-burst-size-dword: 75*7d0873ebSEmmanuel Vadot description: 76*7d0873ebSEmmanuel Vadot it is vendor dependent, the rx burst size in dword (4 bytes), This 77*7d0873ebSEmmanuel Vadot register represents the maximum length of a the burst in 32-bit words 78*7d0873ebSEmmanuel Vadot while moving data from the USB bus to system memory, the value of 79*7d0873ebSEmmanuel Vadot this property will only take effect if property "ahb-burst-config" 80*7d0873ebSEmmanuel Vadot is set to 0, if this property is missing the reset default of the 81*7d0873ebSEmmanuel Vadot hardware implementation will be used. 82*7d0873ebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 83*7d0873ebSEmmanuel Vadot minimum: 0x0 84*7d0873ebSEmmanuel Vadot maximum: 0x20 85*7d0873ebSEmmanuel Vadot 86*7d0873ebSEmmanuel Vadot extcon: 87*7d0873ebSEmmanuel Vadot description: 88*7d0873ebSEmmanuel Vadot Phandles to external connector devices. First phandle should point 89*7d0873ebSEmmanuel Vadot to external connector, which provide "USB" cable events, the second 90*7d0873ebSEmmanuel Vadot should point to external connector device, which provide "USB-HOST" 91*7d0873ebSEmmanuel Vadot cable events. If one of the external connector devices is not 92*7d0873ebSEmmanuel Vadot required, empty <0> phandle should be specified. 93*7d0873ebSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/phandle-array 94*7d0873ebSEmmanuel Vadot minItems: 1 95*7d0873ebSEmmanuel Vadot items: 96*7d0873ebSEmmanuel Vadot - description: vbus extcon 97*7d0873ebSEmmanuel Vadot - description: id extcon 98*7d0873ebSEmmanuel Vadot 99*7d0873ebSEmmanuel Vadot phy-clkgate-delay-us: 100*7d0873ebSEmmanuel Vadot description: 101*7d0873ebSEmmanuel Vadot The delay time (us) between putting the PHY into low power mode and 102*7d0873ebSEmmanuel Vadot gating the PHY clock. 103*7d0873ebSEmmanuel Vadot 104*7d0873ebSEmmanuel Vadot non-zero-ttctrl-ttha: 105*7d0873ebSEmmanuel Vadot description: 106*7d0873ebSEmmanuel Vadot After setting this property, the value of register ttctrl.ttha 107*7d0873ebSEmmanuel Vadot will be 0x7f; if not, the value will be 0x0, this is the default 108*7d0873ebSEmmanuel Vadot value. It needs to be very carefully for setting this property, it 109*7d0873ebSEmmanuel Vadot is recommended that consult with your IC engineer before setting 110*7d0873ebSEmmanuel Vadot this value. On the most of chipidea platforms, the "usage_tt" flag 111*7d0873ebSEmmanuel Vadot at RTL is 0, so this property only affects siTD. 112*7d0873ebSEmmanuel Vadot 113*7d0873ebSEmmanuel Vadot If this property is not set, the max packet size is 1023 bytes, and 114*7d0873ebSEmmanuel Vadot if the total of packet size for previous transactions are more than 115*7d0873ebSEmmanuel Vadot 256 bytes, it can't accept any transactions within this frame. The 116*7d0873ebSEmmanuel Vadot use case is single transaction, but higher frame rate. 117*7d0873ebSEmmanuel Vadot 118*7d0873ebSEmmanuel Vadot If this property is set, the max packet size is 188 bytes, it can 119*7d0873ebSEmmanuel Vadot handle more transactions than above case, it can accept transactions 120*7d0873ebSEmmanuel Vadot until it considers the left room size within frame is less than 188 121*7d0873ebSEmmanuel Vadot bytes, software needs to make sure it does not send more than 90% 122*7d0873ebSEmmanuel Vadot maximum_periodic_data_per_frame. The use case is multiple 123*7d0873ebSEmmanuel Vadot transactions, but less frame rate. 124*7d0873ebSEmmanuel Vadot type: boolean 125*7d0873ebSEmmanuel Vadot 126*7d0873ebSEmmanuel Vadot mux-controls: 127*7d0873ebSEmmanuel Vadot description: 128*7d0873ebSEmmanuel Vadot The mux control for toggling host/device output of this controller. 129*7d0873ebSEmmanuel Vadot It's expected that a mux state of 0 indicates device mode and a mux 130*7d0873ebSEmmanuel Vadot state of 1 indicates host mode. 131*7d0873ebSEmmanuel Vadot maxItems: 1 132*7d0873ebSEmmanuel Vadot 133*7d0873ebSEmmanuel Vadot mux-control-names: 134*7d0873ebSEmmanuel Vadot const: usb_switch 135*7d0873ebSEmmanuel Vadot 136*7d0873ebSEmmanuel Vadot pinctrl-names: 137*7d0873ebSEmmanuel Vadot description: 138*7d0873ebSEmmanuel Vadot Names for optional pin modes in "default", "host", "device". 139*7d0873ebSEmmanuel Vadot In case of HSIC-mode, "idle" and "active" pin modes are mandatory. 140*7d0873ebSEmmanuel Vadot In this case, the "idle" state needs to pull down the data and 141*7d0873ebSEmmanuel Vadot strobe pin and the "active" state needs to pull up the strobe pin. 142*7d0873ebSEmmanuel Vadot oneOf: 143*7d0873ebSEmmanuel Vadot - items: 144*7d0873ebSEmmanuel Vadot - const: idle 145*7d0873ebSEmmanuel Vadot - const: active 146*7d0873ebSEmmanuel Vadot - items: 147*7d0873ebSEmmanuel Vadot - const: default 148*7d0873ebSEmmanuel Vadot - const: host 149*7d0873ebSEmmanuel Vadot - const: device 150*7d0873ebSEmmanuel Vadot - items: 151*7d0873ebSEmmanuel Vadot - const: default 152*7d0873ebSEmmanuel Vadot - enum: 153*7d0873ebSEmmanuel Vadot - host 154*7d0873ebSEmmanuel Vadot - device 155*7d0873ebSEmmanuel Vadot - items: 156*7d0873ebSEmmanuel Vadot - const: default 157*7d0873ebSEmmanuel Vadot 158*7d0873ebSEmmanuel Vadot pinctrl-0: 159*7d0873ebSEmmanuel Vadot maxItems: 1 160*7d0873ebSEmmanuel Vadot 161*7d0873ebSEmmanuel Vadot pinctrl-1: 162*7d0873ebSEmmanuel Vadot maxItems: 1 163*7d0873ebSEmmanuel Vadot 164*7d0873ebSEmmanuel Vadot phys: 165*7d0873ebSEmmanuel Vadot maxItems: 1 166*7d0873ebSEmmanuel Vadot 167*7d0873ebSEmmanuel Vadot phy-names: 168*7d0873ebSEmmanuel Vadot const: usb-phy 169*7d0873ebSEmmanuel Vadot 170*7d0873ebSEmmanuel Vadot vbus-supply: 171*7d0873ebSEmmanuel Vadot description: reference to the VBUS regulator. 172*7d0873ebSEmmanuel Vadot 173*7d0873ebSEmmanuel Vadot usb-phy: 174*7d0873ebSEmmanuel Vadot description: phandle for the PHY device. Use "phys" instead. 175*7d0873ebSEmmanuel Vadot maxItems: 1 176*7d0873ebSEmmanuel Vadot deprecated: true 177*7d0873ebSEmmanuel Vadot 178*7d0873ebSEmmanuel Vadot port: 179*7d0873ebSEmmanuel Vadot description: 180*7d0873ebSEmmanuel Vadot Any connector to the data bus of this controller should be modelled 181*7d0873ebSEmmanuel Vadot using the OF graph bindings specified, if the "usb-role-switch" 182*7d0873ebSEmmanuel Vadot property is used. 183*7d0873ebSEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 184*7d0873ebSEmmanuel Vadot 185*7d0873ebSEmmanuel Vadot reset-gpios: 186*7d0873ebSEmmanuel Vadot maxItems: 1 187*7d0873ebSEmmanuel Vadot 188*7d0873ebSEmmanuel Vadotdependencies: 189*7d0873ebSEmmanuel Vadot port: [ usb-role-switch ] 190*7d0873ebSEmmanuel Vadot mux-controls: [ mux-control-names ] 191*7d0873ebSEmmanuel Vadot 192*7d0873ebSEmmanuel Vadotrequired: 193*7d0873ebSEmmanuel Vadot - reg 194*7d0873ebSEmmanuel Vadot - interrupts 195*7d0873ebSEmmanuel Vadot 196*7d0873ebSEmmanuel VadotallOf: 197*7d0873ebSEmmanuel Vadot - $ref: usb-hcd.yaml# 198*7d0873ebSEmmanuel Vadot - $ref: usb-drd.yaml# 199*7d0873ebSEmmanuel Vadot 200*7d0873ebSEmmanuel VadotadditionalProperties: true 201