altos: Use new ao_spi_speed inline to set SPI speeds using spec'd frequencies
authorKeith Packard <keithp@keithp.com>
Wed, 29 Jul 2020 17:53:39 +0000 (10:53 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 30 Jul 2020 18:06:50 +0000 (11:06 -0700)
commit341157c7415fcf879696c9d8167722a0c5ff264c
treec58cb448d9aacb0879649a898a8c1cb3c7f3dd50
parent202166275ba5220db54f63dcd9366e9115d09c0d
altos: Use new ao_spi_speed inline to set SPI speeds using spec'd frequencies

Instead of hand-adjusting SPI speeds for each driver and product based
on processor supported rates, create an inline function that takes the
maximum frequency supported by the device and maps that to a value
supported by the SoC. This ensures that we don't accidentally drive devices
faster than they want (as could happen with AO_SPI_SPEED_FAST), but do go
as fast as possible in every configuration. Using an inline function means
the value is computed at compile time.

Signed-off-by: Keith Packard <keithp@keithp.com>
40 files changed:
src/drivers/ao_adxl375.c
src/drivers/ao_bmx160.c
src/drivers/ao_cc1120.c
src/drivers/ao_cc115l.c
src/drivers/ao_cc1200.c
src/drivers/ao_companion.c
src/drivers/ao_m25.c
src/drivers/ao_mma655x.c
src/drivers/ao_mpu6000.c
src/drivers/ao_mpu9250.c
src/drivers/ao_ms5607.c
src/easymega-v2.0/ao_pins.h
src/easymega-v3.0/ao_pins.h
src/easymini-v2.0/ao_pins.h
src/lpc/ao_arch.h
src/stm/ao_arch_funcs.h
src/stmf0/ao_arch_funcs.h
src/telebt-v3.0/ao_pins.h
src/telebt-v4.0/ao_pins.h
src/teledongle-v3.0/ao_pins.h
src/telefireeight-v1.0/ao_pins.h
src/telefireeight-v2.0/ao_pins.h
src/telefireone-v1.0/ao_pins.h
src/telefireone-v2.0/ao_pins.h
src/telefiretwo-v0.1/ao_pins.h
src/telefiretwo-v0.2/ao_pins.h
src/telegps-v0.1/ao_pins.h
src/telegps-v0.3/ao_pins.h
src/telegps-v1.0/ao_pins.h
src/telegps-v2.0/ao_pins.h
src/telelco-v0.2-cc1200/ao_pins.h
src/telelco-v0.3/ao_pins.h
src/telelco-v2.0/ao_pins.h
src/telelcotwo-v0.1/ao_pins.h
src/telemega-v2.0/ao_pins.h
src/telemega-v3.0/ao_pins.h
src/telemega-v4.0/ao_pins.h
src/telemetrum-v3.0/ao_pins.h
src/telemini-v3.0/ao_pins.h
src/telestatic-v3.0/ao_pins.h