xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-omap3/sys_proto.h (revision 50075153fe66d8f9a859191132e8f23f11ba57d4)
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