Daniel Agar
6d0339ba0c
I2CSPIDriverBase: sensor start failure ERROR if internal, WARN if external
2021-12-28 11:05:35 -05:00
Jani Paalijarvi
02336acd61
Improve SPI bus implementation
...
Make possible to define chip-select pin for internal SPI.
By defining chip-select pin, it's possible to start specific SPI device only.
This allows to have several same type of sensors on the same bus with different orientation.
2021-11-19 07:47:18 +01:00
Daniel Agar
7b7b7acd36
i2c_spi_buses: respect CONFIG_I2C and CONFIG_SPI
...
- bmp280, dps310, and ms5611 barometers support boards without I2C
2021-11-15 15:57:33 -05:00
David Sidrane
78b76cb636
i2c_spi_buses:Support devices that may change address
2021-08-20 10:15:57 -04:00
Beat Küng
c5aef9d512
i2c_spi_buses: add support for multiple instances of the same device on a bus
...
This also simplifies the API a bit, since we anyway have to change the
drivers to pass additional information (the bus device index).
The orientation flag is merged with the rotation.
2021-07-08 12:59:35 -04:00
David Sidrane
84dd8839a2
i2c_spi_buses:Track NuttX change to getopts avoid name collision
...
NuttX #defined optarg and getopt to move to TLS. This fixes the
name collision.
2021-06-16 17:07:47 +02:00
echoG
6bc09138c1
Adding BatMon smart battery as a module and refactoring SMBUS based SBS 1.1 spec to a library
2021-06-09 12:17:45 -04:00
Daniel Agar
47b9016f5e
I2CSPIDriverBase: print rotation and i2c address if set
2021-06-08 09:27:21 +02:00
Beat Küng
5fdff6a0e4
i2c drivers: add '-k' flag for keep_running directly to BusCLIArguments
2020-09-18 09:45:06 -04:00
Beat Küng
787f9c1213
i2c: use board-specific bus numbering for '-X -b <bus>' CLI
...
As boards don't have their external buses labeled consistently, it was not
useful to use an abstraction.
2020-09-03 15:32:35 -04:00
Beat Küng
4088c2581f
i2c_spi_buses: add '-q' for quiet startup flag ( #14969 )
...
* [WIP] i2c_spi_buses: add '-q' for quiet startup flag
And enable for optional board sensors.
* ROMFS: rc.sensors try starting all optional I2C sensors quietly
Co-authored-by: Daniel Agar <daniel@agar.ca>
2020-08-26 08:46:35 +02:00
Beat Küng
d3dd5e9da1
i2c_spi_buses: improve info output for external buses
2020-04-24 12:59:50 +02:00
Beat Küng
a556a44a57
i2c_spi_buses: print an error if a driver does not pass the I2C address
2020-03-30 15:55:24 -04:00
Beat Küng
d6bb5b3b9e
i2c spi buses: enforce drivers to set default SPI/I2C bus frequency
...
Not a lot of drivers use the global default, which is somewhat arbitrary.
2020-03-17 23:31:17 -04:00
Beat Küng
83b6f6456b
refactor I2CSPIInstance: store running instances in a global linked list
...
instead of a static per-driver array.
Reduces BSS RAM usage by a couple of 100 Bytes (linear increase with num
drivers).
Downsides:
- a bit more runtime overhead
- less isolation, locking required
- a bit more complex
2020-03-17 23:31:17 -04:00
Beat Küng
e7f04109d9
i2c spi init + custom methods: use WorkItemSingleShot
...
Use it for custom methods as well (like reset), and run by default on the
work queue, since they typically access the bus.
2020-03-17 23:31:17 -04:00
Beat Küng
134413233a
i2c spi: extend BusCLIArguments to handle common driver arguments
2020-03-17 23:31:17 -04:00
Beat Küng
f851f65f8d
i2c spi: add type to I2CSPIInstance
...
Needed to distinguish runtime instance types of the same driver (e.g.
bmi055 accel vs gyro).
2020-03-17 23:31:17 -04:00
Beat Küng
06712450a7
i2c+spi: add module base class and bus iterators
2020-03-10 10:11:43 -04:00