net: dsa: lan9303: ensure chip reset and wait for READY status
authorAnatolij Gustschin <agust@denx.de>
Fri, 4 Oct 2024 11:36:54 +0000 (13:36 +0200)
committerJakub Kicinski <kuba@kernel.org>
Mon, 7 Oct 2024 23:38:02 +0000 (16:38 -0700)
commit5c14e51d2d7df49fe0d4e64a12c58d2542f452ff
tree6a8eb6e9291fb96a13252f3ad0432b8b29e86b1a
parent631083143315d1b192bd7d915b967b37819e88ea
net: dsa: lan9303: ensure chip reset and wait for READY status

Accessing device registers seems to be not reliable, the chip
revision is sometimes detected wrongly (0 instead of expected 1).

Ensure that the chip reset is performed via reset GPIO and then
wait for 'Device Ready' status in HW_CFG register before doing
any register initializations.

Cc: stable@vger.kernel.org
Fixes: a1292595e006 ("net: dsa: add new DSA switch driver for the SMSC-LAN9303")
Signed-off-by: Anatolij Gustschin <agust@denx.de>
[alex: reworked using read_poll_timeout()]
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Link: https://patch.msgid.link/20241004113655.3436296-1-alexander.sverdlin@siemens.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/lan9303-core.c