]> git.baikalelectronics.ru Git - kernel.git/commit
ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin
authorMarek Behún <kabel@kernel.org>
Sat, 20 Feb 2021 23:11:44 +0000 (00:11 +0100)
committerGregory CLEMENT <gregory.clement@bootlin.com>
Fri, 2 Apr 2021 20:14:44 +0000 (22:14 +0200)
commit34fb9d6141801a2bd32c134bdb9dd4ef6bcdc036
treef35bdab5f07690ae8c5c10cd8a7504ada8d1c07d
parent7c97ca6fa8cf5074e370d458b547f58614fe5090
ARM: dts: turris-omnia: configure LED[2]/INTn pin as interrupt pin

Use the `marvell,reg-init` DT property to configure the LED[2]/INTn pin
of the Marvell 88E1514 ethernet PHY on Turris Omnia into interrupt mode.

Without this the pin is by default in LED[2] mode, and the Marvell PHY
driver configures LED[2] into "On - Link, Blink - Activity" mode.

This fixes the issue where the pca9538 GPIO/interrupt controller (which
can't mask interrupts in HW) received too many interrupts and after a
time started ignoring the interrupt with error message:
  IRQ 71: nobody cared

There is a work in progress to have the Marvell PHY driver support
parsing PHY LED nodes from OF and registering the LEDs as Linux LED
class devices. Once this is done the PHY driver can also automatically
set the pin into INTn mode if it does not find LED[2] in OF.

Until then, though, we fix this via `marvell,reg-init` DT property.

Signed-off-by: Marek Behún <kabel@kernel.org>
Reported-by: Rui Salvaterra <rsalvaterra@gmail.com>
Fixes: 36b28c350a9a ("ARM: dts: add support for Turris Omnia")
Cc: Uwe Kleine-König <uwe@kleine-koenig.org>
Cc: linux-arm-kernel@lists.infradead.org
Cc: Andrew Lunn <andrew@lunn.ch>
Cc: Gregory CLEMENT <gregory.clement@bootlin.com>
Cc: <stable@vger.kernel.org>
Tested-by: Rui Salvaterra <rsalvaterra@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
arch/arm/boot/dts/armada-385-turris-omnia.dts