[OpenWrt-Devel] How to config GPIO and read the GPIO value in OpenWRT

Afkar Rafique afkar.ec at gmail.com
Thu Oct 15 21:47:55 EDT 2015


Thanks for the reply.

I have change the script as below:

#!/bin/sh /etc/rc.common

START=19
start() {
        echo in > /sys/class/gpio/gpio16/direction 2> /dev/null
        echo 16 > /sys/class/gpio/export 2> /dev/null
        if [ "$(cat /sys/class/gpio/gpio16/value)" == "1" ] ; then
            echo "255" >
/sys/devices/platform/leds-gpio/leds/db120:green:status/brightness
        else
            echo "0" >
/sys/devices/platform/leds-gpio/leds/db120:green:status/brightness
        fi
}

I need to monitor the LED on/off all the time during runtime.

During start of this script its working, but not getting how to make it
work run time.

Could you please explain how i can do it in gpio-button.

On Fri, Oct 16, 2015 at 3:38 AM, Hartmut Knaack <knaack.h at gmx.de> wrote:

> Afkar Rafique schrieb am 15.10.2015 um 04:07:
> > Thanks for the reply.
> >
> > i have Create /etc/init.d/buttons and written below script:
> >
> > #!/bin/sh /etc/rc.common
> > START=19
> > start() {
> >         /bin/umount /etc/config 2>/dev/null
> >         echo out > /sys/class/gpio/gpio16/direction 2> /dev/null
> >         echo 16 > /sys/class/gpio/export 2> /dev/null
> >         if [ "$(cat /sys/class/gpio/gpio16/value)" == "1" ] ; then
> >             echo "255" >
> /sys/devices/platform/leds-gpio/leds/db120:green:status/brightness
> >         else
> >             echo "0" >
> /sys/devices/platform/leds-gpio/leds/db120:green:status/brightness
> >         fi
> > }
> >
> > and restart .
> >
> > chmod +x /etc/init.d/buttons
> > /etc/init.d/buttons enable
> > /etc/init.d/buttons start
> >
> > Now i am able to read the GPIO 16 value 1/0 based on GPIO state, but as
> above script i have written to ON/OFF the Status LED based on GPIO value,
> Status LED is not getting OFF even if GPIO16 value is "0".
> >
> > Can anyone please help on this
> >
>
> Quite a mess you've got there. No idea why you need to umount /etc/config,
> but anyway: First thing in GPIO setup is exporting, then you set its
> direction.
> If you intend to read the GPIO status, then better use "in" as direction.
> Now, do you just want to do an action (LED on/off) just during start of
> this
> script, or all the time during runtime, when the GPIO status changes? In
> the
> latter case, you should look into gpio-button.
>
> >
> >
> > On Thu, Oct 15, 2015 at 12:37 AM, Martin Blumenstingl <
> martin.blumenstingl at googlemail.com <mailto:
> martin.blumenstingl at googlemail.com>> wrote:
> >
> >     On Wed, Oct 14, 2015 at 12:19 PM, Afkar Rafique <afkar.ec at gmail.com
> <mailto:afkar.ec at gmail.com>> wrote:
> >     > Could anyone please explain how i can configure and read GPIO
> value.
> >     There's an article on the wiki which explains how to set a GPIO to a
> >     specific value: [0]
> >     If you want to read a GPIO value then you use direction "in" and then
> >     simply cat to read the "value".
> >
> >     The only thing that you might have to do is doing a bit of maths to
> >     get the correct GPIO number.
> >     When you are trying to read GPIO #16 then it's GPIO #16 of a specific
> >     chip -> /sys/class/gpio/ should contain a file gpiochipNNN.
> >     What you do is take NNN (let's assume it's 456) and add your GPIO
> >     number to it: 456 + 16 = 472 -> this is the number needef to "export"
> >     the GPIO.
> >
> >
> >     [0] http://wiki.openwrt.org/doc/hardware/port.gpio#software
> >
> >
> >
> >
> > _______________________________________________
> > openwrt-devel mailing list
> > openwrt-devel at lists.openwrt.org
> > https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/openwrt-devel/attachments/20151016/afa95c8f/attachment.htm>
-------------- next part --------------
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list