blob: 685341c5069384a7e677286b8a71d245a38bb173 [file] [log] [blame]
/*
* clk.h
*
* DSP-BIOS Bridge driver support functions for TI OMAP processors.
*
* Provides Clock functions.
*
* Copyright (C) 2005-2006 Texas Instruments, Inc.
*
* This package is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#ifndef _CLK_H
#define _CLK_H
enum dsp_clk_id {
DSP_CLK_IVA2 = 0,
DSP_CLK_GPT5,
DSP_CLK_GPT6,
DSP_CLK_GPT7,
DSP_CLK_GPT8,
DSP_CLK_WDT3,
DSP_CLK_MCBSP1,
DSP_CLK_MCBSP2,
DSP_CLK_MCBSP3,
DSP_CLK_MCBSP4,
DSP_CLK_MCBSP5,
DSP_CLK_SSI,
DSP_CLK_NOT_DEFINED
};
/*
* ======== dsp_clk_exit ========
* Purpose:
* Discontinue usage of module; free resources when reference count
* reaches 0.
* Parameters:
* Returns:
* Requires:
* CLK initialized.
* Ensures:
* Resources used by module are freed when cRef reaches zero.
*/
extern void dsp_clk_exit(void);
/*
* ======== dsp_clk_init ========
* Purpose:
* Initializes private state of CLK module.
* Parameters:
* Returns:
* TRUE if initialized; FALSE if error occurred.
* Requires:
* Ensures:
* CLK initialized.
*/
extern void dsp_clk_init(void);
void dsp_gpt_wait_overflow(short int clk_id, unsigned int load);
/*
* ======== dsp_clk_enable ========
* Purpose:
* Enables the clock requested.
* Parameters:
* Returns:
* 0: Success.
* -EPERM: Error occurred while enabling the clock.
* Requires:
* Ensures:
*/
extern int dsp_clk_enable(enum dsp_clk_id clk_id);
u32 dsp_clock_enable_all(u32 dsp_per_clocks);
/*
* ======== dsp_clk_disable ========
* Purpose:
* Disables the clock requested.
* Parameters:
* Returns:
* 0: Success.
* -EPERM: Error occurred while disabling the clock.
* Requires:
* Ensures:
*/
extern int dsp_clk_disable(enum dsp_clk_id clk_id);
extern u32 dsp_clk_get_iva2_rate(void);
u32 dsp_clock_disable_all(u32 dsp_per_clocks);
extern void ssi_clk_prepare(bool FLAG);
#endif /* _SYNC_H */