- 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
 
        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
 
                                "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");
                        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;
 
  * @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
        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;
 
 
        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) {
 
        enum usb_device_speed maximum_speed;
        enum usb_dr_mode dr_mode;
        bool tx_fifo_resize;
+       bool usb3_lpm_capable;
 
        unsigned is_utmi_l1_suspend:1;
        u8 hird_threshold;