Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

usb: dwc2: support dwc2 IP for Amlogic A1 SoC family

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>

authored by

Dmitry Rokosov and committed by
Greg Kroah-Hartman
be877fbf d34f9baf

+21
+21
drivers/usb/dwc2/params.c
··· 161 161 p->hird_threshold_en = false; 162 162 } 163 163 164 + static void dwc2_set_amlogic_a1_params(struct dwc2_hsotg *hsotg) 165 + { 166 + struct dwc2_core_params *p = &hsotg->params; 167 + 168 + p->otg_caps.hnp_support = false; 169 + p->otg_caps.srp_support = false; 170 + p->speed = DWC2_SPEED_PARAM_HIGH; 171 + p->host_rx_fifo_size = 192; 172 + p->host_nperio_tx_fifo_size = 128; 173 + p->host_perio_tx_fifo_size = 128; 174 + p->phy_type = DWC2_PHY_TYPE_PARAM_UTMI; 175 + p->phy_utmi_width = 8; 176 + p->ahbcfg = GAHBCFG_HBSTLEN_INCR8 << GAHBCFG_HBSTLEN_SHIFT; 177 + p->lpm = false; 178 + p->lpm_clock_gating = false; 179 + p->besl = false; 180 + p->hird_threshold_en = false; 181 + } 182 + 164 183 static void dwc2_set_amcc_params(struct dwc2_hsotg *hsotg) 165 184 { 166 185 struct dwc2_core_params *p = &hsotg->params; ··· 277 258 .data = dwc2_set_amlogic_params }, 278 259 { .compatible = "amlogic,meson-g12a-usb", 279 260 .data = dwc2_set_amlogic_g12a_params }, 261 + { .compatible = "amlogic,meson-a1-usb", 262 + .data = dwc2_set_amlogic_a1_params }, 280 263 { .compatible = "amcc,dwc-otg", .data = dwc2_set_amcc_params }, 281 264 { .compatible = "apm,apm82181-dwc-otg", .data = dwc2_set_amcc_params }, 282 265 { .compatible = "st,stm32f4x9-fsotg",