Lines Matching refs:flc
56 static int MXC_busy_flc(mxc_flc_reva_regs_t *flc) in MXC_busy_flc() argument
58 return (flc->ctrl & in MXC_busy_flc()
68 static int MXC_prepare_flc(mxc_flc_reva_regs_t *flc) in MXC_prepare_flc() argument
71 if (MXC_busy_flc(flc)) { in MXC_prepare_flc()
76 flc->clkdiv = SystemCoreClock / 1000000; in MXC_prepare_flc()
79 if (flc->intr & MXC_F_FLC_REVA_INTR_AF) { in MXC_prepare_flc()
80 flc->intr &= ~MXC_F_FLC_REVA_INTR_AF; in MXC_prepare_flc()
84 flc->ctrl = (flc->ctrl & ~MXC_F_FLC_REVA_CTRL_UNLOCK) | MXC_S_FLC_REVA_CTRL_UNLOCK_UNLOCKED; in MXC_prepare_flc()
99 mxc_flc_reva_regs_t *flc; in MXC_FLC_RevA_Busy() local
102 flc = (mxc_flc_reva_regs_t *)MXC_FLC_GET_FLC(i); in MXC_FLC_RevA_Busy()
103 flc_cn = MXC_busy_flc(flc); in MXC_FLC_RevA_Busy()
118 int MXC_FLC_RevA_MassErase(mxc_flc_reva_regs_t *flc) in MXC_FLC_RevA_MassErase() argument
122 if ((err = MXC_prepare_flc(flc)) != E_NO_ERROR) { in MXC_FLC_RevA_MassErase()
127 flc->ctrl = (flc->ctrl & ~MXC_F_FLC_REVA_CTRL_ERASE_CODE) | in MXC_FLC_RevA_MassErase()
131 flc->ctrl |= MXC_F_FLC_REVA_CTRL_ME; in MXC_FLC_RevA_MassErase()
134 while (MXC_busy_flc(flc)) {} in MXC_FLC_RevA_MassErase()
137 flc->ctrl &= ~MXC_F_FLC_REVA_CTRL_UNLOCK; in MXC_FLC_RevA_MassErase()
140 if (flc->intr & MXC_F_FLC_REVA_INTR_AF) { in MXC_FLC_RevA_MassErase()
141 flc->intr &= ~MXC_F_FLC_REVA_INTR_AF; in MXC_FLC_RevA_MassErase()
154 int MXC_FLC_RevA_PageErase(mxc_flc_reva_regs_t *flc, uint32_t addr) in MXC_FLC_RevA_PageErase() argument
158 if ((err = MXC_prepare_flc(flc)) != E_NO_ERROR) { in MXC_FLC_RevA_PageErase()
163 flc->ctrl = (flc->ctrl & ~MXC_F_FLC_REVA_CTRL_ERASE_CODE) | in MXC_FLC_RevA_PageErase()
166 flc->addr = addr; in MXC_FLC_RevA_PageErase()
167 flc->ctrl |= MXC_F_FLC_REVA_CTRL_PGE; in MXC_FLC_RevA_PageErase()
170 while (MXC_busy_flc(flc)) {} in MXC_FLC_RevA_PageErase()
173 flc->ctrl &= ~MXC_F_FLC_REVA_CTRL_UNLOCK; in MXC_FLC_RevA_PageErase()
176 if (flc->intr & MXC_F_FLC_REVA_INTR_AF) { in MXC_FLC_RevA_PageErase()
177 flc->intr &= ~MXC_F_FLC_REVA_INTR_AF; in MXC_FLC_RevA_PageErase()
191 int MXC_FLC_RevA_Write32(mxc_flc_reva_regs_t *flc, uint32_t logicAddr, uint32_t data, in MXC_FLC_RevA_Write32() argument
209 if ((err = MXC_prepare_flc(flc)) != E_NO_ERROR) { in MXC_FLC_RevA_Write32()
214 flc->ctrl |= MXC_F_FLC_REVA_CTRL_WDTH; in MXC_FLC_RevA_Write32()
217 flc->addr = logicAddr; in MXC_FLC_RevA_Write32()
218 flc->data[0] = data; in MXC_FLC_RevA_Write32()
219 flc->ctrl |= MXC_F_FLC_REVA_CTRL_WR; in MXC_FLC_RevA_Write32()
222 while ((flc->ctrl & MXC_F_FLC_REVA_CTRL_PEND) != 0) {} in MXC_FLC_RevA_Write32()
223 while (MXC_busy_flc(flc)) {} in MXC_FLC_RevA_Write32()
226 flc->ctrl &= ~MXC_F_FLC_REVA_CTRL_UNLOCK; in MXC_FLC_RevA_Write32()
229 if (flc->intr & MXC_F_FLC_REVA_INTR_AF) { in MXC_FLC_RevA_Write32()
230 flc->intr &= ~MXC_F_FLC_REVA_INTR_AF; in MXC_FLC_RevA_Write32()
244 int MXC_FLC_RevA_Write32Using128(mxc_flc_reva_regs_t *flc, uint32_t logicAddr, uint32_t data, in MXC_FLC_RevA_Write32Using128() argument
267 if ((err = MXC_prepare_flc(flc)) != E_NO_ERROR) { in MXC_FLC_RevA_Write32Using128()
277 flc->addr = physicalAddr; in MXC_FLC_RevA_Write32Using128()
299 int MXC_FLC_RevA_Write128(mxc_flc_reva_regs_t *flc, uint32_t addr, uint32_t *data) in MXC_FLC_RevA_Write128() argument
308 if ((err = MXC_prepare_flc(flc)) != E_NO_ERROR) { in MXC_FLC_RevA_Write128()
313 flc->ctrl &= ~MXC_F_FLC_REVA_CTRL_WDTH; in MXC_FLC_RevA_Write128()
316 flc->addr = addr; in MXC_FLC_RevA_Write128()
317 flc->data[0] = data[0]; in MXC_FLC_RevA_Write128()
318 flc->data[1] = data[1]; in MXC_FLC_RevA_Write128()
319 flc->data[2] = data[2]; in MXC_FLC_RevA_Write128()
320 flc->data[3] = data[3]; in MXC_FLC_RevA_Write128()
321 flc->ctrl |= MXC_F_FLC_REVA_CTRL_WR; in MXC_FLC_RevA_Write128()
324 while ((flc->ctrl & MXC_F_FLC_REVA_CTRL_PEND) != 0) {} in MXC_FLC_RevA_Write128()
325 while (MXC_busy_flc(flc)) {} in MXC_FLC_RevA_Write128()
328 flc->ctrl &= ~MXC_F_FLC_REVA_CTRL_UNLOCK; in MXC_FLC_RevA_Write128()
331 if (flc->intr & MXC_F_FLC_REVA_INTR_AF) { in MXC_FLC_RevA_Write128()
332 flc->intr &= ~MXC_F_FLC_REVA_INTR_AF; in MXC_FLC_RevA_Write128()
340 void MXC_FLC_RevA_SetFLCInt(mxc_flc_reva_regs_t *flc) in MXC_FLC_RevA_SetFLCInt() argument
342 flc_int = flc; in MXC_FLC_RevA_SetFLCInt()
406 int MXC_FLC_RevA_UnlockInfoBlock(mxc_flc_reva_regs_t *flc, uint32_t address) in MXC_FLC_RevA_UnlockInfoBlock() argument
414 flc->actrl = 0x1234; in MXC_FLC_RevA_UnlockInfoBlock()
417 flc->actrl = 0x3a7f5ca3; in MXC_FLC_RevA_UnlockInfoBlock()
418 flc->actrl = 0xa1e34f20; in MXC_FLC_RevA_UnlockInfoBlock()
419 flc->actrl = 0x9608b2c1; in MXC_FLC_RevA_UnlockInfoBlock()
425 int MXC_FLC_RevA_LockInfoBlock(mxc_flc_reva_regs_t *flc, uint32_t address) in MXC_FLC_RevA_LockInfoBlock() argument
432 flc->actrl = 0xDEADBEEF; in MXC_FLC_RevA_LockInfoBlock()