I can confirm that multi-camera triggering works with a very minor patch:
diff --git a/recipes-kernel/voxl-fysnc-mod/files/voxl-fsync-mod.c b/recipes-kernel/voxl-fysnc-mod/files/voxl-fsync-mod.c
index 837dd21..730e374 100644
--- a/recipes-kernel/voxl-fysnc-mod/files/voxl-fsync-mod.c
+++ b/recipes-kernel/voxl-fysnc-mod/files/voxl-fsync-mod.c
@@ -24,7 +24,10 @@
* /sys/module/voxl_fsync_mod/parameters/pulse_width_us
* - uint - the length of pulse to use in microseconds, default 10, 10us
*
- * /sys/module/voxl_fsync_mod/parameters/gpio_num
+ * /sys/module/voxl_fsync_mod/parameters/gpio1_num
+ * - uint - the GPIO number to use
+ *
+ * /sys/module/voxl_fsync_mod/parameters/gpio2_num
* - uint - the GPIO number to use
*/
#define GPIO_OFFSET 1100
@@ -38,8 +41,10 @@ static uint pulse_width_us = 10; //
module_param(pulse_width_us, uint, 0644);
/* GPIO number */
-static uint gpio_num = 109;
-module_param(gpio_num, uint, 0644);
+static uint gpio1_num = 41;
+module_param(gpio1_num, uint, 0644);
+static uint gpio2_num = 114;
+module_param(gpio2_num, uint, 0644);
/* enable/disable the GPIO output and timestamps */
static int enabled = 0;
@@ -143,8 +148,10 @@ static enum hrtimer_restart fsync_hrtimer_tick_cb(struct hrtimer *timer)
{
/* initialize on being enabled */
if (!initialized && enabled) {
- gpio_direction_output((gpio_num + GPIO_OFFSET), 0);
- gpio_export((gpio_num + GPIO_OFFSET), true);
+ gpio_direction_output((gpio1_num + GPIO_OFFSET), 0);
+ gpio_export((gpio1_num + GPIO_OFFSET), true);
+ gpio_direction_output((gpio2_num + GPIO_OFFSET), 0);
+ gpio_export((gpio2_num + GPIO_OFFSET), true);
initialized = true;
pr_info("voxl-fsync: initialized\n");
}
@@ -153,7 +160,8 @@ static enum hrtimer_restart fsync_hrtimer_tick_cb(struct hrtimer *timer)
hrtimer_forward_now(&fsync_hrtimer, ns_to_ktime(sampling_period_ns));
if (enabled) {
- gpio_set_value((gpio_num + GPIO_OFFSET), 1);
+ gpio_set_value((gpio1_num + GPIO_OFFSET), 1);
+ gpio_set_value((gpio2_num + GPIO_OFFSET), 1);
/* TIMESTAMP TIMESTAMP TIMESTAMP*/
mutex_lock(&fysnc_mutex);
@@ -163,7 +171,8 @@ static enum hrtimer_restart fsync_hrtimer_tick_cb(struct hrtimer *timer)
if(pulse_width_us > 0)
udelay(pulse_width_us);
- gpio_set_value((gpio_num + GPIO_OFFSET), 0);
+ gpio_set_value((gpio1_num + GPIO_OFFSET), 0);
+ gpio_set_value((gpio2_num + GPIO_OFFSET), 0);
/* signal clients */
fsync_update_pending = 1;