Configure standalone GPIO in device tree?

Rob Herring robherring2 at gmail.com
Tue Jun 12 01:46:41 EST 2012


On 06/11/2012 10:37 AM, Subodh Nijsure wrote:
> On 06/11/2012 07:21 AM, Rob Herring wrote:
>> On 06/11/2012 08:56 AM, Subodh Nijsure wrote:
>>> Hello,
>>>
>>> I am working with a hardware that has couple of GPIOs that are not tied
>>> to any specific device one to indicate board status, other to indicate
>>> presence of this hardware to some other 'independent' hardware.
>>>
>>> I have been going through some of the device tree files and I haven't
>>> come across way to represent a GPIO independent of a specific device, is
>>> it possible to do so using DT? How would I specify such a GPIO?
>>>
>>> I am working on MX28 (MXS for linux) based platform but if there are
>>> some other platforms already doing that would appreciate pointer to that
>>> dt file.
>> How do you program that gpio line? It has to be controlled from
>> somewhere.
> In non-dt version, .init_machine code used to configure GPIO using
> gpio_request_one() interface and set the values.
> 
> Currently as a hack on my board, I am doing the following, but that
> status led has nothing do with the ethernet driver.
> 
>                 mac0: ethernet at 800f0000 {
>                         phy-mode = "rmii";
>                         pinctrl-names = "default";
>                         pinctrl-0 = <&mac0_pins_a>;
>                         status-led = <&gpio3 5 0>;
>                         mac-address = [ 00 11 22 33 44 56 ];
>                 };
> 
>                 int status_led;
>                 struct device_node *np = pdev->dev.of_node;
> 
>                 status_led = of_get_named_gpio(np, "status-led", 0);
>                 gpio_request_one(status_led, GPIOF_OUT_INIT_LOW,
> "status-led");
> 
> So in DT world I would like to  lookup  LED named status-led, only
> version I know of of_get_named_gpio() requires device_node pointer,so I
> guess I am looking for way to lookup gpio in .init_machine function,
> without having a pointer to a device_node, is that possible?

Look at gpio-led. There are some examples in PowerPC dts files and
documentation in Documentation/devicetree/bindings/gpio/led.txt.

Rob




More information about the devicetree-discuss mailing list