From: Lad Prabhakar Add support for an optional reset control to the RZN1 A5PSW driver. Obtain the reset line using devm_reset_control_get_optional_exclusive_deasserted() during probe to ensure that the Ethernet switch (ETHSW) block is properly released from reset before initialization. This change prepares the driver for use on Renesas RZ/T2H and RZ/N2H SoCs, where the ETHSW IP block is connected to a dedicated reset line that must be controlled by software. Signed-off-by: Lad Prabhakar --- drivers/net/dsa/rzn1_a5psw.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/dsa/rzn1_a5psw.c b/drivers/net/dsa/rzn1_a5psw.c index 1635255f58e4..7b84585a5415 100644 --- a/drivers/net/dsa/rzn1_a5psw.c +++ b/drivers/net/dsa/rzn1_a5psw.c @@ -13,6 +13,7 @@ #include #include #include +#include #include #include "rzn1_a5psw.h" @@ -1205,6 +1206,7 @@ static int a5psw_pcs_get(struct a5psw *a5psw) static int a5psw_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; + struct reset_control *reset; struct device_node *mdio; struct dsa_switch *ds; struct a5psw *a5psw; @@ -1241,6 +1243,12 @@ static int a5psw_probe(struct platform_device *pdev) goto free_pcs; } + reset = devm_reset_control_get_optional_exclusive_deasserted(dev, NULL); + if (IS_ERR(reset)) { + ret = PTR_ERR(reset); + goto free_pcs; + } + mdio = of_get_available_child_by_name(dev->of_node, "mdio"); if (mdio) { ret = a5psw_probe_mdio(a5psw, mdio); -- 2.52.0