Lines Matching refs:bank
196 u32 bank; member
221 static int spear_smi_read_sr(struct spear_smi *dev, u32 bank) in spear_smi_read_sr() argument
234 writel((bank << BANK_SHIFT) | RD_STATUS_REG | TFIE, in spear_smi_read_sr()
264 static int spear_smi_wait_till_ready(struct spear_smi *dev, u32 bank, in spear_smi_wait_till_ready() argument
272 status = spear_smi_read_sr(dev, bank); in spear_smi_wait_till_ready()
379 static int spear_smi_write_enable(struct spear_smi *dev, u32 bank) in spear_smi_write_enable() argument
392 writel((bank << BANK_SHIFT) | WE | TFIE, dev->io_base + SMI_CR2); in spear_smi_write_enable()
407 if (dev->status & (1 << (bank + WM_SHIFT))) in spear_smi_write_enable()
445 u32 bank, u32 command, u32 bytes) in spear_smi_erase_sector() argument
450 ret = spear_smi_wait_till_ready(dev, bank, SMI_MAX_TIME_OUT); in spear_smi_erase_sector()
454 ret = spear_smi_write_enable(dev, bank); in spear_smi_erase_sector()
466 writel((bank << BANK_SHIFT) | SEND | TFIE | (bytes << TX_LEN_SHIFT), in spear_smi_erase_sector()
498 u32 addr, command, bank; in spear_mtd_erase() local
504 bank = flash->bank; in spear_mtd_erase()
505 if (bank > dev->num_flashes - 1) { in spear_mtd_erase()
519 ret = spear_smi_erase_sector(dev, bank, command, 4); in spear_mtd_erase()
560 if (flash->bank > dev->num_flashes - 1) { in spear_mtd_read()
571 ret = spear_smi_wait_till_ready(dev, flash->bank, SMI_MAX_TIME_OUT); in spear_mtd_read()
598 static inline int spear_smi_cpy_toio(struct spear_smi *dev, u32 bank, in spear_smi_cpy_toio() argument
605 ret = spear_smi_wait_till_ready(dev, bank, SMI_MAX_TIME_OUT); in spear_smi_cpy_toio()
610 ret = spear_smi_write_enable(dev, bank); in spear_smi_cpy_toio()
653 if (flash->bank > dev->num_flashes - 1) { in spear_mtd_write()
666 ret = spear_smi_cpy_toio(dev, flash->bank, dest, buf, len); in spear_mtd_write()
675 ret = spear_smi_cpy_toio(dev, flash->bank, dest, buf, in spear_mtd_write()
688 ret = spear_smi_cpy_toio(dev, flash->bank, dest + i, in spear_mtd_write()
712 static int spear_smi_probe_flash(struct spear_smi *dev, u32 bank) in spear_smi_probe_flash() argument
717 ret = spear_smi_wait_till_ready(dev, bank, SMI_PROBE_TIMEOUT); in spear_smi_probe_flash()
731 val = (bank << BANK_SHIFT) | SEND | (1 << TX_LEN_SHIFT) | in spear_smi_probe_flash()
810 u32 bank, struct device_node *np) in spear_smi_setup_banks() argument
823 if (bank > pdata->num_flashes - 1) in spear_smi_setup_banks()
826 flash_info = &pdata->board_flash_info[bank]; in spear_smi_setup_banks()
833 flash->bank = bank; in spear_smi_setup_banks()
838 flash_index = spear_smi_probe_flash(dev, bank); in spear_smi_setup_banks()
840 dev_info(&dev->pdev->dev, "smi-nor%d not found\n", bank); in spear_smi_setup_banks()
849 dev->flash[bank] = flash; in spear_smi_setup_banks()