diff mbox

ARM: mvebu: Add gpio button to Mirabox board

Message ID CABx3TkW0P7spbUr5gTRQMz9mqNZeWXQn8z212V1wiOPv135M7w@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ryan Press March 29, 2013, 4:13 a.m. UTC
Hi Ezequiel,

On Wed, Mar 27, 2013 at 8:38 PM, Ezequiel Garcia
<ezequiel.garcia@free-electrons.com> wrote:
> On Wed, Mar 27, 2013 at 05:42:36PM -0700, Ryan Press wrote:
>> Ezequiel Garcia wrote:
>> >
>> >The Globalscale Mirabox board has a little gpio button
>> >placed just above the SD card slot; the board user guide labels
>> >this button as "System reset button".
>> >
>> >This patch adds support for this button in the device tree file.
>> I was not able to get this to work, I think there is
>> some IRQ problem.  I was able to get it to work with
>> "gpio-keys-polled" however.
>>
>
> Could you explain what you did and what was your problem?

Just to be on the same page, I pulled the latest 3-9-rc4, with no
other changes, and then added your patch.  Does this rely on a patch?
No interrupt events are shown in /proc/interrupts.  I have a lot more
things running than your box, maybe there is a conflict.

#cat /proc/interrupts
           CPU0
 16:      12222  armada_370_xp_irq  armada_370_xp_per_cpu_tick
 17:        552  armada_370_xp_irq  serial
 25:          0  armada_370_xp_irq  d0010300.rtc
 27:       6438  armada_370_xp_irq  ehci_hcd:usb1
 28:          0  armada_370_xp_irq  ehci_hcd:usb2
 95:          0  d0018140.gpio  Reset Button
104:          2  armada_370_xp_irq  d0060800.xor
105:          2  armada_370_xp_irq  d0060800.xor
106:          2  armada_370_xp_irq  d0060900.xor
107:          2  armada_370_xp_irq  d0060900.xor
IPI0:          0  CPU wakeup interrupts
IPI1:          0  Timer broadcast interrupts
IPI2:          0  Rescheduling interrupts
IPI3:          0  Function call interrupts
IPI4:          0  Single function call interrupts
IPI5:          0  CPU stop interrupts
Err:          0

Here is my kernel config:
http://pastebin.com/rFQSUAPs

Maybe you can send me your config and I will try it.

Oh and although I guess the bootloader sets it up, i wouldn't trust
it.  There should probably be the pinctrl in the device tree, yes?

Thanks,
Ryan

Comments

Ezequiel Garcia March 29, 2013, 4:50 p.m. UTC | #1
On Thu, Mar 28, 2013 at 09:13:48PM -0700, Ryan Press wrote:
> Hi Ezequiel,
> 
> On Wed, Mar 27, 2013 at 8:38 PM, Ezequiel Garcia
> <ezequiel.garcia@free-electrons.com> wrote:
> > On Wed, Mar 27, 2013 at 05:42:36PM -0700, Ryan Press wrote:
> >> Ezequiel Garcia wrote:
> >> >
> >> >The Globalscale Mirabox board has a little gpio button
> >> >placed just above the SD card slot; the board user guide labels
> >> >this button as "System reset button".
> >> >
> >> >This patch adds support for this button in the device tree file.
> >> I was not able to get this to work, I think there is
> >> some IRQ problem.  I was able to get it to work with
> >> "gpio-keys-polled" however.
> >>
> >
> > Could you explain what you did and what was your problem?
> 
> Just to be on the same page, I pulled the latest 3-9-rc4, with no
> other changes, and then added your patch.  Does this rely on a patch?
> No interrupt events are shown in /proc/interrupts.  I have a lot more
> things running than your box, maybe there is a conflict.
> 

Try disabling SMP in your config.
> 
> Oh and although I guess the bootloader sets it up, i wouldn't trust
> it.  There should probably be the pinctrl in the device tree, yes?
> 

