Hi Victor, the of_get_named_gpio works fine. Thank you so much! I'll take a look at gpio-poweroff, this should cut my code by half :) Best regards, - dhs 2015-08-21 4:10 GMT-03:00 <victorascroft@xxxxxxxxx>: > On 15-08-21 12:29:49, victorascroft@xxxxxxxxx wrote: >> On 15-08-20 17:53:27, Daniel. wrote: >> > Hi all, >> > >> > I'm trying to migrate a driver from board files to device tree. I've >> > added the gpios to device tree. My device is loaded automatically, >> > this is nice, but I'm facing problems while getting gpio from device >> > tree using of_get_property(). >> > >> > >> > Here is the device tree node: >> > powerfailure { >> > compatible = "powerfailure"; >> > poff_pfail = <&gpio5 12 GPIO_ACTIVE_LOW>; >> > irq_pfail = <&gpio5 17 GPIO_ACTIVE_LOW>; >> > }; >> >> Why reinvent the wheel? May be the below is what you want? >> http://lxr.free-electrons.com/source/Documentation/devicetree/bindings/gpio/gpio-poweroff.txt >> >> I would recommend checking first if this works for you. Don't know >> what kernel you are using though. >> >> Now coming to what you are trying to do. If you have something like below >> >> poff-pfail-gpios = <&gpio5 12 GPIO_ACTIVE_LOW>; >> >> struct gpio_desc *gpiod; >> *gpiod = devm_gpiod_get(&pdev->dev, "poff-pail") >> >> You can then use gpio descriptors in your call gpiod_* calls. Note that >> >> http://lxr.free-electrons.com/source/Documentation/gpio/gpio.txt#L11 >> >> the gpio descriptor based interface is recommended and the legacy gpio >> number based interface is not recommend to use anymore. >> >> If you still want to stick to extracting information using of_* based >> calls I would recommend looking at gpio specific ones. >> >> For example, of_get_named_gpio and such....grep/vgrep for them... >> >> -- Sanchayan. >> >> > >> > >> > Here is my driver: http://pastebin.com/4DsRaXMS >> > >> > A simple description of it. There is a circuit that triggers the >> > irq_pfail at failure of power supply. The irq handler then start a >> > clean shutdown. At the end of shutdown pf_power_off to cut the energy >> > from the device. The logic works fine, but I'm having problems on >> > pf_probe function. I got this dump: >> > http://pastebin.com/paTBWwcE >> > >> > So I think I'm doing something wrong with of_get_property returned >> > value. I'm using the kernel 3.14.28 from freescale (iMX6 quad core >> > cpu). > > Sorry my bad I did not come down to this. Did you check the function > prototype of the functions you are calling? I would recommend checking > that. > >> > >> > What is the right way to get gpio values from device tree? Is that >> > of_get_property() lines right? > > Use the gpio specific of_* ones? > >> > >> > Thanks in advance, >> > Cheers >> > >> > -- dhs >> > >> > >> > -- >> > "Do or do not. There is no try" >> > Yoda Master >> > >> > _______________________________________________ >> > Kernelnewbies mailing list >> > Kernelnewbies@xxxxxxxxxxxxxxxxx >> > http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies -- "Do or do not. There is no try" Yoda Master _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies