diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2019-04-01 00:25:56 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2019-04-04 18:29:31 -0400 |
commit | f8bde6b1ef8bc3571e3220fd720c7464d8b44515 (patch) | |
tree | e83937fafc95e72a15978161a01ada151bb71064 /src | |
parent | 3e71a57f67ce0dde62e942dfa33bf38d64262916 (diff) | |
download | kutter-f8bde6b1ef8bc3571e3220fd720c7464d8b44515.tar.gz kutter-f8bde6b1ef8bc3571e3220fd720c7464d8b44515.tar.xz kutter-f8bde6b1ef8bc3571e3220fd720c7464d8b44515.zip |
linux: Convert SPI to use enumerations
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src')
-rw-r--r-- | src/linux/spidev.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/linux/spidev.c b/src/linux/spidev.c index d14bb645..5c613cba 100644 --- a/src/linux/spidev.c +++ b/src/linux/spidev.c @@ -15,6 +15,15 @@ #include "internal.h" // report_errno #include "sched.h" // shutdown +#define SPIBUS(chip, pin) (((chip)<<8) + (pin)) +#define SPIBUS_TO_BUS(spi_bus) ((spi_bus) >> 8) +#define SPIBUS_TO_DEV(spi_bus) ((spi_bus) & 0xff) + +DECL_ENUMERATION_RANGE("spi_bus", "spidev0.0", SPIBUS(0, 0), 16); +DECL_ENUMERATION_RANGE("spi_bus", "spidev1.0", SPIBUS(1, 0), 16); +DECL_ENUMERATION_RANGE("spi_bus", "spidev2.0", SPIBUS(2, 0), 16); +DECL_ENUMERATION_RANGE("spi_bus", "spidev3.0", SPIBUS(3, 0), 16); + struct spi_s { uint32_t bus, dev; int fd; @@ -54,7 +63,7 @@ spi_open(uint32_t bus, uint32_t dev) struct spi_config spi_setup(uint32_t bus, uint8_t mode, uint32_t rate) { - int bus_id = (bus >> 8) & 0xff, dev_id = bus & 0xff; + int bus_id = SPIBUS_TO_BUS(bus), dev_id = SPIBUS_TO_DEV(bus); int fd = spi_open(bus_id, dev_id); int ret = ioctl(fd, SPI_IOC_WR_MAX_SPEED_HZ, &rate); if (ret < 0) { |