En lugar de hacer el reset del gpio 2 veces, no sería más conveniente hacerlo una sola vez usando un delay?
Por ejemplo:
#include <linux/delay.h>
gpio_request(27, "USB_rst");
gpio_direction_output(27, 0);
udelay(100);
gpio_set_value(27, 1);
100 es un valor bastante normal en otros drivers, pero quizás debieras ajustarlo probando valores, y elegir el mínimo posible más cierto margen en el que estés seguro de que siempre ocurrirá correctamente el reset
Otros chips (no solo USBs) en otras placas pueden requerir también este tipo de resets, así que un trabajo más completo sería que el reset fuese una función genérica aplicable sobre cualquier gpio y usable dentro de platform data en cualquier router. Pero de momento quizás no sea necesario sino hay intención de enviar el parche para dar soporte oficial en OpenWrt.
Saludos