diff options
| -rw-r--r-- | arch/blackfin/cpu/gpio.c | 15 | ||||
| -rw-r--r-- | arch/blackfin/lib/board.c | 3 | ||||
| -rw-r--r-- | drivers/gpio/adi_gpio2.c | 4 | ||||
| -rw-r--r-- | drivers/spi/bfin_spi.c | 4 | ||||
| -rw-r--r-- | include/mtd/cfi_flash.h | 14 | 
5 files changed, 26 insertions, 14 deletions
| diff --git a/arch/blackfin/cpu/gpio.c b/arch/blackfin/cpu/gpio.c index f74a0b7c0..f9aff4d89 100644 --- a/arch/blackfin/cpu/gpio.c +++ b/arch/blackfin/cpu/gpio.c @@ -247,7 +247,7 @@ static struct {  static void portmux_setup(unsigned short per)  { -	u16 y, offset, muxreg; +	u16 y, offset, muxreg, mask;  	u16 function = P_FUNCT2MUX(per);  	for (y = 0; y < ARRAY_SIZE(port_mux_lut); y++) { @@ -258,12 +258,13 @@ static void portmux_setup(unsigned short per)  			offset = port_mux_lut[y].offset;  			muxreg = bfin_read_PORT_MUX(); -			if (offset != 1) -				muxreg &= ~(1 << offset); +			if (offset == 1) +				mask = 3;  			else -				muxreg &= ~(3 << 1); +				mask = 1; -			muxreg |= (function << offset); +			muxreg &= ~(mask << offset); +			muxreg |= ((function & mask) << offset);  			bfin_write_PORT_MUX(muxreg);  		}  	} @@ -662,8 +663,8 @@ void special_gpio_free(unsigned gpio)  		return;  	} -	reserve(special_gpio, gpio); -	reserve(peri, gpio); +	unreserve(special_gpio, gpio); +	unreserve(peri, gpio);  	set_label(gpio, "free");  }  #endif diff --git a/arch/blackfin/lib/board.c b/arch/blackfin/lib/board.c index 10223bdb7..17d1f468d 100644 --- a/arch/blackfin/lib/board.c +++ b/arch/blackfin/lib/board.c @@ -67,6 +67,7 @@ static int display_banner(void)  static int init_baudrate(void)  {  	gd->baudrate = getenv_ulong("baudrate", 10, CONFIG_BAUDRATE); +	gd->bd->bi_baudrate = gd->baudrate;  	return 0;  } @@ -235,8 +236,6 @@ static int global_board_data_init(void)  	bd->bi_sclk = get_sclk();  	bd->bi_memstart = CONFIG_SYS_SDRAM_BASE;  	bd->bi_memsize = CONFIG_SYS_MAX_RAM_SIZE; -	bd->bi_baudrate = (gd->baudrate > 0) -		? simple_strtoul(gd->baudrate, NULL, 10) : CONFIG_BAUDRATE;  	return 0;  } diff --git a/drivers/gpio/adi_gpio2.c b/drivers/gpio/adi_gpio2.c index 7a034eba1..051073cee 100644 --- a/drivers/gpio/adi_gpio2.c +++ b/drivers/gpio/adi_gpio2.c @@ -352,8 +352,8 @@ void special_gpio_free(unsigned gpio)  		return;  	} -	reserve(special_gpio, gpio); -	reserve(peri, gpio); +	unreserve(special_gpio, gpio); +	unreserve(peri, gpio);  	set_label(gpio, "free");  }  #endif diff --git a/drivers/spi/bfin_spi.c b/drivers/spi/bfin_spi.c index a9a4d92c3..f7192c234 100644 --- a/drivers/spi/bfin_spi.c +++ b/drivers/spi/bfin_spi.c @@ -144,10 +144,8 @@ void spi_set_speed(struct spi_slave *slave, uint hz)  	u32 baud;  	sclk = get_sclk(); -	baud = sclk / (2 * hz);  	/* baud should be rounded up */ -	if (sclk % (2 * hz)) -		baud += 1; +	baud = DIV_ROUND_UP(sclk, 2 * hz);  	if (baud < 2)  		baud = 2;  	else if (baud > (u16)-1) diff --git a/include/mtd/cfi_flash.h b/include/mtd/cfi_flash.h index 5198ecd40..048b4773f 100644 --- a/include/mtd/cfi_flash.h +++ b/include/mtd/cfi_flash.h @@ -167,5 +167,19 @@ extern int cfi_flash_num_flash_banks;  void flash_write_cmd(flash_info_t * info, flash_sect_t sect,  		     uint offset, u32 cmd); +phys_addr_t cfi_flash_bank_addr(int i); +unsigned long cfi_flash_bank_size(int i); +void flash_cmd_reset(flash_info_t *info); + +#ifdef CONFIG_CFI_FLASH_USE_WEAK_ACCESSORS +void flash_write8(u8 value, void *addr); +void flash_write16(u16 value, void *addr); +void flash_write32(u32 value, void *addr); +void flash_write64(u64 value, void *addr); +u8 flash_read8(void *addr); +u16 flash_read16(void *addr); +u32 flash_read32(void *addr); +u64 flash_read64(void *addr); +#endif  #endif /* __CFI_FLASH_H__ */ |