usb: dwc2: support dwc2 IP for Amlogic A1 SoC family
authorDmitry Rokosov <ddrokosov@sberdevices.ru>
Thu, 11 May 2023 21:04:53 +0000 (00:04 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 13 May 2023 10:03:24 +0000 (19:03 +0900)
The Amlogic A1 uses dwc2 Synopsys IP as its USB peripheral (gadget)
endpoint, with different DWC2 parameters when compared to previous
Amlogic SoCs.

Signed-off-by: Dmitry Rokosov <ddrokosov@sberdevices.ru>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
Acked-by: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com>
Link: https://lore.kernel.org/r/20230511210455.6634-2-ddrokosov@sberdevices.ru
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/dwc2/params.c

index 21d16533bd2f4f4720db2b82092ee04c5ea22372..4c7c3dd15f9bec95158b8f4f10743207be010993 100644 (file)
@@ -161,6 +161,25 @@ static void dwc2_set_amlogic_g12a_params(struct dwc2_hsotg *hsotg)
        p->hird_threshold_en = false;
 }
 
+static void dwc2_set_amlogic_a1_params(struct dwc2_hsotg *hsotg)
+{
+       struct dwc2_core_params *p = &hsotg->params;
+
+       p->otg_caps.hnp_support = false;
+       p->otg_caps.srp_support = false;
+       p->speed = DWC2_SPEED_PARAM_HIGH;
+       p->host_rx_fifo_size = 192;
+       p->host_nperio_tx_fifo_size = 128;
+       p->host_perio_tx_fifo_size = 128;
+       p->phy_type = DWC2_PHY_TYPE_PARAM_UTMI;
+       p->phy_utmi_width = 8;
+       p->ahbcfg = GAHBCFG_HBSTLEN_INCR8 << GAHBCFG_HBSTLEN_SHIFT;
+       p->lpm = false;
+       p->lpm_clock_gating = false;
+       p->besl = false;
+       p->hird_threshold_en = false;
+}
+
 static void dwc2_set_amcc_params(struct dwc2_hsotg *hsotg)
 {
        struct dwc2_core_params *p = &hsotg->params;
@@ -258,6 +277,8 @@ const struct of_device_id dwc2_of_match_table[] = {
          .data = dwc2_set_amlogic_params },
        { .compatible = "amlogic,meson-g12a-usb",
          .data = dwc2_set_amlogic_g12a_params },
+       { .compatible = "amlogic,meson-a1-usb",
+         .data = dwc2_set_amlogic_a1_params },
        { .compatible = "amcc,dwc-otg", .data = dwc2_set_amcc_params },
        { .compatible = "apm,apm82181-dwc-otg", .data = dwc2_set_amcc_params },
        { .compatible = "st,stm32f4x9-fsotg",