Added UART timeout SYSFS properties
authorTom Knot <tomasknot@gmail.com>
Thu, 14 Jun 2018 13:48:26 +0000 (15:48 +0200)
committerTom Knot <tomasknot@gmail.com>
Thu, 14 Jun 2018 13:48:26 +0000 (15:48 +0200)
modules/unipi/Makefile
modules/unipi/src/unipi_sysfs.c
version.txt

index 0f13fbc32ec4d9f279a09ea9c5e1d537a9bea79c..c1e73567930bc7acf65bca61df35efda3c2a9f7b 100644 (file)
@@ -3,7 +3,7 @@
 # if necessary.
  
 SYMLINK_DIR_PATH = /run/kernel/neuron_spi
-LINUX_DIR_PATH = /root/bokula/linux/
+LINUX_DIR_PATH = /root/linux/4_14_34/
 SRC_DIR_PATH = $(PWD)/src
 BIN_DIR_PATH = $(PWD)/bin
 
index 3e5e085dd29be69283e5a928aa73689c7a4f3d62..313874ea723092e3c97bdf8b8f93ecb309a0aa4b 100644 (file)
@@ -190,6 +190,54 @@ err_end:
        return count;
 }
 
+static ssize_t neuronspi_spi_show_uart_timeout(struct device *dev, struct device_attribute *attr, char *buf)
+{
+       ssize_t ret = 0;
+       u32 val = 0;
+       u8 *inp_buf, *outp_buf;
+       int read_length;
+       struct spi_device *spi;
+       struct neuronspi_driver_data *n_spi;
+       struct platform_device *plat = to_platform_device(dev);
+       n_spi = platform_get_drvdata(plat);
+       printk(KERN_INFO "NEURONSPI: Index %d\n", n_spi->neuron_index);
+       spi = neuronspi_s_dev[n_spi->neuron_index];
+       if (n_spi && n_spi->combination_id != 0xFF && n_spi->reg_map && n_spi->regstart_table->uart_conf_reg) {
+               read_length = neuronspi_spi_compose_single_register_read(504, &inp_buf, &outp_buf);
+               neuronspi_spi_send_message(spi, inp_buf, outp_buf, read_length, n_spi->ideal_frequency, 25, 1, 0);
+               val = outp_buf[10 + 1];
+               memcpy(val, &outp_buf[NEURONSPI_HEADER_LENGTH], sizeof(u16));
+               kfree(inp_buf);
+               kfree(outp_buf);
+               ret = scnprintf(buf, 255, "%d\n", val);
+       }
+       return ret;
+}
+
+static ssize_t neuronspi_spi_store_uart_timeout(struct device *dev, struct device_attribute *attr, const char *buf, size_t count)
+{
+       ssize_t err = 0;
+       unsigned int val = 0;
+       u8 *inp_buf, *outp_buf;
+       int write_length;
+       struct spi_device *spi;
+       struct neuronspi_driver_data *n_spi;
+       struct platform_device *plat = to_platform_device(dev);
+       n_spi = platform_get_drvdata(plat);
+       printk(KERN_INFO "NEURONSPI: Index %d\n", n_spi->neuron_index);
+       spi = neuronspi_s_dev[n_spi->neuron_index];
+       err = kstrtouint(buf, 0, &val);
+       if (err < 0) goto err_end;
+       if (n_spi && n_spi->combination_id != 0xFF && n_spi->reg_map && n_spi->regstart_table->uart_conf_reg) {
+               write_length = neuronspi_spi_compose_single_register_write(504, &inp_buf, &outp_buf, val);
+               neuronspi_spi_send_message(spi, inp_buf, outp_buf, write_length, n_spi->ideal_frequency, 25, 1, 0);
+               kfree(inp_buf);
+               kfree(outp_buf);
+       }
+err_end:
+       return count;
+}
+
 static ssize_t neuronspi_spi_show_watchdog_status(struct device *dev, struct device_attribute *attr, char *buf)
 {
        ssize_t ret = 0;
@@ -1010,6 +1058,7 @@ static DEVICE_ATTR(pwm_prescale, 0660, neuronspi_spi_gpio_show_pwm_presc, neuron
 static DEVICE_ATTR(pwm_duty_cycle, 0660, neuronspi_spi_gpio_show_pwm_cycle, neuronspi_spi_gpio_store_pwm_cycle);
 static DEVICE_ATTR(uart_queue_length, 0440, neuronspi_spi_show_uart_queue_length, NULL);
 static DEVICE_ATTR(uart_config, 0660, neuronspi_spi_show_uart_config, neuronspi_spi_store_uart_config);
+static DEVICE_ATTR(uart_timeout, 0660, neuronspi_spi_show_uart_timeout, neuronspi_spi_store_uart_timeout);
 static DEVICE_ATTR(sys_gpio_di_base, 0440, neuronspi_spi_gpio_show_di_base, NULL);
 static DEVICE_ATTR(sys_gpio_ro_count, 0440, neuronspi_spi_gpio_show_ro_count, NULL);
 static DEVICE_ATTR(sys_gpio_ro_prefix, 0440, neuronspi_spi_gpio_show_ro_prefix, NULL);
@@ -1039,6 +1088,7 @@ static struct attribute *neuron_board_attrs[] = {
                &dev_attr_sys_board_serial.attr,
                &dev_attr_uart_queue_length.attr,
                &dev_attr_uart_config.attr,
+               &dev_attr_uart_timeout.attr,
                &dev_attr_register_read.attr,
                NULL,
 };
index 7e7795b20eb14329642c5bc47563ffed3229cbfd..9ae67808d67795b5153752ae75dd3f02295c2f40 100644 (file)
@@ -1 +1 @@
-Repository:neuron-kernel ActiveBranch:[master] PrecedingRelease:v.0.12 PrecedingRevision:42(dbc2229) LatestCommit:Thu Jun 14 12:01:18 CEST 2018
+Repository:neuron-kernel ActiveBranch:[uart_timeout] PrecedingRelease:v.0.12 PrecedingRevision:46(8430b96) LatestCommit:Thu Jun 14 15:48:26 CEST 2018