mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-07 18:40:10 +00:00
drivers: usb: dwc3: add FS/LS bus instance parkmode disable bit
There are three parkmode disable bits, one for each bus instance type. Add FS/LS and parse the quirk out of DT. Also update the slightly mangled quirk descriptions. Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
This commit is contained in:
committed by
Dom Cobley
parent
feb5effb8b
commit
37e7ecd7f3
@@ -1488,6 +1488,9 @@ static int dwc3_core_init(struct dwc3 *dwc)
|
|||||||
if (dwc->parkmode_disable_hs_quirk)
|
if (dwc->parkmode_disable_hs_quirk)
|
||||||
reg |= DWC3_GUCTL1_PARKMODE_DISABLE_HS;
|
reg |= DWC3_GUCTL1_PARKMODE_DISABLE_HS;
|
||||||
|
|
||||||
|
if (dwc->parkmode_disable_fsls_quirk)
|
||||||
|
reg |= DWC3_GUCTL1_PARKMODE_DISABLE_FSLS;
|
||||||
|
|
||||||
if (DWC3_VER_IS_WITHIN(DWC3, 290A, ANY)) {
|
if (DWC3_VER_IS_WITHIN(DWC3, 290A, ANY)) {
|
||||||
if (dwc->maximum_speed == USB_SPEED_FULL ||
|
if (dwc->maximum_speed == USB_SPEED_FULL ||
|
||||||
dwc->maximum_speed == USB_SPEED_HIGH)
|
dwc->maximum_speed == USB_SPEED_HIGH)
|
||||||
@@ -1867,6 +1870,8 @@ static void dwc3_get_properties(struct dwc3 *dwc)
|
|||||||
"snps,parkmode-disable-ss-quirk");
|
"snps,parkmode-disable-ss-quirk");
|
||||||
dwc->parkmode_disable_hs_quirk = device_property_read_bool(dev,
|
dwc->parkmode_disable_hs_quirk = device_property_read_bool(dev,
|
||||||
"snps,parkmode-disable-hs-quirk");
|
"snps,parkmode-disable-hs-quirk");
|
||||||
|
dwc->parkmode_disable_fsls_quirk = device_property_read_bool(dev,
|
||||||
|
"snps,parkmode-disable-fsls-quirk");
|
||||||
dwc->gfladj_refclk_lpm_sel = device_property_read_bool(dev,
|
dwc->gfladj_refclk_lpm_sel = device_property_read_bool(dev,
|
||||||
"snps,gfladj-refclk-lpm-sel-quirk");
|
"snps,gfladj-refclk-lpm-sel-quirk");
|
||||||
|
|
||||||
|
|||||||
@@ -284,6 +284,7 @@
|
|||||||
#define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW BIT(24)
|
#define DWC3_GUCTL1_DEV_L1_EXIT_BY_HW BIT(24)
|
||||||
#define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17)
|
#define DWC3_GUCTL1_PARKMODE_DISABLE_SS BIT(17)
|
||||||
#define DWC3_GUCTL1_PARKMODE_DISABLE_HS BIT(16)
|
#define DWC3_GUCTL1_PARKMODE_DISABLE_HS BIT(16)
|
||||||
|
#define DWC3_GUCTL1_PARKMODE_DISABLE_FSLS BIT(15)
|
||||||
#define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST BIT(10)
|
#define DWC3_GUCTL1_RESUME_OPMODE_HS_HOST BIT(10)
|
||||||
|
|
||||||
/* Global Status Register */
|
/* Global Status Register */
|
||||||
@@ -1151,10 +1152,12 @@ struct dwc3_glue_ops {
|
|||||||
* generation after resume from suspend.
|
* generation after resume from suspend.
|
||||||
* @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
|
* @ulpi_ext_vbus_drv: Set to confiure the upli chip to drives CPEN pin
|
||||||
* VBUS with an external supply.
|
* VBUS with an external supply.
|
||||||
* @parkmode_disable_ss_quirk: set if we need to disable all SuperSpeed
|
* @parkmode_disable_ss_quirk: If set, disable park mode feature for all
|
||||||
* instances in park mode.
|
* Superspeed instances.
|
||||||
* @parkmode_disable_hs_quirk: set if we need to disable all HishSpeed
|
* @parkmode_disable_hs_quirk: If set, disable park mode feature for all
|
||||||
* instances in park mode.
|
* Highspeed instances.
|
||||||
|
* @parkmode_disable_fsls_quirk: If set, disable park mode feature for all
|
||||||
|
* Full/Lowspeed instances.
|
||||||
* @gfladj_refclk_lpm_sel: set if we need to enable SOF/ITP counter
|
* @gfladj_refclk_lpm_sel: set if we need to enable SOF/ITP counter
|
||||||
* running based on ref_clk
|
* running based on ref_clk
|
||||||
* @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
|
* @tx_de_emphasis_quirk: set if we enable Tx de-emphasis quirk
|
||||||
@@ -1397,6 +1400,7 @@ struct dwc3 {
|
|||||||
unsigned ulpi_ext_vbus_drv:1;
|
unsigned ulpi_ext_vbus_drv:1;
|
||||||
unsigned parkmode_disable_ss_quirk:1;
|
unsigned parkmode_disable_ss_quirk:1;
|
||||||
unsigned parkmode_disable_hs_quirk:1;
|
unsigned parkmode_disable_hs_quirk:1;
|
||||||
|
unsigned parkmode_disable_fsls_quirk:1;
|
||||||
unsigned gfladj_refclk_lpm_sel:1;
|
unsigned gfladj_refclk_lpm_sel:1;
|
||||||
|
|
||||||
unsigned tx_de_emphasis_quirk:1;
|
unsigned tx_de_emphasis_quirk:1;
|
||||||
|
|||||||
Reference in New Issue
Block a user