Lines Matching refs:map

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