Commit add68951 authored by Joel Stanley's avatar Joel Stanley
Browse files

fsi: aspeed: Add module param for bus divisor



For testing and hardware debugging a user may wish to override the
divisor at runtime. By setting fsi_master_aspeed.bus_div=N, the divisor
will be set to N, if 0 < N <= 0x3ff.

This is a module parameter and not a device tree option as it will only
need to be set when testing or debugging.

Reviewed-by: default avatarEddie James <eajames@linux.ibm.com>
Link: https://lore.kernel.org/r/20200728025527.174503-5-joel@jms.id.au


Signed-off-by: default avatarJoel Stanley <joel@jms.id.au>
parent 4a80c201
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -87,6 +87,7 @@ static const u32 fsi_base = 0xa0000000;
#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

@@ -454,9 +455,12 @@ static int tacoma_cabled_fsi_fixup(struct device *dev)
	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.
		 */
		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 {