Building the #PinePhone USB Driver for Apache #NuttX Real-Time Operating System ... All shall be explained in this article
#PinePhone USB EHCI Registers are (thankfully) documented in the Allwinner A64 manual
Article: https://lupyuen.github.io/articles/usb3?2#usb-enhanced-host-controller-interface
#PinePhone USB OTG is super complicated ... So we won't touch it today for Apache #NuttX RTOS
Article: https://lupyuen.github.io/articles/usb3?3#ehci-is-simpler-than-usb-on-the-go
#PinePhone (Allwinner A64) has 2 USB Ports ... One goes to External USB, the other goes to LTE Modem
Article: https://lupyuen.github.io/articles/usb3?4#pinephone-usb-controller
Here's how we configure the #NuttX USB Driver for #PinePhone
Article: https://lupyuen.github.io/articles/usb3?5#ehci-driver-from-apache-nuttx
Tweaking the Apache #NuttX USB Driver for 64-bit #PinePhone
Article: https://lupyuen.github.io/articles/usb3?6#64-bit-update-for-ehci-driver
#NuttX USB Driver fails at startup ... Because we haven't powered on #PinePhone USB Controller
Article: https://lupyuen.github.io/articles/usb3?7#halt-timeout-for-usb-controller
How to power up #PinePhone USB Controller? Let’s consult U-Boot Bootloader
Article: https://lupyuen.github.io/articles/usb3?8#pinephone-usb-drivers-in-u-boot-bootloader
Here's how we find the #PinePhone USB Driver in U-Boot Bootloader
Article: https://lupyuen.github.io/articles/usb3?8#pinephone-usb-drivers-in-u-boot-bootloader
U-Boot Device Tree reveals the USB Drivers for #PinePhone
Article: https://lupyuen.github.io/articles/usb3?8#pinephone-usb-drivers-in-u-boot-bootloader
To power up #PinePhone USB Controller: 1️⃣ Enable the USB Clocks 2️⃣ Deassert the USB Resets
Article: https://lupyuen.github.io/articles/usb3?9#power-on-the-usb-controller
U-Boot Bootloader's mystery code for #PinePhone USB ... We'll decipher this someday
Article: https://lupyuen.github.io/articles/usb3?9#power-on-the-usb-controller
Here's how we enable the USB Clocks for #PinePhone
Article: https://lupyuen.github.io/articles/usb3?10#enable-usb-controller-clocks
Enabling #PinePhone USB Clocks ... How we do it for Apache #NuttX RTOS
Article: https://lupyuen.github.io/articles/usb3?10#enable-usb-controller-clocks
Resetting the USB Controller on #PinePhone ... Inside the USB Driver for Apache #NuttX RTOS
Article: https://lupyuen.github.io/articles/usb3?11#reset-usb-controller
USB Driver from Apache #NuttX RTOS ... Starts OK on #PinePhone yay! 🎉
Article: https://lupyuen.github.io/articles/usb3?12#nuttx-ehci-driver-starts-ok-on-pinephone
Up Next: Enumerating the USB Devices on #PinePhone ... With Apache #NuttX RTOS
Article: https://lupyuen.github.io/articles/usb3?12#nuttx-ehci-driver-starts-ok-on-pinephone
We’re one step closer to our dream of a Feature Phone running Apache #NuttX RTOS!
Article: https://lupyuen.github.io/articles/usb3?15#whats-next
Here's how we port the USB Driver from Apache #NuttX RTOS to #PinePhone @PINE64
#PinePhone USB Programming is so much easier with USB EHCI ... Here's why
Article: https://lupyuen.github.io/articles/usb3?2#usb-enhanced-host-controller-interface