I am also having problems setting an outpit pin HIGH, even though 
everything else is working.

Here is an extract of my DT overlay:
...

    fragment@1{
        target = <&pruss>;
        __overlay__{
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0       = <&pruicss_pins>;
 
            pins_1{
                pin-names     = "PRU:pin_11", "PRU:pin_12", 
"PRU:pin_13";        
                gpios         = <&gpio2 13 0
                                &gpio1 23 0
                                &gpio3 4 0>;
            }; 

You will notice I have pin-names instead of gpio-name. It all appear 
correctly when I am printing the /sys/class/gpio. However, nothing changes 
when I try adding *init-high;* 

Please let me know if you have found a solution.

On Thursday, October 10, 2013 2:55:02 PM UTC-4, smith.wi...@gmail.com wrote:
>
>
> I have created a device tree (DT) overlay file based on the examples in 
> /lib/firmware for a GPIO pin to be used to control a relay that powers a 
> peripheral.  As long as the GPIO is output/high the relay is closed and the 
> peripheral has power,   So consequentially, I need the GPIO pin to have a 
> default state of "high" as soon as possible after BBB is powered up.
>
> Everything seems to work (after disabling HDMI!), but I don't seem to be 
> able to get it to set the pin state to high by default.  I'm loading the DT 
> overlay via the uEnv command line, but it seems that until I manually go 
> and export the GPIO pin and set the direction to "high" in /sys/class/gpio, 
> the initial state of the pin stays low until explicitly set high.
>
> I handle the pinmux as follows:
>
> fragment@0 {
> target = <&am33xx_pinmux>;
> __overlay__ {
> my_gpio_pins: pinmux_my_gpio_pins {
> pinctrl-single,pins = <
> /* the gpio pin(s) */
> 0x0B4 0x0F /* P8 42 GPIO2_11: lcd_data5.gpio2_11 | MODE7 | OUTPUT */
> >;
> };
> };
> };
>
> And add it as an OCP as follows:
>
> fragment@2 {
> target = <&ocp>;
> __overlay__ {
>
> my_gpio {
> compatible = "gpio-of-helper";
> status = "okay";
> pinctrl-names = "default";
> pinctrl-0 = <&my_gpio_pins>;
>
> /* declare your gpios */
> my_relay {
> gpio-name = "my_relay";
> gpio = <&gpio3 11 0x00>; /* gpio3 is gpio2 */
> output;
> *init-high;*
> };
> };
> };
> };
>
> Shouldn't the "init-high" cause the pin to go high as soon as the DT 
> overlay is loaded?  If not, how do I accomplish this?  I realize I can 
> write an rc script to export the gpio and set direction=high, but we're 
> probably talking 10 seconds after power up before that happens.
>
> I have also tried using default-state="on" in the my_relay{} section which 
> doesn't do anything either.
>
> Finally, a question -- the gpio-name of "my_relay", what is this for?  I 
> kind of assumed it would be an alias in the /sys/class/gpio tree to gpio75, 
> but I don't find any references to "my_relay" anywhere in the /sys/class 
> tree (or even in dmesg output for that matter).
>
> Thanks!
>
>
> -W
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to