Not at the moment.
The hack I came up with previously is here: wip: TAS5872M codec · kaechele/msm8953-mainline-linux@25b1a5c · GitHub
But after a bit more careful study it looks like the TAS5805M is different enough to warrant some more extensive changes to properly support the TAS5782M that’s in the TSV. I’m especially hoping to speed up waking the codec from sleep. Right now the TAS5805M driver always re-programs the DSP registers (which isn’t necessary), and uses delays that can be shortened or removed for the TAS5782M. Also, the TI5805M needs the firmware split up in specific portions and has a static header that isn’t static on TAS5782M firmwares that I’ve seen. So that needs some figuring out as well.
So right now, with the hack, it misses a chunk of the audio at the beginning of a new audio stream. I’m hoping a proper implementation can fix this.
But TI likes to play 4D Chess with their register map (two nested levels of indirect register access they call “book” and “page”) and the Kernel doesn’t have a neat way to deal with it. Existing TI drivers re-implement parts of the regmap interface in the Kernel to work around it, but I’m trying to find a way that doesn’t require as much manual labour.
@csdvrx
I did see your email yesterday. I just haven’t gotten to it yet.
The bit-banging itself is done via the i2c-gpio
driver. This is already setup on the device. So you should be able to talk to the sensor using the regular i2c tools. It shows up as a normal I2C bus and the accelerometer connected to it works and is enabled.
The sensor is being disabled here, so if you’re brave you can edit it and rebuild the kernel.
The easiest way to build the kernel is with envkernel.sh. My incantation (from within a cloned msm8953-mainline/linux repo) usually looks like this:
. ../pmbootstrap/helpers/envkernel.sh
(I have pmbootstrap cloned in a directory one level below the msm8953-mainline/linux folder)make menuconfig
and/ormake -j24
pmbootstrap build --envkernel linux-postmarketos-qcom-msm8953
(makes a temporary package of the kernel)pmbootstrap sideload linux-postmarketos-qcom-msm8953
(installs it on the device, might need--host
if you want to do it via WiFi instead of USB)
You may be able to get the sensor working from userspace by speaking directly via I2C to it. Just do a GitHub search for vcnl4200
. There’s stuff like this: vcnl4200/vcnl4200.py at 1baa7b24ffc9b5ed275a8fe1846ba4d24b7fe4b5 · petermankowski510/vcnl4200 · GitHub
As for the USB-OTG thing:
I use exactly the breakout board you posted. Works great.
I’m not sure if simply applying 5V on VBUS will trigger OTG host mode. I doubt it, because that’s what USB ID is for and that’s probably also the default configuration for the host controller. You can check some of my experimentation with it here: re-enable USB · kaechele/msm8953-mainline-linux@de61f09 · GitHub
Essentially I looked if I can use GPIO4 or 5 to fake a USB ID trigger. It generally works (by pulling GPIO4 or 5 to GND), but you lose the ability to do UART through those pins within Linux then. UART still works in the bootloader phase, obviously. The USB-C pins that connect through to GPIO 4 and 5 seem 5V tolerant, so I didn’t fry the board by piping 5V into it.
I’ll have to see if I still have some images flying around from before the systemd switch.
You’re right about that, not all desktop environments are currently working properly with systemd. So far, I only had luck with plasma-mobile
.