| .. | .. |
|---|
| 1755 | 1755 | if (rphy->phy_cfg->phy_lowpower) |
|---|
| 1756 | 1756 | ret = rphy->phy_cfg->phy_lowpower(rphy, true); |
|---|
| 1757 | 1757 | |
|---|
| 1758 | + /* Set gpio output low to avoid leakage */ |
|---|
| 1759 | + if (rphy->vup_gpio && !wakeup_enable) |
|---|
| 1760 | + gpiod_set_value(rphy->vup_gpio, 1); |
|---|
| 1761 | + |
|---|
| 1758 | 1762 | return ret; |
|---|
| 1759 | 1763 | } |
|---|
| 1760 | 1764 | |
|---|
| .. | .. |
|---|
| 1770 | 1774 | if (device_may_wakeup(rphy->dev)) |
|---|
| 1771 | 1775 | wakeup_enable = true; |
|---|
| 1772 | 1776 | |
|---|
| 1777 | + /* Set gpio output high to disable pull-up circuit on DM */ |
|---|
| 1778 | + if (rphy->vup_gpio && !wakeup_enable) |
|---|
| 1779 | + gpiod_set_value(rphy->vup_gpio, 0); |
|---|
| 1780 | + |
|---|
| 1773 | 1781 | /* exit low power state */ |
|---|
| 1774 | 1782 | if (rphy->phy_cfg->phy_lowpower) |
|---|
| 1775 | 1783 | ret = rphy->phy_cfg->phy_lowpower(rphy, false); |
|---|