Motorola Droid 4 - Update

The 4.12 merge window will most likely close on Sunday, so its a good time to check the Droid 4 status matrix. This merge window lots of changes were queued: New drivers: real time clock (RTC), power button, analogue digital converter (ADC), battery charger, LEDs (RGB, capslock status, android buttons) DTS additions: LCD (no driver yet), HDMI, Keyboard/LCD backlight (no driver yet), Touchscreen, Temperature sensor, Accelerometer, Compass, Regulators, RTC, Power button, ADC, USB PHY (no driver yet), Battery charger, LEDs, Keyboard, Poweroff, USB configuration for modems 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 →

Hiking West Highland Way

I recently walked the West Highland Way, which is already described extensively on lots of webpages. In contrast to most suggestions I walked in the first April week to avoid scotland’s midges. Also I did not travel from hotel to hotel or even campsite to campsite, but with a backpack providing all resources for approx. 10 days and did wild camping near the trail.

Read more →

I2C on RPi

Back in January I wrote about the Raspberry Pi’s I2C module having problems with a specific I2C feature: clock stretching. The planned workaround was using a NXP SC18IS600, since Cypress CP2120 only comes in a QFN package. I received the chips some time ago and use it since a month for our hackerspace’s access control system. Unfortunately the Linux kernel only came with a driver for NXP SC18IS602, which does the the other direction (I2C -> SPI). 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 →