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 →
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 →
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 →
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 →
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 →
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 →
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 →
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 →
Tony Lindgren is currently working on mainline kernel support for the Motrola Droid 4 (Wikipedia, GSMArena, iFixit Teardown). He documented his work to get serial over USB on the following page: http://muru.com/linux/d4. I just got myself a used one via Ebay, since it's a decent upgrade from the Nokia N9xx phones. It's also quite cheap (30$ in US, 50€ after import to DE (shipping + customs)). Last but not least there is no newer phone available, which has a proper hardware keyboard.
Read more →
While improving slowly, the mainline kernel’s support for smartphones is quite bad. One of the better supported phones is the Nokia N900. Apart from a few missing features, which could improve the performance of some operations (like crypto acceleration), its currently lacking support for two missing features:
Bluetooth Cameras I worked on both tasks during my master’s thesis, but in this post let’s focus on the Bluetooth module. For Bluetooth support the Nokia N900 has broadcom’s bcm2048 chip (which also supports FM radio, but that’s out of scope for this post).
Read more →