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;