Jump to content

Recommended Posts

Posted

I'm working with an Orange Pi Zero board powered by OpenWRT with U-Boot (2018.11) and kernel (4.14.93).

 

I'm trying to implement a recovery mode by inspecting a state of some button during an u-boot phase. This button is connected to a PL4 GPIO line. When Linux gets loaded it's possible to read a state of this GPIO line, but during an u-boot phase result is the same ( 0 ) regardless of a real state of the button (`gpio input pl4`).

As I got from H2+ datasheet, L port is a dedicated port (bank) with all GPIO lines disabled by default, when I try to change value of a configuration register for this port nothing changes - I read it and see that it's the same.

I used both direct memory access (writel and pointer dereferencing) and indirect access - sunxi_gpio_set_cfgpin(). Also I see, indirectly,  that the GPIO line is disabled by inspection result of a `gpio st` command.

 

. How can I turn on any GPIO line on an L port?

. Do I have to change something to *dts / board.c file(s) to make `gpio input pl4` work properly?

 

Thanks in advance for any help.

Posted

Indeed by default R_PIO-based GPIOs aren't accessible in u-boot.  I made an Armbian patch last year to enable R_PIO access in the PRCM so that I could read the board revision GPIO PL3 on the NEO2 v1.1 (H5-based).  You can take a look at the change here:  https://github.com/armbian/build/blob/master/patch/u-boot/u-boot-sunxi/enable-r_pio-gpio-access-h3-h5.patch.  I would imagine that you should be able to add the "prcm_apb0_enable(PRCM_APB0_GATE_PIO)" call to your OpenWRT u-boot; after you do this the GPIO commands/function access for PL4 should work (hopefully!).  What's awesome about all of this is how it is basically not documented anywhere :)

 

Posted
1 hour ago, 5kft said:

I made an Armbian patch last year to enable R_PIO access in the PRCM

Maybe that could becomes use as default for Armbian U-Boot ...

Would you mind doing a PR for that ?

1 hour ago, 5kft said:

What's awesome about all of this is how it is basically not documented anywhere :)

Right ! U-Boot in general is not well documented ...

Posted
2 minutes ago, 5kft said:

Indeed, I actually committed it to Armbian last year, so it's already in the tree

Ah ! Ok ! That is good to know ... Thanks !

Posted
12 hours ago, 5kft said:

Indeed by default R_PIO-based GPIOs aren't accessible in u-boot.  I made an Armbian patch last year to enable R_PIO access in the PRCM so that I could read the board revision GPIO PL3 on the NEO2 v1.1 (H5-based).  You can take a look at the change here:  https://github.com/armbian/build/blob/master/patch/u-boot/u-boot-sunxi/enable-r_pio-gpio-access-h3-h5.patch.  I would imagine that you should be able to add the "prcm_apb0_enable(PRCM_APB0_GATE_PIO)" call to your OpenWRT u-boot; after you do this the GPIO commands/function access for PL4 should work (hopefully!).  What's awesome about all of this is how it is basically not documented anywhere :)

 

Thanks a lot, it works!

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines