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