Lines Matching full:bch
21 #include "bch-regs.h"
25 #define GPMI_NAND_BCH_REGS_ADDR_RES_NAME "bch"
26 #define GPMI_NAND_BCH_INTERRUPT_RES_NAME "bch"
66 * But in MX23, there is a hardware bug in the BCH block (see erratum #2847).
67 * If you try to soft reset the BCH block, it becomes unusable until
69 * boots by NAND, the ROM of the chip will initialize the BCH blocks itself.
70 * So If the driver tries to reset the BCH again, the BCH will not work anymore.
156 * Reset BCH here, too. We got failures otherwise :( in gpmi_init()
157 * See later BCH reset for explanation of MX23 and MX28 handling in gpmi_init()
173 /* Select BCH ECC. */ in gpmi_init()
201 /* start to print out the BCH info */ in gpmi_dump_info()
202 dev_err(this->dev, "Show BCH registers :\n"); in gpmi_dump_info()
207 dev_err(this->dev, "BCH Geometry :\n" in gpmi_dump_info()
311 * P : the page size for BCH module. in set_geometry_by_ecc_info()
404 * enough space for BCH. in legacy_set_geometry()
527 /* Configures the geometry for BCH. */
542 * Due to erratum #2847 of the MX23, the BCH cannot be soft reset on this in bch_set_geometry()
543 * chip, otherwise it will lock up. So we skip resetting BCH on the MX23. in bch_set_geometry()
759 /* Clears a BCH interrupt. */
793 * raw_len is the length to read/write including bch data which in gpmi_raw_len_to_len()
796 if (this->bch) in gpmi_raw_len_to_len()
1127 dev_err(this->dev, "error requesting BCH IRQ\n"); in acquire_bch_irq()
1457 this->bch = true; in gpmi_ecc_read_page()
1551 this->bch = true; in gpmi_ecc_read_subpage()
1557 dev_dbg(this->dev, "page:%d(%d:%d)%d, chunk:(%d:%d), BCH PG size:%d\n", in gpmi_ecc_read_subpage()
1576 this->bch = true; in gpmi_ecc_write_page()
1706 * The tricky part in the GPMI/BCH controller is that it stores ECC bits
1793 * The tricky part in the GPMI/BCH controller is that it stores ECC bits
2148 /* Set up the NFC geometry which is used by BCH. */ in gpmi_set_geometry()
2151 dev_err(this->dev, "Error setting BCH geometry : %d\n", ret); in gpmi_set_geometry()
2320 if (this->bch) { in gpmi_chain_data_read()
2335 if (!this->bch) in gpmi_chain_data_read()
2366 if (this->bch) { in gpmi_chain_data_write()
2378 (this->bch ? MXS_DMA_CTRL_WAIT4END : 0)); in gpmi_chain_data_write()
2382 if (!this->bch) in gpmi_chain_data_write()
2487 if (this->bch) { in gpmi_nfc_exec_op()
2494 if (this->bch && buf_read) { in gpmi_nfc_exec_op()
2536 this->bch = false; in gpmi_nfc_exec_op()
2725 /* re-init the BCH registers */ in gpmi_pm_resume()
2728 dev_err(this->dev, "Error setting BCH : %d\n", ret); in gpmi_pm_resume()