Skip to content
Snippets Groups Projects
Commit 4526ee77 authored by Gianfranco Mariotti's avatar Gianfranco Mariotti
Browse files

[DRIVER] dp83867: fix LED configuration set-up support

Avoid erroneous discard of valid set-up configurations.
parent 23ee9c0f
No related branches found
No related tags found
1 merge request!163[DRIVER][D18] dp83867: fix LED configuration set-up
...@@ -521,13 +521,13 @@ static int dp83867_of_init(struct phy_device *phydev) ...@@ -521,13 +521,13 @@ static int dp83867_of_init(struct phy_device *phydev)
} }
if(of_property_read_u32(of_node, "ti,leds-conf", &dp83867->leds_conf)) if(of_property_read_u32(of_node, "ti,leds-conf", &dp83867->leds_conf))
dp83867->leds_conf = 0; dp83867->leds_conf = -1;
if(of_property_read_u32(of_node, "ti,leds-polarity", &dp83867->leds_polarity)) if(of_property_read_u32(of_node, "ti,leds-polarity", &dp83867->leds_polarity))
dp83867->leds_polarity = 0; dp83867->leds_polarity = -1;
if(of_property_read_u32(of_node, "ti,gpio0-conf", &dp83867->gpio0_conf)) if(of_property_read_u32(of_node, "ti,gpio0-conf", &dp83867->gpio0_conf))
dp83867->gpio0_conf = 0; dp83867->gpio0_conf = -1;
if (of_property_read_bool(of_node, "ti,max-output-impedance")) if (of_property_read_bool(of_node, "ti,max-output-impedance"))
dp83867->io_impedance = DP83867_IO_MUX_CFG_IO_IMPEDANCE_MAX; dp83867->io_impedance = DP83867_IO_MUX_CFG_IO_IMPEDANCE_MAX;
...@@ -697,24 +697,23 @@ static int dp83867_config_init(struct phy_device *phydev) ...@@ -697,24 +697,23 @@ static int dp83867_config_init(struct phy_device *phydev)
if (ret) if (ret)
return ret; return ret;
/* LEDs */ /* GPIOs */
if(dp83867->gpio0_conf) { if(dp83867->gpio0_conf != -1) {
ret = phy_write_mmd(phydev, DP83867_DEVADDR, DP83867_GPIO_MUX_CTRL, dp83867->gpio0_conf); ret = phy_write_mmd(phydev, DP83867_DEVADDR, DP83867_GPIO_MUX_CTRL, dp83867->gpio0_conf);
if (ret) if (ret)
return ret; return ret;
} }
if(dp83867->leds_conf) { /* LEDs */
ret = phy_write(phydev, DP83867_LEDCR1,dp83867->leds_conf); if(dp83867->leds_conf != -1) {
if (ret) ret = phy_write(phydev, DP83867_LEDCR1, dp83867->leds_conf);
return ret; if (ret)
return ret;
} }
if(dp83867->leds_polarity) { if(dp83867->leds_polarity != -1) {
val = phy_read(phydev, DP83867_LEDCR2); ret = phy_write(phydev, DP83867_LEDCR2, dp83867->leds_polarity);
val = val & ~(dp83867->leds_polarity); if (ret)
ret = phy_write(phydev, DP83867_LEDCR2,val); return ret;
if (ret)
return ret;
} }
/* If rgmii mode with no internal delay is selected, we do NOT use /* If rgmii mode with no internal delay is selected, we do NOT use
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment