68 lines
3.1 KiB
C
68 lines
3.1 KiB
C
/*
|
|
* Copyright (C) 2012 Juergen Beisert
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of
|
|
* the License, or (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#define S3C_EPLL_LOCK (S3C_CLOCK_POWER_BASE + 0x08)
|
|
# define S3C_EPLL_LOCK_PLL_LOCKTIME(x) ((x) & 0xffff)
|
|
#define S3C_APLLCON (S3C_CLOCK_POWER_BASE + 0x0c)
|
|
# define S3C_APLLCON_ENABLE (1 << 31)
|
|
# define S3C_APLLCON_GET_MDIV(x) (((x) >> 16) & 0x3ff)
|
|
# define S3C_APLLCON_GET_PDIV(x) (((x) >> 8) & 0x3f)
|
|
# define S3C_APLLCON_GET_SDIV(x) ((x) & 0x7)
|
|
#define S3C_MPLLCON (S3C_CLOCK_POWER_BASE + 0x10)
|
|
# define S3C_MPLLCON_ENABLE (1 << 31)
|
|
# define S3C_MPLLCON_GET_MDIV(x) (((x) >> 16) & 0x3ff)
|
|
# define S3C_MPLLCON_GET_PDIV(x) (((x) >> 8) & 0x3f)
|
|
# define S3C_MPLLCON_GET_SDIV(x) ((x) & 0x7)
|
|
#define S3C_EPLLCON0 (S3C_CLOCK_POWER_BASE + 0x14)
|
|
# define S3C_EPLLCON0_ENABLE (1 << 31)
|
|
# define S3C_EPLLCON0_GET_MDIV(x) (((x) >> 16) & 0xff)
|
|
# define S3C_EPLLCON0_SET_MDIV(x) (((x) & 0xff) << 16)
|
|
# define S3C_EPLLCON0_GET_PDIV(x) (((x) >> 8) & 0x3f)
|
|
# define S3C_EPLLCON0_SET_PDIV(x) (((x) & 0x3f) << 8)
|
|
# define S3C_EPLLCON0_GET_SDIV(x) ((x) & 0x7)
|
|
# define S3C_EPLLCON0_SET_SDIV(x) ((x) & 0x7)
|
|
#define S3C_EPLLCON1 (S3C_CLOCK_POWER_BASE + 0x18)
|
|
# define S3C_EPLLCON1_GET_KDIV(x) ((x) & 0xffff)
|
|
# define S3C_EPLLCON1_SET_KDIV(x) ((x) & 0xffff)
|
|
#define S3C_CLKCON (S3C_CLOCK_POWER_BASE + 0xc)
|
|
#define S3C_CLKSLOW (S3C_CLOCK_POWER_BASE + 0x10)
|
|
#define S3C_CLKDIVN (S3C_CLOCK_POWER_BASE + 0x14)
|
|
#define S3C_CLK_SRC (S3C_CLOCK_POWER_BASE + 0x01c)
|
|
# define S3C_CLK_SRC_GET_MMC_SEL(x, v) (((v) >> (18 + (x * 2))) & 0x3)
|
|
# define S3C_CLK_SRC_SET_MMC_SEL(x, v) (((v) & 0x3) << (18 + (x * 2)))
|
|
# define S3C_CLK_SRC_UARTMPLL (1 << 13)
|
|
# define S3C_CLK_SRC_FOUTEPLL (1 << 2)
|
|
# define S3C_CLK_SRC_FOUTMPLL (1 << 1)
|
|
# define S3C_CLK_SRC_FOUTAPLL (1 << 0)
|
|
#define S3C_CLK_DIV0 (S3C_CLOCK_POWER_BASE + 0x020)
|
|
# define S3C_CLK_DIV0_GET_ADIV(x) ((x) & 0xf)
|
|
# define S3C_CLK_DIV0_GET_HCLK2(x) (((x) >> 9) & 0x7)
|
|
# define S3C_CLK_DIV0_GET_HCLK(x) (((x) >> 8) & 0x1)
|
|
# define S3C_CLK_DIV0_GET_PCLK(x) (((x) >> 12) & 0xf)
|
|
# define S3C_CLK_DIV0_SET_MPLL_DIV(x) (((x) & 0x1) << 4)
|
|
# define S3C_CLK_DIV0_GET_MPLL_DIV(x) (((x) >> 4) & 0x1)
|
|
# define S3C_CLK_DIV0_GET_MMC(x, v) (((v) >> (4 * x)) & 0xf)
|
|
# define S3C_CLK_DIV0_SET_MMC(x, v) (((v) & 0xf) << (4 * x))
|
|
#define S3C_CLK_DIV2 (S3C_CLOCK_POWER_BASE + 0x028)
|
|
# define S3C_CLK_DIV2_UART_MASK (0xf << 16)
|
|
# define S3C_CLK_DIV2_SET_UART(x) ((x) << 16)
|
|
# define S3C_CLK_DIV2_GET_UART(x) (((x) >> 16) & 0xf)
|
|
#define S3C_SCLK_GATE (S3C_CLOCK_POWER_BASE + 0x038)
|
|
# define S3C_SCLK_GATE_UART (1 << 5)
|
|
# define S3C_SCLK_GATE_MMC(x) (1 << (24 + x))
|
|
#define S3C_MISC_CON (S3C_CLOCK_POWER_BASE + 0x838)
|
|
# define S3C_MISC_CON_SYN667 (1 << 19)
|
|
#define S3C_OTHERS (S3C_CLOCK_POWER_BASE + 0x900)
|
|
# define S3C_OTHERS_CLK_SELECT (1 << 6)
|