@@ -3,7 +3,10 @@
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/en7523-clk.h>
+#include <dt-bindings/phy/phy.h>
+#include <dt-bindings/phy/airoha,an7581-usb-phy.h>
#include <dt-bindings/reset/airoha,en7581-reset.h>
+#include <dt-bindings/soc/airoha,scu-ssr.h>
/ {
interrupt-parent = <&gic>;
@@ -195,6 +198,52 @@ rng@1faa1000 {
interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
};
+ usb0: usb@1fab0000 {
+ compatible = "mediatek,mtk-xhci";
+ reg = <0x0 0x1fab0000 0x0 0x3e00>,
+ <0x0 0x1fab3e00 0x0 0x100>;
+ reg-names = "mac", "ippc";
+ interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
+
+ phys = <&usb0_phy PHY_TYPE_USB2>, <&usb0_phy PHY_TYPE_USB3>;
+
+ status = "disabled";
+ };
+
+ usb0_phy: phy@1fac0000 {
+ compatible = "airoha,an7581-usb-phy";
+ reg = <0x0 0x1fac0000 0x0 0x10000>;
+
+ airoha,scu = <&scuclk>;
+ airoha,usb2-monitor-clk-sel = <AIROHA_USB2_MONCLK_SEL1>;
+ airoha,serdes-port = <AIROHA_SCU_SERDES_USB1>;
+
+ #phy-cells = <1>;
+ };
+
+ usb1: usb@1fad0000 {
+ compatible = "mediatek,mtk-xhci";
+ reg = <0x0 0x1fad0000 0x0 0x3e00>,
+ <0x0 0x1fad3e00 0x0 0x100>;
+ reg-names = "mac", "ippc";
+ interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
+
+ phys = <&usb1_phy PHY_TYPE_USB2>, <&usb1_phy PHY_TYPE_USB3>;
+
+ status = "disabled";
+ };
+
+ usb1_phy: phy@1fae0000 {
+ compatible = "airoha,an7581-usb-phy";
+ reg = <0x0 0x1fae0000 0x0 0x10000>;
+
+ airoha,scu = <&scuclk>;
+ airoha,usb2-monitor-clk-sel = <AIROHA_USB2_MONCLK_SEL2>;
+ airoha,serdes-port = <AIROHA_SCU_SERDES_USB2>;
+
+ #phy-cells = <1>;
+ };
+
system-controller@1fbf0200 {
compatible = "airoha,en7581-gpio-sysctl", "syscon",
"simple-mfd";
Add USB nodes required for USB support of Airoha EN7581 with the correct define of Serdes Port and Monitor Clock for USB 2.0 calibration. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> --- arch/arm64/boot/dts/airoha/en7581.dtsi | 49 ++++++++++++++++++++++++++ 1 file changed, 49 insertions(+)