1*cb7aa33aSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0 2*cb7aa33aSEmmanuel Vadot%YAML 1.2 3*cb7aa33aSEmmanuel Vadot--- 4*cb7aa33aSEmmanuel Vadot$id: http://devicetree.org/schemas/usb/rockchip,rk3399-dwc3.yaml# 5*cb7aa33aSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*cb7aa33aSEmmanuel Vadot 7*cb7aa33aSEmmanuel Vadottitle: Rockchip RK3399 SuperSpeed DWC3 USB SoC controller 8*cb7aa33aSEmmanuel Vadot 9*cb7aa33aSEmmanuel Vadotmaintainers: 10*cb7aa33aSEmmanuel Vadot - Heiko Stuebner <heiko@sntech.de> 11*cb7aa33aSEmmanuel Vadot 12*cb7aa33aSEmmanuel Vadotproperties: 13*cb7aa33aSEmmanuel Vadot compatible: 14*cb7aa33aSEmmanuel Vadot const: rockchip,rk3399-dwc3 15*cb7aa33aSEmmanuel Vadot 16*cb7aa33aSEmmanuel Vadot '#address-cells': 17*cb7aa33aSEmmanuel Vadot const: 2 18*cb7aa33aSEmmanuel Vadot 19*cb7aa33aSEmmanuel Vadot '#size-cells': 20*cb7aa33aSEmmanuel Vadot const: 2 21*cb7aa33aSEmmanuel Vadot 22*cb7aa33aSEmmanuel Vadot ranges: true 23*cb7aa33aSEmmanuel Vadot 24*cb7aa33aSEmmanuel Vadot clocks: 25*cb7aa33aSEmmanuel Vadot items: 26*cb7aa33aSEmmanuel Vadot - description: 27*cb7aa33aSEmmanuel Vadot Controller reference clock, must to be 24 MHz 28*cb7aa33aSEmmanuel Vadot - description: 29*cb7aa33aSEmmanuel Vadot Controller suspend clock, must to be 24 MHz or 32 KHz 30*cb7aa33aSEmmanuel Vadot - description: 31*cb7aa33aSEmmanuel Vadot Master/Core clock, must to be >= 62.5 MHz for SS 32*cb7aa33aSEmmanuel Vadot operation and >= 30MHz for HS operation 33*cb7aa33aSEmmanuel Vadot - description: 34*cb7aa33aSEmmanuel Vadot USB3 aclk peri 35*cb7aa33aSEmmanuel Vadot - description: 36*cb7aa33aSEmmanuel Vadot USB3 aclk 37*cb7aa33aSEmmanuel Vadot - description: 38*cb7aa33aSEmmanuel Vadot Controller grf clock 39*cb7aa33aSEmmanuel Vadot 40*cb7aa33aSEmmanuel Vadot clock-names: 41*cb7aa33aSEmmanuel Vadot items: 42*cb7aa33aSEmmanuel Vadot - const: ref_clk 43*cb7aa33aSEmmanuel Vadot - const: suspend_clk 44*cb7aa33aSEmmanuel Vadot - const: bus_clk 45*cb7aa33aSEmmanuel Vadot - const: aclk_usb3_rksoc_axi_perf 46*cb7aa33aSEmmanuel Vadot - const: aclk_usb3 47*cb7aa33aSEmmanuel Vadot - const: grf_clk 48*cb7aa33aSEmmanuel Vadot 49*cb7aa33aSEmmanuel Vadot resets: 50*cb7aa33aSEmmanuel Vadot maxItems: 1 51*cb7aa33aSEmmanuel Vadot 52*cb7aa33aSEmmanuel Vadot reset-names: 53*cb7aa33aSEmmanuel Vadot const: usb3-otg 54*cb7aa33aSEmmanuel Vadot 55*cb7aa33aSEmmanuel VadotpatternProperties: 56*cb7aa33aSEmmanuel Vadot '^usb@': 57*cb7aa33aSEmmanuel Vadot $ref: snps,dwc3.yaml# 58*cb7aa33aSEmmanuel Vadot 59*cb7aa33aSEmmanuel VadotadditionalProperties: false 60*cb7aa33aSEmmanuel Vadot 61*cb7aa33aSEmmanuel Vadotrequired: 62*cb7aa33aSEmmanuel Vadot - compatible 63*cb7aa33aSEmmanuel Vadot - '#address-cells' 64*cb7aa33aSEmmanuel Vadot - '#size-cells' 65*cb7aa33aSEmmanuel Vadot - ranges 66*cb7aa33aSEmmanuel Vadot - clocks 67*cb7aa33aSEmmanuel Vadot - clock-names 68*cb7aa33aSEmmanuel Vadot - resets 69*cb7aa33aSEmmanuel Vadot - reset-names 70*cb7aa33aSEmmanuel Vadot 71*cb7aa33aSEmmanuel Vadotexamples: 72*cb7aa33aSEmmanuel Vadot - | 73*cb7aa33aSEmmanuel Vadot #include <dt-bindings/clock/rk3399-cru.h> 74*cb7aa33aSEmmanuel Vadot #include <dt-bindings/power/rk3399-power.h> 75*cb7aa33aSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 76*cb7aa33aSEmmanuel Vadot 77*cb7aa33aSEmmanuel Vadot bus { 78*cb7aa33aSEmmanuel Vadot #address-cells = <2>; 79*cb7aa33aSEmmanuel Vadot #size-cells = <2>; 80*cb7aa33aSEmmanuel Vadot 81*cb7aa33aSEmmanuel Vadot usb { 82*cb7aa33aSEmmanuel Vadot compatible = "rockchip,rk3399-dwc3"; 83*cb7aa33aSEmmanuel Vadot #address-cells = <2>; 84*cb7aa33aSEmmanuel Vadot #size-cells = <2>; 85*cb7aa33aSEmmanuel Vadot ranges; 86*cb7aa33aSEmmanuel Vadot clocks = <&cru SCLK_USB3OTG0_REF>, <&cru SCLK_USB3OTG0_SUSPEND>, 87*cb7aa33aSEmmanuel Vadot <&cru ACLK_USB3OTG0>, <&cru ACLK_USB3_RKSOC_AXI_PERF>, 88*cb7aa33aSEmmanuel Vadot <&cru ACLK_USB3>, <&cru ACLK_USB3_GRF>; 89*cb7aa33aSEmmanuel Vadot clock-names = "ref_clk", "suspend_clk", 90*cb7aa33aSEmmanuel Vadot "bus_clk", "aclk_usb3_rksoc_axi_perf", 91*cb7aa33aSEmmanuel Vadot "aclk_usb3", "grf_clk"; 92*cb7aa33aSEmmanuel Vadot resets = <&cru SRST_A_USB3_OTG0>; 93*cb7aa33aSEmmanuel Vadot reset-names = "usb3-otg"; 94*cb7aa33aSEmmanuel Vadot 95*cb7aa33aSEmmanuel Vadot usb@fe800000 { 96*cb7aa33aSEmmanuel Vadot compatible = "snps,dwc3"; 97*cb7aa33aSEmmanuel Vadot reg = <0x0 0xfe800000 0x0 0x100000>; 98*cb7aa33aSEmmanuel Vadot interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH 0>; 99*cb7aa33aSEmmanuel Vadot clocks = <&cru SCLK_USB3OTG0_REF>, <&cru ACLK_USB3OTG0>, 100*cb7aa33aSEmmanuel Vadot <&cru SCLK_USB3OTG0_SUSPEND>; 101*cb7aa33aSEmmanuel Vadot clock-names = "ref", "bus_early", "suspend"; 102*cb7aa33aSEmmanuel Vadot dr_mode = "otg"; 103*cb7aa33aSEmmanuel Vadot phys = <&u2phy0_otg>, <&tcphy0_usb3>; 104*cb7aa33aSEmmanuel Vadot phy-names = "usb2-phy", "usb3-phy"; 105*cb7aa33aSEmmanuel Vadot phy_type = "utmi_wide"; 106*cb7aa33aSEmmanuel Vadot snps,dis_enblslpm_quirk; 107*cb7aa33aSEmmanuel Vadot snps,dis-u2-freeclk-exists-quirk; 108*cb7aa33aSEmmanuel Vadot snps,dis_u2_susphy_quirk; 109*cb7aa33aSEmmanuel Vadot snps,dis-del-phy-power-chg-quirk; 110*cb7aa33aSEmmanuel Vadot snps,dis-tx-ipgap-linecheck-quirk; 111*cb7aa33aSEmmanuel Vadot power-domains = <&power RK3399_PD_USB3>; 112*cb7aa33aSEmmanuel Vadot }; 113*cb7aa33aSEmmanuel Vadot }; 114*cb7aa33aSEmmanuel Vadot }; 115*cb7aa33aSEmmanuel Vadot... 116