altos/lpc: Add casts to reduce -Wconversion warnings Most of these were caused by int/long mixes as uint32_t is 'long' on arm for reasons, meaning that bare int constants need to be cast to avoid a warning. No bugs identified. Signed-off-by: Keith Packard <keithp@keithp.com>
altos/lpc: Add explicit defines for all register groups This lets the compiler see the constant address, rather than having the linker stick it in later. Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Mark local functions 'static' Working towards supporting -Wmissing-prototypes Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Eliminate 'pin' field from GPIO functions This was used with the 8051 bit-addressing mode to provide single-instruction access to GPIO pins. Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Remove 8051 address space specifiers Signed-off-by: Keith Packard <keithp@keithp.com>
altos/lpc: Make sure USB pull-up is held low at boot for 'a while' Add a delay loop to make sure the host sees the pull-up low for long enough. Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Make CDC ACM 'line coding' public This allows other systems to see what baud rate the host has requested. Signed-off-by: Keith Packard <keithp@keithp.com>
Switch from GPLv2 to GPLv2+ Signed-off-by: Keith Packard <keithp@keithp.com>
altos/lpc: Handle USB reset by resetting internal state Just like stmf0, this clears internal state at USB reset time so the driver can survive host OS reboots. Signed-off-by: Keith Packard <keithp@keithp.com>
altos/lpc: Double buffer USB data transfers This allocates twice the space in the USB memory so that transactions can be double buffered without using separate CPU memory. Signed-off-by: Keith Packard <keithp@keithp.com> Conflicts: src/lpc/ao_usb_lpc.c
altos/lpc: Clean up USB endpoint access functions The USB device endpoints can have two pointers in them, but we use only the first. Fix the access functions to take an index as to which we want so that we can disable the other address registers with them instead of requiring open-coded access. Signed-off-by: Keith Packard <keithp@keithp.com>
Revert LPC usb performance improvements There's something screwy going on, sticking garbage in the input buffer at boot time Signed-off-by: Keith Packard <keithp@keithp.com>
Revert "altos/lpc: Fix double-buffered USB changes" This reverts commit 41a0604ad1ea1a03e2db7d41731dbadf466b45db.
altos/lpc: Fix double-buffered USB changes These got merged when we were down in Auckland, but before they'd been finished. Transmitting worked fine, but receiving was mis-configuring the OUT buffer size in the hardware. Signed-off-by: Keith Packard <keithp@keithp.com>
Set version to 1.5.9.1
altos/lpc: HAS_USB_CONNECT has been changed to mean a custom pin The LPC stuff isn't actually very useful and TeleGPS uses a custom pin instead, and was using HAS_USB_CONNECT to mean the same thing. That wasn't good. Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Expose ao_usb_running globally This lets other bits of the code know when USB has been connected. Signed-off-by: Keith Packard <keithp@keithp.com>
altos: Clean up warnings for LPC products Unused varibles, functions and parameters. Signed-off-by: Keith Packard <keithp@keithp.com>
altos/lpc: Stop sending SETUP IN when the requested size is reached The host won't keep asking for SETUP IN packets once it has received the amount of data requested, so check to see if we've sent that much and flip back to IDLE state if so. Signed-off-by: Keith Packard <keithp@keithp.com>
altos/lpc: Reset less of the device on USB reset. This leaves most of the device configured across USB reset, which appears to help when sending a IN reply to the first SETUP packet; without this change, the IN reply would always get a length of 0, which is fine for SET_ADDRESS, but not for GET_DESCRIPTOR_DEVICE, which OS X appears to send before setting the address (go figure). Signed-off-by: Keith Packard <keithp@keithp.com>