
11 Jul
2020
11 Jul
'20
10:46 a.m.
On Mon, Jun 22, 2020 at 9:25 PM Mikhail Kshevetskiy mikhail.kshevetskiy@oktetlabs.ru wrote:
From: Mikhail Kshevetskiy Mikhail.Kshevetskiy@oktetlabs.ru
Here is an example of spinand driver initialization without CONFIG_DM enabled:
void board_nand_init(void) { static struct spinand_device spinand; static struct mtd_info mtd; static struct spi_slave *slave; int ret;
memset(&spinand, 0, sizeof(spinand)); memset(&mtd, 0, sizeof(mtd)); slave = spi_setup_slave(BUS, CS, MAX_HZ, MODE); if (!slave) { printf("SPI-NAND: Failed to set up SPI slave\n"); return; } slave->mode |= (SPI_TX_BYTE | SPI_RX_SLOW); slave->max_read_size = SPI_MAX_READ_SIZE; slave->max_write_size = SPI_MAX_WRITE_SIZE; ret = spinand_probe_no_dm(&spinand, slave, &mtd); if (!ret) nand_register(0, &mtd);
}
Using of dual and quad wire transfer modes requires:
- dual/quad speed capable hardware (both controller and flash)
- physical presence of 4 data wires (quad mode only)
- spi controller driver MUST supports slave->mem_ops.exec_op() operations (spi_xfer() interface will suits for single speed data transfer mode only)
Signed-off-by: Mikhail Kshevetskiy Mikhail.Kshevetskiy@oktetlabs.ru
Now it's time for dm only code, better not come up with nondm anymore as possible, please.
Jagan.