tizen 2.4 release
[kernel/u-boot-tm1.git] / drivers / video / sprdfb / sprdfb_chip_common.c
1 /******************************************************************************
2  ** File Name:    sprdfb_chip_common.c                                     *
3  ** Author:       congfu.zhao                                           *
4  ** DATE:         30/04/2013                                        *
5  ** Copyright:    2013 Spreatrum, Incoporated. All Rights Reserved. *
6  ** Description:                                                    *
7  ******************************************************************************/
8 /******************************************************************************
9  **                   Edit    History                               *
10  **---------------------------------------------------------------------------*
11  ** DATE          NAME            DESCRIPTION                       *
12
13  ******************************************************************************/
14
15
16
17 #include "sprdfb_chip_common.h"
18
19 void __raw_bits_and(unsigned int v, unsigned int a)
20 {
21         __raw_writel((__raw_readl(a) & v), a);
22 }
23
24 void __raw_bits_or(unsigned int v, unsigned int a)
25 {
26         __raw_writel((__raw_readl(a) | v), a);
27 }
28
29 void __raw_bits_set_value(unsigned int reg, unsigned int value, unsigned int bit, unsigned int mask)
30 {
31         __raw_writel(((__raw_readl(reg) & (~mask)) | (value << bit)), reg);
32 }
33
34 void dispc_pll_clk_set(unsigned int clk_src, unsigned int clk_div)
35 {
36         __raw_bits_set_value(DISPC_PLL_SEL_CFG, clk_src, BITS_DISPC_PLL_SEL_CFG, BIT_DISPC_PLL_SEL_MSK);
37         __raw_bits_set_value(DISPC_PLL_DIV_CFG, clk_div, BITS_DISPC_PLL_DIV_CFG, BIT_DISPC_PLL_DIV_MSK);
38 }
39
40 void dispc_dbi_clk_set(unsigned int clk_src, unsigned int clk_div)
41 {
42         __raw_bits_set_value(DISPC_DBI_SEL_CFG, clk_src, BITS_DISPC_DBI_SEL_CFG, BIT_DISPC_DBI_SEL_MSK);
43         __raw_bits_set_value(DISPC_DBI_DIV_CFG, clk_div, BITS_DISPC_DBI_DIV_CFG, BIT_DISPC_DBI_DIV_MSK);
44 }
45
46 void dispc_dpi_clk_set(unsigned int clk_src, unsigned int clk_div)
47 {
48         __raw_bits_set_value(DISPC_DPI_SEL_CFG, clk_src, BITS_DISPC_DPI_SEL_CFG, BIT_DISPC_DPI_SEL_MSK);
49         __raw_bits_set_value(DISPC_DPI_DIV_CFG, clk_div, BITS_DISPC_DPI_DIV_CFG, BIT_DISPC_DPI_DIV_MSK);
50 }
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65