Allowed overriding frequency settings with _lower_ frequency even for analog modules...
authorTom Knot <tomasknot@gmail.com>
Thu, 5 Apr 2018 14:04:50 +0000 (16:04 +0200)
committerTom Knot <tomasknot@gmail.com>
Thu, 5 Apr 2018 14:04:50 +0000 (16:04 +0200)
modules/unipi/src/unipi_common.h
modules/unipi/src/unipi_spi.c

index 1b27daa0faae5cc8b489260e1c578742416bed69..eb560e6e14759b47c1b084b234ff1440ffd7b2cc 100644 (file)
@@ -59,7 +59,7 @@
 #define NEURONSPI_B_PER_WORD                   8
 #define NEURONSPI_DEFAULT_FREQ                 600000
 #define NEURONSPI_COMMON_FREQ                  12000000
-#define NEURONSPI_SLOWER_FREQ                  8000000
+#define NEURONSPI_SLOWER_FREQ                  7500000
 #define NEURONSPI_MAX_TX                               62
 #define NEURONSPI_MAX_BAUD                             115200
 #define NEURONSPI_FIFO_SIZE                            256
index e9f3490e098a79562d6f9c44013e9217688bfead..14ed55797375e629d60154634fccd3803dbc4a34 100644 (file)
@@ -139,9 +139,6 @@ ssize_t neuronspi_read (struct file *file_p, char *buffer, size_t len, loff_t *o
     if (driver_data == NULL) return -2;
     if (driver_data->spi_driver == NULL) return -2;    // Invalid private data
     if (driver_data->first_probe_reply[0] == 0) return -3; // No device present
-    if (driver_data->slower_model) {
-       frequency = NEURONSPI_SLOWER_FREQ;
-    }
     mutex_lock(&(private_data->lock));
     if (private_data->recv_buf == NULL) {
        mutex_unlock(&(private_data->lock));
@@ -231,7 +228,7 @@ ssize_t neuronspi_write (struct file *file_p, const char *buffer, size_t len, lo
     } else if (driver_data->reserved_device) {
        return -5;                      // Device reserved
     }
-    if (driver_data->slower_model) {
+    if (driver_data->slower_model && frequency > NEURONSPI_SLOWER_FREQ) {
        frequency = NEURONSPI_SLOWER_FREQ;
     }
 #else