Commit Graph

27 Commits

Author SHA1 Message Date
Andrew Tridgell e068106669 HAL_ChibiOS: support I2C devices on STM32F7 without DMA
this allows us to support I2C4 on fmuv5
2018-06-13 20:05:26 +10:00
Andrew Tridgell a945c97ec6 HAL_ChibiOS: fixed 3-way DMA sharing bug
when we have 3 way contention across two DMA streams we could get the
dma_deallocate function called in an object from two places at
once. This adds a mutex that prevents that scenario
2018-06-06 07:15:41 +10:00
Andrew Tridgell 2493cdbcb6 HAL_ChibiOS: switch to new bouncebuffer system
this removes the dma_flush and dma_invalidate methods and uses a
common bouncebuffer system for all CPU types. This enables microSD
support on STM32F7
2018-06-06 07:15:41 +10:00
Andrew Tridgell fef1b0ffc6 HAL_ChibiOS: fixed I2C flush/invalidate calls 2018-06-06 07:15:41 +10:00
Andrew Tridgell 4d4ea894e8 HAL_ChibiOS: disable i2c device debug code 2018-06-06 07:15:41 +10:00
Andrew Tridgell edb831653f HAL_ChibiOS: added dma_flush and dma_invalidate operations
these are needed to manage the data cache on the STM32F7
2018-06-06 07:15:41 +10:00
mirkix c2eee2db23 AP_HAL_ChibiOS: add STM32F7 I2C support 2018-04-29 07:59:52 +10:00
Andrew Tridgell bc32276966 HAL_ChibiOS: support DShot output
use DMAR burst DMA to minimise number of DMA channels needed

thanks to betaflight for the great reference implementation!
2018-04-07 09:10:29 +10:00
Andrew Tridgell 306d35655e HAL_ChibiOS: allow for bare board builds
this allows for a build with no UARTs, no SPI, no I2C, no PWM. Great
for initial board bringup with just USB
2018-03-02 12:52:50 +11:00
Andrew Tridgell 5f353b5c85 HAL_ChibiOS: fixed build of I2C without I2C1 defined 2018-03-02 12:52:50 +11:00
Andrew Tridgell 9301e4888a HAL_ChibiOS: make not having bus lock a soft error
this is nicer for driver developers
2018-02-09 10:14:49 +11:00
Andrew Tridgell 8eff43a352 HAL_ChibiOS: fixed printf arguments 2018-02-08 17:36:33 +11:00
Siddharth Purohit 40142e5aef ChibiOS: implement way to clear i2c bus by toggling clock line 2018-02-08 17:36:33 +11:00
Andrew Tridgell 47ce37f463 HAL_ChibiOS: report I2C clock downgrades 2018-02-08 17:36:33 +11:00
Andrew Tridgell f1ce321a2f HAL_ChibiOS: added checking of bus owner
this ensures all bus transfers are only done by the thread that owns
the semaphore
2018-02-07 20:33:45 +11:00
Andrew Tridgell 23e1b2e271 HAL_ChibiOS: added paranoid state checking on I2C
this is here just while debugging an issue with Mark
2018-02-07 20:33:45 +11:00
Andrew Tridgell 87389e0fdc HAL_ChibiOS: fixed double DMA allocation on i2c 2018-02-07 20:33:45 +11:00
Andrew Tridgell 63671b06a8 HAL_ChibiOS: added HAL_I2C_MAX_CLOCK define 2018-01-20 17:40:07 +11:00
Andrew Tridgell 88f11f5a50 HAL_ChibiOS: added HAL_I2C_BUS_BASE
this allows fmuv4 to start at bus 1
2018-01-20 17:40:07 +11:00
Andrew Tridgell f5c8754d75 HAL_ChibiOS: use ARRAY_SIZE_SIMPLE
this allows for boards without a device type (eg. no SPI bus)
2018-01-15 11:46:02 +11:00
Andrew Tridgell d1f93cd66c HAL_Chibios: auto-generate I2C, SPI and UART device lists
this is less error prone and make a port faster as more information is
in hwdef.dat
2018-01-15 11:46:02 +11:00
Andrew Tridgell c3435e45c5 HAL_ChibiOS: initial port to FMUv4 2018-01-15 11:46:02 +11:00
bugobliterator 5feef04f5f HAL_ChibiOS: add support for CCM memory
this uses DMA bounce buffers for bus transfers, and falls back to CCM
ram in allocations if the type is unspecified
2018-01-15 11:46:02 +11:00
Andrew Tridgell 36227aa126 HAL_ChibiOS: implement bus speed and smbus for I2C
use the slowest speed of all devices on the bus
2018-01-15 11:46:02 +11:00
Andrew Tridgell 755eca31c2 HAL_Chibios: don't unregister shared DMA
the shared DMA handle is a property of the bus, not the device, so
should not be unregistered when the device is removed
2018-01-15 11:46:02 +11:00
Andrew Tridgell 9812fc9574 HAL_Chibios: prevent creation of i2c devices on invalid bus 2018-01-15 11:46:02 +11:00
Andrew Tridgell 8b6bab7b17 HAL_Chibios: added ChibiOS HAL
this is based on initial work by Sid, reset here for easier merging
2018-01-15 11:46:02 +11:00