I recently bought the VIM3 board because I’d like to develop an Android 9 app where control 6 GPIO outputs for blink some leds. I’ve been searching info through the forum, documentation, etc, and (if I’m not wrong) I’ve seen that VIM3 comes with only 2 GPIO outputs enabled by default on Android. Also I’ve read here (Unexportable GPIO pins on VIM3L) and here (VIM3L GPIO capability) that it’s possible to expand this number of outputs but it seems that it’s only for linux.
Can somebody confirm me if it’s that possible for Android? In that case, could you please explain me or at least guide me on how to do this for investigate on depth?
Since yesterday I’d been investigating and searching information around this community and I found some interesting post that shed some light on the matter.
About this post by @Beir8 (How to access GPIO on Android pie?) I clarified that there is a way to configure more than one pin of the 40-pin GPIO header to make them work as digital input/output on Android Pie. Additionally, @Beir8 's post explains how to modify files in kernel to achieve that GPIO functionality. In there it indicates that it’s necessary to rebuild the Android image to apply that settings. I’ve never done this so I searched on the forum again and I found a related topic where it’s explained how to do it (Building Android Pie for VIM3).
In my application I would like to use the 6 yellow highlighted pins:
On the other hand, in one of the above mentioned post I found that @quatro explains how it’s posible to disable I2S audio to gain access to pins 29 to 33. The last one (pin 39) I think that is already available by default for GPIO. Therefore, my goal is for the pins to be as follows:
So is it possible to do it following the steps that you explain here? (Android 7, GPIO)
In that post for Android 7 on VIM1 you say that it’s necessary to modify two files “kvim.dts” and “mesongxl.dtsi”. It is the same for Android 9 on VIM3?
At the end, I achieved to expand the number of GPIO digital outputs for my android application. As I explained above, I followed various tips that I found on the forum (thanks @Terry), but the key one was (Unexportable GPIO pins on VIM3L - #13 by quatro) by @quatro. Commenting “pinctrl-0” line of tdmb device on /common/arch/arm64/boot/dts/amlogic/kvim3.dts file, it disabled I2S audios and allowed to export GPIOA_0 to GPIOA_4 pins.
I hope that can help other people with the same matter on the future.
I compiled Android according to the instructions in the official documentation, it’s Android Pie(9.0). I installed this OS on VIM3. Then I edited the dts file, built the boot image, flash the dt image and that’s it.
I’m sorry, I don’t know how to help you