xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-omap5/sys_proto.h (revision dc557e9a1fe00ca9d884bd88feef5bebf23fede4)
1508a58faSSricharan /*
2508a58faSSricharan  * (C) Copyright 2010
3508a58faSSricharan  * Texas Instruments, <www.ti.com>
4508a58faSSricharan  *
51a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
6508a58faSSricharan  */
7508a58faSSricharan 
8508a58faSSricharan #ifndef _SYS_PROTO_H_
9508a58faSSricharan #define _SYS_PROTO_H_
10508a58faSSricharan 
11508a58faSSricharan #include <asm/arch/omap.h>
12508a58faSSricharan #include <asm/io.h>
13af1d002fSLokesh Vutla #include <asm/arch/clock.h>
14508a58faSSricharan #include <asm/omap_common.h>
156aff0509Spekon gupta #include <linux/mtd/omap_gpmc.h>
16af1d002fSLokesh Vutla #include <asm/arch/clock.h>
17939911a6STom Rini #include <asm/ti-common/sys_proto.h>
18508a58faSSricharan 
194a0eb757SSRICHARAN R DECLARE_GLOBAL_DATA_PTR;
204a0eb757SSRICHARAN R 
2171bed185SLokesh Vutla /*
2271bed185SLokesh Vutla  * Structure for Iodelay configuration registers.
2371bed185SLokesh Vutla  * Theoretical max for g_delay is 21560 ps.
2471bed185SLokesh Vutla  * Theoretical max for a_delay is 1/3rd of g_delay max.
2571bed185SLokesh Vutla  * So using u16 for both a/g_delay.
2671bed185SLokesh Vutla  */
2771bed185SLokesh Vutla struct iodelay_cfg_entry {
2871bed185SLokesh Vutla 	u16 offset;
2971bed185SLokesh Vutla 	u16 a_delay;
3071bed185SLokesh Vutla 	u16 g_delay;
3171bed185SLokesh Vutla };
3271bed185SLokesh Vutla 
33687054a7SLokesh Vutla struct pad_conf_entry {
34687054a7SLokesh Vutla 	u32 offset;
35687054a7SLokesh Vutla 	u32 val;
36687054a7SLokesh Vutla };
37687054a7SLokesh Vutla 
38508a58faSSricharan struct omap_sysinfo {
39508a58faSSricharan 	char *board_string;
40508a58faSSricharan };
41508a58faSSricharan extern const struct omap_sysinfo sysinfo;
42508a58faSSricharan 
43508a58faSSricharan void gpmc_init(void);
44508a58faSSricharan void watchdog_init(void);
45508a58faSSricharan u32 get_device_type(void);
46508a58faSSricharan void do_set_mux(u32 base, struct pad_conf_entry const *array, int size);
471f68451cSLokesh Vutla void do_set_mux32(u32 base, struct pad_conf_entry const *array, int size);
483ef56e61SPaul Kocialkowski void set_muxconf_regs(void);
49508a58faSSricharan u32 wait_on_value(u32, u32, void *, u32);
50508a58faSSricharan void sdelay(unsigned long);
5193e6253dSKipisz, Steven void setup_early_clocks(void);
52508a58faSSricharan void prcm_init(void);
53d88d6c8cSKipisz, Steven void do_board_detect(void);
54*61462cd7SKeerthy void vcores_init(void);
5501b753ffSSRICHARAN R void bypass_dpll(u32 const base);
56508a58faSSricharan void freq_update_core(void);
57508a58faSSricharan u32 get_sys_clk_freq(void);
58508a58faSSricharan u32 omap5_ddr_clk(void);
59508a58faSSricharan void cancel_out(u32 *num, u32 *den, u32 den_limit);
60508a58faSSricharan void sdram_init(void);
61508a58faSSricharan u32 omap_sdram_size(void);
62508a58faSSricharan u32 cortex_rev(void);
634596dcc1STom Rini void save_omap_boot_params(void);
64508a58faSSricharan void init_omap_revision(void);
65508a58faSSricharan void do_io_settings(void);
664ca94d81SLokesh Vutla void sri2c_init(void);
67a78274b2SNishanth Menon int omap_vc_bypass_send_value(u8 sa, u8 reg_addr, u8 reg_data);
6870239507SLokesh Vutla u32 warm_reset(void);
6938f25b12SLokesh Vutla void force_emif_self_refresh(void);
70ef1697e9SLokesh Vutla void get_ioregs(const struct ctrl_ioregs **regs);
71d4d986eeSLokesh Vutla void srcomp_enable(void);
720b1b60c7SLokesh Vutla void setup_warmreset_time(void);
73508a58faSSricharan 
div_round_up(u32 num,u32 den)740b1b60c7SLokesh Vutla static inline u32 div_round_up(u32 num, u32 den)
750b1b60c7SLokesh Vutla {
760b1b60c7SLokesh Vutla 	return (num + den - 1)/den;
770b1b60c7SLokesh Vutla }
780b1b60c7SLokesh Vutla 
usec_to_32k(u32 usec)790b1b60c7SLokesh Vutla static inline u32 usec_to_32k(u32 usec)
800b1b60c7SLokesh Vutla {
810b1b60c7SLokesh Vutla 	return div_round_up(32768 * usec, 1000000);
820b1b60c7SLokesh Vutla }
835f603761SPraveen Rao 
845f603761SPraveen Rao #define OMAP5_SERVICE_L2ACTLR_SET    0x104
851bbb556aSNishanth Menon #define OMAP5_SERVICE_ACR_SET        0x107
865f603761SPraveen Rao 
87508a58faSSricharan #endif
88