Sebastian Reichel

Device Tree Overlays

In my local hackerspace I maintain a Raspberry Pi based system with some hardware extensions (mainly I2C devices). It’s running with Debian’s kernel and a patched device tree for the additional hardware components. This is the ideal candidate for DT overlays, so that I can use the DT blob provided by Debian and automatically apply the custom changes in top. With DT overlays from configfs still not being available I thought about giving the U-Boot “fdt apply” command added by Maxime Ripard from Free Electrons a chance. Read more →

I2C kernel driver testing using virtme

The last few days I worked on the MCP23017 kernel driver and wondered about a good method to test my changes in a comfortable way. Fortunately I built myself an i2c-tiny-usb adapter some time ago, which is supported by mainline Linux. Thus any system with USB host support could be used for testing the above chip. My minimal test-setup can be seen in the image below. Basically I supplied 5V, Ground, SCL & SDA from the adapter to MCP23017, connected the low-active reset pin to 5V and the address-selection pins to Ground. Read more →

Motorola Droid 4 - WL1285 and GPS

Today I had another look at GPS for Droid 4. In theory it has 3 different chips, that have GPS receivers: WL1285C, MDM6600, WG3LTE. The Cyanogenmod changelog for the Droid 4 contains a hint, that WL1285C’s GPS module is the one actually used: Don't hold st_wakelock until BT/GPS is used for the first time Also the stock kernel contains a driver for GPS from WiLink. WiLink based chips come with either SPI or SDIO connection for WLAN and a shared UART for Bluetooth (BT), FM radio, GPS and NFC. Read more →

Motorola Droid 4 - Update

Some time has gone by since my last post, so lets have a look what changed for Droid 4: I prepared a CPCAP LED driver I published updated patches for the N950 display (also used for D4) Milo Kim published TI LMU backlight driver supporting D4’s LM3532 Tony published a CPCAP ADC driver Tony published a simple CPCAP battery charer driver Tony published CPCAP usb phy Tony published Motorola MDM6600 patch for qmi_wwan Tony published lots of droid 4 DTS patches adding Touchscreen LCD backlight GPIO poweroff Temperature sensor HDMI support (incl. Read more →

Motorola Droid 4 - Modem

Today I had a first look at the modems of the Droid 4. Conclusion Modem 1 (2G/3G): Name: MDM 6600 USB ID: 22b8:2a70 Drivers: bpwake - wakeup ttyO0 via gpio mdm6600_ctrl - modem gpio control via sysfs mdm6600_modem - usb-serial driver (unused?) qcusbnet - qmi driver, mainline provides alternative ts27010mux - 3GPP 27.010 mux ldisc for ttyO0 Modem 2 (4G) Name: W3GLTE USB ID: 22b8:4267 Drivers: wrigley_ctrl - modem gpio control via sysfs oob-wake - usb wakeup via gpio cdc-ether - usb network device Both modems require a GPIO control driver for powering them up/down. Read more →

Motorola Droid 4 - RTC driver

With Debian up & running I had a look at what needs to be done in the mainline kernel. Tony is working on the ADC parts, which are required for the battery/charger work and mentioned he will have a look at USB. He also mentioned, that somebody with spare cycles could take care of CPCAP’s rtc & watchdog. I had a look at Motorola’s vendor kernel and as far as I can see CPCAP does not come with a watchdog (unlike twl4030/twl6040). Read more →

Power Supply for v4.11

I just sent the power-supply pull request to Linus Torvalds. Regarding to power-supply Linux v4.11 will bring 3 new drivers: sbs-charger max14656-charger-detector axp20x-ac-power As well as newly supported hardware in 4 existing drivers: axp20x_usb_power: AXP223 support tps65217: add usb charger support qcom_smbb: support otg regulator at91-reset: add samx7 support Also we could drop one driver, since the platform it is used for is no longer supported by the Linux kernel: Read more →

Motorola Droid 4 - Debian

In the last post I rooted the Droid 4 and installed LineageOS with SafeStrap as bootloader. Today I took care of getting the mainline kernel running and preparing a rootfs. After some communication with Tony I got the kexec stuff running (at the end the problem was my compiler generating binaries not suitable for Android). Instead of getting a compiler toolchain for Android I decided to rewrite the binary into a shellscript, so that no compiler is required. Read more →

Motorola Droid 4 - rooting

Yesterday I received the Motorola Droid 4 from my previous article. It came in a reasonable condition with a few scratches in the case (none in the display) and some of the back cover’s clips being broken. First impression: The phone feels a bit more clumpy than the N950, but much less than the N900. The sliding mechanism feels qualitatively worse than Nokia’s and the same goes for the keyboard quality. Read more →

Bose QC35 - Battery Status

Since about half a year I own Bose QuietComfort 35 headphones. They work well since bluez 5.42 (previous versions have problems with the headphones Low Energy mode, see Debian Bug #840983). While the battery last quite long (I guess roughly 20 hours), I would like to know the current status. The Android application displays the battery state, so it can be read via bluetooth. While working on the kernel driver for Nokia bluetooth chips I coincidentally found a message from Marcel, that the headphones my support Apple’s battery status HFP AT commands. Read more →