Commit eac68e8f authored by Robert Baldyga's avatar Robert Baldyga Committed by Felipe Balbi
Browse files

usb: dwc3: make LPM configurable in DT



This patch removes "Enable USB3 LPM Capability" option from Kconfig
and adds snps,usb3_lpm_capable devicetree property instead of it.

USB3 LPM (Link Power Management) capability is hardware property, and
it's platform dependent, so if our hardware supports this feature, we
want rather to configure it in devicetree than having it as Kconfig option.

Signed-off-by: default avatarRobert Baldyga <r.baldyga@samsung.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
parent ad78c918
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ Optional properties:
 - phys: from the *Generic PHY* bindings
 - phy-names: from the *Generic PHY* bindings
 - tx-fifo-resize: determines if the FIFO *has* to be reallocated.
 - snps,usb3_lpm_capable: determines if platform is USB3 LPM capable
 - snps,disable_scramble_quirk: true when SW should disable data scrambling.
	Only really useful for FPGA builds.
 - snps,has-lpm-erratum: true when DWC3 was configured with LPM Erratum enabled
+0 −7
Original line number Diff line number Diff line
@@ -104,11 +104,4 @@ config USB_DWC3_DEBUG
	help
	  Say Y here to enable debugging messages on DWC3 Driver.

config DWC3_HOST_USB3_LPM_ENABLE
	bool "Enable USB3 LPM Capability"
	depends on USB_DWC3_HOST=y || USB_DWC3_DUAL_ROLE=y
	default n
	help
	  Select this when you want to enable USB3 LPM with dwc3 xhci host.

endif
+3 −0
Original line number Diff line number Diff line
@@ -804,6 +804,8 @@ static int dwc3_probe(struct platform_device *pdev)
				"snps,is-utmi-l1-suspend");
		of_property_read_u8(node, "snps,hird-threshold",
				&hird_threshold);
		dwc->usb3_lpm_capable = of_property_read_bool(node,
				"snps,usb3_lpm_capable");

		dwc->needs_fifo_resize = of_property_read_bool(node,
				"tx-fifo-resize");
@@ -844,6 +846,7 @@ static int dwc3_probe(struct platform_device *pdev)
			hird_threshold = pdata->hird_threshold;

		dwc->needs_fifo_resize = pdata->tx_fifo_resize;
		dwc->usb3_lpm_capable = pdata->usb3_lpm_capable;
		dwc->dr_mode = pdata->dr_mode;

		dwc->disable_scramble_quirk = pdata->disable_scramble_quirk;
+2 −0
Original line number Diff line number Diff line
@@ -689,6 +689,7 @@ struct dwc3_scratchpad_array {
 * @setup_packet_pending: true when there's a Setup Packet in FIFO. Workaround
 * @start_config_issued: true when StartConfig command has been issued
 * @three_stage_setup: set if we perform a three phase setup
 * @usb3_lpm_capable: set if hadrware supports Link Power Management
 * @disable_scramble_quirk: set if we enable the disable scramble quirk
 * @u2exit_lfps_quirk: set if we enable u2exit lfps quirk
 * @u2ss_inp3_quirk: set if we enable P3 OK for U2/SS Inactive quirk
@@ -812,6 +813,7 @@ struct dwc3 {
	unsigned		setup_packet_pending:1;
	unsigned		start_config_issued:1;
	unsigned		three_stage_setup:1;
	unsigned		usb3_lpm_capable:1;

	unsigned		disable_scramble_quirk:1;
	unsigned		u2exit_lfps_quirk:1;
+1 −3
Original line number Diff line number Diff line
@@ -49,9 +49,7 @@ int dwc3_host_init(struct dwc3 *dwc)

	memset(&pdata, 0, sizeof(pdata));

#ifdef CONFIG_DWC3_HOST_USB3_LPM_ENABLE
	pdata.usb3_lpm_capable = 1;
#endif
	pdata.usb3_lpm_capable = dwc->usb3_lpm_capable;

	ret = platform_device_add_data(xhci, &pdata, sizeof(pdata));
	if (ret) {
Loading