#define FSI_DIVISOR_DEFAULT            1
 #define FSI_DIVISOR_CABLED             2
 static u16 aspeed_fsi_divisor = FSI_DIVISOR_DEFAULT;
+module_param_named(bus_div,aspeed_fsi_divisor, ushort, 0);
 
 #define OPB_POLL_TIMEOUT               10000
 
        if (gpio) {
                /*
                 * Cable signal integrity means we should run the bus
-                * slightly slower
+                * slightly slower. Do not override if a kernel param
+                * has already overridden.
                 */
-               aspeed_fsi_divisor = FSI_DIVISOR_CABLED;
+               if (aspeed_fsi_divisor == FSI_DIVISOR_DEFAULT)
+                       aspeed_fsi_divisor = FSI_DIVISOR_CABLED;
+
                gpiod_direction_output(mux_gpio, 0);
                dev_info(dev, "FSI configured for external cable\n");
        } else {