diff options
Diffstat (limited to 'arch/arm/mach-omap2/mux.c')
| -rw-r--r-- | arch/arm/mach-omap2/mux.c | 10 | 
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index 26126343d6a..6a217c98db5 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c @@ -135,10 +135,7 @@ static int __init _omap_mux_init_gpio(struct omap_mux_partition *partition,  	old_mode = omap_mux_read(partition, gpio_mux->reg_offset);  	mux_mode = val & ~(OMAP_MUX_NR_MODES - 1); -	if (partition->flags & OMAP_MUX_GPIO_IN_MODE3) -		mux_mode |= OMAP_MUX_MODE3; -	else -		mux_mode |= OMAP_MUX_MODE4; +	mux_mode |= partition->gpio;  	pr_debug("%s: Setting signal %s.gpio%i 0x%04x -> 0x%04x\n", __func__,  		 gpio_mux->muxnames[0], gpio, old_mode, mux_mode);  	omap_mux_write(partition, mux_mode, gpio_mux->reg_offset); @@ -800,7 +797,7 @@ int __init omap_mux_late_init(void)  			struct omap_mux *m = &e->mux;  			u16 mode = omap_mux_read(partition, m->reg_offset); -			if (OMAP_MODE_GPIO(mode)) +			if (OMAP_MODE_GPIO(partition, mode))  				continue;  #ifndef CONFIG_DEBUG_FS @@ -1065,7 +1062,7 @@ static void __init omap_mux_init_list(struct omap_mux_partition *partition,  		}  #else  		/* Skip pins that are not muxed as GPIO by bootloader */ -		if (!OMAP_MODE_GPIO(omap_mux_read(partition, +		if (!OMAP_MODE_GPIO(partition, omap_mux_read(partition,  				    superset->reg_offset))) {  			superset++;  			continue; @@ -1132,6 +1129,7 @@ int __init omap_mux_init(const char *name, u32 flags,  	partition->name = name;  	partition->flags = flags; +	partition->gpio = flags & OMAP_MUX_MODE7;  	partition->size = mux_size;  	partition->phys = mux_pbase;  	partition->base = ioremap(mux_pbase, mux_size);  |