<Query> Reg: Adding a gpio initialization sequence in dts is valid or not

Leela Krishna Amudala leelakrishna.a at gmail.com
Wed Aug 8 19:52:32 EST 2012


Hello All,

I came across that to set power to an LCD, few panels require a pull
up/pull down operation on single GPIO line
and few panels need some gpio line setting sequence with some delay in between.

For my development board, user manual says that I have to do a
sequence of gpio line settings with some delay in between
to set power to LCD and currently I'm doing it as

pull_up(gpio_line_5)
some_delay(x)
pull_down(gpio_line_5)
some_delay(x)
pull_up(gpio_line_5)

I want to read this GPIO line from device tree and parse it and do the
above sequence in the driver.
I'm thinking to follow the below approach to get this done.

Putting the sequence in dts file like below for an LCD which requires
gpio sequence
               lcd-reset-gpio = <&gpx1 5 1 3 0>,    (3 - for pull up)
                                      <&gpx1 5 1 1 0>,    (1 - for pull down)
                                      <&gpx1 5 1 3 0>;    (3 - for pull up)
               delay = x;

and only one gpio entry in the case of LCD which doesn't require gpio
sequence setting
               lcd-reset-gpio = <&gpx1 5 1 3 0>,    (3 - pull up)

The 4 arguments in the above handle denotes

<[phandle of the gpio controller node]
      [pin number within the gpio controller]
      [mux function]
      [pull up/down]
      [drive strength]>

My board requires one gpio line to pull up->pull down->pull up to set
power and similarly
other boards may require two gpio lines to follow the sequence in that
case number of entries
in dts file will increase.

I want to know whether the above approach is acceptable in device-tree or not.

Best Wishes,
Leela Krishna Amudala.


More information about the devicetree-discuss mailing list