Lines Matching refs:map

120 static inline u_long ow_reg_add(struct map_info *map, u_long offset)  in ow_reg_add()  argument
123 struct pcm_int_data *pcm_data = map->fldrv_priv; in ow_reg_add()
125 val = map->pfow_base + offset*pcm_data->bus_width; in ow_reg_add()
136 static inline void ow_enable(struct map_info *map) in ow_enable() argument
138 struct pcm_int_data *pcm_data = map->fldrv_priv; in ow_enable()
151 static inline void ow_disable(struct map_info *map) in ow_disable() argument
153 struct pcm_int_data *pcm_data = map->fldrv_priv; in ow_disable()
163 static int lpddr2_nvm_do_op(struct map_info *map, u_long cmd_code, in lpddr2_nvm_do_op() argument
171 struct pcm_int_data *pcm_data = map->fldrv_priv; in lpddr2_nvm_do_op()
185 map_write(map, cmd, ow_reg_add(map, CMD_CODE_OFS)); in lpddr2_nvm_do_op()
186 map_write(map, data_l, ow_reg_add(map, CMD_DATA_OFS)); in lpddr2_nvm_do_op()
187 map_write(map, add_l, ow_reg_add(map, CMD_ADD_L_OFS)); in lpddr2_nvm_do_op()
188 map_write(map, add_h, ow_reg_add(map, CMD_ADD_H_OFS)); in lpddr2_nvm_do_op()
189 map_write(map, mpr_l, ow_reg_add(map, MPR_L_OFS)); in lpddr2_nvm_do_op()
190 map_write(map, mpr_h, ow_reg_add(map, MPR_H_OFS)); in lpddr2_nvm_do_op()
192 map_write(map, cmd, ow_reg_add(map, CMD_CODE_OFS) + 2); in lpddr2_nvm_do_op()
193 map_write(map, data_h, ow_reg_add(map, CMD_DATA_OFS) + 2); in lpddr2_nvm_do_op()
194 map_write(map, add_l, ow_reg_add(map, CMD_ADD_L_OFS) + 2); in lpddr2_nvm_do_op()
195 map_write(map, add_h, ow_reg_add(map, CMD_ADD_H_OFS) + 2); in lpddr2_nvm_do_op()
196 map_write(map, mpr_l, ow_reg_add(map, MPR_L_OFS) + 2); in lpddr2_nvm_do_op()
197 map_write(map, mpr_h, ow_reg_add(map, MPR_H_OFS) + 2); in lpddr2_nvm_do_op()
203 prg_buff_ofs = (map_read(map, in lpddr2_nvm_do_op()
204 ow_reg_add(map, PRG_BUFFER_OFS))).x[0]; in lpddr2_nvm_do_op()
206 map_write(map, build_map_word(buf[i]), map->pfow_base + in lpddr2_nvm_do_op()
212 map_write(map, exec_cmd, ow_reg_add(map, CMD_EXEC_OFS)); in lpddr2_nvm_do_op()
214 map_write(map, exec_cmd, ow_reg_add(map, CMD_EXEC_OFS) + 2); in lpddr2_nvm_do_op()
218 sr = map_read(map, ow_reg_add(map, STATUS_REG_OFS)); in lpddr2_nvm_do_op()
221 sr = map_read(map, ow_reg_add(map, in lpddr2_nvm_do_op()
236 struct map_info *map = mtd->priv; in lpddr2_nvm_do_block_op() local
242 ow_enable(map); in lpddr2_nvm_do_block_op()
248 ret = lpddr2_nvm_do_op(map, block_op, 0x00, add, add, NULL); in lpddr2_nvm_do_block_op()
255 ow_disable(map); in lpddr2_nvm_do_block_op()
263 static int lpddr2_nvm_pfow_present(struct map_info *map) in lpddr2_nvm_pfow_present() argument
270 ow_enable(map); in lpddr2_nvm_pfow_present()
273 pfow_val[0] = map_read(map, ow_reg_add(map, PFOW_QUERY_STRING_P)); in lpddr2_nvm_pfow_present()
274 pfow_val[1] = map_read(map, ow_reg_add(map, PFOW_QUERY_STRING_F)); in lpddr2_nvm_pfow_present()
275 pfow_val[2] = map_read(map, ow_reg_add(map, PFOW_QUERY_STRING_O)); in lpddr2_nvm_pfow_present()
276 pfow_val[3] = map_read(map, ow_reg_add(map, PFOW_QUERY_STRING_W)); in lpddr2_nvm_pfow_present()
279 if (!map_word_equal(map, build_map_word('P'), pfow_val[0])) in lpddr2_nvm_pfow_present()
281 if (!map_word_equal(map, build_map_word('F'), pfow_val[1])) in lpddr2_nvm_pfow_present()
283 if (!map_word_equal(map, build_map_word('O'), pfow_val[2])) in lpddr2_nvm_pfow_present()
285 if (!map_word_equal(map, build_map_word('W'), pfow_val[3])) in lpddr2_nvm_pfow_present()
288 ow_disable(map); in lpddr2_nvm_pfow_present()
301 struct map_info *map = mtd->priv; in lpddr2_nvm_read() local
307 map_copy_from(map, buf, start_add, *retlen); in lpddr2_nvm_read()
319 struct map_info *map = mtd->priv; in lpddr2_nvm_write() local
320 struct pcm_int_data *pcm_data = map->fldrv_priv; in lpddr2_nvm_write()
327 ow_enable(map); in lpddr2_nvm_write()
342 ret = lpddr2_nvm_do_op(map, LPDDR2_NVM_SW_OVERWRITE, in lpddr2_nvm_write()
352 ret = lpddr2_nvm_do_op(map, LPDDR2_NVM_BUF_OVERWRITE, in lpddr2_nvm_write()
364 ow_disable(map); in lpddr2_nvm_write()
412 struct map_info *map; in lpddr2_nvm_probe() local
425 map = devm_kzalloc(&pdev->dev, sizeof(*map), GFP_KERNEL); in lpddr2_nvm_probe()
426 if (!map) in lpddr2_nvm_probe()
439 *map = (struct map_info) { in lpddr2_nvm_probe()
449 if (IS_ERR(map->virt)) in lpddr2_nvm_probe()
450 return PTR_ERR(map->virt); in lpddr2_nvm_probe()
452 simple_map_init(map); /* fill with default methods */ in lpddr2_nvm_probe()
462 mtd->priv = map; in lpddr2_nvm_probe()
468 if (!lpddr2_nvm_pfow_present(map)) { in lpddr2_nvm_probe()