1819833afSPeter Tyser /* 2819833afSPeter Tyser * (C) Copyright 2004-2008 3819833afSPeter Tyser * Texas Instruments, <www.ti.com> 4819833afSPeter Tyser * Richard Woodruff <r-woodruff2@ti.com> 5819833afSPeter Tyser * 61a459660SWolfgang Denk * SPDX-License-Identifier: GPL-2.0+ 7819833afSPeter Tyser */ 8819833afSPeter Tyser #ifndef _SYS_PROTO_H_ 9819833afSPeter Tyser #define _SYS_PROTO_H_ 106aff0509Spekon gupta #include <linux/mtd/omap_gpmc.h> 11548a64d8SNishanth Menon #include <asm/omap_common.h> 12819833afSPeter Tyser 13819833afSPeter Tyser typedef struct { 14819833afSPeter Tyser u32 mtype; 15819833afSPeter Tyser char *board_string; 16819833afSPeter Tyser char *nand_string; 17819833afSPeter Tyser } omap3_sysinfo; 18819833afSPeter Tyser 1945bf0585SAneesh V struct emu_hal_params { 2045bf0585SAneesh V u32 num_params; 2145bf0585SAneesh V u32 param1; 2245bf0585SAneesh V }; 2345bf0585SAneesh V 248c4445d2SPeter Barada /* Board SDRC timing values */ 258c4445d2SPeter Barada struct board_sdrc_timings { 2603843da5SAlbert ARIBAUD \(3ADEV\) u32 sharing; 278c4445d2SPeter Barada u32 mcfg; 288c4445d2SPeter Barada u32 ctrla; 298c4445d2SPeter Barada u32 ctrlb; 308c4445d2SPeter Barada u32 rfr_ctrl; 318c4445d2SPeter Barada u32 mr; 328c4445d2SPeter Barada }; 338c4445d2SPeter Barada 34819833afSPeter Tyser void prcm_init(void); 35819833afSPeter Tyser void per_clocks_enable(void); 3695f87910SGovindraj.R void ehci_clocks_enable(void); 37819833afSPeter Tyser 38819833afSPeter Tyser void memif_init(void); 39819833afSPeter Tyser void sdrc_init(void); 40819833afSPeter Tyser void do_sdrc_init(u32, u32); 418c4445d2SPeter Barada 428c4445d2SPeter Barada void get_board_mem_timings(struct board_sdrc_timings *timings); 43b1509e3aSLadislav Michl int identify_nand_chip(int *mfr, int *id); 441a5038caSVaibhav Hiremath void emif4_init(void); 45819833afSPeter Tyser void gpmc_init(void); 460568dd06SLadislav Michl void enable_gpmc_cs_config(const u32 *gpmc_config, const struct gpmc_cs *cs, 470568dd06SLadislav Michl u32 base, u32 size); 4822d6ac49SLadislav Michl void set_gpmc_cs0(int flash_type); 49819833afSPeter Tyser 50819833afSPeter Tyser void watchdog_init(void); 51819833afSPeter Tyser void set_muxconf_regs(void); 52819833afSPeter Tyser 53b2b9169fSSteve Sakoman u32 get_cpu_family(void); 54819833afSPeter Tyser u32 get_cpu_rev(void); 55b2b9169fSSteve Sakoman u32 get_sku_id(void); 56819833afSPeter Tyser u32 is_gpmc_muxed(void); 57819833afSPeter Tyser u32 get_gpmc0_type(void); 58819833afSPeter Tyser u32 get_gpmc0_width(void); 59819833afSPeter Tyser u32 is_running_in_sdram(void); 60819833afSPeter Tyser u32 is_running_in_sram(void); 61819833afSPeter Tyser u32 is_running_in_flash(void); 62819833afSPeter Tyser u32 get_device_type(void); 63819833afSPeter Tyser void secureworld_exit(void); 64819833afSPeter Tyser void try_unlock_memory(void); 65819833afSPeter Tyser u32 get_boot_type(void); 66819833afSPeter Tyser void invalidate_dcache(u32); 67819833afSPeter Tyser u32 wait_on_value(u32, u32, void *, u32); 68bf855028SJeroen Hofstee void cancel_out(u32 *num, u32 *den, u32 den_limit); 69819833afSPeter Tyser void sdelay(unsigned long); 70819833afSPeter Tyser void make_cs1_contiguous(void); 71*50075153SLadislav Michl int omap_nand_switch_ecc(uint32_t, uint32_t); 72819833afSPeter Tyser void power_init_r(void); 7345bf0585SAneesh V void do_omap3_emu_romcode_call(u32 service_id, u32 parameters); 74cdef0b3fSNishanth Menon void omap3_set_aux_cr_secure(u32 acr); 7570239507SLokesh Vutla u32 warm_reset(void); 7660c7c30aSPaul Kocialkowski 7760c7c30aSPaul Kocialkowski void save_omap_boot_params(void); 78819833afSPeter Tyser #endif 79