xref: /openbmc/u-boot/arch/arm/include/asm/arch-omap4/sys_proto.h (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2d34efc76SSteve Sakoman /*
3d34efc76SSteve Sakoman  * (C) Copyright 2010
4d34efc76SSteve Sakoman  * Texas Instruments, <www.ti.com>
5d34efc76SSteve Sakoman  */
6d34efc76SSteve Sakoman 
7d34efc76SSteve Sakoman #ifndef _SYS_PROTO_H_
8d34efc76SSteve Sakoman #define _SYS_PROTO_H_
9d34efc76SSteve Sakoman 
10508a58faSSricharan #include <asm/arch/omap.h>
11af1d002fSLokesh Vutla #include <asm/arch/clock.h>
12d34efc76SSteve Sakoman #include <asm/io.h>
13d2f18c27SAneesh V #include <asm/omap_common.h>
146aff0509Spekon gupta #include <linux/mtd/omap_gpmc.h>
15469ec1e3SAneesh V #include <asm/arch/mux_omap4.h>
16939911a6STom Rini #include <asm/ti-common/sys_proto.h>
17d34efc76SSteve Sakoman 
187cb998baSPaul Kocialkowski #ifdef CONFIG_SYS_EMIF_PRECALCULATED_TIMING_REGS
19675cc77aSHardik Patel extern const struct emif_regs emif_regs_elpida_200_mhz_2cs;
20675cc77aSHardik Patel extern const struct emif_regs emif_regs_elpida_380_mhz_1cs;
21675cc77aSHardik Patel extern const struct emif_regs emif_regs_elpida_400_mhz_1cs;
22675cc77aSHardik Patel extern const struct emif_regs emif_regs_elpida_400_mhz_2cs;
2338e5a5abSNishanth Menon extern const struct dmm_lisa_map_regs lisa_map_2G_x_1_x_2;
2438e5a5abSNishanth Menon extern const struct dmm_lisa_map_regs lisa_map_2G_x_2_x_2;
2538e5a5abSNishanth Menon extern const struct dmm_lisa_map_regs ma_lisa_map_2G_x_2_x_2;
267cb998baSPaul Kocialkowski #else
277cb998baSPaul Kocialkowski extern const struct lpddr2_device_details elpida_2G_S4_details;
287cb998baSPaul Kocialkowski extern const struct lpddr2_device_details elpida_4G_S4_details;
297cb998baSPaul Kocialkowski #endif
3096703acdSPaul Kocialkowski 
31ed5ddebeSPaul Kocialkowski #ifdef CONFIG_SYS_DEFAULT_LPDDR2_TIMINGS
32ed5ddebeSPaul Kocialkowski extern const struct lpddr2_device_timings jedec_default_timings;
33ed5ddebeSPaul Kocialkowski #else
3496703acdSPaul Kocialkowski extern const struct lpddr2_device_timings elpida_2G_S4_timings;
3596703acdSPaul Kocialkowski #endif
3696703acdSPaul Kocialkowski 
37d34efc76SSteve Sakoman struct omap_sysinfo {
38d34efc76SSteve Sakoman 	char *board_string;
39d34efc76SSteve Sakoman };
40d2f18c27SAneesh V extern const struct omap_sysinfo sysinfo;
41d34efc76SSteve Sakoman 
4227952014SSteve Sakoman void gpmc_init(void);
43d34efc76SSteve Sakoman void watchdog_init(void);
44d34efc76SSteve Sakoman u32 get_device_type(void);
45469ec1e3SAneesh V void do_set_mux(u32 base, struct pad_conf_entry const *array, int size);
463ef56e61SPaul Kocialkowski void set_muxconf_regs(void);
470e7b6217SSteve Sakoman u32 wait_on_value(u32, u32, void *, u32);
480e7b6217SSteve Sakoman void sdelay(unsigned long);
4993e6253dSKipisz, Steven void setup_early_clocks(void);
503776801dSAneesh V void prcm_init(void);
51d88d6c8cSKipisz, Steven void do_board_detect(void);
5201b753ffSSRICHARAN R void bypass_dpll(u32 const base);
533776801dSAneesh V void freq_update_core(void);
543776801dSAneesh V u32 get_sys_clk_freq(void);
553776801dSAneesh V u32 omap4_ddr_clk(void);
56095aea29SAneesh V void cancel_out(u32 *num, u32 *den, u32 den_limit);
572ae610f0SAneesh V void sdram_init(void);
58508a58faSSricharan u32 omap_sdram_size(void);
59508a58faSSricharan u32 cortex_rev(void);
604596dcc1STom Rini void save_omap_boot_params(void);
61508a58faSSricharan void init_omap_revision(void);
62508a58faSSricharan void do_io_settings(void);
634ca94d81SLokesh Vutla void sri2c_init(void);
64a78274b2SNishanth Menon int omap_vc_bypass_send_value(u8 sa, u8 reg_addr, u8 reg_data);
6570239507SLokesh Vutla u32 warm_reset(void);
6638f25b12SLokesh Vutla void force_emif_self_refresh(void);
670b1b60c7SLokesh Vutla void setup_warmreset_time(void);
686d8abe6aSNishanth Menon 
696d8abe6aSNishanth Menon #define OMAP4_SERVICE_PL310_CONTROL_REG_SET	0x102
706d8abe6aSNishanth Menon 
71d34efc76SSteve Sakoman #endif
72