162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci * Platform specific functions
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci * This file is subject to the terms and conditions of the GNU General
562306a36Sopenharmony_ci * Public License.  See the file "COPYING" in the main directory of
662306a36Sopenharmony_ci * this archive for more details.
762306a36Sopenharmony_ci *
862306a36Sopenharmony_ci * Copyright (C) 2001 - 2005 Tensilica Inc.
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#ifndef _XTENSA_PLATFORM_H
1262306a36Sopenharmony_ci#define _XTENSA_PLATFORM_H
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#include <linux/types.h>
1562306a36Sopenharmony_ci#include <asm/bootparam.h>
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci/*
1862306a36Sopenharmony_ci * platform_init is called before the mmu is initialized to give the
1962306a36Sopenharmony_ci * platform a early hook-up. bp_tag_t is a list of configuration tags
2062306a36Sopenharmony_ci * passed from the boot-loader.
2162306a36Sopenharmony_ci */
2262306a36Sopenharmony_ciextern void platform_init(bp_tag_t*);
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci/*
2562306a36Sopenharmony_ci * platform_setup is called from setup_arch with a pointer to the command-line
2662306a36Sopenharmony_ci * string.
2762306a36Sopenharmony_ci */
2862306a36Sopenharmony_ciextern void platform_setup (char **);
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci/*
3162306a36Sopenharmony_ci * platform_idle is called from the idle function.
3262306a36Sopenharmony_ci */
3362306a36Sopenharmony_ciextern void platform_idle (void);
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci/*
3662306a36Sopenharmony_ci * platform_calibrate_ccount calibrates cpu clock freq (CONFIG_XTENSA_CALIBRATE)
3762306a36Sopenharmony_ci */
3862306a36Sopenharmony_ciextern void platform_calibrate_ccount (void);
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci/*
4162306a36Sopenharmony_ci * Flush and reset the mmu, simulate a processor reset, and
4262306a36Sopenharmony_ci * jump to the reset vector.
4362306a36Sopenharmony_ci */
4462306a36Sopenharmony_civoid cpu_reset(void) __attribute__((noreturn));
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci#endif	/* _XTENSA_PLATFORM_H */
47