Thread (1 message) 1 message, 1 author, 2019-11-09

Re: [PATCH] ARM: dts: ls1021a-tsn: Use interrupts for the SGMII PHYs

From: Andrew Lunn <andrew@lunn.ch>
Date: 2019-11-09 17:21:52
Also in: linux-arm-kernel, linux-devicetree, lkml

On Sat, Nov 09, 2019 at 05:16:48PM +0200, Vladimir Oltean wrote:
On Saturday, 9 November 2019, Andrew Lunn [off-list ref] wrote:
quoted
On Sat, Nov 09, 2019 at 12:56:42PM +0200, Vladimir Oltean wrote:
quoted
On the LS1021A-TSN board, the 2 Atheros AR8031 PHYs for eth0 and eth1
have interrupt lines connected to the shared IRQ2_B LS1021A pin.

The interrupts are active low, but the GICv2 controller does not support
active-low and falling-edge interrupts, so the only mode it can be
configured in is rising-edge.
Hi Vladimir

So how does this work? The rising edge would occur after the interrupt
handler has completed? What triggers the interrupt handler?

        Andrew
Hi Andrew,

I hope I am not terribly confused about this. I thought I am telling the
interrupt controller to raise an IRQ as a result of the low-to-high transition
of the electrical signal. Experimentation sure seems to agree with me. So the
IRQ is generated immediately _after_ the PHY has left the line in open drain
and it got pulled up to Vdd.
Hi Vladimir

                       t1                    t2

     ------------------\                     /----------------
                        \-------------------/

The interrupt output is active low. So it is high by default. At time
t1 something happens, say the link is established. The interrupt
becomes active, we have a failing edge. We want the interrupt
controller to fire. Lets say it does. The interrupt handler runs, and
clears the interrupt cause. This is at time t2. We then get a rising
edge and the PHY releases the interrupt, and the level returns to
high.

So how does this work if you have the interrupt controller triggering
on a rising edge? The edge won't rise until the interrupt handler
finishes its work.

	 Andrew

   
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help