Openstick: Updates for 14 Aug 2022

Device Tree Overlays and GPIO's

I'm still trying to figure out the correct way to do a device tree overlay. Along the way, I have discovered some additonal information.

In /proc/device-tree/soc/ is a list of devices that are already defined. This directory is a link to /sys/firmware/devicetree/base/soc/. Among the devices defined is serial78af000, which is the other serial device that I want to use. serial78b0000 is the serial device that is active and assigned to the console as ttyMSM0

So, the second serial device is defined, but disabled. I'm trying to see if there is a simple way to enable it without having to go the device tree overlay route.

In the /dev directory are three gpiochip devices. I found this web page that proved helpful. You need to install the gpiod package to get the programs mentioned.

Running gpioinfo tells me that on gpiochip0, from a total of 122 lines, the following GPIOs are used:

Obviously, most of the GPIO lines are not brought out on the circuit board, so that we can use them. We may be able to re-use the two SIM GPIOs for other purposes.

The DATA and CLK lines for the SIM can be assigned from one of the UARTs. I assume that this is the disabled UART, but haven't found anything to indicate whether the second UART has been assigned this function or not. The SIM enable and select signals are via GPIOs. As mentioned before, the three LEDs are also assigned as GPIOs, as is the button switch. I'm not sure what 4g:l3 or id are.

As for the switch on the circuit board, Enio Arda passed along a good tip.

That button on the SIM socket side can actually be used to get into fastboot mode. If you press it while powering on, you get into some qualcomm EDL mode, but if you wait a split second and then press it, blue and green will light up and you can issue fastboot commands.

Two other devices found in /dev are wwan0at0 and wwan0qmi0. These are the LTE modem. The at0 device probably uses standard modem AT commands. The qmi0 device uses the Qualcomm MSM Interface standard. I'm not interested in using the cellular function, so I'll let someone else look into this.