Lines Matching refs:meson_chip
265 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_select_chip() local
269 if (chip < 0 || WARN_ON_ONCE(chip >= meson_chip->nsels)) in meson_nfc_select_chip()
272 nfc->param.chip_select = meson_chip->sels[chip] ? NAND_CE1 : NAND_CE0; in meson_nfc_select_chip()
274 nfc->timing.twb = meson_chip->twb; in meson_nfc_select_chip()
275 nfc->timing.tadl = meson_chip->tadl; in meson_nfc_select_chip()
276 nfc->timing.tbers_max = meson_chip->tbers_max; in meson_nfc_select_chip()
278 if (nfc->clk_rate != meson_chip->clk_rate) { in meson_nfc_select_chip()
279 ret = clk_set_rate(nfc->nand_clk, meson_chip->clk_rate); in meson_nfc_select_chip()
284 nfc->clk_rate = meson_chip->clk_rate; in meson_nfc_select_chip()
286 if (nfc->bus_timing != meson_chip->bus_timing) { in meson_nfc_select_chip()
287 value = (NFC_CLK_CYCLE - 1) | (meson_chip->bus_timing << 5); in meson_nfc_select_chip()
290 nfc->bus_timing = meson_chip->bus_timing; in meson_nfc_select_chip()
308 const struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_is_boot_page() local
311 !(page % meson_chip->boot_page_step) && in meson_nfc_is_boot_page()
312 (page < meson_chip->boot_pages); in meson_nfc_is_boot_page()
317 const struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_cmd_access() local
343 cmd = CMDRWGEN(DMA_DIR(dir), scrambler, meson_chip->bch_mode, in meson_nfc_cmd_access()
395 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_oob_ptr() local
400 return meson_chip->data_buf + len; in meson_nfc_oob_ptr()
405 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_data_ptr() local
411 return meson_chip->data_buf + len; in meson_nfc_data_ptr()
536 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_set_user_byte() local
541 info = &meson_chip->info_buf[i]; in meson_nfc_set_user_byte()
549 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_get_user_byte() local
554 info = &meson_chip->info_buf[i]; in meson_nfc_get_user_byte()
564 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_ecc_correct() local
569 info = &meson_chip->info_buf[i]; in meson_nfc_ecc_correct()
751 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_write_page_sub() local
766 ret = meson_nfc_dma_buffer_setup(nand, meson_chip->data_buf, in meson_nfc_write_page_sub()
767 data_len, meson_chip->info_buf, in meson_nfc_write_page_sub()
797 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_write_page_hwecc() local
800 memcpy(meson_chip->data_buf, buf, mtd->writesize); in meson_nfc_write_page_hwecc()
801 memset(meson_chip->info_buf, 0, nand->ecc.steps * PER_INFO_BYTE); in meson_nfc_write_page_hwecc()
810 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_check_ecc_pages_valid() local
816 info = &meson_chip->info_buf[neccpages - 1]; in meson_nfc_check_ecc_pages_valid()
832 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_read_page_sub() local
845 ret = meson_nfc_dma_buffer_setup(nand, meson_chip->data_buf, in meson_nfc_read_page_sub()
846 data_len, meson_chip->info_buf, in meson_nfc_read_page_sub()
880 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_read_page_hwecc() local
923 } else if (buf && buf != meson_chip->data_buf) { in meson_nfc_read_page_hwecc()
924 memcpy(buf, meson_chip->data_buf, mtd->writesize); in meson_nfc_read_page_hwecc()
1030 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_exec_op() local
1049 meson_chip->level1_divider * in meson_nfc_exec_op()
1216 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_free_buffer() local
1218 kfree(meson_chip->info_buf); in meson_nfc_free_buffer()
1219 kfree(meson_chip->data_buf); in meson_nfc_free_buffer()
1225 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_chip_buffer_init() local
1233 meson_chip->data_buf = kmalloc(page_bytes, GFP_KERNEL); in meson_chip_buffer_init()
1234 if (!meson_chip->data_buf) in meson_chip_buffer_init()
1237 meson_chip->info_buf = kmalloc(info_bytes, GFP_KERNEL); in meson_chip_buffer_init()
1238 if (!meson_chip->info_buf) { in meson_chip_buffer_init()
1239 kfree(meson_chip->data_buf); in meson_chip_buffer_init()
1250 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nfc_setup_interface() local
1266 meson_chip->twb = DIV_ROUND_UP(PSEC_TO_NSEC(timings->tWB_max), in meson_nfc_setup_interface()
1268 meson_chip->tadl = DIV_ROUND_UP(PSEC_TO_NSEC(timings->tADL_min), in meson_nfc_setup_interface()
1272 meson_chip->tbers_max = ilog2(tbers_clocks); in meson_nfc_setup_interface()
1274 meson_chip->tbers_max++; in meson_nfc_setup_interface()
1282 meson_chip->level1_divider = div; in meson_nfc_setup_interface()
1283 meson_chip->clk_rate = 1000000000 / meson_chip->level1_divider; in meson_nfc_setup_interface()
1284 meson_chip->bus_timing = (bt_min + bt_max) / 2 + 1; in meson_nfc_setup_interface()
1291 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nand_bch_mode() local
1300 meson_chip->bch_mode = meson_ecc[i].bch; in meson_nand_bch_mode()
1316 struct meson_nfc_nand_chip *meson_chip = to_meson_nand(nand); in meson_nand_attach_chip() local
1325 meson_chip->sels[0]); in meson_nand_attach_chip()
1388 struct meson_nfc_nand_chip *meson_chip; in meson_nfc_nand_chip_init() local
1401 meson_chip = devm_kzalloc(dev, struct_size(meson_chip, sels, nsels), in meson_nfc_nand_chip_init()
1403 if (!meson_chip) in meson_nfc_nand_chip_init()
1406 meson_chip->nsels = nsels; in meson_nfc_nand_chip_init()
1422 nand = &meson_chip->nand; in meson_nfc_nand_chip_init()
1448 &meson_chip->boot_pages); in meson_nfc_nand_chip_init()
1457 &meson_chip->boot_page_step); in meson_nfc_nand_chip_init()
1473 list_add_tail(&meson_chip->node, &nfc->chips); in meson_nfc_nand_chip_init()
1480 struct meson_nfc_nand_chip *meson_chip; in meson_nfc_nand_chips_cleanup() local
1484 meson_chip = list_first_entry(&nfc->chips, in meson_nfc_nand_chips_cleanup()
1486 mtd = nand_to_mtd(&meson_chip->nand); in meson_nfc_nand_chips_cleanup()
1489 nand_cleanup(&meson_chip->nand); in meson_nfc_nand_chips_cleanup()
1490 list_del(&meson_chip->node); in meson_nfc_nand_chips_cleanup()