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 f74a0b7..f9aff4d 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 10223bd..17d1f46 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 7a034eb..051073c 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 a9a4d92..f7192c2 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 5198ecd..048b477 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__ */ |