diff options
Diffstat (limited to 'drivers/usb/dwc2/params.c')
-rw-r--r-- | drivers/usb/dwc2/params.c | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/drivers/usb/dwc2/params.c b/drivers/usb/dwc2/params.c index 24ff5f21cb25..6900eea57526 100644 --- a/drivers/usb/dwc2/params.c +++ b/drivers/usb/dwc2/params.c | |||
@@ -121,6 +121,16 @@ static void dwc2_set_amlogic_params(struct dwc2_hsotg *hsotg) | |||
121 | p->power_down = DWC2_POWER_DOWN_PARAM_NONE; | 121 | p->power_down = DWC2_POWER_DOWN_PARAM_NONE; |
122 | } | 122 | } |
123 | 123 | ||
124 | static void dwc2_set_amlogic_g12a_params(struct dwc2_hsotg *hsotg) | ||
125 | { | ||
126 | struct dwc2_core_params *p = &hsotg->params; | ||
127 | |||
128 | p->lpm = false; | ||
129 | p->lpm_clock_gating = false; | ||
130 | p->besl = false; | ||
131 | p->hird_threshold_en = false; | ||
132 | } | ||
133 | |||
124 | static void dwc2_set_amcc_params(struct dwc2_hsotg *hsotg) | 134 | static void dwc2_set_amcc_params(struct dwc2_hsotg *hsotg) |
125 | { | 135 | { |
126 | struct dwc2_core_params *p = &hsotg->params; | 136 | struct dwc2_core_params *p = &hsotg->params; |
@@ -167,6 +177,8 @@ const struct of_device_id dwc2_of_match_table[] = { | |||
167 | .data = dwc2_set_amlogic_params }, | 177 | .data = dwc2_set_amlogic_params }, |
168 | { .compatible = "amlogic,meson-gxbb-usb", | 178 | { .compatible = "amlogic,meson-gxbb-usb", |
169 | .data = dwc2_set_amlogic_params }, | 179 | .data = dwc2_set_amlogic_params }, |
180 | { .compatible = "amlogic,meson-g12a-usb", | ||
181 | .data = dwc2_set_amlogic_g12a_params }, | ||
170 | { .compatible = "amcc,dwc-otg", .data = dwc2_set_amcc_params }, | 182 | { .compatible = "amcc,dwc-otg", .data = dwc2_set_amcc_params }, |
171 | { .compatible = "st,stm32f4x9-fsotg", | 183 | { .compatible = "st,stm32f4x9-fsotg", |
172 | .data = dwc2_set_stm32f4x9_fsotg_params }, | 184 | .data = dwc2_set_stm32f4x9_fsotg_params }, |
@@ -273,6 +285,23 @@ static void dwc2_set_param_power_down(struct dwc2_hsotg *hsotg) | |||
273 | hsotg->params.power_down = val; | 285 | hsotg->params.power_down = val; |
274 | } | 286 | } |
275 | 287 | ||
288 | static void dwc2_set_param_lpm(struct dwc2_hsotg *hsotg) | ||
289 | { | ||
290 | struct dwc2_core_params *p = &hsotg->params; | ||
291 | |||
292 | p->lpm = hsotg->hw_params.lpm_mode; | ||
293 | if (p->lpm) { | ||
294 | p->lpm_clock_gating = true; | ||
295 | p->besl = true; | ||
296 | p->hird_threshold_en = true; | ||
297 | p->hird_threshold = 4; | ||
298 | } else { | ||
299 | p->lpm_clock_gating = false; | ||
300 | p->besl = false; | ||
301 | p->hird_threshold_en = false; | ||
302 | } | ||
303 | } | ||
304 | |||
276 | /** | 305 | /** |
277 | * dwc2_set_default_params() - Set all core parameters to their | 306 | * dwc2_set_default_params() - Set all core parameters to their |
278 | * auto-detected default values. | 307 | * auto-detected default values. |
@@ -291,6 +320,7 @@ static void dwc2_set_default_params(struct dwc2_hsotg *hsotg) | |||
291 | dwc2_set_param_speed(hsotg); | 320 | dwc2_set_param_speed(hsotg); |
292 | dwc2_set_param_phy_utmi_width(hsotg); | 321 | dwc2_set_param_phy_utmi_width(hsotg); |
293 | dwc2_set_param_power_down(hsotg); | 322 | dwc2_set_param_power_down(hsotg); |
323 | dwc2_set_param_lpm(hsotg); | ||
294 | p->phy_ulpi_ddr = false; | 324 | p->phy_ulpi_ddr = false; |
295 | p->phy_ulpi_ext_vbus = false; | 325 | p->phy_ulpi_ext_vbus = false; |
296 | 326 | ||
@@ -303,11 +333,6 @@ static void dwc2_set_default_params(struct dwc2_hsotg *hsotg) | |||
303 | p->reload_ctl = (hw->snpsid >= DWC2_CORE_REV_2_92a); | 333 | p->reload_ctl = (hw->snpsid >= DWC2_CORE_REV_2_92a); |
304 | p->uframe_sched = true; | 334 | p->uframe_sched = true; |
305 | p->external_id_pin_ctl = false; | 335 | p->external_id_pin_ctl = false; |
306 | p->lpm = true; | ||
307 | p->lpm_clock_gating = true; | ||
308 | p->besl = true; | ||
309 | p->hird_threshold_en = true; | ||
310 | p->hird_threshold = 4; | ||
311 | p->ipg_isoc_en = false; | 336 | p->ipg_isoc_en = false; |
312 | p->service_interval = false; | 337 | p->service_interval = false; |
313 | p->max_packet_count = hw->max_packet_count; | 338 | p->max_packet_count = hw->max_packet_count; |