On 02/26/2013 04:01 AM, Javier Martinez Canillas wrote: [snip] > I was wondering if the level/edge settings for gpios is working on OMAP. > > I'm adding DT support for an SMSC911x ethernet chip connected to the > GPMC for an OMAP3 SoC based board. > > In the smsc911x driver probe function (smsc911x_drv_probe() in > drivers/net/ethernet/smsc/smsc911x.c), a call to request_irq() with > the flag IRQF_TRIGGER_LOW is needed because of the wiring on my board. > > Reading the gpio-omap.txt documentation it says that #interrupt-cells > should be <2> and that a value of 8 is "active low level-sensitive". > > So I tried this: > > &gpmc { > ethernet@5,0 { > pinctrl-names = "default"; > pinctrl-0 = <&smsc911x_pins>; > compatible = "smsc,lan9221", "smsc,lan9115"; > reg = <5 0 0xff>; /* CS5 */ > interrupt-parent = <&gpio6>; > interrupts = <16 8>; /* gpio line 176 */ > interrupt-names = "smsc911x irq"; > vmmc-supply = <&vddvario>; > vmmc_aux-supply = <&vdd33a>; > reg-io-width = <4>; > > smsc,save-mac-address; > }; > }; Are you requesting the gpio anywhere? If not then this is not going to work as-is. This was discussed fairly recently [1] and the conclusion was that the gpio needs to be requested before we can use as an interrupt. I have not seen your latest smsc code for omap, but when you are requesting the gpmc chip-select you should also request the gpio. > But in the smsc911x probe function: > > irq_res->flags & IRQF_TRIGGER_MASK; > > returns 0 which means that no trigger flags where set. > > I took a look to the GPIOs device node definition on omap{3,4,5}.dtsi > and all look like this: > > e.g from omap3.dtsi: > > gpio6: gpio@49058000 { > compatible = "ti,omap3-gpio"; > ti,hwmods = "gpio6"; > gpio-controller; > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <1>; > }; > > So, even when the documentation says that all the GPIO device nodes in > OMAP2+ should use a #interrupt-cells property value of <2>, they are > only using <1>. Changing that value to 2 makes hangs the kernel and it > does not boot. I will need to take a look at that. Is your code available anywhere so I can test? Cheers Jon [1] http://permalink.gmane.org/gmane.linux.ports.arm.omap/92192 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html