mxs: drop 6.1 support
[openwrt/staging/nbd.git] / target / linux / sunxi / patches-6.1 / 003-v6.2-arm64-dts-allwinner-h616-Add-USB-nodes.patch
1 From f40cf244c3feb4e1a442f8029b691add2c65b3ab Mon Sep 17 00:00:00 2001
2 From: Andre Przywara <andre.przywara@arm.com>
3 Date: Mon, 31 Oct 2022 11:13:56 +0000
4 Subject: [PATCH] arm64: dts: allwinner: h616: Add USB nodes
5
6 Add the nodes for the MUSB and the four USB host controllers to the SoC
7 .dtsi, along with the PHY node needed to bind all of them together.
8
9 EHCI/OHCI and MUSB are compatible to previous SoCs, but the PHY requires
10 some quirks (handled in the driver).
11
12 Signed-off-by: Andre Przywara <andre.przywara@arm.com>
13 Reviewed-by: Jernej Skrabec <jernej.skrabec@gmail.com>
14 Link: https://lore.kernel.org/r/20221031111358.3387297-6-andre.przywara@arm.com
15 Signed-off-by: Jernej Skrabec <jernej.skrabec@gmail.com>
16 ---
17 .../arm64/boot/dts/allwinner/sun50i-h616.dtsi | 160 ++++++++++++++++++
18 1 file changed, 160 insertions(+)
19
20 --- a/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
21 +++ b/arch/arm64/boot/dts/allwinner/sun50i-h616.dtsi
22 @@ -504,6 +504,166 @@
23 };
24 };
25
26 + usbotg: usb@5100000 {
27 + compatible = "allwinner,sun50i-h616-musb",
28 + "allwinner,sun8i-h3-musb";
29 + reg = <0x05100000 0x0400>;
30 + clocks = <&ccu CLK_BUS_OTG>;
31 + resets = <&ccu RST_BUS_OTG>;
32 + interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
33 + interrupt-names = "mc";
34 + phys = <&usbphy 0>;
35 + phy-names = "usb";
36 + extcon = <&usbphy 0>;
37 + status = "disabled";
38 + };
39 +
40 + usbphy: phy@5100400 {
41 + compatible = "allwinner,sun50i-h616-usb-phy";
42 + reg = <0x05100400 0x24>,
43 + <0x05101800 0x14>,
44 + <0x05200800 0x14>,
45 + <0x05310800 0x14>,
46 + <0x05311800 0x14>;
47 + reg-names = "phy_ctrl",
48 + "pmu0",
49 + "pmu1",
50 + "pmu2",
51 + "pmu3";
52 + clocks = <&ccu CLK_USB_PHY0>,
53 + <&ccu CLK_USB_PHY1>,
54 + <&ccu CLK_USB_PHY2>,
55 + <&ccu CLK_USB_PHY3>,
56 + <&ccu CLK_BUS_EHCI2>;
57 + clock-names = "usb0_phy",
58 + "usb1_phy",
59 + "usb2_phy",
60 + "usb3_phy",
61 + "pmu2_clk";
62 + resets = <&ccu RST_USB_PHY0>,
63 + <&ccu RST_USB_PHY1>,
64 + <&ccu RST_USB_PHY2>,
65 + <&ccu RST_USB_PHY3>;
66 + reset-names = "usb0_reset",
67 + "usb1_reset",
68 + "usb2_reset",
69 + "usb3_reset";
70 + status = "disabled";
71 + #phy-cells = <1>;
72 + };
73 +
74 + ehci0: usb@5101000 {
75 + compatible = "allwinner,sun50i-h616-ehci",
76 + "generic-ehci";
77 + reg = <0x05101000 0x100>;
78 + interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
79 + clocks = <&ccu CLK_BUS_OHCI0>,
80 + <&ccu CLK_BUS_EHCI0>,
81 + <&ccu CLK_USB_OHCI0>;
82 + resets = <&ccu RST_BUS_OHCI0>,
83 + <&ccu RST_BUS_EHCI0>;
84 + phys = <&usbphy 0>;
85 + phy-names = "usb";
86 + status = "disabled";
87 + };
88 +
89 + ohci0: usb@5101400 {
90 + compatible = "allwinner,sun50i-h616-ohci",
91 + "generic-ohci";
92 + reg = <0x05101400 0x100>;
93 + interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
94 + clocks = <&ccu CLK_BUS_OHCI0>,
95 + <&ccu CLK_USB_OHCI0>;
96 + resets = <&ccu RST_BUS_OHCI0>;
97 + phys = <&usbphy 0>;
98 + phy-names = "usb";
99 + status = "disabled";
100 + };
101 +
102 + ehci1: usb@5200000 {
103 + compatible = "allwinner,sun50i-h616-ehci",
104 + "generic-ehci";
105 + reg = <0x05200000 0x100>;
106 + interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
107 + clocks = <&ccu CLK_BUS_OHCI1>,
108 + <&ccu CLK_BUS_EHCI1>,
109 + <&ccu CLK_USB_OHCI1>;
110 + resets = <&ccu RST_BUS_OHCI1>,
111 + <&ccu RST_BUS_EHCI1>;
112 + phys = <&usbphy 1>;
113 + phy-names = "usb";
114 + status = "disabled";
115 + };
116 +
117 + ohci1: usb@5200400 {
118 + compatible = "allwinner,sun50i-h616-ohci",
119 + "generic-ohci";
120 + reg = <0x05200400 0x100>;
121 + interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
122 + clocks = <&ccu CLK_BUS_OHCI1>,
123 + <&ccu CLK_USB_OHCI1>;
124 + resets = <&ccu RST_BUS_OHCI1>;
125 + phys = <&usbphy 1>;
126 + phy-names = "usb";
127 + status = "disabled";
128 + };
129 +
130 + ehci2: usb@5310000 {
131 + compatible = "allwinner,sun50i-h616-ehci",
132 + "generic-ehci";
133 + reg = <0x05310000 0x100>;
134 + interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
135 + clocks = <&ccu CLK_BUS_OHCI2>,
136 + <&ccu CLK_BUS_EHCI2>,
137 + <&ccu CLK_USB_OHCI2>;
138 + resets = <&ccu RST_BUS_OHCI2>,
139 + <&ccu RST_BUS_EHCI2>;
140 + phys = <&usbphy 2>;
141 + phy-names = "usb";
142 + status = "disabled";
143 + };
144 +
145 + ohci2: usb@5310400 {
146 + compatible = "allwinner,sun50i-h616-ohci",
147 + "generic-ohci";
148 + reg = <0x05310400 0x100>;
149 + interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
150 + clocks = <&ccu CLK_BUS_OHCI2>,
151 + <&ccu CLK_USB_OHCI2>;
152 + resets = <&ccu RST_BUS_OHCI2>;
153 + phys = <&usbphy 2>;
154 + phy-names = "usb";
155 + status = "disabled";
156 + };
157 +
158 + ehci3: usb@5311000 {
159 + compatible = "allwinner,sun50i-h616-ehci",
160 + "generic-ehci";
161 + reg = <0x05311000 0x100>;
162 + interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
163 + clocks = <&ccu CLK_BUS_OHCI3>,
164 + <&ccu CLK_BUS_EHCI3>,
165 + <&ccu CLK_USB_OHCI3>;
166 + resets = <&ccu RST_BUS_OHCI3>,
167 + <&ccu RST_BUS_EHCI3>;
168 + phys = <&usbphy 3>;
169 + phy-names = "usb";
170 + status = "disabled";
171 + };
172 +
173 + ohci3: usb@5311400 {
174 + compatible = "allwinner,sun50i-h616-ohci",
175 + "generic-ohci";
176 + reg = <0x05311400 0x100>;
177 + interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
178 + clocks = <&ccu CLK_BUS_OHCI3>,
179 + <&ccu CLK_USB_OHCI3>;
180 + resets = <&ccu RST_BUS_OHCI3>;
181 + phys = <&usbphy 3>;
182 + phy-names = "usb";
183 + status = "disabled";
184 + };
185 +
186 rtc: rtc@7000000 {
187 compatible = "allwinner,sun50i-h616-rtc";
188 reg = <0x07000000 0x400>;