Yes, you're right. I'll take this into a v2.
Ryan Press March 29, 2013, 5:30 p.m. UTC | #2
On Fri, Mar 29, 2013 at 9:50 AM, Ezequiel Garcia
<ezequiel.garcia@free-electrons.com> wrote:
> On Thu, Mar 28, 2013 at 09:13:48PM -0700, Ryan Press wrote:
>> On Wed, Mar 27, 2013 at 8:38 PM, Ezequiel Garcia
>> <ezequiel.garcia@free-electrons.com> wrote:
>> > On Wed, Mar 27, 2013 at 05:42:36PM -0700, Ryan Press wrote:
>> >> Ezequiel Garcia wrote:
>> >> >
>> >> >The Globalscale Mirabox board has a little gpio button
>> >> >placed just above the SD card slot; the board user guide labels
>> >> >this button as "System reset button".
>> >> >
>> >> >This patch adds support for this button in the device tree file.
>> >> I was not able to get this to work, I think there is
>> >> some IRQ problem.  I was able to get it to work with
>> >> "gpio-keys-polled" however.
>> >>
>> >
>> > Could you explain what you did and what was your problem?
>>
>> Just to be on the same page, I pulled the latest 3-9-rc4, with no
>> other changes, and then added your patch.  Does this rely on a patch?
>> No interrupt events are shown in /proc/interrupts.  I have a lot more
>> things running than your box, maybe there is a conflict.
>>
>
> Try disabling SMP in your config.

Yes, that worked, thanks!  I used mvebu_defconfig initially, and this
has CONFIG_SMP.  That's more for the Armada-XP I guess as for the
Armada-370 it's not needed.

So I guess that means that there's something wrong with the GPIO IRQs
with SMP.  Anyway it doesn't matter for the 370.

Thanks,
Ryan
Ezequiel Garcia March 29, 2013, 6:13 p.m. UTC | #3
On Fri, Mar 29, 2013 at 10:30:14AM -0700, Ryan Press wrote:
> On Fri, Mar 29, 2013 at 9:50 AM, Ezequiel Garcia
> <ezequiel.garcia@free-electrons.com> wrote:
> > On Thu, Mar 28, 2013 at 09:13:48PM -0700, Ryan Press wrote:
> >> On Wed, Mar 27, 2013 at 8:38 PM, Ezequiel Garcia
> >> <ezequiel.garcia@free-electrons.com> wrote:
> >> > On Wed, Mar 27, 2013 at 05:42:36PM -0700, Ryan Press wrote:
> >> >> Ezequiel Garcia wrote:
> >> >> >
> >> >> >The Globalscale Mirabox board has a little gpio button
> >> >> >placed just above the SD card slot; the board user guide labels
> >> >> >this button as "System reset button".
> >> >> >
> >> >> >This patch adds support for this button in the device tree file.
> >> >> I was not able to get this to work, I think there is
> >> >> some IRQ problem.  I was able to get it to work with
> >> >> "gpio-keys-polled" however.
> >> >>
> >> >
> >> > Could you explain what you did and what was your problem?
> >>
> >> Just to be on the same page, I pulled the latest 3-9-rc4, with no
> >> other changes, and then added your patch.  Does this rely on a patch?
> >> No interrupt events are shown in /proc/interrupts.  I have a lot more
> >> things running than your box, maybe there is a conflict.
> >>
> >
> > Try disabling SMP in your config.
> 
> Yes, that worked, thanks!  I used mvebu_defconfig initially, and this
> has CONFIG_SMP.  That's more for the Armada-XP I guess as for the
> Armada-370 it's not needed.
> 

Great.

> So I guess that means that there's something wrong with the GPIO IRQs
> with SMP.  Anyway it doesn't matter for the 370.
> 

Indeed, it doesn't matter if you plan to use your kernel only in a A370
SoC based product (A370 is single core). However, I'm afraid this could
be a problem if you plan to use the same kernel on A370 *and* AXP
(multi core) SoCs.

Next week, we'll try to debug this issue (I've added Thomas, Gregory
and Lior in Cc who might have better understanding about this).

Thanks,
diff mbox

Patch

diff --git a/arch/arm/boot/dts/armada-370-mirabox.dts
b/arch/arm/boot/dts/armada-370-mirabox.dts
index dd0c57d..f083f56 100644
--- a/arch/arm/boot/dts/armada-370-mirabox.dts
+++ b/arch/arm/boot/dts/armada-370-mirabox.dts
@@ -33,6 +33,14 @@ 
 			clock-frequency = <600000000>;
 			status = "okay";
 		};
+
+		pinctrl {
+			reset_button_pin: reset-button-pin {
+				marvell,pins = "mpp58";
+				marvell,function = "gpio";
+			};
+		}
+
 		gpio-keys {
 			compatible = "gpio-keys";
 			#address-cells = <1>;