Lines Matching refs:mbus

163 static bool mvebu_mbus_window_is_remappable(struct mvebu_mbus_state *mbus,  in mvebu_mbus_window_is_remappable()  argument
166 return mbus->soc->win_remap_offset(win) != MVEBU_MBUS_NO_REMAP; in mvebu_mbus_window_is_remappable()
173 static void mvebu_mbus_read_window(struct mvebu_mbus_state *mbus, in mvebu_mbus_read_window() argument
178 void __iomem *addr = mbus->mbuswins_base + in mvebu_mbus_read_window()
179 mbus->soc->win_cfg_offset(win); in mvebu_mbus_read_window()
200 if (mvebu_mbus_window_is_remappable(mbus, win)) { in mvebu_mbus_read_window()
202 void __iomem *addr_rmp = mbus->mbuswins_base + in mvebu_mbus_read_window()
203 mbus->soc->win_remap_offset(win); in mvebu_mbus_read_window()
212 static void mvebu_mbus_disable_window(struct mvebu_mbus_state *mbus, in mvebu_mbus_disable_window() argument
217 addr = mbus->mbuswins_base + mbus->soc->win_cfg_offset(win); in mvebu_mbus_disable_window()
221 if (mvebu_mbus_window_is_remappable(mbus, win)) { in mvebu_mbus_disable_window()
222 addr = mbus->mbuswins_base + mbus->soc->win_remap_offset(win); in mvebu_mbus_disable_window()
230 static int mvebu_mbus_window_is_free(struct mvebu_mbus_state *mbus, in mvebu_mbus_window_is_free() argument
233 void __iomem *addr = mbus->mbuswins_base + in mvebu_mbus_window_is_free()
234 mbus->soc->win_cfg_offset(win); in mvebu_mbus_window_is_free()
244 static int mvebu_mbus_window_conflicts(struct mvebu_mbus_state *mbus, in mvebu_mbus_window_conflicts() argument
251 for (win = 0; win < mbus->soc->num_wins; win++) { in mvebu_mbus_window_conflicts()
257 mvebu_mbus_read_window(mbus, win, in mvebu_mbus_window_conflicts()
277 static int mvebu_mbus_find_window(struct mvebu_mbus_state *mbus, in mvebu_mbus_find_window() argument
282 for (win = 0; win < mbus->soc->num_wins; win++) { in mvebu_mbus_find_window()
287 mvebu_mbus_read_window(mbus, win, in mvebu_mbus_find_window()
301 static int mvebu_mbus_setup_window(struct mvebu_mbus_state *mbus, in mvebu_mbus_setup_window() argument
306 void __iomem *addr = mbus->mbuswins_base + in mvebu_mbus_setup_window()
307 mbus->soc->win_cfg_offset(win); in mvebu_mbus_setup_window()
325 if (mbus->hw_io_coherency) in mvebu_mbus_setup_window()
331 if (mvebu_mbus_window_is_remappable(mbus, win)) { in mvebu_mbus_setup_window()
332 void __iomem *addr_rmp = mbus->mbuswins_base + in mvebu_mbus_setup_window()
333 mbus->soc->win_remap_offset(win); in mvebu_mbus_setup_window()
346 static int mvebu_mbus_alloc_window(struct mvebu_mbus_state *mbus, in mvebu_mbus_alloc_window() argument
354 for (win = 0; win < mbus->soc->num_wins; win++) { in mvebu_mbus_alloc_window()
355 if (mvebu_mbus_window_is_remappable(mbus, win)) in mvebu_mbus_alloc_window()
358 if (mvebu_mbus_window_is_free(mbus, win)) in mvebu_mbus_alloc_window()
359 return mvebu_mbus_setup_window(mbus, win, base, in mvebu_mbus_alloc_window()
365 for (win = 0; win < mbus->soc->num_wins; win++) { in mvebu_mbus_alloc_window()
368 !mvebu_mbus_window_is_remappable(mbus, win)) in mvebu_mbus_alloc_window()
371 if (mvebu_mbus_window_is_free(mbus, win)) in mvebu_mbus_alloc_window()
372 return mvebu_mbus_setup_window(mbus, win, base, size, in mvebu_mbus_alloc_window()
384 static int mvebu_sdram_debug_show_orion(struct mvebu_mbus_state *mbus, in mvebu_sdram_debug_show_orion() argument
390 u32 basereg = readl(mbus->sdramwins_base + DDR_BASE_CS_OFF(i)); in mvebu_sdram_debug_show_orion()
391 u32 sizereg = readl(mbus->sdramwins_base + DDR_SIZE_CS_OFF(i)); in mvebu_sdram_debug_show_orion()
414 static int mvebu_sdram_debug_show_dove(struct mvebu_mbus_state *mbus, in mvebu_sdram_debug_show_dove() argument
420 u32 map = readl(mbus->sdramwins_base + DOVE_DDR_BASE_CS_OFF(i)); in mvebu_sdram_debug_show_dove()
442 struct mvebu_mbus_state *mbus = &mbus_state; in mvebu_sdram_debug_show() local
443 return mbus->soc->show_cpu_target(mbus, seq, v); in mvebu_sdram_debug_show()
460 struct mvebu_mbus_state *mbus = &mbus_state; in mvebu_devs_debug_show() local
463 for (win = 0; win < mbus->soc->num_wins; win++) { in mvebu_devs_debug_show()
469 mvebu_mbus_read_window(mbus, win, in mvebu_devs_debug_show()
486 if (mvebu_mbus_window_is_remappable(mbus, win)) { in mvebu_devs_debug_show()
580 mvebu_mbus_default_setup_cpu_target(struct mvebu_mbus_state *mbus) in mvebu_mbus_default_setup_cpu_target() argument
588 u32 base = readl(mbus->sdramwins_base + DDR_BASE_CS_OFF(i)); in mvebu_mbus_default_setup_cpu_target()
589 u32 size = readl(mbus->sdramwins_base + DDR_SIZE_CS_OFF(i)); in mvebu_mbus_default_setup_cpu_target()
604 if (mbus->hw_io_coherency) in mvebu_mbus_default_setup_cpu_target()
614 mvebu_mbus_default_save_cpu_target(struct mvebu_mbus_state *mbus, in mvebu_mbus_default_save_cpu_target() argument
620 u32 base = readl(mbus->sdramwins_base + DDR_BASE_CS_OFF(i)); in mvebu_mbus_default_save_cpu_target()
621 u32 size = readl(mbus->sdramwins_base + DDR_SIZE_CS_OFF(i)); in mvebu_mbus_default_save_cpu_target()
623 writel(mbus->sdramwins_phys_base + DDR_BASE_CS_OFF(i), in mvebu_mbus_default_save_cpu_target()
626 writel(mbus->sdramwins_phys_base + DDR_SIZE_CS_OFF(i), in mvebu_mbus_default_save_cpu_target()
636 mvebu_mbus_dove_setup_cpu_target(struct mvebu_mbus_state *mbus) in mvebu_mbus_dove_setup_cpu_target() argument
644 u32 map = readl(mbus->sdramwins_base + DOVE_DDR_BASE_CS_OFF(i)); in mvebu_mbus_dove_setup_cpu_target()
666 mvebu_mbus_dove_save_cpu_target(struct mvebu_mbus_state *mbus, in mvebu_mbus_dove_save_cpu_target() argument
672 u32 map = readl(mbus->sdramwins_base + DOVE_DDR_BASE_CS_OFF(i)); in mvebu_mbus_dove_save_cpu_target()
674 writel(mbus->sdramwins_phys_base + DOVE_DDR_BASE_CS_OFF(i), in mvebu_mbus_dove_save_cpu_target()
929 static int __init mvebu_mbus_common_init(struct mvebu_mbus_state *mbus, in mvebu_mbus_common_init() argument
940 mbus->mbuswins_base = ioremap(mbuswins_phys_base, mbuswins_size); in mvebu_mbus_common_init()
941 if (!mbus->mbuswins_base) in mvebu_mbus_common_init()
944 mbus->sdramwins_base = ioremap(sdramwins_phys_base, sdramwins_size); in mvebu_mbus_common_init()
945 if (!mbus->sdramwins_base) { in mvebu_mbus_common_init()
950 mbus->sdramwins_phys_base = sdramwins_phys_base; in mvebu_mbus_common_init()
953 mbus->mbusbridge_base = ioremap(mbusbridge_phys_base, in mvebu_mbus_common_init()
955 if (!mbus->mbusbridge_base) { in mvebu_mbus_common_init()
956 iounmap(mbus->sdramwins_base); in mvebu_mbus_common_init()
957 iounmap(mbus->mbuswins_base); in mvebu_mbus_common_init()
961 mbus->mbusbridge_base = NULL; in mvebu_mbus_common_init()
963 for (win = 0; win < mbus->soc->num_wins; win++) in mvebu_mbus_common_init()
964 mvebu_mbus_disable_window(mbus, win); in mvebu_mbus_common_init()
966 mbus->soc->setup_cpu_target(mbus); in mvebu_mbus_common_init()
970 mbus->mbuswins_base + UNIT_SYNC_BARRIER_OFF); in mvebu_mbus_common_init()
1014 static int __init mbus_dt_setup_win(struct mvebu_mbus_state *mbus, in mbus_dt_setup_win() argument
1018 if (!mvebu_mbus_window_conflicts(mbus, base, size, target, attr)) { in mbus_dt_setup_win()
1024 if (mvebu_mbus_alloc_window(mbus, base, size, MVEBU_MBUS_NO_REMAP, in mbus_dt_setup_win()
1069 static int __init mbus_dt_setup(struct mvebu_mbus_state *mbus, in mbus_dt_setup() argument
1100 ret = mbus_dt_setup_win(mbus, base, size, target, attr); in mbus_dt_setup()