#include <linux/slab.h>
#include <linux/clk-provider.h>
#include <linux/clk/samsung.h>
#include <linux/of.h>
#include <linux/of_address.h>
#include <dt-bindings/clock/samsung,s3c64xx-clock.h>
#include "clk.h"
#include "clk-pll.h"
#define APLL_LOCK …
#define MPLL_LOCK …
#define EPLL_LOCK …
#define APLL_CON …
#define MPLL_CON …
#define EPLL_CON0 …
#define EPLL_CON1 …
#define CLK_SRC …
#define CLK_DIV0 …
#define CLK_DIV1 …
#define CLK_DIV2 …
#define HCLK_GATE …
#define PCLK_GATE …
#define SCLK_GATE …
#define MEM0_GATE …
#define CLK_SRC2 …
#define OTHERS …
#define FIXED_RATE_CLOCKS(name) …
#define MUX_CLOCKS(name) …
#define DIV_CLOCKS(name) …
#define GATE_CLOCKS(name) …
#define GATE_BUS(_id, cname, pname, o, b) …
#define GATE_SCLK(_id, cname, pname, o, b) …
#define GATE_ON(_id, cname, pname, o, b) …
static void __iomem *reg_base;
static bool is_s3c6400;
static unsigned long s3c64xx_clk_regs[] __initdata = …;
static unsigned long s3c6410_clk_regs[] __initdata = …;
PNAME(spi_mmc_p) = …;
PNAME(uart_p) = …;
PNAME(audio0_p) = …;
PNAME(audio1_p) = …;
PNAME(mfc_p) = …;
PNAME(apll_p) = …;
PNAME(mpll_p) = …;
PNAME(epll_p) = …;
PNAME(hclkx2_p) = …;
PNAME(scaler_lcd_p6400) = …;
PNAME(irda_p6400) = …;
PNAME(uhost_p6400) = …;
PNAME(clk27_p6410) = …;
PNAME(scaler_lcd_p6410) = …;
PNAME(irda_p6410) = …;
PNAME(uhost_p6410) = …;
PNAME(audio2_p6410) = …;
FIXED_RATE_CLOCKS(s3c64xx_fixed_rate_ext_clks) __initdata = …;
FIXED_RATE_CLOCKS(s3c64xx_fixed_rate_clks) __initdata = …;
MUX_CLOCKS(s3c64xx_mux_clks) __initdata = …;
MUX_CLOCKS(s3c6400_mux_clks) __initdata = …;
MUX_CLOCKS(s3c6410_mux_clks) __initdata = …;
DIV_CLOCKS(s3c64xx_div_clks) __initdata = …;
DIV_CLOCKS(s3c6400_div_clks) __initdata = …;
DIV_CLOCKS(s3c6410_div_clks) __initdata = …;
GATE_CLOCKS(s3c64xx_gate_clks) __initdata = …;
GATE_CLOCKS(s3c6400_gate_clks) __initdata = …;
GATE_CLOCKS(s3c6410_gate_clks) __initdata = …;
static struct samsung_pll_clock s3c64xx_pll_clks[] __initdata = …;
static struct samsung_clock_alias s3c64xx_clock_aliases[] = …;
static struct samsung_clock_alias s3c6400_clock_aliases[] = …;
static struct samsung_clock_alias s3c6410_clock_aliases[] = …;
static void __init s3c64xx_clk_register_fixed_ext(
struct samsung_clk_provider *ctx,
unsigned long fin_pll_f,
unsigned long xusbxti_f)
{ … }
void __init s3c64xx_clk_init(struct device_node *np, unsigned long xtal_f,
unsigned long xusbxti_f, bool s3c6400,
void __iomem *base)
{ … }
static void __init s3c6400_clk_init(struct device_node *np)
{ … }
CLK_OF_DECLARE(s3c6400_clk, "samsung,s3c6400-clock", s3c6400_clk_init);
static void __init s3c6410_clk_init(struct device_node *np)
{ … }
CLK_OF_DECLARE(s3c6410_clk, "samsung,s3c6410-clock", s3c6410_clk_init);