Lines Matching refs:map

129 static inline u_long ow_reg_add(struct map_info *map, u_long offset)  in ow_reg_add()  argument
132 struct pcm_int_data *pcm_data = map->fldrv_priv; in ow_reg_add()
134 val = map->pfow_base + offset*pcm_data->bus_width; in ow_reg_add()
145 static inline void ow_enable(struct map_info *map) in ow_enable() argument
147 struct pcm_int_data *pcm_data = map->fldrv_priv; in ow_enable()
160 static inline void ow_disable(struct map_info *map) in ow_disable() argument
162 struct pcm_int_data *pcm_data = map->fldrv_priv; in ow_disable()
172 static int lpddr2_nvm_do_op(struct map_info *map, u_long cmd_code, in lpddr2_nvm_do_op() argument
180 struct pcm_int_data *pcm_data = map->fldrv_priv; in lpddr2_nvm_do_op()
194 map_write(map, cmd, ow_reg_add(map, CMD_CODE_OFS)); in lpddr2_nvm_do_op()
195 map_write(map, data_l, ow_reg_add(map, CMD_DATA_OFS)); in lpddr2_nvm_do_op()
196 map_write(map, add_l, ow_reg_add(map, CMD_ADD_L_OFS)); in lpddr2_nvm_do_op()
197 map_write(map, add_h, ow_reg_add(map, CMD_ADD_H_OFS)); in lpddr2_nvm_do_op()
198 map_write(map, mpr_l, ow_reg_add(map, MPR_L_OFS)); in lpddr2_nvm_do_op()
199 map_write(map, mpr_h, ow_reg_add(map, MPR_H_OFS)); in lpddr2_nvm_do_op()
201 map_write(map, cmd, ow_reg_add(map, CMD_CODE_OFS) + 2); in lpddr2_nvm_do_op()
202 map_write(map, data_h, ow_reg_add(map, CMD_DATA_OFS) + 2); in lpddr2_nvm_do_op()
203 map_write(map, add_l, ow_reg_add(map, CMD_ADD_L_OFS) + 2); in lpddr2_nvm_do_op()
204 map_write(map, add_h, ow_reg_add(map, CMD_ADD_H_OFS) + 2); in lpddr2_nvm_do_op()
205 map_write(map, mpr_l, ow_reg_add(map, MPR_L_OFS) + 2); in lpddr2_nvm_do_op()
206 map_write(map, mpr_h, ow_reg_add(map, MPR_H_OFS) + 2); in lpddr2_nvm_do_op()
212 prg_buff_ofs = (map_read(map, in lpddr2_nvm_do_op()
213 ow_reg_add(map, PRG_BUFFER_OFS))).x[0]; in lpddr2_nvm_do_op()
215 map_write(map, build_map_word(buf[i]), map->pfow_base + in lpddr2_nvm_do_op()
221 map_write(map, exec_cmd, ow_reg_add(map, CMD_EXEC_OFS)); in lpddr2_nvm_do_op()
223 map_write(map, exec_cmd, ow_reg_add(map, CMD_EXEC_OFS) + 2); in lpddr2_nvm_do_op()
227 sr = map_read(map, ow_reg_add(map, STATUS_REG_OFS)); in lpddr2_nvm_do_op()
230 sr = map_read(map, ow_reg_add(map, in lpddr2_nvm_do_op()
245 struct map_info *map = mtd->priv; in lpddr2_nvm_do_block_op() local
251 ow_enable(map); in lpddr2_nvm_do_block_op()
257 ret = lpddr2_nvm_do_op(map, block_op, 0x00, add, add, NULL); in lpddr2_nvm_do_block_op()
264 ow_disable(map); in lpddr2_nvm_do_block_op()
272 static int lpddr2_nvm_pfow_present(struct map_info *map) in lpddr2_nvm_pfow_present() argument
279 ow_enable(map); in lpddr2_nvm_pfow_present()
282 pfow_val[0] = map_read(map, ow_reg_add(map, PFOW_QUERY_STRING_P)); in lpddr2_nvm_pfow_present()
283 pfow_val[1] = map_read(map, ow_reg_add(map, PFOW_QUERY_STRING_F)); in lpddr2_nvm_pfow_present()
284 pfow_val[2] = map_read(map, ow_reg_add(map, PFOW_QUERY_STRING_O)); in lpddr2_nvm_pfow_present()
285 pfow_val[3] = map_read(map, ow_reg_add(map, PFOW_QUERY_STRING_W)); in lpddr2_nvm_pfow_present()
288 if (!map_word_equal(map, build_map_word('P'), pfow_val[0])) in lpddr2_nvm_pfow_present()
290 if (!map_word_equal(map, build_map_word('F'), pfow_val[1])) in lpddr2_nvm_pfow_present()
292 if (!map_word_equal(map, build_map_word('O'), pfow_val[2])) in lpddr2_nvm_pfow_present()
294 if (!map_word_equal(map, build_map_word('W'), pfow_val[3])) in lpddr2_nvm_pfow_present()
297 ow_disable(map); in lpddr2_nvm_pfow_present()
310 struct map_info *map = mtd->priv; in lpddr2_nvm_read() local
316 map_copy_from(map, buf, start_add, *retlen); in lpddr2_nvm_read()
328 struct map_info *map = mtd->priv; in lpddr2_nvm_write() local
329 struct pcm_int_data *pcm_data = map->fldrv_priv; in lpddr2_nvm_write()
336 ow_enable(map); in lpddr2_nvm_write()
351 ret = lpddr2_nvm_do_op(map, LPDDR2_NVM_SW_OVERWRITE, in lpddr2_nvm_write()
361 ret = lpddr2_nvm_do_op(map, LPDDR2_NVM_BUF_OVERWRITE, in lpddr2_nvm_write()
373 ow_disable(map); in lpddr2_nvm_write()
416 struct map_info *map; in lpddr2_nvm_probe() local
430 map = devm_kzalloc(&pdev->dev, sizeof(*map), GFP_KERNEL); in lpddr2_nvm_probe()
431 if (!map) in lpddr2_nvm_probe()
442 *map = (struct map_info) { in lpddr2_nvm_probe()
451 if (IS_ERR(map->virt)) in lpddr2_nvm_probe()
452 return PTR_ERR(map->virt); in lpddr2_nvm_probe()
454 simple_map_init(map); /* fill with default methods */ in lpddr2_nvm_probe()
465 .priv = map, in lpddr2_nvm_probe()
479 if (!lpddr2_nvm_pfow_present(map)) { in lpddr2_nvm_probe()