blob: 71075bd5331ca6d07f72ee46010abdb4ab63f754 [file] [log] [blame]
Minkyu Kangb1b24682011-01-24 15:22:23 +09001/*
2 * (C) Copyright 2010 Samsung Electronics
3 * Minkyu Kang <mk7.kang@samsung.com>
4 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
Minkyu Kangb1b24682011-01-24 15:22:23 +09006 */
7
8#ifndef __ASM_ARM_ARCH_CLK_H_
9#define __ASM_ARM_ARCH_CLK_H_
10
11#define APLL 0
12#define MPLL 1
13#define EPLL 2
14#define HPLL 3
15#define VPLL 4
Rajeshwari Shinde84112862012-07-03 20:02:58 +000016#define BPLL 5
Minkyu Kangb1b24682011-01-24 15:22:23 +090017
Padmavathi Venna37feb7b2013-03-28 04:32:21 +000018enum pll_src_bit {
19 EXYNOS_SRC_MPLL = 6,
20 EXYNOS_SRC_EPLL,
21 EXYNOS_SRC_VPLL,
22};
23
Minkyu Kangb1b24682011-01-24 15:22:23 +090024unsigned long get_pll_clk(int pllreg);
25unsigned long get_arm_clk(void);
Rajeshwari Shinde1c9412a2012-07-23 21:23:48 +000026unsigned long get_i2c_clk(void);
Minkyu Kangb1b24682011-01-24 15:22:23 +090027unsigned long get_pwm_clk(void);
28unsigned long get_uart_clk(int dev_index);
Jaehoon Chung8788e062012-12-27 22:30:32 +000029unsigned long get_mmc_clk(int dev_index);
Jaehoon Chung9a772212011-05-17 21:19:17 +000030void set_mmc_clk(int dev_index, unsigned int div);
Donghwa Lee77ba1912012-04-05 19:36:12 +000031unsigned long get_lcd_clk(void);
32void set_lcd_clk(void);
33void set_mipi_clk(void);
Rajeshwari Shinde392a73a2012-10-25 19:49:29 +000034void set_i2s_clk_source(void);
35int set_i2s_clk_prescaler(unsigned int src_frq, unsigned int dst_frq);
36int set_epll_clk(unsigned long rate);
Hatim RVe6365b62012-11-02 01:15:34 +000037int set_spi_clk(int periph_id, unsigned int rate);
Minkyu Kangb1b24682011-01-24 15:22:23 +090038
Padmavathi Venna37feb7b2013-03-28 04:32:21 +000039/**
40 * get the clk frequency of the required peripheral
41 *
42 * @param peripheral Peripheral id
43 *
44 * @return frequency of the peripheral clk
45 */
46unsigned long clock_get_periph_rate(int peripheral);
47
Minkyu Kangb1b24682011-01-24 15:22:23 +090048#endif